8000
Skip to content

Implement sound Lasso lookup-argument verification (sumcheck + PCS opening) — currently behind experimental feature #6

Description

@stxkxs

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthelp wantedExtra attention is needed

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

    0