Skip to content

fix: use actual data extent for CommitmentKey in HypernovaDeciderProver - #21206

Merged
ludamad merged 2 commits into
merge-train/barretenbergfrom
jh/fix-decider-virtual-size
Mar 6, 2026
Merged

fix: use actual data extent for CommitmentKey in HypernovaDeciderProver#21206
ludamad merged 2 commits into
merge-train/barretenbergfrom
jh/fix-decider-virtual-size

Conversation

@johnathan79717

@johnathan79717 johnathan79717 commented Mar 6, 2026

Copy link
Copy Markdown
Contributor

Summary

  • After feat: Optimise new claim calculation #21179 optimized compute_new_claim() to move polynomials instead of copying, virtual_size() on accumulator polynomials no longer reliably equals the accumulator's dyadic size.
  • HypernovaDeciderProver::construct_proof used virtual_size() to create a CommitmentKey, which could request 2^21 CRS points — exceeding the WASM default of 2^20.
  • Fix: use end_index() to compute the tightest CRS size for the CommitmentKey, while passing dyadic_size to PolynomialBatcher and ShpleminiProver which need the multilinear domain size.

Test plan

  • hypernova_tests pass (9/9)
  • chonk_tests pass (25/25)
  • CI chonk integration tests

After PR #21179 optimized `compute_new_claim()` to move polynomials
instead of copying, the `virtual_size()` of accumulator polynomials
no longer reliably reflects the accumulator's dyadic size. Use the
explicit `dyadic_size` field which is always set correctly.

This fixes WASM chonk integration tests that failed because
`virtual_size()` returned 2^21 (CONST_FOLDING_LOG_N) causing
CommitmentKey to request more CRS points than available.
@johnathan79717 johnathan79717 added the ci-full Run all master checks. label Mar 6, 2026
Use `end_index()` to compute the tightest CRS size needed, rather than
`dyadic_size` (which can be 2^21). Pass `dyadic_size` to the batcher
and Shplemini (which need the multilinear domain size) but only request
as many CRS points as the polynomial data actually requires.
@johnathan79717 johnathan79717 changed the title fix: use dyadic_size instead of virtual_size in HypernovaDeciderProver fix: use actual data extent for CommitmentKey in HypernovaDeciderProver Mar 6, 2026
@ludamad
ludamad merged commit a3437fa into merge-train/barretenberg Mar 6, 2026
10 checks passed
@ludamad
ludamad deleted the jh/fix-decider-virtual-size branch March 6, 2026 16:04
github-merge-queue Bot pushed a commit that referenced this pull request Mar 6, 2026
BEGIN_COMMIT_OVERRIDE
fix: add -g0 to zig presets to eliminate 11GB debug info bloat (#21071)
fix: resolve flaky p2p_client test race condition on ARM64 (#21088)
chore: remove domain iteration macros and address backing memory race
(#20988)
fix: [ECCVM] added domain separation for the multiset equality check.
(#20352)
feat: hybrid CRS hash verification — 8MB chunks, parallel, span-based
(#21113)
chore: unify splitting scalars interface (#20805)
chore: add a unique id to each origin tag (#20924)
chore: Native curve audit (#20936)
chore: Update bootstrap in test vk haven't changed script (#21153)
fix: use reduced form in WASM FromMontgomeryForm test (#21164)
chore: erase ephemeral secrets from memory in schnorr and aes (#21106)
chore: suppress clangd target triple version diagnostic (#21180)
feat: Optimise new claim calculation (#21179)
docs: add Quick Start build instructions to barretenberg README (#20951)
feat: batched chonk verification (#21083)
fix: link libc++ instead of libstdc++ for Rust FFI on Linux (#21203)
fix: [ECCVM] in the transcript table, no-ops force the next accumulator
to be 0. (#20849)
fix: resolve merge-train conflict with next (zig wrapper scripts + -g0)
(#21201)
fix: [ECCVM] rare edge case completeness issue when `z1 == 0` but `z2 !=
0` (#20858)
fix: use actual data extent for CommitmentKey in HypernovaDeciderProver
(#21206)
END_COMMIT_OVERRIDE
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci-full Run all master checks.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants