Skip to content

test: test vectors for recursive proof verification#821

Merged
tcoratger merged 3 commits into
leanEthereum:mainfrom
unnawut:verify-proofs-recursive-vectors
Jun 2, 2026
Merged

test: test vectors for recursive proof verification#821
tcoratger merged 3 commits into
leanEthereum:mainfrom
unnawut:verify-proofs-recursive-vectors

Conversation

@unnawut
Copy link
Copy Markdown
Collaborator

@unnawut unnawut commented Jun 2, 2026

🗒️ Description

Add test vectors for verifying recursive proofs

✅ Checklist

  • Ran local quality checks to avoid unnecessary CI fails:
    just check
  • Considered adding appropriate tests for the changes.
  • Considered updating the online docs in the ./docs/ directory.

unnawut added 2 commits June 2, 2026 16:07
…gregation path

Add an optional child_groups input that partitions validator_indices into
subsets, each pre-aggregated into a child proof first; the outer aggregate
then folds those children with any remaining raw signers. This exercises
the recursive aggregator entry the rolling re-aggregation path in sync
relies on, while emitting the same JSON shape as the flat path so clients
verify it through the same code.
Three positive vectors exercising the recursive aggregation path:
- one single-validator child folded with one raw signer
- two disjoint children folded together with no raw signers
- two children folded with one raw signer
@unnawut unnawut added this to the pq-devnet-5 milestone Jun 2, 2026
@unnawut unnawut requested a review from tcoratger June 2, 2026 09:24
Address review of the recursive single-message proof vectors:

- Add wrong-message and wrong-slot rejection vectors so the recursive
  verifier path is tested on negative cases, not only acceptance.
- Validate child_groups in the recursive aggregator: unknown or reused
  validator indices now raise a clear ValueError instead of an opaque
  KeyError or a silent dedup.
- Inline attestation data in each test to match the sibling files and
  the inline-literals convention; drop the local helper.
- Tighten docs: no field names in docstring prose, document the
  two-level depth as an invariant, rename inline Step labels to Phase.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@tcoratger tcoratger force-pushed the verify-proofs-recursive-vectors branch from c4daf8a to 6570561 Compare June 2, 2026 11:26
@tcoratger tcoratger merged commit 724cb77 into leanEthereum:main Jun 2, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants