Skip to content

chore!: Remove circuit_size from all VKs#15747

Merged
ledwards2225 merged 29 commits into
merge-train/barretenbergfrom
lde/only_log_n
Jul 17, 2025
Merged

chore!: Remove circuit_size from all VKs#15747
ledwards2225 merged 29 commits into
merge-train/barretenbergfrom
lde/only_log_n

Conversation

@ledwards2225

@ledwards2225 ledwards2225 commented Jul 15, 2025

Copy link
Copy Markdown
Contributor
  • Removes circuit_size from all VKs (only store log_circuit_size)
  • Updates compute_public_input_delta() to correctly take witness values and compute dyadic_size via pow()

Addresses most of AztecProtocol/barretenberg#1283 but one instance remains

AztecBot and others added 19 commits July 15, 2025 05:42
We modify the Merge protocol so that it enforces that the subtable
polynomial `t_j` has degree smaller than `subtable_size` as read from
the proof.

Closes AztecProtocol/barretenberg#1442

**Details**

As per the linked issue, we want to support ecc operations in app
circuits. To ensure that app ecc ops do not modify ecc ops that happened
before them, we need to ensure that the subtable length `t.size()` is
smaller than the constant `l` by which we right shift `T_prev`. This is
to ensure that `t + X^{l-1} T_prev` is indeed the polynomial
corresponding to the column `t || T_prev`.

We enforce this degree check in the merge protocol by requiring the
prover to commit to `g(X) := X^{l-1} t(1/X)` and provide openings `c`,
`d` of `t`, `g` at challenges `1/kappa`, `kappa`, respectively, for
which we check `c * kappa^{l-1} = d`.

To save on the number of MSMs performed, we use Shplonk to verify the
following claims:
- `t(X)` opens to `c` at `1/kappa`
- `p(X) = t(X) + X^{l-1} T_prev(X) - T(X)` opens to `0` at `kappa`
- `g(X) := X^{l-1} t(1/X)` opens to `d` at `kappa`

---------

Co-authored-by: AztecBot <tech@aztecprotocol.com>
Co-authored-by: sergei iakovenko <105737703+iakovenkos@users.noreply.github.com>
Co-authored-by: ludamad <adam.domurad@gmail.com>
Co-authored-by: Suyash Bagad <suyash@aztecprotocol.com>
Co-authored-by: Jonathan Hao <jonathan@aztec-labs.com>
Co-authored-by: ledwards2225 <98505400+ledwards2225@users.noreply.github.com>
Co-authored-by: Raju Krishnamoorthy <krishnamoorthy@gmail.com>
Co-authored-by: notnotraju <raju@aztec-labs.com>
Co-authored-by: Lucas Xia <lucasxia01@gmail.com>
Co-authored-by: Khashayar Barooti <khashayar@aztecprotocol.com>
Co-authored-by: Jean M <132435771+jeanmon@users.noreply.github.com>
Co-authored-by: Alex Gherghisan <alexghr@users.noreply.github.com>
Co-authored-by: Santiago Palladino <spalladino@users.noreply.github.com>
Co-authored-by: Santiago Palladino <santiago@aztec-labs.com>
Co-authored-by: ludamad <domuradical@gmail.com>
Co-authored-by: maramihali <mara@aztecprotocol.com>
Restore accidentally deleted files in a previous PR.
#15562
In my [previous
PR](#15427), I moved
the `GateSeparatorPolynomial` into the SumcheckProver class as a member,
which extended its lifetime and increased memory usage in CIVC by the
size of this polynomial, e.g. by 21 MB in
`ecdsar1+transfer_0_recursions+sponsored_fpc` bench
This makes `SharedShiftedVirtualZeroesArray` holds an abstract
BackingMemory. When `BB_SLOW_LOW_MEMORY=1` or when the
`--slow_low_memory` runtime flag is enabled, `BackingMemory` will be
`FileBackedMemory`. The memory is `mmap`ed to physical files so in
memory-constrained environment, it won't be OOM. Otherwise,
`BackingMemory` is `AlignedMemory` and the behavior is unchanged.

See AztecProtocol/barretenberg#1456 for more
contexts.
- Move the CIVC cli to use the new bbapi API
- add placeholder for UH implementation
- rename bbrpc => bbapi
- bundle some CI changes, auto rebase script and bench_ivc tweaks
@ledwards2225 ledwards2225 changed the base branch from next to merge-train/barretenberg July 15, 2025 21:37
@ledwards2225 ledwards2225 marked this pull request as ready for review July 15, 2025 21:38
@ledwards2225 ledwards2225 added the ci-full Run all master checks. label Jul 15, 2025
@ledwards2225 ledwards2225 self-assigned this Jul 15, 2025
@ledwards2225 ledwards2225 requested a review from iakovenkos July 16, 2025 01:01
@@ -877,13 +876,8 @@ class ECCVMFlavor {
// from MSGPACK and the verification key.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

remove circuit_size from the comment, please

@iakovenkos iakovenkos left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Amazing, thanks for taking care of this!

Base automatically changed from merge-train/barretenberg to next July 16, 2025 16:20
@ledwards2225 ledwards2225 requested a review from charlielye as a code owner July 16, 2025 16:20
@ledwards2225 ledwards2225 changed the base branch from next to merge-train/barretenberg July 16, 2025 17:51
Base automatically changed from merge-train/barretenberg to next July 17, 2025 20:46
@ledwards2225 ledwards2225 added this pull request to the merge queue Jul 17, 2025
@ledwards2225 ledwards2225 removed this pull request from the merge queue due to a manual request Jul 17, 2025
@ledwards2225 ledwards2225 changed the base branch from next to merge-train/barretenberg July 17, 2025 21:27
@ledwards2225 ledwards2225 merged commit 8c7e6c0 into merge-train/barretenberg Jul 17, 2025
6 checks passed
@ledwards2225 ledwards2225 deleted the lde/only_log_n branch July 17, 2025 21:27
github-merge-queue Bot pushed a commit that referenced this pull request Jul 21, 2025
See
[merge-train-readme.md](https://github.com/AztecProtocol/aztec-packages/blob/next/.github/workflows/merge-train-readme.md).

BEGIN_COMMIT_OVERRIDE
chore!: Remove circuit_size from all VKs (#15747)
chore: Introduce data structures to hold inputs/outputs of the Merge
verification (#15735)
chore: replace asserts with runtime errors. (#15671)
chore: kernels start with eq and reset (#15734)
chore: Introduce Native IO mechanism (#15820)
fix: Update Cargo.lock in avm-transpiler (#15837)
END_COMMIT_OVERRIDE

---------

Co-authored-by: AztecBot <tech@aztecprotocol.com>
Co-authored-by: ledwards2225 <98505400+ledwards2225@users.noreply.github.com>
Co-authored-by: federicobarbacovi <171914500+federicobarbacovi@users.noreply.github.com>
Co-authored-by: sergei iakovenko <105737703+iakovenkos@users.noreply.github.com>
Co-authored-by: ludamad <adam.domurad@gmail.com>
Co-authored-by: Suyash Bagad <suyash@aztecprotocol.com>
Co-authored-by: Jonathan Hao <jonathan@aztec-labs.com>
Co-authored-by: Raju Krishnamoorthy <krishnamoorthy@gmail.com>
Co-authored-by: notnotraju <raju@aztec-labs.com>
Co-authored-by: Lucas Xia <lucasxia01@gmail.com>
Co-authored-by: Khashayar Barooti <khashayar@aztecprotocol.com>
Co-authored-by: Jean M <132435771+jeanmon@users.noreply.github.com>
Co-authored-by: Alex Gherghisan <alexghr@users.noreply.github.com>
Co-authored-by: Santiago Palladino <spalladino@users.noreply.github.com>
Co-authored-by: Santiago Palladino <santiago@aztec-labs.com>
Co-authored-by: ludamad <domuradical@gmail.com>
Co-authored-by: maramihali <mara@aztecprotocol.com>
Co-authored-by: Sarkoxed <75146596+Sarkoxed@users.noreply.github.com>
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.

6 participants