-
Notifications
You must be signed in to change notification settings - Fork 236
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
chore: Added cryptography section to yellow paper #3647
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nice work, i did a first pass and left a few comments/suggestions :)
|
||
## Honk | ||
|
||
Honk is a variant of the PLONK protocol. Plonk performs polynomial testing via evaluating a polynomial relation is zero modulo the vanishing polynomial of a multiplicative subgroup. Honk performs the polynomial testing via evaluating, using a sumcheck protocol, that a relation over multilinear polynomials vanishes when summed over a boolean hypercube. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
by checking instead of via evaluating seems more readable to me
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
updated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
|
||
# Incrementally Verifiable Computation Subprotocols | ||
|
||
An Incrementally Verifiable Computation (IVC) scheme describes a protocol that enables multiple successive proofs to evolve the value taken by some defined persistent state over time. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"multiple successibe proofs to evolve the value" reads a bit weird to me
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
changed to something that might make more sense.
|
||
Rollup-side, each "step" in the IVC scheme is a Honk proof, which are recursively verified. As a result, no protoocols other than Honk are required to execute rollup-side IVC. | ||
|
||
We perform one layer of "proof-system compression" in the rollup. The final proof of block-correctness is constructed as a Honk proof. An UltraPlonk circuit is used to verify the correctness of the Honk proof, so that the proof that is verified on-chain is an UltraPlonk proof (verification gas costs are lower for UltraPlonk vs Honk). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(verification gas costs are lower for UltraPlonk vs Honk) - I would state briefly why this is the case
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
The following sections list the protocol components required to implement client-side IVC. | ||
|
||
## Protogalaxy | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this section should begin with defining what a folding scheme is
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
|
||
## Protogalaxy | ||
|
||
The [Protogalaxy](https://eprint.iacr.org/2023/1106) protocol defines a folding scheme that enables instances of a relation to be folded into a single instance of a "relaxed" form of the original relation. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The [Protogalaxy](https://eprint.iacr.org/2023/1106) protocol defines a folding scheme that enables instances of a relation to be folded into a single instance of a "relaxed" form of the original relation. | |
The [Protogalaxy](https://eprint.iacr.org/2023/1106) protocol defines a folding scheme that enables instances of a relation to be folded into a single instance of the original relation, but in a "relaxed" form. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
|
||
#### Elliptic Curve Virtual Machine (ECCVM) Subprotocol | ||
|
||
The ECCVM is a Honk circuit with a custom circuit arithmetisation, designed to optimally evaluate elliptic curve arithmetic computations that have been deferred. It is defined over the Grumpkin elliptic curve |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The ECCVM is a Honk circuit with a custom circuit arithmetisation, designed to optimally evaluate elliptic curve arithmetic computations that have been deferred. It is defined over the Grumpkin elliptic curve | |
The ECCVM is a Honk circuit with a custom circuit arithmetisation, designed to optimally evaluate elliptic curve arithmetic computations that have been deferred. It is defined over the Grumpkin elliptic curve. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
|
||
#### Translator Subprotocol | ||
|
||
The Translator is a Honk circuit with a custom circuit arithmetisation, designed to validate the input commitments of an ECCVM circuit align with the delegated computations described by a Goblin Plonk transcript commitment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The Translator is a Honk circuit with a custom circuit arithmetisation, designed to validate the input commitments of an ECCVM circuit align with the delegated computations described by a Goblin Plonk transcript commitment | |
The Translator is a Honk circuit with a custom circuit arithmetisation, designed to validate that the input commitments of an ECCVM circuit align with the delegated computations described by a Goblin Plonk transcript commitment. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
|
||
## Plonk Data Bus | ||
|
||
The [Plonk Data Bus](https://aztecprotocol.slack.com/files/U8Q1VAX6Y/F05G2B971FY/plonk_bus.pdf) protocol enables efficient data transfer between two Honk instances within a larger IVC protocol. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A sentence about why this is needed would be good
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
|
||
# Polynomial Commitment Schemes | ||
|
||
The UltraPlonk, Honk, Goblin Plonk and Plonk Data Bus protocols utilize Polynomial Interactive Oracle Proofs as a core component, neccessitating the use of polynomial commitment schemes (PCX). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The UltraPlonk, Honk, Goblin Plonk and Plonk Data Bus protocols utilize Polynomial Interactive Oracle Proofs as a core component, neccessitating the use of polynomial commitment schemes (PCX). | |
The UltraPlonk, Honk, Goblin Plonk and Plonk Data Bus protocols utilize Polynomial Interactive Oracle Proofs as a core component, thus requiring the use of polynomial commitment schemes (PCS). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
|
||
## Inner Product Argument | ||
|
||
The [IPA](https://eprint.iacr.org/2019/1177.pdf) PCS has worse asymptotics than KZG but can be instantiated over non-pairing friendly curves. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
state this is needed for Grumpkin, if we are at it maybe we should also say we use cycle of curves somewhere?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
|
||
An Ethereum block consists of approximately 1,000 transactions, with a block gas limit of roughly 10 million gas. Basic computational steps in the Ethereum Virtual Machine consume 3 gas. If the entire block gas limit is consumed with basic computation steps (not true but let's assume for a moment), this implies that 1,000 transactions consume 3.33 million computation steps. i.e. 10 transactions per second would require roughly 33,000 steps per second and 3,330 steps per transaction. | ||
|
||
An AVM circuit with 1 million steps can therefore accomodate approximately 300 transactions. Proof construction time must therefore be approximately 30 seconds to be able to prove all AVM programs in a block and achieve 10 tps. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do I take this to mean we're now aiming for a single VM circuit to execute multiple app functions (rather than a VM circuit per app function)?
Benchmark resultsMetrics with a significant change:
Detailed resultsAll benchmarks are run on txs on the This benchmark source data is available in JSON format on S3 here. Values are compared against data from master at commit L2 block published to L1Each column represents the number of txs on an L2 block published to L1.
L2 chain processingEach column represents the number of blocks on the L2 chain where each block has 16 txs.
Circuits statsStats on running time and I/O sizes collected for every circuit run across all benchmarks.
MiscellaneousTransaction sizes based on how many contracts are deployed in the tx.
|
| 2x2 rollup proving time | 1 2x2 rollup proof | 7.4 seconds | 0.74 seconds | | ||
| 2x2 rollup memory consumption | 1 2x2 rollup proof | 128gb | 16gb | | ||
|
||
To come up with the above estimates, we are targetting 10 transactions per second for the MVP and 100 tps for the "ideal" case. We are assuming both block producers and rollup Provers have access to 128-core machines with 128gb of RAM. Additionally, we assume that the various process required to produce a block consume the following: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@zac-williamson currently we have been assuming 32 -64 cores max as the perfomance benefit drops off after that.
See spreadsheet here: https://docs.google.com/spreadsheets/d/1cBBZZ_dyD0tiUmAdjoGbnLrk2H0oSmOgYubtZy9JTRU/edit#gid=1562975724
Secondly, ideally block producers (sequencers) can be run on 16 core 32gb machines as they will not be producing proofs.
|
||
The first protocol to combine Plonk and the sumcheck protocol was [HyperPlonk](https://eprint.iacr.org/2022/1355) | ||
|
||
Honk uses a custom arithmetisation that extends the Ultra circuit arithmetisation (not yet finalized) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd prob add something like "(e.g., it has special relations to efficiently prove Poseidon2 hashing)" but ofc this is not necessary.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
added mention of Poseidon2
* Memory required to generate a user transaction proof | ||
* Time to generate an Aztec Virtual Machine proof | ||
* Memory required to generate an Aztec Virtual Machine proof | ||
* Time to compute a 2x2 rollup proof |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I know this "two-by-two" terminology has taken hold, but it's just wrong--IMO a two-by-two thing involves four things of the same type. The term does not indicate any kind of compression.
Motion to change to "2x1" or "2-to-1" 🙏🙏
|
||
Rollup-side, each "step" in the IVC scheme is a Honk proof, which are recursively verified. As a result, no protoocols other than Honk are required to execute rollup-side IVC. | ||
|
||
We perform one layer of "proof-system compression" in the rollup. The final proof of block-correctness is constructed as a Honk proof. An UltraPlonk circuit is used to verify the correctness of the Honk proof, so that the proof that is verified on-chain is an UltraPlonk proof. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You could link to this lovely explanation written by me and Luke
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done!
|
||
#### Translator Subprotocol | ||
|
||
The Translator is a Honk circuit with a custom circuit arithmetisation, designed to validate that the input commitments of an ECCVM circuit align with the delegated computations described by a Goblin Plonk transcript commitment. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since you specified the ECCVM is defined over Grumpkin, maybe say here that the Translator is defined over BN254?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
|
||
## Plonk Data Bus | ||
|
||
When passing data between successive IVC steps, the canonical method is to do so via public inputs. This adds significant costs to an IVC folding verifier (or recursive verifier when not using a folding scheme). Public inputs for part of the proof and therefore must be hashed prior to generating Fiat-Shamir challenges. When this is performed in-circuit, this adds a cost linear in the number of public inputs (with unpleasant constants ~30 constraints per field element). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we change "Public inputs for part of the proof and therefore must be hashed prior to generating Fiat-Shamir challenges." to "Public inputs must be hashed prior to generating Fiat-Shamir challenges."?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
|
||
"MVP" = minimum standards that we can go to main-net with. | ||
|
||
Note: gb = gigabytes (not gigabits, gigibits or gigibytes) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"gigifoo"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I thought giga = 2^30 and gigi = 10^9 ?
|
||
This sets the proof size limit to 819.2 kb per second per 100 transactions => 82 kilobytes of data per transaction. | ||
|
||
As a rough estimate, we can assume the non-proof tx data will be irrelevant compared to 82kb, so we target a proof size of $80$ kilobytes for the MPV. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
MPV
|
||
As a rough estimate, we can assume the non-proof tx data will be irrelevant compared to 82kb, so we target a proof size of $80$ kilobytes for the MPV. | ||
|
||
To support 100 transactions per second we would rquire a proof size of $8$ kilobytes. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
rquire
|
||
The critical UX factor. To measure prover time for a transaction, we must first define a baseline transaction we wish to measure and the execution environment of the Prover. | ||
|
||
As we build+refine our MPV, we want to avoid optimising the best-case scenario (i.e. the most basic tx type, a token transfer). Instead we want to ensure that transactions of a "moderate" complexity are possible with consuer hardware. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
MPV
|
||
Note: this excludes network coordination costs, latency costs, block construction costs, public VM proof construction costs (must be computed before the 2x2 rollup proofs), cost to compute the final UltraPlonk proof. | ||
|
||
To accomodate the above costs, we assume can budget 40% of block production time towards making proofs. Given these constraints, the following table describes maximum allowable proof construction times for a selection of block sizes. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"we assume can budget"
Please provide a paragraph or two giving a summary of the change, including relevant motivation and context. # Checklist: Remove the checklist to signal you've completed it. Enable auto-merge if the PR is ready to merge. - [ ] If the pull request requires a cryptography review (e.g. cryptographic algorithm implementations) I have added the 'crypto' tag. - [ ] I have reviewed my diff in github, line by line and removed unexpected formatting changes, testing logs, or commented-out code. - [ ] Every change is related to the PR description. - [ ] I have [linked](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue) this pull request to relevant issues (if any exist).
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-packages: 0.17.0</summary> ## [0.17.0](aztec-packages-v0.16.9...aztec-packages-v0.17.0) (2024-01-09) ### ⚠ BREAKING CHANGES * Remove aggregation objects from RecursionConstraint ([#3885](#3885)) * Noir development branch (serialization changes) ([#3858](#3858)) * **aztec.js:** Move accounts out of aztec.js into new package ([#3844](#3844)) * Add Side effect counter struct for ordering ([#3608](#3608)) * typing partial address, deduplicating `Point`, `Point` -> `GrumpkinPoint` ([#3814](#3814)) * moving `compute_selector` to `FunctionSelector` ([#3806](#3806)) * moving compute_address func to AztecAddress ([#3801](#3801)) * updated note hash and nullifier macro ([#3777](#3777)) * return full verification contract from `AcirComposer::get_solidity_verifier` ([#3735](#3735)) * deduplicating circuit types + typing everything ([#3594](#3594)) ### Features * A script which runs `nargo fmt` in all packages + running it ([#3803](#3803)) ([5f0ebd6](5f0ebd6)) * Add new metrics ([#3855](#3855)) ([a2b267b](a2b267b)) * Adding option to set initial and max memory ([#3265](#3265)) ([0ad75fe](0ad75fe)) * **avm-main:** Pil -> permutations ([#3650](#3650)) ([c52acf6](c52acf6)) * **avm-mini:** Call and return opcodes ([#3704](#3704)) ([e534204](e534204)) * **avm:** Add standalone jump opcode ([#3781](#3781)) ([b1b2e7c](b1b2e7c)) * **avm:** VM circuit handles tagged memory ([#3725](#3725)) ([739fe90](739fe90)), closes [#3644](#3644) * **aztec.js:** Move accounts out of aztec.js into new package ([#3844](#3844)) ([afd7b6d](afd7b6d)), closes [#3807](#3807) * Barretenberg doxygen CI ([#3818](#3818)) ([022a918](022a918)) * Bb uses goblin ([#3636](#3636)) ([d093266](d093266)) * Compile base rollup as a circuit ([#3739](#3739)) ([5118d44](5118d44)) * Contract inclusion proof ([#3680](#3680)) ([43aa603](43aa603)) * Correct circuit construction from acir ([#3757](#3757)) ([a876ab8](a876ab8)) * Deduplicating circuit types + typing everything ([#3594](#3594)) ([fcb04a7](fcb04a7)), closes [#3592](#3592) [#3059](#3059) * Goblin and eccvm bench ([#3606](#3606)) ([1fe63b2](1fe63b2)) * Goblinize the final ecc ops in ZM ([#3741](#3741)) ([3048d08](3048d08)) * Launch the monorepo in a codespace. ([#3829](#3829)) ([f5a4a78](f5a4a78)) * Moving `compute_selector` to `FunctionSelector` ([#3806](#3806)) ([bbaebf4](bbaebf4)), closes [#3681](#3681) * Moving compute_address func to AztecAddress ([#3801](#3801)) ([3107aad](3107aad)), closes [#3794](#3794) * Node version check in `yarn-project/bootstrap.sh` ([#3780](#3780)) ([c29e4ee](c29e4ee)) * Noir development branch (serialization changes) ([#3858](#3858)) ([d2ae2cd](d2ae2cd)) * Only one tx per base rollup ([#3742](#3742)) ([9eef247](9eef247)) * ProverPolynomials owns its memory ([#3560](#3560)) ([a4aba00](a4aba00)) * Public data tree as indexed tree ([#3566](#3566)) ([4711ef7](4711ef7)) * PXE adds note processors for stored accounts ([#3673](#3673)) ([93f9315](93f9315)) * Return full verification contract from `AcirComposer::get_solidity_verifier` ([#3735](#3735)) ([bd5614c](bd5614c)) * Serialize synchronize and simulateTx calls by the pxe via SerialQueue ([#3817](#3817)) ([e893675](e893675)) * Specific membership witness functions in aztec-nr ([#3674](#3674)) ([3403877](3403877)), closes [#3663](#3663) * Tree ids in noir ([#3809](#3809)) ([ec2e36e](ec2e36e)) * Txpool persistence ([#3672](#3672)) ([4dd076c](4dd076c)), closes [#3365](#3365) * Typing partial address, deduplicating `Point`, `Point` -> `GrumpkinPoint` ([#3814](#3814)) ([44458be](44458be)), closes [#3682](#3682) * Update to latest noir and update noir compiler ([#3696](#3696)) ([62a17a4](62a17a4)) * Updated note hash and nullifier macro ([#3777](#3777)) ([e83dd2b](e83dd2b)), closes [#3669](#3669) ### Bug Fixes * AWS deploy_service regex + faucet dockerfile ([#3699](#3699)) ([260c7c3](260c7c3)) * Broken aztec-nr imports ([#3693](#3693)) ([7c8814e](7c8814e)) * Build scripts if statements ([#3700](#3700)) ([4847c19](4847c19)) * **ci:** Contracts_deployed check ([#3703](#3703)) ([6c4bf75](6c4bf75)) * **ci:** Redeploy triggers ([#3677](#3677)) ([cc515da](cc515da)) * CRS not needed for gate_count. Grumpkin not needed for non-goblin. ([#3872](#3872)) ([8cda00d](8cda00d)) * Deploy l1 contracts script ([#3713](#3713)) ([309be4b](309be4b)) * Disable goblin bbjs tests ([#3836](#3836)) ([1f5b2c6](1f5b2c6)) * Docker user permissions ([#3711](#3711)) ([35316fc](35316fc)) * **docs:** Fix docs build during releases ([#3815](#3815)) ([2e0776a](2e0776a)) * **docs:** Force docs build using latest released code always ([#3762](#3762)) ([5545ee6](5545ee6)) * **docs:** Make git repo available when building docs ([#3761](#3761)) ([bce2d99](bce2d99)) * **docs:** Show latest released code on published site ([#3716](#3716)) ([f1eb6d5](f1eb6d5)) * Event macro ([#3784](#3784)) ([3af2438](3af2438)), closes [#3655](#3655) * Fix for faucet and node deployment config ([#3722](#3722)) ([a60b71a](a60b71a)) * Flaky e2e-p2p test ([#3831](#3831)) ([5b1e9f2](5b1e9f2)) * Issue with `run_nargo_fmt.sh` + minor yellow paper naming improvements ([#3833](#3833)) ([8e692c1](8e692c1)) * Map relative path to protocol circuits ([#3694](#3694)) ([125ab1d](125ab1d)) * Noir-protocol circuits ([#3734](#3734)) ([34e2505](34e2505)) * Reenable goblin bbjs for a single test ([#3838](#3838)) ([30e47a0](30e47a0)) * Setup aztec-cli cache ([#3698](#3698)) ([48b7474](48b7474)) * Stale pseudocode in yellow paper process func ([#3869](#3869)) ([4a73e3d](4a73e3d)) * Subrepo commit ([b5bfb0b](b5bfb0b)) * There is no main.js ([#3691](#3691)) ([58ba060](58ba060)) * Unpick world state circulars. ([#3721](#3721)) ([84f4671](84f4671)) * Update for new p2p bootstrap node names ([#3710](#3710)) ([c7b29b3](c7b29b3)) * Update toy to new master ([78cf525](78cf525)) * Use lookup instead of resolve to ensure consider /etc/hosts ([#3720](#3720)) ([eb8413e](eb8413e)) ### Miscellaneous * Add GH action to notify gate count differences ([#3724](#3724)) ([c0a24fb](c0a24fb)), closes [#3467](#3467) * Add Side effect counter struct for ordering ([#3608](#3608)) ([c58b197](c58b197)) * Add small how to diagram section ([#3804](#3804)) ([df581f0](df581f0)) * Added cryptography section to yellow paper ([#3647](#3647)) ([286028b](286028b)) * Adding some clarification after a question on discourse ([#3823](#3823)) ([f3d37d7](f3d37d7)) * Align bb.js testing ([#3840](#3840)) ([c489727](c489727)) * **avm:** Avm memory trace building ([#3835](#3835)) ([b7766d6](b7766d6)) * Aztec js circulars ([#3723](#3723)) ([378407d](378407d)) * Bring boxes back to CI. Build and run using docker/docker-compose. ([#3727](#3727)) ([4a1c0df](4a1c0df)) * Build protocol circuits on CI and stop committing artifacts ([#3816](#3816)) ([fa1c456](fa1c456)) * Checking noir formatting in CI ([#3828](#3828)) ([b53bacf](b53bacf)), closes [#3825](#3825) * Cleaning inconsistency ([#3851](#3851)) ([9bbd70a](9bbd70a)) * Cleanup recursion interface ([#3744](#3744)) ([fde0ac3](fde0ac3)) * **docs:** Add block productions ([#3770](#3770)) ([f091f49](f091f49)) * **docs:** Add high level overview of a tx ([#3763](#3763)) ([9a55e57](9a55e57)) * **docs:** Remove npm reference section from testing page ([#3719](#3719)) ([1484c11](1484c11)) * **docs:** Remove references to npm packages ([#3676](#3676)) ([bd5355f](bd5355f)) * **docs:** Starting a migration notes section ([#3853](#3853)) ([060f39a](060f39a)) * **docs:** Update deps in tutorials ([#3708](#3708)) ([f3d93aa](f3d93aa)) * **docs:** Update install script ([#3847](#3847)) ([7003853](7003853)) * **docs:** Update reference link ([#3768](#3768)) ([18edb98](18edb98)) * **docs:** Update testing pages ([#3733](#3733)) ([1c68e3b](1c68e3b)) * **docs:** Update token bridge tutorial ([#3773](#3773)) ([764cb46](764cb46)) * **docs:** Update trees page ([#3732](#3732)) ([b265531](b265531)) * **dsl:** Abstract nested aggregation object from ACIR ([#3765](#3765)) ([92f72e4](92f72e4)) * Increase benchmark warning threshold for trial decrypt ([#3602](#3602)) ([913943e](913943e)) * Just nargo compile. ([#3775](#3775)) ([3d08ef9](3d08ef9)) * Move boxes out of yarn-project ([#3688](#3688)) ([472596c](472596c)) * Noir sync ([#3884](#3884)) ([217de09](217de09)) * Remove aggregation objects from RecursionConstraint ([#3885](#3885)) ([9a80008](9a80008)) * Remove HashToField128Security ACIR opcode ([#3631](#3631)) ([1d6d3c9](1d6d3c9)) * Removing leaf data type + related cleanup ([#3794](#3794)) ([3030cc8](3030cc8)) * Rename generate-ts/nr commands to codegen. ([#3843](#3843)) ([1fcb964](1fcb964)) * Replace relative paths to noir-protocol-circuits ([c2fed18](c2fed18)) * Replace relative paths to noir-protocol-circuits ([3accd8a](3accd8a)) * Replace relative paths to noir-protocol-circuits ([346590b](346590b)) * Replace relative paths to noir-protocol-circuits ([861d928](861d928)) * Show noir tag alongside commit on sandbox startup ([#3750](#3750)) ([009f66d](009f66d)) * Update governance vote ballot ([#3789](#3789)) ([f8976ad](f8976ad)) * Update how_to_contribute.md ([#3759](#3759)) ([4567ec4](4567ec4)) * Update privacy main.md ([#3760](#3760)) ([c3d8b5d](c3d8b5d)) * Use repo BB for gate diff ([#3852](#3852)) ([506e719](506e719)) * Use simple "flat" CRS. ([#3748](#3748)) ([5c6c2ca](5c6c2ca)) * Use traits in noir-protocol-circuits ([#3832](#3832)) ([88fcf8d](88fcf8d)) ### Documentation * A layout of logs section of yellow paper ([#3582](#3582)) ([8c759f6](8c759f6)) * Add current thinking on upgrades ([#3743](#3743)) ([9f3d972](9f3d972)) * Add da doc ([#3736](#3736)) ([193f3f2](193f3f2)), closes [#3645](#3645) * Bytecode ([#3701](#3701)) ([912df7e](912df7e)) * Extend state documentation ([#3731](#3731)) ([a99cbd6](a99cbd6)) * Remove mentions of noir-compiler ([#3702](#3702)) ([ea7cd50](ea7cd50)) * Yellow paper rollup circuits and state update ([#3558](#3558)) ([b2d6376](b2d6376)) * **yellow-paper:** Circuits ([#3782](#3782)) ([a935ca3](a935ca3)) * **yellow-paper:** Contract deployment ([#3624](#3624)) ([b282867](b282867)), closes [#3104](#3104) * **yellow-paper:** Drop pokodl request in key derivation ([#3837](#3837)) ([a3920fb](a3920fb)) * **yellow-paper:** Update keys and addresses ([#3707](#3707)) ([56992ae](56992ae)) * **yellowpaper:** AVM high-level execution ([#3717](#3717)) ([2ded221](2ded221)) * **yellowpaper:** AVM intro sections ([#3692](#3692)) ([c48e76c](c48e76c)) * **yellowpaper:** Avm nested call returns, updating calling context ([#3749](#3749)) ([a1c701d](a1c701d)) * **yellowpaper:** Finish AVM Context definitions ([#3709](#3709)) ([4cfb427](4cfb427)) * **yellowpaper:** Private kernel circuits ([#3559](#3559)) ([056e553](056e553)) </details> <details><summary>barretenberg.js: 0.17.0</summary> ## [0.17.0](barretenberg.js-v0.16.9...barretenberg.js-v0.17.0) (2024-01-09) ### ⚠ BREAKING CHANGES * return full verification contract from `AcirComposer::get_solidity_verifier` ([#3735](#3735)) ### Features * Adding option to set initial and max memory ([#3265](#3265)) ([0ad75fe](0ad75fe)) * Bb uses goblin ([#3636](#3636)) ([d093266](d093266)) * Correct circuit construction from acir ([#3757](#3757)) ([a876ab8](a876ab8)) * Return full verification contract from `AcirComposer::get_solidity_verifier` ([#3735](#3735)) ([bd5614c](bd5614c)) ### Miscellaneous * Remove HashToField128Security ACIR opcode ([#3631](#3631)) ([1d6d3c9](1d6d3c9)) * Use simple "flat" CRS. ([#3748](#3748)) ([5c6c2ca](5c6c2ca)) </details> <details><summary>barretenberg: 0.17.0</summary> ## [0.17.0](barretenberg-v0.16.9...barretenberg-v0.17.0) (2024-01-09) ### ⚠ BREAKING CHANGES * Remove aggregation objects from RecursionConstraint ([#3885](#3885)) * Noir development branch (serialization changes) ([#3858](#3858)) * Add Side effect counter struct for ordering ([#3608](#3608)) * return full verification contract from `AcirComposer::get_solidity_verifier` ([#3735](#3735)) ### Features * Adding option to set initial and max memory ([#3265](#3265)) ([0ad75fe](0ad75fe)) * **avm-main:** Pil -> permutations ([#3650](#3650)) ([c52acf6](c52acf6)) * **avm-mini:** Call and return opcodes ([#3704](#3704)) ([e534204](e534204)) * **avm:** Add standalone jump opcode ([#3781](#3781)) ([b1b2e7c](b1b2e7c)) * **avm:** VM circuit handles tagged memory ([#3725](#3725)) ([739fe90](739fe90)), closes [#3644](#3644) * Barretenberg doxygen CI ([#3818](#3818)) ([022a918](022a918)) * Bb uses goblin ([#3636](#3636)) ([d093266](d093266)) * Correct circuit construction from acir ([#3757](#3757)) ([a876ab8](a876ab8)) * Goblin and eccvm bench ([#3606](#3606)) ([1fe63b2](1fe63b2)) * Goblinize the final ecc ops in ZM ([#3741](#3741)) ([3048d08](3048d08)) * Noir development branch (serialization changes) ([#3858](#3858)) ([d2ae2cd](d2ae2cd)) * ProverPolynomials owns its memory ([#3560](#3560)) ([a4aba00](a4aba00)) * Return full verification contract from `AcirComposer::get_solidity_verifier` ([#3735](#3735)) ([bd5614c](bd5614c)) ### Bug Fixes * CRS not needed for gate_count. Grumpkin not needed for non-goblin. ([#3872](#3872)) ([8cda00d](8cda00d)) * Disable goblin bbjs tests ([#3836](#3836)) ([1f5b2c6](1f5b2c6)) * Reenable goblin bbjs for a single test ([#3838](#3838)) ([30e47a0](30e47a0)) * Update toy to new master ([78cf525](78cf525)) ### Miscellaneous * Add Side effect counter struct for ordering ([#3608](#3608)) ([c58b197](c58b197)) * Align bb.js testing ([#3840](#3840)) ([c489727](c489727)) * **avm:** Avm memory trace building ([#3835](#3835)) ([b7766d6](b7766d6)) * Bring boxes back to CI. Build and run using docker/docker-compose. ([#3727](#3727)) ([4a1c0df](4a1c0df)) * Cleanup recursion interface ([#3744](#3744)) ([fde0ac3](fde0ac3)) * **dsl:** Abstract nested aggregation object from ACIR ([#3765](#3765)) ([92f72e4](92f72e4)) * Remove aggregation objects from RecursionConstraint ([#3885](#3885)) ([9a80008](9a80008)) * Remove HashToField128Security ACIR opcode ([#3631](#3631)) ([1d6d3c9](1d6d3c9)) * Use simple "flat" CRS. ([#3748](#3748)) ([5c6c2ca](5c6c2ca)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-packages: 0.17.0</summary> ## [0.17.0](AztecProtocol/aztec-packages@aztec-packages-v0.16.9...aztec-packages-v0.17.0) (2024-01-09) ### ⚠ BREAKING CHANGES * Remove aggregation objects from RecursionConstraint ([#3885](AztecProtocol/aztec-packages#3885)) * Noir development branch (serialization changes) ([#3858](AztecProtocol/aztec-packages#3858)) * **aztec.js:** Move accounts out of aztec.js into new package ([#3844](AztecProtocol/aztec-packages#3844)) * Add Side effect counter struct for ordering ([#3608](AztecProtocol/aztec-packages#3608)) * typing partial address, deduplicating `Point`, `Point` -> `GrumpkinPoint` ([#3814](AztecProtocol/aztec-packages#3814)) * moving `compute_selector` to `FunctionSelector` ([#3806](AztecProtocol/aztec-packages#3806)) * moving compute_address func to AztecAddress ([#3801](AztecProtocol/aztec-packages#3801)) * updated note hash and nullifier macro ([#3777](AztecProtocol/aztec-packages#3777)) * return full verification contract from `AcirComposer::get_solidity_verifier` ([#3735](AztecProtocol/aztec-packages#3735)) * deduplicating circuit types + typing everything ([#3594](AztecProtocol/aztec-packages#3594)) ### Features * A script which runs `nargo fmt` in all packages + running it ([#3803](AztecProtocol/aztec-packages#3803)) ([5f0ebd6](AztecProtocol/aztec-packages@5f0ebd6)) * Add new metrics ([#3855](AztecProtocol/aztec-packages#3855)) ([a2b267b](AztecProtocol/aztec-packages@a2b267b)) * Adding option to set initial and max memory ([#3265](AztecProtocol/aztec-packages#3265)) ([0ad75fe](AztecProtocol/aztec-packages@0ad75fe)) * **avm-main:** Pil -> permutations ([#3650](AztecProtocol/aztec-packages#3650)) ([c52acf6](AztecProtocol/aztec-packages@c52acf6)) * **avm-mini:** Call and return opcodes ([#3704](AztecProtocol/aztec-packages#3704)) ([e534204](AztecProtocol/aztec-packages@e534204)) * **avm:** Add standalone jump opcode ([#3781](AztecProtocol/aztec-packages#3781)) ([b1b2e7c](AztecProtocol/aztec-packages@b1b2e7c)) * **avm:** VM circuit handles tagged memory ([#3725](AztecProtocol/aztec-packages#3725)) ([739fe90](AztecProtocol/aztec-packages@739fe90)), closes [#3644](AztecProtocol/aztec-packages#3644) * **aztec.js:** Move accounts out of aztec.js into new package ([#3844](AztecProtocol/aztec-packages#3844)) ([afd7b6d](AztecProtocol/aztec-packages@afd7b6d)), closes [#3807](AztecProtocol/aztec-packages#3807) * Barretenberg doxygen CI ([#3818](AztecProtocol/aztec-packages#3818)) ([022a918](AztecProtocol/aztec-packages@022a918)) * Bb uses goblin ([#3636](AztecProtocol/aztec-packages#3636)) ([d093266](AztecProtocol/aztec-packages@d093266)) * Compile base rollup as a circuit ([#3739](AztecProtocol/aztec-packages#3739)) ([5118d44](AztecProtocol/aztec-packages@5118d44)) * Contract inclusion proof ([#3680](AztecProtocol/aztec-packages#3680)) ([43aa603](AztecProtocol/aztec-packages@43aa603)) * Correct circuit construction from acir ([#3757](AztecProtocol/aztec-packages#3757)) ([a876ab8](AztecProtocol/aztec-packages@a876ab8)) * Deduplicating circuit types + typing everything ([#3594](AztecProtocol/aztec-packages#3594)) ([fcb04a7](AztecProtocol/aztec-packages@fcb04a7)), closes [#3592](AztecProtocol/aztec-packages#3592) [#3059](AztecProtocol/aztec-packages#3059) * Goblin and eccvm bench ([#3606](AztecProtocol/aztec-packages#3606)) ([1fe63b2](AztecProtocol/aztec-packages@1fe63b2)) * Goblinize the final ecc ops in ZM ([#3741](AztecProtocol/aztec-packages#3741)) ([3048d08](AztecProtocol/aztec-packages@3048d08)) * Launch the monorepo in a codespace. ([#3829](AztecProtocol/aztec-packages#3829)) ([f5a4a78](AztecProtocol/aztec-packages@f5a4a78)) * Moving `compute_selector` to `FunctionSelector` ([#3806](AztecProtocol/aztec-packages#3806)) ([bbaebf4](AztecProtocol/aztec-packages@bbaebf4)), closes [#3681](AztecProtocol/aztec-packages#3681) * Moving compute_address func to AztecAddress ([#3801](AztecProtocol/aztec-packages#3801)) ([3107aad](AztecProtocol/aztec-packages@3107aad)), closes [#3794](AztecProtocol/aztec-packages#3794) * Node version check in `yarn-project/bootstrap.sh` ([#3780](AztecProtocol/aztec-packages#3780)) ([c29e4ee](AztecProtocol/aztec-packages@c29e4ee)) * Noir development branch (serialization changes) ([#3858](AztecProtocol/aztec-packages#3858)) ([d2ae2cd](AztecProtocol/aztec-packages@d2ae2cd)) * Only one tx per base rollup ([#3742](AztecProtocol/aztec-packages#3742)) ([9eef247](AztecProtocol/aztec-packages@9eef247)) * ProverPolynomials owns its memory ([#3560](AztecProtocol/aztec-packages#3560)) ([a4aba00](AztecProtocol/aztec-packages@a4aba00)) * Public data tree as indexed tree ([#3566](AztecProtocol/aztec-packages#3566)) ([4711ef7](AztecProtocol/aztec-packages@4711ef7)) * PXE adds note processors for stored accounts ([#3673](AztecProtocol/aztec-packages#3673)) ([93f9315](AztecProtocol/aztec-packages@93f9315)) * Return full verification contract from `AcirComposer::get_solidity_verifier` ([#3735](AztecProtocol/aztec-packages#3735)) ([bd5614c](AztecProtocol/aztec-packages@bd5614c)) * Serialize synchronize and simulateTx calls by the pxe via SerialQueue ([#3817](AztecProtocol/aztec-packages#3817)) ([e893675](AztecProtocol/aztec-packages@e893675)) * Specific membership witness functions in aztec-nr ([#3674](AztecProtocol/aztec-packages#3674)) ([3403877](AztecProtocol/aztec-packages@3403877)), closes [#3663](AztecProtocol/aztec-packages#3663) * Tree ids in noir ([#3809](AztecProtocol/aztec-packages#3809)) ([ec2e36e](AztecProtocol/aztec-packages@ec2e36e)) * Txpool persistence ([#3672](AztecProtocol/aztec-packages#3672)) ([4dd076c](AztecProtocol/aztec-packages@4dd076c)), closes [#3365](AztecProtocol/aztec-packages#3365) * Typing partial address, deduplicating `Point`, `Point` -> `GrumpkinPoint` ([#3814](AztecProtocol/aztec-packages#3814)) ([44458be](AztecProtocol/aztec-packages@44458be)), closes [#3682](AztecProtocol/aztec-packages#3682) * Update to latest noir and update noir compiler ([#3696](AztecProtocol/aztec-packages#3696)) ([62a17a4](AztecProtocol/aztec-packages@62a17a4)) * Updated note hash and nullifier macro ([#3777](AztecProtocol/aztec-packages#3777)) ([e83dd2b](AztecProtocol/aztec-packages@e83dd2b)), closes [#3669](AztecProtocol/aztec-packages#3669) ### Bug Fixes * AWS deploy_service regex + faucet dockerfile ([#3699](AztecProtocol/aztec-packages#3699)) ([260c7c3](AztecProtocol/aztec-packages@260c7c3)) * Broken aztec-nr imports ([#3693](AztecProtocol/aztec-packages#3693)) ([7c8814e](AztecProtocol/aztec-packages@7c8814e)) * Build scripts if statements ([#3700](AztecProtocol/aztec-packages#3700)) ([4847c19](AztecProtocol/aztec-packages@4847c19)) * **ci:** Contracts_deployed check ([#3703](AztecProtocol/aztec-packages#3703)) ([6c4bf75](AztecProtocol/aztec-packages@6c4bf75)) * **ci:** Redeploy triggers ([#3677](AztecProtocol/aztec-packages#3677)) ([cc515da](AztecProtocol/aztec-packages@cc515da)) * CRS not needed for gate_count. Grumpkin not needed for non-goblin. ([#3872](AztecProtocol/aztec-packages#3872)) ([8cda00d](AztecProtocol/aztec-packages@8cda00d)) * Deploy l1 contracts script ([#3713](AztecProtocol/aztec-packages#3713)) ([309be4b](AztecProtocol/aztec-packages@309be4b)) * Disable goblin bbjs tests ([#3836](AztecProtocol/aztec-packages#3836)) ([1f5b2c6](AztecProtocol/aztec-packages@1f5b2c6)) * Docker user permissions ([#3711](AztecProtocol/aztec-packages#3711)) ([35316fc](AztecProtocol/aztec-packages@35316fc)) * **docs:** Fix docs build during releases ([#3815](AztecProtocol/aztec-packages#3815)) ([2e0776a](AztecProtocol/aztec-packages@2e0776a)) * **docs:** Force docs build using latest released code always ([#3762](AztecProtocol/aztec-packages#3762)) ([5545ee6](AztecProtocol/aztec-packages@5545ee6)) * **docs:** Make git repo available when building docs ([#3761](AztecProtocol/aztec-packages#3761)) ([bce2d99](AztecProtocol/aztec-packages@bce2d99)) * **docs:** Show latest released code on published site ([#3716](AztecProtocol/aztec-packages#3716)) ([f1eb6d5](AztecProtocol/aztec-packages@f1eb6d5)) * Event macro ([#3784](AztecProtocol/aztec-packages#3784)) ([3af2438](AztecProtocol/aztec-packages@3af2438)), closes [#3655](AztecProtocol/aztec-packages#3655) * Fix for faucet and node deployment config ([#3722](AztecProtocol/aztec-packages#3722)) ([a60b71a](AztecProtocol/aztec-packages@a60b71a)) * Flaky e2e-p2p test ([#3831](AztecProtocol/aztec-packages#3831)) ([5b1e9f2](AztecProtocol/aztec-packages@5b1e9f2)) * Issue with `run_nargo_fmt.sh` + minor yellow paper naming improvements ([#3833](AztecProtocol/aztec-packages#3833)) ([8e692c1](AztecProtocol/aztec-packages@8e692c1)) * Map relative path to protocol circuits ([#3694](AztecProtocol/aztec-packages#3694)) ([125ab1d](AztecProtocol/aztec-packages@125ab1d)) * Noir-protocol circuits ([#3734](AztecProtocol/aztec-packages#3734)) ([34e2505](AztecProtocol/aztec-packages@34e2505)) * Reenable goblin bbjs for a single test ([#3838](AztecProtocol/aztec-packages#3838)) ([30e47a0](AztecProtocol/aztec-packages@30e47a0)) * Setup aztec-cli cache ([#3698](AztecProtocol/aztec-packages#3698)) ([48b7474](AztecProtocol/aztec-packages@48b7474)) * Stale pseudocode in yellow paper process func ([#3869](AztecProtocol/aztec-packages#3869)) ([4a73e3d](AztecProtocol/aztec-packages@4a73e3d)) * Subrepo commit ([b5bfb0b](AztecProtocol/aztec-packages@b5bfb0b)) * There is no main.js ([#3691](AztecProtocol/aztec-packages#3691)) ([58ba060](AztecProtocol/aztec-packages@58ba060)) * Unpick world state circulars. ([#3721](AztecProtocol/aztec-packages#3721)) ([84f4671](AztecProtocol/aztec-packages@84f4671)) * Update for new p2p bootstrap node names ([#3710](AztecProtocol/aztec-packages#3710)) ([c7b29b3](AztecProtocol/aztec-packages@c7b29b3)) * Update toy to new master ([78cf525](AztecProtocol/aztec-packages@78cf525)) * Use lookup instead of resolve to ensure consider /etc/hosts ([#3720](AztecProtocol/aztec-packages#3720)) ([eb8413e](AztecProtocol/aztec-packages@eb8413e)) ### Miscellaneous * Add GH action to notify gate count differences ([#3724](AztecProtocol/aztec-packages#3724)) ([c0a24fb](AztecProtocol/aztec-packages@c0a24fb)), closes [#3467](AztecProtocol/aztec-packages#3467) * Add Side effect counter struct for ordering ([#3608](AztecProtocol/aztec-packages#3608)) ([c58b197](AztecProtocol/aztec-packages@c58b197)) * Add small how to diagram section ([#3804](AztecProtocol/aztec-packages#3804)) ([df581f0](AztecProtocol/aztec-packages@df581f0)) * Added cryptography section to yellow paper ([#3647](AztecProtocol/aztec-packages#3647)) ([286028b](AztecProtocol/aztec-packages@286028b)) * Adding some clarification after a question on discourse ([#3823](AztecProtocol/aztec-packages#3823)) ([f3d37d7](AztecProtocol/aztec-packages@f3d37d7)) * Align bb.js testing ([#3840](AztecProtocol/aztec-packages#3840)) ([c489727](AztecProtocol/aztec-packages@c489727)) * **avm:** Avm memory trace building ([#3835](AztecProtocol/aztec-packages#3835)) ([b7766d6](AztecProtocol/aztec-packages@b7766d6)) * Aztec js circulars ([#3723](AztecProtocol/aztec-packages#3723)) ([378407d](AztecProtocol/aztec-packages@378407d)) * Bring boxes back to CI. Build and run using docker/docker-compose. ([#3727](AztecProtocol/aztec-packages#3727)) ([4a1c0df](AztecProtocol/aztec-packages@4a1c0df)) * Build protocol circuits on CI and stop committing artifacts ([#3816](AztecProtocol/aztec-packages#3816)) ([fa1c456](AztecProtocol/aztec-packages@fa1c456)) * Checking noir formatting in CI ([#3828](AztecProtocol/aztec-packages#3828)) ([b53bacf](AztecProtocol/aztec-packages@b53bacf)), closes [#3825](AztecProtocol/aztec-packages#3825) * Cleaning inconsistency ([#3851](AztecProtocol/aztec-packages#3851)) ([9bbd70a](AztecProtocol/aztec-packages@9bbd70a)) * Cleanup recursion interface ([#3744](AztecProtocol/aztec-packages#3744)) ([fde0ac3](AztecProtocol/aztec-packages@fde0ac3)) * **docs:** Add block productions ([#3770](AztecProtocol/aztec-packages#3770)) ([f091f49](AztecProtocol/aztec-packages@f091f49)) * **docs:** Add high level overview of a tx ([#3763](AztecProtocol/aztec-packages#3763)) ([9a55e57](AztecProtocol/aztec-packages@9a55e57)) * **docs:** Remove npm reference section from testing page ([#3719](AztecProtocol/aztec-packages#3719)) ([1484c11](AztecProtocol/aztec-packages@1484c11)) * **docs:** Remove references to npm packages ([#3676](AztecProtocol/aztec-packages#3676)) ([bd5355f](AztecProtocol/aztec-packages@bd5355f)) * **docs:** Starting a migration notes section ([#3853](AztecProtocol/aztec-packages#3853)) ([060f39a](AztecProtocol/aztec-packages@060f39a)) * **docs:** Update deps in tutorials ([#3708](AztecProtocol/aztec-packages#3708)) ([f3d93aa](AztecProtocol/aztec-packages@f3d93aa)) * **docs:** Update install script ([#3847](AztecProtocol/aztec-packages#3847)) ([7003853](AztecProtocol/aztec-packages@7003853)) * **docs:** Update reference link ([#3768](AztecProtocol/aztec-packages#3768)) ([18edb98](AztecProtocol/aztec-packages@18edb98)) * **docs:** Update testing pages ([#3733](AztecProtocol/aztec-packages#3733)) ([1c68e3b](AztecProtocol/aztec-packages@1c68e3b)) * **docs:** Update token bridge tutorial ([#3773](AztecProtocol/aztec-packages#3773)) ([764cb46](AztecProtocol/aztec-packages@764cb46)) * **docs:** Update trees page ([#3732](AztecProtocol/aztec-packages#3732)) ([b265531](AztecProtocol/aztec-packages@b265531)) * **dsl:** Abstract nested aggregation object from ACIR ([#3765](AztecProtocol/aztec-packages#3765)) ([92f72e4](AztecProtocol/aztec-packages@92f72e4)) * Increase benchmark warning threshold for trial decrypt ([#3602](AztecProtocol/aztec-packages#3602)) ([913943e](AztecProtocol/aztec-packages@913943e)) * Just nargo compile. ([#3775](AztecProtocol/aztec-packages#3775)) ([3d08ef9](AztecProtocol/aztec-packages@3d08ef9)) * Move boxes out of yarn-project ([#3688](AztecProtocol/aztec-packages#3688)) ([472596c](AztecProtocol/aztec-packages@472596c)) * Noir sync ([#3884](AztecProtocol/aztec-packages#3884)) ([217de09](AztecProtocol/aztec-packages@217de09)) * Remove aggregation objects from RecursionConstraint ([#3885](AztecProtocol/aztec-packages#3885)) ([9a80008](AztecProtocol/aztec-packages@9a80008)) * Remove HashToField128Security ACIR opcode ([#3631](AztecProtocol/aztec-packages#3631)) ([1d6d3c9](AztecProtocol/aztec-packages@1d6d3c9)) * Removing leaf data type + related cleanup ([#3794](AztecProtocol/aztec-packages#3794)) ([3030cc8](AztecProtocol/aztec-packages@3030cc8)) * Rename generate-ts/nr commands to codegen. ([#3843](AztecProtocol/aztec-packages#3843)) ([1fcb964](AztecProtocol/aztec-packages@1fcb964)) * Replace relative paths to noir-protocol-circuits ([c2fed18](AztecProtocol/aztec-packages@c2fed18)) * Replace relative paths to noir-protocol-circuits ([3accd8a](AztecProtocol/aztec-packages@3accd8a)) * Replace relative paths to noir-protocol-circuits ([346590b](AztecProtocol/aztec-packages@346590b)) * Replace relative paths to noir-protocol-circuits ([861d928](AztecProtocol/aztec-packages@861d928)) * Show noir tag alongside commit on sandbox startup ([#3750](AztecProtocol/aztec-packages#3750)) ([009f66d](AztecProtocol/aztec-packages@009f66d)) * Update governance vote ballot ([#3789](AztecProtocol/aztec-packages#3789)) ([f8976ad](AztecProtocol/aztec-packages@f8976ad)) * Update how_to_contribute.md ([#3759](AztecProtocol/aztec-packages#3759)) ([4567ec4](AztecProtocol/aztec-packages@4567ec4)) * Update privacy main.md ([#3760](AztecProtocol/aztec-packages#3760)) ([c3d8b5d](AztecProtocol/aztec-packages@c3d8b5d)) * Use repo BB for gate diff ([#3852](AztecProtocol/aztec-packages#3852)) ([506e719](AztecProtocol/aztec-packages@506e719)) * Use simple "flat" CRS. ([#3748](AztecProtocol/aztec-packages#3748)) ([5c6c2ca](AztecProtocol/aztec-packages@5c6c2ca)) * Use traits in noir-protocol-circuits ([#3832](AztecProtocol/aztec-packages#3832)) ([88fcf8d](AztecProtocol/aztec-packages@88fcf8d)) ### Documentation * A layout of logs section of yellow paper ([#3582](AztecProtocol/aztec-packages#3582)) ([8c759f6](AztecProtocol/aztec-packages@8c759f6)) * Add current thinking on upgrades ([#3743](AztecProtocol/aztec-packages#3743)) ([9f3d972](AztecProtocol/aztec-packages@9f3d972)) * Add da doc ([#3736](AztecProtocol/aztec-packages#3736)) ([193f3f2](AztecProtocol/aztec-packages@193f3f2)), closes [#3645](AztecProtocol/aztec-packages#3645) * Bytecode ([#3701](AztecProtocol/aztec-packages#3701)) ([912df7e](AztecProtocol/aztec-packages@912df7e)) * Extend state documentation ([#3731](AztecProtocol/aztec-packages#3731)) ([a99cbd6](AztecProtocol/aztec-packages@a99cbd6)) * Remove mentions of noir-compiler ([#3702](AztecProtocol/aztec-packages#3702)) ([ea7cd50](AztecProtocol/aztec-packages@ea7cd50)) * Yellow paper rollup circuits and state update ([#3558](AztecProtocol/aztec-packages#3558)) ([b2d6376](AztecProtocol/aztec-packages@b2d6376)) * **yellow-paper:** Circuits ([#3782](AztecProtocol/aztec-packages#3782)) ([a935ca3](AztecProtocol/aztec-packages@a935ca3)) * **yellow-paper:** Contract deployment ([#3624](AztecProtocol/aztec-packages#3624)) ([b282867](AztecProtocol/aztec-packages@b282867)), closes [#3104](AztecProtocol/aztec-packages#3104) * **yellow-paper:** Drop pokodl request in key derivation ([#3837](AztecProtocol/aztec-packages#3837)) ([a3920fb](AztecProtocol/aztec-packages@a3920fb)) * **yellow-paper:** Update keys and addresses ([#3707](AztecProtocol/aztec-packages#3707)) ([56992ae](AztecProtocol/aztec-packages@56992ae)) * **yellowpaper:** AVM high-level execution ([#3717](AztecProtocol/aztec-packages#3717)) ([2ded221](AztecProtocol/aztec-packages@2ded221)) * **yellowpaper:** AVM intro sections ([#3692](AztecProtocol/aztec-packages#3692)) ([c48e76c](AztecProtocol/aztec-packages@c48e76c)) * **yellowpaper:** Avm nested call returns, updating calling context ([#3749](AztecProtocol/aztec-packages#3749)) ([a1c701d](AztecProtocol/aztec-packages@a1c701d)) * **yellowpaper:** Finish AVM Context definitions ([#3709](AztecProtocol/aztec-packages#3709)) ([4cfb427](AztecProtocol/aztec-packages@4cfb427)) * **yellowpaper:** Private kernel circuits ([#3559](AztecProtocol/aztec-packages#3559)) ([056e553](AztecProtocol/aztec-packages@056e553)) </details> <details><summary>barretenberg.js: 0.17.0</summary> ## [0.17.0](AztecProtocol/aztec-packages@barretenberg.js-v0.16.9...barretenberg.js-v0.17.0) (2024-01-09) ### ⚠ BREAKING CHANGES * return full verification contract from `AcirComposer::get_solidity_verifier` ([#3735](AztecProtocol/aztec-packages#3735)) ### Features * Adding option to set initial and max memory ([#3265](AztecProtocol/aztec-packages#3265)) ([0ad75fe](AztecProtocol/aztec-packages@0ad75fe)) * Bb uses goblin ([#3636](AztecProtocol/aztec-packages#3636)) ([d093266](AztecProtocol/aztec-packages@d093266)) * Correct circuit construction from acir ([#3757](AztecProtocol/aztec-packages#3757)) ([a876ab8](AztecProtocol/aztec-packages@a876ab8)) * Return full verification contract from `AcirComposer::get_solidity_verifier` ([#3735](AztecProtocol/aztec-packages#3735)) ([bd5614c](AztecProtocol/aztec-packages@bd5614c)) ### Miscellaneous * Remove HashToField128Security ACIR opcode ([#3631](AztecProtocol/aztec-packages#3631)) ([1d6d3c9](AztecProtocol/aztec-packages@1d6d3c9)) * Use simple "flat" CRS. ([#3748](AztecProtocol/aztec-packages#3748)) ([5c6c2ca](AztecProtocol/aztec-packages@5c6c2ca)) </details> <details><summary>barretenberg: 0.17.0</summary> ## [0.17.0](AztecProtocol/aztec-packages@barretenberg-v0.16.9...barretenberg-v0.17.0) (2024-01-09) ### ⚠ BREAKING CHANGES * Remove aggregation objects from RecursionConstraint ([#3885](AztecProtocol/aztec-packages#3885)) * Noir development branch (serialization changes) ([#3858](AztecProtocol/aztec-packages#3858)) * Add Side effect counter struct for ordering ([#3608](AztecProtocol/aztec-packages#3608)) * return full verification contract from `AcirComposer::get_solidity_verifier` ([#3735](AztecProtocol/aztec-packages#3735)) ### Features * Adding option to set initial and max memory ([#3265](AztecProtocol/aztec-packages#3265)) ([0ad75fe](AztecProtocol/aztec-packages@0ad75fe)) * **avm-main:** Pil -> permutations ([#3650](AztecProtocol/aztec-packages#3650)) ([c52acf6](AztecProtocol/aztec-packages@c52acf6)) * **avm-mini:** Call and return opcodes ([#3704](AztecProtocol/aztec-packages#3704)) ([e534204](AztecProtocol/aztec-packages@e534204)) * **avm:** Add standalone jump opcode ([#3781](AztecProtocol/aztec-packages#3781)) ([b1b2e7c](AztecProtocol/aztec-packages@b1b2e7c)) * **avm:** VM circuit handles tagged memory ([#3725](AztecProtocol/aztec-packages#3725)) ([739fe90](AztecProtocol/aztec-packages@739fe90)), closes [#3644](AztecProtocol/aztec-packages#3644) * Barretenberg doxygen CI ([#3818](AztecProtocol/aztec-packages#3818)) ([022a918](AztecProtocol/aztec-packages@022a918)) * Bb uses goblin ([#3636](AztecProtocol/aztec-packages#3636)) ([d093266](AztecProtocol/aztec-packages@d093266)) * Correct circuit construction from acir ([#3757](AztecProtocol/aztec-packages#3757)) ([a876ab8](AztecProtocol/aztec-packages@a876ab8)) * Goblin and eccvm bench ([#3606](AztecProtocol/aztec-packages#3606)) ([1fe63b2](AztecProtocol/aztec-packages@1fe63b2)) * Goblinize the final ecc ops in ZM ([#3741](AztecProtocol/aztec-packages#3741)) ([3048d08](AztecProtocol/aztec-packages@3048d08)) * Noir development branch (serialization changes) ([#3858](AztecProtocol/aztec-packages#3858)) ([d2ae2cd](AztecProtocol/aztec-packages@d2ae2cd)) * ProverPolynomials owns its memory ([#3560](AztecProtocol/aztec-packages#3560)) ([a4aba00](AztecProtocol/aztec-packages@a4aba00)) * Return full verification contract from `AcirComposer::get_solidity_verifier` ([#3735](AztecProtocol/aztec-packages#3735)) ([bd5614c](AztecProtocol/aztec-packages@bd5614c)) ### Bug Fixes * CRS not needed for gate_count. Grumpkin not needed for non-goblin. ([#3872](AztecProtocol/aztec-packages#3872)) ([8cda00d](AztecProtocol/aztec-packages@8cda00d)) * Disable goblin bbjs tests ([#3836](AztecProtocol/aztec-packages#3836)) ([1f5b2c6](AztecProtocol/aztec-packages@1f5b2c6)) * Reenable goblin bbjs for a single test ([#3838](AztecProtocol/aztec-packages#3838)) ([30e47a0](AztecProtocol/aztec-packages@30e47a0)) * Update toy to new master ([78cf525](AztecProtocol/aztec-packages@78cf525)) ### Miscellaneous * Add Side effect counter struct for ordering ([#3608](AztecProtocol/aztec-packages#3608)) ([c58b197](AztecProtocol/aztec-packages@c58b197)) * Align bb.js testing ([#3840](AztecProtocol/aztec-packages#3840)) ([c489727](AztecProtocol/aztec-packages@c489727)) * **avm:** Avm memory trace building ([#3835](AztecProtocol/aztec-packages#3835)) ([b7766d6](AztecProtocol/aztec-packages@b7766d6)) * Bring boxes back to CI. Build and run using docker/docker-compose. ([#3727](AztecProtocol/aztec-packages#3727)) ([4a1c0df](AztecProtocol/aztec-packages@4a1c0df)) * Cleanup recursion interface ([#3744](AztecProtocol/aztec-packages#3744)) ([fde0ac3](AztecProtocol/aztec-packages@fde0ac3)) * **dsl:** Abstract nested aggregation object from ACIR ([#3765](AztecProtocol/aztec-packages#3765)) ([92f72e4](AztecProtocol/aztec-packages@92f72e4)) * Remove aggregation objects from RecursionConstraint ([#3885](AztecProtocol/aztec-packages#3885)) ([9a80008](AztecProtocol/aztec-packages@9a80008)) * Remove HashToField128Security ACIR opcode ([#3631](AztecProtocol/aztec-packages#3631)) ([1d6d3c9](AztecProtocol/aztec-packages@1d6d3c9)) * Use simple "flat" CRS. ([#3748](AztecProtocol/aztec-packages#3748)) ([5c6c2ca](AztecProtocol/aztec-packages@5c6c2ca)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
Please provide a paragraph or two giving a summary of the change, including relevant motivation and context. # Checklist: Remove the checklist to signal you've completed it. Enable auto-merge if the PR is ready to merge. - [ ] If the pull request requires a cryptography review (e.g. cryptographic algorithm implementations) I have added the 'crypto' tag. - [ ] I have reviewed my diff in github, line by line and removed unexpected formatting changes, testing logs, or commented-out code. - [ ] Every change is related to the PR description. - [ ] I have [linked](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue) this pull request to relevant issues (if any exist).
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-packages: 0.17.0</summary> ## [0.17.0](AztecProtocol/aztec-packages@aztec-packages-v0.16.9...aztec-packages-v0.17.0) (2024-01-09) ### ⚠ BREAKING CHANGES * Remove aggregation objects from RecursionConstraint ([AztecProtocol#3885](AztecProtocol#3885)) * Noir development branch (serialization changes) ([AztecProtocol#3858](AztecProtocol#3858)) * **aztec.js:** Move accounts out of aztec.js into new package ([AztecProtocol#3844](AztecProtocol#3844)) * Add Side effect counter struct for ordering ([AztecProtocol#3608](AztecProtocol#3608)) * typing partial address, deduplicating `Point`, `Point` -> `GrumpkinPoint` ([AztecProtocol#3814](AztecProtocol#3814)) * moving `compute_selector` to `FunctionSelector` ([AztecProtocol#3806](AztecProtocol#3806)) * moving compute_address func to AztecAddress ([AztecProtocol#3801](AztecProtocol#3801)) * updated note hash and nullifier macro ([AztecProtocol#3777](AztecProtocol#3777)) * return full verification contract from `AcirComposer::get_solidity_verifier` ([AztecProtocol#3735](AztecProtocol#3735)) * deduplicating circuit types + typing everything ([AztecProtocol#3594](AztecProtocol#3594)) ### Features * A script which runs `nargo fmt` in all packages + running it ([AztecProtocol#3803](AztecProtocol#3803)) ([5f0ebd6](AztecProtocol@5f0ebd6)) * Add new metrics ([AztecProtocol#3855](AztecProtocol#3855)) ([a2b267b](AztecProtocol@a2b267b)) * Adding option to set initial and max memory ([AztecProtocol#3265](AztecProtocol#3265)) ([0ad75fe](AztecProtocol@0ad75fe)) * **avm-main:** Pil -> permutations ([AztecProtocol#3650](AztecProtocol#3650)) ([c52acf6](AztecProtocol@c52acf6)) * **avm-mini:** Call and return opcodes ([AztecProtocol#3704](AztecProtocol#3704)) ([e534204](AztecProtocol@e534204)) * **avm:** Add standalone jump opcode ([AztecProtocol#3781](AztecProtocol#3781)) ([b1b2e7c](AztecProtocol@b1b2e7c)) * **avm:** VM circuit handles tagged memory ([AztecProtocol#3725](AztecProtocol#3725)) ([739fe90](AztecProtocol@739fe90)), closes [AztecProtocol#3644](AztecProtocol#3644) * **aztec.js:** Move accounts out of aztec.js into new package ([AztecProtocol#3844](AztecProtocol#3844)) ([afd7b6d](AztecProtocol@afd7b6d)), closes [AztecProtocol#3807](AztecProtocol#3807) * Barretenberg doxygen CI ([AztecProtocol#3818](AztecProtocol#3818)) ([022a918](AztecProtocol@022a918)) * Bb uses goblin ([AztecProtocol#3636](AztecProtocol#3636)) ([d093266](AztecProtocol@d093266)) * Compile base rollup as a circuit ([AztecProtocol#3739](AztecProtocol#3739)) ([5118d44](AztecProtocol@5118d44)) * Contract inclusion proof ([AztecProtocol#3680](AztecProtocol#3680)) ([43aa603](AztecProtocol@43aa603)) * Correct circuit construction from acir ([AztecProtocol#3757](AztecProtocol#3757)) ([a876ab8](AztecProtocol@a876ab8)) * Deduplicating circuit types + typing everything ([AztecProtocol#3594](AztecProtocol#3594)) ([fcb04a7](AztecProtocol@fcb04a7)), closes [AztecProtocol#3592](AztecProtocol#3592) [AztecProtocol#3059](AztecProtocol#3059) * Goblin and eccvm bench ([AztecProtocol#3606](AztecProtocol#3606)) ([1fe63b2](AztecProtocol@1fe63b2)) * Goblinize the final ecc ops in ZM ([AztecProtocol#3741](AztecProtocol#3741)) ([3048d08](AztecProtocol@3048d08)) * Launch the monorepo in a codespace. ([AztecProtocol#3829](AztecProtocol#3829)) ([f5a4a78](AztecProtocol@f5a4a78)) * Moving `compute_selector` to `FunctionSelector` ([AztecProtocol#3806](AztecProtocol#3806)) ([bbaebf4](AztecProtocol@bbaebf4)), closes [AztecProtocol#3681](AztecProtocol#3681) * Moving compute_address func to AztecAddress ([AztecProtocol#3801](AztecProtocol#3801)) ([3107aad](AztecProtocol@3107aad)), closes [AztecProtocol#3794](AztecProtocol#3794) * Node version check in `yarn-project/bootstrap.sh` ([AztecProtocol#3780](AztecProtocol#3780)) ([c29e4ee](AztecProtocol@c29e4ee)) * Noir development branch (serialization changes) ([AztecProtocol#3858](AztecProtocol#3858)) ([d2ae2cd](AztecProtocol@d2ae2cd)) * Only one tx per base rollup ([AztecProtocol#3742](AztecProtocol#3742)) ([9eef247](AztecProtocol@9eef247)) * ProverPolynomials owns its memory ([AztecProtocol#3560](AztecProtocol#3560)) ([a4aba00](AztecProtocol@a4aba00)) * Public data tree as indexed tree ([AztecProtocol#3566](AztecProtocol#3566)) ([4711ef7](AztecProtocol@4711ef7)) * PXE adds note processors for stored accounts ([AztecProtocol#3673](AztecProtocol#3673)) ([93f9315](AztecProtocol@93f9315)) * Return full verification contract from `AcirComposer::get_solidity_verifier` ([AztecProtocol#3735](AztecProtocol#3735)) ([bd5614c](AztecProtocol@bd5614c)) * Serialize synchronize and simulateTx calls by the pxe via SerialQueue ([AztecProtocol#3817](AztecProtocol#3817)) ([e893675](AztecProtocol@e893675)) * Specific membership witness functions in aztec-nr ([AztecProtocol#3674](AztecProtocol#3674)) ([3403877](AztecProtocol@3403877)), closes [AztecProtocol#3663](AztecProtocol#3663) * Tree ids in noir ([AztecProtocol#3809](AztecProtocol#3809)) ([ec2e36e](AztecProtocol@ec2e36e)) * Txpool persistence ([AztecProtocol#3672](AztecProtocol#3672)) ([4dd076c](AztecProtocol@4dd076c)), closes [AztecProtocol#3365](AztecProtocol#3365) * Typing partial address, deduplicating `Point`, `Point` -> `GrumpkinPoint` ([AztecProtocol#3814](AztecProtocol#3814)) ([44458be](AztecProtocol@44458be)), closes [AztecProtocol#3682](AztecProtocol#3682) * Update to latest noir and update noir compiler ([AztecProtocol#3696](AztecProtocol#3696)) ([62a17a4](AztecProtocol@62a17a4)) * Updated note hash and nullifier macro ([AztecProtocol#3777](AztecProtocol#3777)) ([e83dd2b](AztecProtocol@e83dd2b)), closes [AztecProtocol#3669](AztecProtocol#3669) ### Bug Fixes * AWS deploy_service regex + faucet dockerfile ([AztecProtocol#3699](AztecProtocol#3699)) ([260c7c3](AztecProtocol@260c7c3)) * Broken aztec-nr imports ([AztecProtocol#3693](AztecProtocol#3693)) ([7c8814e](AztecProtocol@7c8814e)) * Build scripts if statements ([AztecProtocol#3700](AztecProtocol#3700)) ([4847c19](AztecProtocol@4847c19)) * **ci:** Contracts_deployed check ([AztecProtocol#3703](AztecProtocol#3703)) ([6c4bf75](AztecProtocol@6c4bf75)) * **ci:** Redeploy triggers ([AztecProtocol#3677](AztecProtocol#3677)) ([cc515da](AztecProtocol@cc515da)) * CRS not needed for gate_count. Grumpkin not needed for non-goblin. ([AztecProtocol#3872](AztecProtocol#3872)) ([8cda00d](AztecProtocol@8cda00d)) * Deploy l1 contracts script ([AztecProtocol#3713](AztecProtocol#3713)) ([309be4b](AztecProtocol@309be4b)) * Disable goblin bbjs tests ([AztecProtocol#3836](AztecProtocol#3836)) ([1f5b2c6](AztecProtocol@1f5b2c6)) * Docker user permissions ([AztecProtocol#3711](AztecProtocol#3711)) ([35316fc](AztecProtocol@35316fc)) * **docs:** Fix docs build during releases ([AztecProtocol#3815](AztecProtocol#3815)) ([2e0776a](AztecProtocol@2e0776a)) * **docs:** Force docs build using latest released code always ([AztecProtocol#3762](AztecProtocol#3762)) ([5545ee6](AztecProtocol@5545ee6)) * **docs:** Make git repo available when building docs ([AztecProtocol#3761](AztecProtocol#3761)) ([bce2d99](AztecProtocol@bce2d99)) * **docs:** Show latest released code on published site ([AztecProtocol#3716](AztecProtocol#3716)) ([f1eb6d5](AztecProtocol@f1eb6d5)) * Event macro ([AztecProtocol#3784](AztecProtocol#3784)) ([3af2438](AztecProtocol@3af2438)), closes [AztecProtocol#3655](AztecProtocol#3655) * Fix for faucet and node deployment config ([AztecProtocol#3722](AztecProtocol#3722)) ([a60b71a](AztecProtocol@a60b71a)) * Flaky e2e-p2p test ([AztecProtocol#3831](AztecProtocol#3831)) ([5b1e9f2](AztecProtocol@5b1e9f2)) * Issue with `run_nargo_fmt.sh` + minor yellow paper naming improvements ([AztecProtocol#3833](AztecProtocol#3833)) ([8e692c1](AztecProtocol@8e692c1)) * Map relative path to protocol circuits ([AztecProtocol#3694](AztecProtocol#3694)) ([125ab1d](AztecProtocol@125ab1d)) * Noir-protocol circuits ([AztecProtocol#3734](AztecProtocol#3734)) ([34e2505](AztecProtocol@34e2505)) * Reenable goblin bbjs for a single test ([AztecProtocol#3838](AztecProtocol#3838)) ([30e47a0](AztecProtocol@30e47a0)) * Setup aztec-cli cache ([AztecProtocol#3698](AztecProtocol#3698)) ([48b7474](AztecProtocol@48b7474)) * Stale pseudocode in yellow paper process func ([AztecProtocol#3869](AztecProtocol#3869)) ([4a73e3d](AztecProtocol@4a73e3d)) * Subrepo commit ([b5bfb0b](AztecProtocol@b5bfb0b)) * There is no main.js ([AztecProtocol#3691](AztecProtocol#3691)) ([58ba060](AztecProtocol@58ba060)) * Unpick world state circulars. ([AztecProtocol#3721](AztecProtocol#3721)) ([84f4671](AztecProtocol@84f4671)) * Update for new p2p bootstrap node names ([AztecProtocol#3710](AztecProtocol#3710)) ([c7b29b3](AztecProtocol@c7b29b3)) * Update toy to new master ([78cf525](AztecProtocol@78cf525)) * Use lookup instead of resolve to ensure consider /etc/hosts ([AztecProtocol#3720](AztecProtocol#3720)) ([eb8413e](AztecProtocol@eb8413e)) ### Miscellaneous * Add GH action to notify gate count differences ([AztecProtocol#3724](AztecProtocol#3724)) ([c0a24fb](AztecProtocol@c0a24fb)), closes [AztecProtocol#3467](AztecProtocol#3467) * Add Side effect counter struct for ordering ([AztecProtocol#3608](AztecProtocol#3608)) ([c58b197](AztecProtocol@c58b197)) * Add small how to diagram section ([AztecProtocol#3804](AztecProtocol#3804)) ([df581f0](AztecProtocol@df581f0)) * Added cryptography section to yellow paper ([AztecProtocol#3647](AztecProtocol#3647)) ([286028b](AztecProtocol@286028b)) * Adding some clarification after a question on discourse ([AztecProtocol#3823](AztecProtocol#3823)) ([f3d37d7](AztecProtocol@f3d37d7)) * Align bb.js testing ([AztecProtocol#3840](AztecProtocol#3840)) ([c489727](AztecProtocol@c489727)) * **avm:** Avm memory trace building ([AztecProtocol#3835](AztecProtocol#3835)) ([b7766d6](AztecProtocol@b7766d6)) * Aztec js circulars ([AztecProtocol#3723](AztecProtocol#3723)) ([378407d](AztecProtocol@378407d)) * Bring boxes back to CI. Build and run using docker/docker-compose. ([AztecProtocol#3727](AztecProtocol#3727)) ([4a1c0df](AztecProtocol@4a1c0df)) * Build protocol circuits on CI and stop committing artifacts ([AztecProtocol#3816](AztecProtocol#3816)) ([fa1c456](AztecProtocol@fa1c456)) * Checking noir formatting in CI ([AztecProtocol#3828](AztecProtocol#3828)) ([b53bacf](AztecProtocol@b53bacf)), closes [AztecProtocol#3825](AztecProtocol#3825) * Cleaning inconsistency ([AztecProtocol#3851](AztecProtocol#3851)) ([9bbd70a](AztecProtocol@9bbd70a)) * Cleanup recursion interface ([AztecProtocol#3744](AztecProtocol#3744)) ([fde0ac3](AztecProtocol@fde0ac3)) * **docs:** Add block productions ([AztecProtocol#3770](AztecProtocol#3770)) ([f091f49](AztecProtocol@f091f49)) * **docs:** Add high level overview of a tx ([AztecProtocol#3763](AztecProtocol#3763)) ([9a55e57](AztecProtocol@9a55e57)) * **docs:** Remove npm reference section from testing page ([AztecProtocol#3719](AztecProtocol#3719)) ([1484c11](AztecProtocol@1484c11)) * **docs:** Remove references to npm packages ([AztecProtocol#3676](AztecProtocol#3676)) ([bd5355f](AztecProtocol@bd5355f)) * **docs:** Starting a migration notes section ([AztecProtocol#3853](AztecProtocol#3853)) ([060f39a](AztecProtocol@060f39a)) * **docs:** Update deps in tutorials ([AztecProtocol#3708](AztecProtocol#3708)) ([f3d93aa](AztecProtocol@f3d93aa)) * **docs:** Update install script ([AztecProtocol#3847](AztecProtocol#3847)) ([7003853](AztecProtocol@7003853)) * **docs:** Update reference link ([AztecProtocol#3768](AztecProtocol#3768)) ([18edb98](AztecProtocol@18edb98)) * **docs:** Update testing pages ([AztecProtocol#3733](AztecProtocol#3733)) ([1c68e3b](AztecProtocol@1c68e3b)) * **docs:** Update token bridge tutorial ([AztecProtocol#3773](AztecProtocol#3773)) ([764cb46](AztecProtocol@764cb46)) * **docs:** Update trees page ([AztecProtocol#3732](AztecProtocol#3732)) ([b265531](AztecProtocol@b265531)) * **dsl:** Abstract nested aggregation object from ACIR ([AztecProtocol#3765](AztecProtocol#3765)) ([92f72e4](AztecProtocol@92f72e4)) * Increase benchmark warning threshold for trial decrypt ([AztecProtocol#3602](AztecProtocol#3602)) ([913943e](AztecProtocol@913943e)) * Just nargo compile. ([AztecProtocol#3775](AztecProtocol#3775)) ([3d08ef9](AztecProtocol@3d08ef9)) * Move boxes out of yarn-project ([AztecProtocol#3688](AztecProtocol#3688)) ([472596c](AztecProtocol@472596c)) * Noir sync ([AztecProtocol#3884](AztecProtocol#3884)) ([217de09](AztecProtocol@217de09)) * Remove aggregation objects from RecursionConstraint ([AztecProtocol#3885](AztecProtocol#3885)) ([9a80008](AztecProtocol@9a80008)) * Remove HashToField128Security ACIR opcode ([AztecProtocol#3631](AztecProtocol#3631)) ([1d6d3c9](AztecProtocol@1d6d3c9)) * Removing leaf data type + related cleanup ([AztecProtocol#3794](AztecProtocol#3794)) ([3030cc8](AztecProtocol@3030cc8)) * Rename generate-ts/nr commands to codegen. ([AztecProtocol#3843](AztecProtocol#3843)) ([1fcb964](AztecProtocol@1fcb964)) * Replace relative paths to noir-protocol-circuits ([c2fed18](AztecProtocol@c2fed18)) * Replace relative paths to noir-protocol-circuits ([3accd8a](AztecProtocol@3accd8a)) * Replace relative paths to noir-protocol-circuits ([346590b](AztecProtocol@346590b)) * Replace relative paths to noir-protocol-circuits ([861d928](AztecProtocol@861d928)) * Show noir tag alongside commit on sandbox startup ([AztecProtocol#3750](AztecProtocol#3750)) ([009f66d](AztecProtocol@009f66d)) * Update governance vote ballot ([AztecProtocol#3789](AztecProtocol#3789)) ([f8976ad](AztecProtocol@f8976ad)) * Update how_to_contribute.md ([AztecProtocol#3759](AztecProtocol#3759)) ([4567ec4](AztecProtocol@4567ec4)) * Update privacy main.md ([AztecProtocol#3760](AztecProtocol#3760)) ([c3d8b5d](AztecProtocol@c3d8b5d)) * Use repo BB for gate diff ([AztecProtocol#3852](AztecProtocol#3852)) ([506e719](AztecProtocol@506e719)) * Use simple "flat" CRS. ([AztecProtocol#3748](AztecProtocol#3748)) ([5c6c2ca](AztecProtocol@5c6c2ca)) * Use traits in noir-protocol-circuits ([AztecProtocol#3832](AztecProtocol#3832)) ([88fcf8d](AztecProtocol@88fcf8d)) ### Documentation * A layout of logs section of yellow paper ([AztecProtocol#3582](AztecProtocol#3582)) ([8c759f6](AztecProtocol@8c759f6)) * Add current thinking on upgrades ([AztecProtocol#3743](AztecProtocol#3743)) ([9f3d972](AztecProtocol@9f3d972)) * Add da doc ([AztecProtocol#3736](AztecProtocol#3736)) ([193f3f2](AztecProtocol@193f3f2)), closes [AztecProtocol#3645](AztecProtocol#3645) * Bytecode ([AztecProtocol#3701](AztecProtocol#3701)) ([912df7e](AztecProtocol@912df7e)) * Extend state documentation ([AztecProtocol#3731](AztecProtocol#3731)) ([a99cbd6](AztecProtocol@a99cbd6)) * Remove mentions of noir-compiler ([AztecProtocol#3702](AztecProtocol#3702)) ([ea7cd50](AztecProtocol@ea7cd50)) * Yellow paper rollup circuits and state update ([AztecProtocol#3558](AztecProtocol#3558)) ([b2d6376](AztecProtocol@b2d6376)) * **yellow-paper:** Circuits ([AztecProtocol#3782](AztecProtocol#3782)) ([a935ca3](AztecProtocol@a935ca3)) * **yellow-paper:** Contract deployment ([AztecProtocol#3624](AztecProtocol#3624)) ([b282867](AztecProtocol@b282867)), closes [AztecProtocol#3104](AztecProtocol#3104) * **yellow-paper:** Drop pokodl request in key derivation ([AztecProtocol#3837](AztecProtocol#3837)) ([a3920fb](AztecProtocol@a3920fb)) * **yellow-paper:** Update keys and addresses ([AztecProtocol#3707](AztecProtocol#3707)) ([56992ae](AztecProtocol@56992ae)) * **yellowpaper:** AVM high-level execution ([AztecProtocol#3717](AztecProtocol#3717)) ([2ded221](AztecProtocol@2ded221)) * **yellowpaper:** AVM intro sections ([AztecProtocol#3692](AztecProtocol#3692)) ([c48e76c](AztecProtocol@c48e76c)) * **yellowpaper:** Avm nested call returns, updating calling context ([AztecProtocol#3749](AztecProtocol#3749)) ([a1c701d](AztecProtocol@a1c701d)) * **yellowpaper:** Finish AVM Context definitions ([AztecProtocol#3709](AztecProtocol#3709)) ([4cfb427](AztecProtocol@4cfb427)) * **yellowpaper:** Private kernel circuits ([AztecProtocol#3559](AztecProtocol#3559)) ([056e553](AztecProtocol@056e553)) </details> <details><summary>barretenberg.js: 0.17.0</summary> ## [0.17.0](AztecProtocol/aztec-packages@barretenberg.js-v0.16.9...barretenberg.js-v0.17.0) (2024-01-09) ### ⚠ BREAKING CHANGES * return full verification contract from `AcirComposer::get_solidity_verifier` ([AztecProtocol#3735](AztecProtocol#3735)) ### Features * Adding option to set initial and max memory ([AztecProtocol#3265](AztecProtocol#3265)) ([0ad75fe](AztecProtocol@0ad75fe)) * Bb uses goblin ([AztecProtocol#3636](AztecProtocol#3636)) ([d093266](AztecProtocol@d093266)) * Correct circuit construction from acir ([AztecProtocol#3757](AztecProtocol#3757)) ([a876ab8](AztecProtocol@a876ab8)) * Return full verification contract from `AcirComposer::get_solidity_verifier` ([AztecProtocol#3735](AztecProtocol#3735)) ([bd5614c](AztecProtocol@bd5614c)) ### Miscellaneous * Remove HashToField128Security ACIR opcode ([AztecProtocol#3631](AztecProtocol#3631)) ([1d6d3c9](AztecProtocol@1d6d3c9)) * Use simple "flat" CRS. ([AztecProtocol#3748](AztecProtocol#3748)) ([5c6c2ca](AztecProtocol@5c6c2ca)) </details> <details><summary>barretenberg: 0.17.0</summary> ## [0.17.0](AztecProtocol/aztec-packages@barretenberg-v0.16.9...barretenberg-v0.17.0) (2024-01-09) ### ⚠ BREAKING CHANGES * Remove aggregation objects from RecursionConstraint ([AztecProtocol#3885](AztecProtocol#3885)) * Noir development branch (serialization changes) ([AztecProtocol#3858](AztecProtocol#3858)) * Add Side effect counter struct for ordering ([AztecProtocol#3608](AztecProtocol#3608)) * return full verification contract from `AcirComposer::get_solidity_verifier` ([AztecProtocol#3735](AztecProtocol#3735)) ### Features * Adding option to set initial and max memory ([AztecProtocol#3265](AztecProtocol#3265)) ([0ad75fe](AztecProtocol@0ad75fe)) * **avm-main:** Pil -> permutations ([AztecProtocol#3650](AztecProtocol#3650)) ([c52acf6](AztecProtocol@c52acf6)) * **avm-mini:** Call and return opcodes ([AztecProtocol#3704](AztecProtocol#3704)) ([e534204](AztecProtocol@e534204)) * **avm:** Add standalone jump opcode ([AztecProtocol#3781](AztecProtocol#3781)) ([b1b2e7c](AztecProtocol@b1b2e7c)) * **avm:** VM circuit handles tagged memory ([AztecProtocol#3725](AztecProtocol#3725)) ([739fe90](AztecProtocol@739fe90)), closes [AztecProtocol#3644](AztecProtocol#3644) * Barretenberg doxygen CI ([AztecProtocol#3818](AztecProtocol#3818)) ([022a918](AztecProtocol@022a918)) * Bb uses goblin ([AztecProtocol#3636](AztecProtocol#3636)) ([d093266](AztecProtocol@d093266)) * Correct circuit construction from acir ([AztecProtocol#3757](AztecProtocol#3757)) ([a876ab8](AztecProtocol@a876ab8)) * Goblin and eccvm bench ([AztecProtocol#3606](AztecProtocol#3606)) ([1fe63b2](AztecProtocol@1fe63b2)) * Goblinize the final ecc ops in ZM ([AztecProtocol#3741](AztecProtocol#3741)) ([3048d08](AztecProtocol@3048d08)) * Noir development branch (serialization changes) ([AztecProtocol#3858](AztecProtocol#3858)) ([d2ae2cd](AztecProtocol@d2ae2cd)) * ProverPolynomials owns its memory ([AztecProtocol#3560](AztecProtocol#3560)) ([a4aba00](AztecProtocol@a4aba00)) * Return full verification contract from `AcirComposer::get_solidity_verifier` ([AztecProtocol#3735](AztecProtocol#3735)) ([bd5614c](AztecProtocol@bd5614c)) ### Bug Fixes * CRS not needed for gate_count. Grumpkin not needed for non-goblin. ([AztecProtocol#3872](AztecProtocol#3872)) ([8cda00d](AztecProtocol@8cda00d)) * Disable goblin bbjs tests ([AztecProtocol#3836](AztecProtocol#3836)) ([1f5b2c6](AztecProtocol@1f5b2c6)) * Reenable goblin bbjs for a single test ([AztecProtocol#3838](AztecProtocol#3838)) ([30e47a0](AztecProtocol@30e47a0)) * Update toy to new master ([78cf525](AztecProtocol@78cf525)) ### Miscellaneous * Add Side effect counter struct for ordering ([AztecProtocol#3608](AztecProtocol#3608)) ([c58b197](AztecProtocol@c58b197)) * Align bb.js testing ([AztecProtocol#3840](AztecProtocol#3840)) ([c489727](AztecProtocol@c489727)) * **avm:** Avm memory trace building ([AztecProtocol#3835](AztecProtocol#3835)) ([b7766d6](AztecProtocol@b7766d6)) * Bring boxes back to CI. Build and run using docker/docker-compose. ([AztecProtocol#3727](AztecProtocol#3727)) ([4a1c0df](AztecProtocol@4a1c0df)) * Cleanup recursion interface ([AztecProtocol#3744](AztecProtocol#3744)) ([fde0ac3](AztecProtocol@fde0ac3)) * **dsl:** Abstract nested aggregation object from ACIR ([AztecProtocol#3765](AztecProtocol#3765)) ([92f72e4](AztecProtocol@92f72e4)) * Remove aggregation objects from RecursionConstraint ([AztecProtocol#3885](AztecProtocol#3885)) ([9a80008](AztecProtocol@9a80008)) * Remove HashToField128Security ACIR opcode ([AztecProtocol#3631](AztecProtocol#3631)) ([1d6d3c9](AztecProtocol@1d6d3c9)) * Use simple "flat" CRS. ([AztecProtocol#3748](AztecProtocol#3748)) ([5c6c2ca](AztecProtocol@5c6c2ca)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
Please provide a paragraph or two giving a summary of the change, including relevant motivation and context.
Checklist:
Remove the checklist to signal you've completed it. Enable auto-merge if the PR is ready to merge.