Read from Hint Space for MULTI_OBSERVE + Bind TowerProof Evaluations to Transcript#1268
Read from Hint Space for MULTI_OBSERVE + Bind TowerProof Evaluations to Transcript#1268darth-cy wants to merge 24 commits intofeat/sum_replacefrom
MULTI_OBSERVE + Bind TowerProof Evaluations to Transcript#1268Conversation
## Summary Fixes #1125. ## Performance (recursion prover) The recursion proving time (for block `23817600`): - before: 62s - after: 61.6s | shard | total cells (baseline) | total cells | increase ratio | - | - | - | - | leaf 0 | 750,783,978 | 961,285,610 | +28.04% (have no clue on this) leaf 1 | 731,876,842 | 733,220,330 | +0.18% leaf 2 | 731,876,842 | 733,220,330 | +0.18% leaf 3 | 731,876,842 | 733,220,330 | +0.18% leaf 4 | 731,876,842 | 733,220,330 | +0.18% leaf 5 | 729,124,330 | 729,124,330 | +0.00% leaf 6 | 1,325,207,018 | 1,325,207,018 | +0.00% leaf 7 | 1,299,647,978 | 1,299,647,978 | +0.00% leaf 8 | 1,299,647,978 | 1,299,647,978 | +0.00% leaf 9 | 1,299,647,978 | 1,299,647,978 | +0.00% leaf 10 | 1,299,647,978 | 1,299,647,978 | +0.00% leaf 11 | 733,220,330 | 733,220,330 | +0.00% leaf 12 | 731,876,842 | 733,220,330 | +0.18% leaf 13 | 731,876,842 | 733,220,330 | +0.18% leaf 14 | 729,124,330 | 731,287,018 | +0.30%
There was a problem hiding this comment.
Pull request overview
This PR updates the ZKVM proving/verifying flow so tower-proof “out evals” (read/write/lookup) are bound into the transcript before deriving tower challenges, including the recursive verifier path via hint space.
Changes:
- Bind R/W/LK out-evaluations into the transcript prior to tower challenge derivation (CPU prover, GPU prover, native verifier).
- Add recursive-circuit support for transcript binding from hint space (
HintSlice) via a newchallenger_hint_observe. - Update OpenVM dependency branch to one that supports the hint-based multi-observe API.
Reviewed changes
Copilot reviewed 7 out of 8 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| ceno_zkvm/src/scheme/verifier.rs | Appends proof out-evals into transcript before TowerVerify::verify. |
| ceno_zkvm/src/scheme/gpu/mod.rs | Appends GPU-extracted out-evals into transcript before tower proof creation. |
| ceno_zkvm/src/scheme/cpu/mod.rs | Appends CPU out-evals into transcript before tower proof creation. |
| ceno_recursion/src/zkvm_verifier/verifier.rs | Adds hint-based transcript binding for out-evals in recursive chip verification; also contains a commented-out PCS verification call. |
| ceno_recursion/src/arithmetics/mod.rs | Extends multi-observe to support hint space IDs and introduces challenger_hint_observe. |
| ceno_recursion/src/aggregation/mod.rs | Un-ignores a test that depends on external proof/vk artifacts. |
| Cargo.toml | Moves OpenVM git deps to feat/hint_multi_observe branch. |
| Cargo.lock | Updates OpenVM dependency sources accordingly. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
This PR strengthens Fiat–Shamir transcript binding for tower proofs by absorbing read/write/lookup “out evals” into the transcript (including the recursion verifier path, where evals live in hint space), ensuring tower challenges are derived from a transcript that commits to these evaluations.
Changes:
- Bind read/write/lookup out-evaluations into the transcript before deriving tower challenges (CPU prover, GPU prover, and verifier).
- Add hint-space absorption support in recursion (
challenger_hint_observe) and use it to bind tower out-evals in the recursive zkVM verifier. - Clean up aggregation prover debug timing/prints and make some PV fields deterministic; update
openvmdependency branch tofeat/hint_multi_observe.
Reviewed changes
Copilot reviewed 7 out of 8 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| ceno_zkvm/src/scheme/verifier.rs | Absorbs r/w/lk out-evals into transcript before tower challenge derivation during verification. |
| ceno_zkvm/src/scheme/gpu/mod.rs | Absorbs GPU-extracted out-evals into transcript prior to tower proof creation. |
| ceno_zkvm/src/scheme/cpu/mod.rs | Absorbs CPU out-evals into transcript prior to tower proof creation. |
| ceno_recursion/src/zkvm_verifier/verifier.rs | Binds tower out-evals from hint space into the recursive challenger before tower verification. |
| ceno_recursion/src/arithmetics/mod.rs | Updates challenger_multi_observe to new API and introduces challenger_hint_observe for hint-backed absorption. |
| ceno_recursion/src/aggregation/mod.rs | Removes debug timing/prints; assigns deterministic PV fields (e.g., is_terminate, roots/commit digests) in leaf verifier program. |
| Cargo.toml | Switches openvm* git dependencies to feat/hint_multi_observe branch. |
| Cargo.lock | Updates locked openvm* sources to the new branch/commit. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
No description provided.