Context
Gated in df2a522 (PR #2). LassoArgument::verify in crates/zk-proofs/src/lasso.rs (~line 270) returns LassoError::NotImplemented in default builds. Behind the non-default experimental-lasso cargo feature it runs an UNSOUND check (a dummy claimed_sum == 0 test with no polynomial-commitment opening verification) that accepts forged proofs.
Why it's gated: a verifier that accepts forged proofs is worse than none on a security-critical path, so the default build refuses to verify and the unsound path is quarantined behind an explicitly-documented research-only feature.
Required
Implement the real protocol so verify() actually validates a proof:
- Full sumcheck protocol.
- Polynomial-commitment opening verification.
- (Optionally) the full Lasso lookup argument (Setty–Thaler–Wahby).
Acceptance criteria
- Negative KAT: a forged proof is rejected in the default (non-experimental) build.
- Positive round-trip: an honestly-generated proof verifies.
- Remove the
experimental-lasso gate (or keep it but make verify() sound), with a clear doc note on the security guarantee.
cargo check --all, clippy --all-targets -- -D warnings, fmt --all --check, full test suite all green.
References
- Setty, Thaler, Wahby — "Unlocking the lookup singularity with Lasso"
⚠️ Research-grade component — verify cryptographic soundness (ideally with an independent review) before enabling in any production verification path.
Context
Gated in df2a522 (PR #2).
LassoArgument::verifyincrates/zk-proofs/src/lasso.rs(~line 270) returnsLassoError::NotImplementedin default builds. Behind the non-defaultexperimental-lassocargo feature it runs an UNSOUND check (a dummyclaimed_sum == 0test with no polynomial-commitment opening verification) that accepts forged proofs.Why it's gated: a verifier that accepts forged proofs is worse than none on a security-critical path, so the default build refuses to verify and the unsound path is quarantined behind an explicitly-documented research-only feature.
Required
Implement the real protocol so
verify()actually validates a proof:Acceptance criteria
experimental-lassogate (or keep it but makeverify()sound), with a clear doc note on the security guarantee.cargo check --all,clippy --all-targets -- -D warnings,fmt --all --check, full test suite all green.References