Skip to content

chore(bb): refresh pinned Chonk IVC inputs after protocol-circuit changes#23744

Closed
AztecBot wants to merge 1 commit into
nextfrom
cb/refresh-chonk-inputs
Closed

chore(bb): refresh pinned Chonk IVC inputs after protocol-circuit changes#23744
AztecBot wants to merge 1 commit into
nextfrom
cb/refresh-chonk-inputs

Conversation

@AztecBot

Copy link
Copy Markdown
Collaborator

What

Trigger a refresh of the pinned Chonk IVC inputs (barretenberg/cpp/scripts/chonk-inputs.hash) via the ci-refresh-chonk label. CI regenerates the inputs from the current protocol circuits, uploads the new tarball to S3, proves one small refreshed flow in C++ and bb.js, and pushes the updated hash back onto this branch.

The only meaningful diff this PR introduces is the refreshed chonk-inputs.hash (the trailing-newline tweak below is just a placeholder so the branch has a diff for CI to overwrite).

Why — root cause of the nightly debug build failure

Nightly Debug Build run 26676520589 failed in bbapi_tests ChonkPinnedIvcInputsTest.AllPinnedFlows with:

Assertion failed: (kernel_return_data_match)
Reason: kernel_return_data mismatch: proof contains
  { 0x1832...7ea4, 0x0 } but kernel_calldata commitment is { 0x..01, 0x..02 }

This is the databus consistency check in barretenberg/cpp/src/barretenberg/chonk/chonk.cpp (process_public_inputs_and_consistency_checks). It is guarded by BB_ASSERT_DEBUG, which is compiled out of release/default builds — so only the nightly debug build exercises it, which is why regular PR CI was green. The {1,2} commitment is the BN254 generator, i.e. an empty databus column, while the proof carries real return data: the frozen pinned flow no longer reconstructs consistently against the current protocol circuits.

Timeline:

The pinned inputs are meant to track the protocol circuits; the breaking PRs should have carried ci-refresh-chonk but were merged via release CI where the debug assert is absent. This PR performs the missing refresh.

Verification

CI's ci-refresh-chonk post-action regenerates the inputs and proves the smallest refreshed flow in both C++ and bb.js before committing the new hash, which directly reproduces and clears the failing assertion. After the bot pushes the refreshed hash, confirm the run is green before merging.


Created by claudebox · group: slackbot

@AztecBot

AztecBot commented Jun 4, 2026

Copy link
Copy Markdown
Collaborator Author

Automatically closing this stale claudebox draft PR (no updates for 5+ days). Re-open if still needed.

@AztecBot AztecBot closed this Jun 4, 2026
AztecBot added a commit that referenced this pull request Jun 8, 2026
… --ci-refresh-chonk

## What

Refreshes the pinned Chonk IVC inputs (`barretenberg/cpp/scripts/chonk-inputs.hash`) so the **Nightly Debug Build** goes green again.

This PR carries the `ci-refresh-chonk` label **and** a `--ci-refresh-chonk` head-commit marker. PR CI's post-action (`ci_update_chonk_inputs.sh`) regenerates the pinned inputs, uploads the new tarball to S3, verifies the smallest flow through `ChonkPinnedIvcInputsTest.AllPinnedFlows`, and pushes a follow-up commit replacing the placeholder hash in this PR with the freshly-pinned value. **Do not merge until that follow-up commit lands** — the hash here is a `0000…` placeholder until then.

Supersedes the earlier closed-unmerged refresh attempt #23744; the pin is still at the 2026-05-21 value (`209dde8e69a27c9f`), so the nightly has stayed red.

## Root cause

Nightly debug build run [27085031299](https://github.com/AztecProtocol/aztec-packages/actions/runs/27085031299) failed in:

```
FAILED: barretenberg/cpp/scripts/run_test.sh bbapi_tests ChonkPinnedIvcInputsTest.AllPinnedFlows (code: 1)
```

The failure is on circuit 10/10 (`hiding_kernel`) of the `deploy_ecdsar1+sponsored_fpc` pinned flow:

```
Pub inputs offset mismatch: 669 vs 673
Commitment mismatch: Q_M, Q_C, Q_L, Q_R, Q_O, Q_4, Q_5, Q_ARITH, Q_SORT, ...
C++ exception: Assertion failed: (kernel_return_data_match)
  Reason: kernel_return_data mismatch: proof contains
          { 0x183227397098d014..., 0x0 } but kernel_calldata commitment is { 0x..01, 0x..02 }
```

The `hiding_kernel` circuit's public-input layout changed (offset 669 → 673, plus selector-commitment changes), so the **precomputed VK and proof baked into the pinned `ivc-inputs.msgpack` are stale**. The reconstructed `kernel_return_data` from the stale public inputs reads a sentinel `{1, 2}` (the BN254 generator, i.e. an empty databus column) instead of the real return-data commitment, tripping the consistency check.

That check is `BB_ASSERT_DEBUG(kernel_return_data_match, ...)` at `barretenberg/cpp/src/barretenberg/chonk/chonk.cpp:169` — a **debug-only** assertion compiled out of release/PR CI. Only the nightly *debug* build exercises it, which is why the stale pin slips past merge-queue CI.

The pin was last bumped 2026-05-21. Circuit-affecting barretenberg changes have since landed on `next` without `ci-refresh-chonk`, most notably:

- #23484 *fix: harden batch chonk verifier* — adds an independent batched-SRS MSM check in `IPA::batch_reduce_verify` (`commitment_schemes/ipa/ipa.hpp`); the IPA verifier lives inside the hiding kernel, which accounts for the new public inputs and changed selector commitments.
- #23615 *feat: optimize sumcheck in ECCVM and Translator*.

## Fix

Regenerate and re-pin the Chonk inputs via the standard `ci-refresh-chonk` flow (this PR). No source changes are needed — the pinned fixtures just need to track the current circuits.

## Follow-up (separate)

Because the assertion is debug-only, circuit changes can stale the pin with no PR-CI signal, and refresh PRs have repeatedly been opened and closed without landing. Worth deciding whether `chonk_inputs.sh check` should exercise the pinned-flow IVC with debug asserts at PR time (or whether the nightly should hard-block), so this is caught before it reaches the nightly. Tracking separately.

---
*Created by [claudebox](https://claudebox.work/v2/sessions/1bec730eb3623e82) · group: `slackbot`*
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci-refresh-chonk claudebox Owned by claudebox. it can push to this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant