Skip to content

[follow up on #1259] resolve conflict with master branch #1286

Merged
Velaciela merged 7 commits intofeat/gpu-witnessgenfrom
feat/gpu-witnessgen_res_conflict
Apr 1, 2026
Merged

[follow up on #1259] resolve conflict with master branch #1286
Velaciela merged 7 commits intofeat/gpu-witnessgenfrom
feat/gpu-witnessgen_res_conflict

Conversation

@hero78119
Copy link
Copy Markdown
Collaborator

@hero78119 hero78119 commented Apr 1, 2026

Resolve 6 conflict files, while other are just pure merge

CONFLICT (content): Merge conflict in ceno_emul/src/lib.rs
CONFLICT (content): Merge conflict in ceno_zkvm/src/e2e.rs
CONFLICT (content): Merge conflict in ceno_zkvm/src/instructions/riscv/ecall.rs
CONFLICT (content): Merge conflict in ceno_zkvm/src/precompiles/mod.rs
CONFLICT (content): Merge conflict in ceno_zkvm/src/structs.rs
CONFLICT (content): Merge conflict in ceno_zkvm/src/tables/ram/ram_circuit.rs

Velaciela and others added 7 commits March 4, 2026 05:29
## 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%
Optimization for Calculating Initial Sum in tower verify.
- Remove dot product logic for calculating `initial_sum`. Use
`NativeSumcheck` instead.
- Flatten out evaluation arrays.
- Remove arithmetic utilities no longer required.

Optimization for `NativeSumcheck`
- Use the additional mode on `NativeSumcheck` chip that allows passing
in hint space IDs for evaluation inputs instead of loading concrete
witness arrays. This significantly reduces cycles involved in loading
witnesses.

---------

Co-authored-by: kunxian xia <xiakunxian130@gmail.com>
Co-authored-by: Ming <hero78119@gmail.com>
This PR introduce some changes to simplify recursion verifier
development

### Notes
- simplify branching 1: always write 2  fixed_commitment
- simplify branching 2: Standardized chip num_instances to fixed
two-lane format ([usize; 2]) across zkVM prove/verify paths.
…value + PublicValues (#1277)

This PR refactors how public inputs (PI) are represented and consumed
across zkVM proving/verification so that PI handling is circuit-driven
and consistent end-to-end.
Related to #1263.

### Design rationale
Previously, PI transcript absorption and some verifier checks depended
on broader/raw PI containers, which made ordering and indexing
assumptions harder to audit and keep consistent across:
- prover
- rust verifier
- recursion verifier.

This PR moves PI consumption to a canonical, circuit-defined path:
- `instance_values` defines which scalar PI values a circuit observes
(and in what order).
- `instance_openings` defines which PI MLE columns are opened.
- PI openings are derived from `PublicValues` MLEs, rather than
ad-hoc/raw vectors.

This reduces ambiguity in PI ordering/indexing and aligns
transcript-visible PI handling with circuit semantics.

### pi update
Previous `pi_update` mechanism will trigger verifier failed if a
identical public value used > 1 chip because they will be in different
opening point, thus evaluation value will be different. This PR fixed
the issue, and refactor public value check back to `verify_chip_phase`

### soundness fix
This PR also fixed a soundness issue by removing `wit_in_evals` and
`fixed_in_evals` from the proof payload. Instead of trusting
prover-supplied values for these evaluations, the verifier now
deterministically derives them from the sumcheck evaluations during
verification. This prevents a malicious prover from introducing
mismatches between claimed eval vectors and the actual
sumcheck-consistent values.

### Follow up
#1280
@hero78119 hero78119 changed the title [1259] resolve conflict with master branch [follow up on #1259] resolve conflict with master branch Apr 1, 2026
@Velaciela Velaciela merged commit 1a991ec into feat/gpu-witnessgen Apr 1, 2026
4 checks passed
@Velaciela Velaciela deleted the feat/gpu-witnessgen_res_conflict branch April 1, 2026 09:41
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.

4 participants