Skip to content

fix: [ECCVM] rare edge case completeness issue when z1 == 0 but z2 != 0 #20858

Merged
notnotraju merged 3 commits intomerge-train/barretenbergfrom
rk/eccvm-external-audit-1-z1-zero-handling
Mar 6, 2026
Merged

fix: [ECCVM] rare edge case completeness issue when z1 == 0 but z2 != 0 #20858
notnotraju merged 3 commits intomerge-train/barretenbergfrom
rk/eccvm-external-audit-1-z1-zero-handling

Conversation

@notnotraju
Copy link
Contributor

The transcript_input2 used a hardcoded transcript_pc - 1 which assumed z1_zero = 0 whenever z2_zero = 0. This made the circuit unsatisfiable when z1_zero = 1 and z2_zero = 0. Replace with transcript_pc - lookup_first so the pc offset adapts correctly. Update gate count pinning values.

The transcript_input2 used a hardcoded `transcript_pc - 1` which assumed
z1_zero = 0 whenever z2_zero = 0. This made the circuit unsatisfiable
when z1_zero = 1 and z2_zero = 0. Replace with `transcript_pc - lookup_first`
so the pc offset adapts correctly. Update gate count pinning values.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@notnotraju notnotraju requested a review from suyash67 February 25, 2026 14:15
@notnotraju notnotraju added the ci-barretenberg-full Run all barretenberg checks. label Feb 27, 2026
@notnotraju notnotraju self-assigned this Feb 27, 2026
Copy link
Contributor

@suyash67 suyash67 left a comment

Choose a reason for hiding this comment

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

looks good

notnotraju added 2 commits March 6, 2026 13:17
…k/eccvm-external-audit-1-z1-zero-handling

# Conflicts:
#	barretenberg/cpp/src/barretenberg/dsl/acir_format/gate_count_constants.hpp
#	barretenberg/cpp/src/barretenberg/relations/ecc_vm/ecc_set_relation_impl.hpp
- CHONK_RECURSION_GATES: 1685112
- ECCVM_RECURSIVE_VERIFIER_GATE_COUNT: 224707
@notnotraju notnotraju merged commit c36a82f into merge-train/barretenberg Mar 6, 2026
10 checks passed
@notnotraju notnotraju deleted the rk/eccvm-external-audit-1-z1-zero-handling branch March 6, 2026 15:42
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-barretenberg-full Run all barretenberg checks.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants