Skip to content

feat: merge-train/barretenberg#15716

Merged
ludamad merged 26 commits into
nextfrom
merge-train/barretenberg
Jul 16, 2025
Merged

feat: merge-train/barretenberg#15716
ludamad merged 26 commits into
nextfrom
merge-train/barretenberg

Conversation

@AztecBot

@AztecBot AztecBot commented Jul 15, 2025

Copy link
Copy Markdown
Collaborator

See merge-train-readme.md.

BEGIN_COMMIT_OVERRIDE
feat!: Merge with degree check (#15562)
fix: Fix the docker build action for fuzzing (#15719)
fix: restore accidentally deleted files (#15724)
fix: civc wasm memory regression (#15722)
feat: mmap backed polynomials (#15531)
feat(bbapi): CLI uses bbapi CIVC (#15702)
fix(ci): brittle benchmark behavior (#15771)
END_COMMIT_OVERRIDE

AztecBot and others added 5 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>
Sarkoxed and others added 4 commits July 15, 2025 13:15
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.
@fcarreiro fcarreiro removed their request for review July 15, 2025 12:33

@ludamad ludamad left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

🤖 Auto-approved

@AztecBot AztecBot enabled auto-merge July 15, 2025 17:02
@AztecBot

Copy link
Copy Markdown
Collaborator Author

🤖 Auto-merge enabled after 4 hours of inactivity. This PR will be merged automatically once all checks pass.

@AztecBot AztecBot added this pull request to the merge queue Jul 15, 2025
@github-merge-queue github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Jul 15, 2025
AztecBot and others added 2 commits July 15, 2025 18:20
- 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
@ludamad ludamad requested a review from charlielye as a code owner July 15, 2025 18:51
@ludamad ludamad added the ci-full Run all master checks. label Jul 15, 2025
@ludamad ludamad enabled auto-merge July 15, 2025 22:56
@ludamad ludamad added this pull request to the merge queue Jul 16, 2025
@github-merge-queue github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Jul 16, 2025
@ludamad ludamad added this pull request to the merge queue Jul 16, 2025
@github-merge-queue github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Jul 16, 2025
@AztecBot AztecBot enabled auto-merge July 16, 2025 13:13
@AztecBot

Copy link
Copy Markdown
Collaborator Author

🤖 Auto-merge enabled after 4 hours of inactivity. This PR will be merged automatically once all checks pass.

@AztecBot AztecBot added this pull request to the merge queue Jul 16, 2025
@github-merge-queue github-merge-queue Bot removed this pull request from the merge queue due to no response for status checks Jul 16, 2025
@ludamad ludamad enabled auto-merge July 16, 2025 14:50
@ludamad ludamad added this pull request to the merge queue Jul 16, 2025
Merged via the queue into next with commit f7c765f Jul 16, 2025
7 checks passed
@ludamad ludamad deleted the merge-train/barretenberg branch July 16, 2025 16:20
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