Skip to content

Read from Hint Space for MULTI_OBSERVE + Bind TowerProof Evaluations to Transcript#1268

Open
darth-cy wants to merge 24 commits intofeat/sum_replacefrom
feat/hint_multi_observe
Open

Read from Hint Space for MULTI_OBSERVE + Bind TowerProof Evaluations to Transcript#1268
darth-cy wants to merge 24 commits intofeat/sum_replacefrom
feat/hint_multi_observe

Conversation

@darth-cy
Copy link
Collaborator

No description provided.

kunxian-xia and others added 3 commits March 10, 2026 06:59
## 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%
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 new challenger_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.

@darth-cy darth-cy requested a review from Copilot March 19, 2026 00:58
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 openvm dependency branch to feat/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.

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.

3 participants