Skip to content
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

feat: (bb) remove redundant constraints on field/group elements when using goblin plonk #8409

Merged
merged 11 commits into from
Sep 11, 2024

Conversation

zac-williamson
Copy link
Contributor

@zac-williamson zac-williamson commented Sep 5, 2024

This PR adds distinct classes for goblin plonk group elements and coordinate scalars in the stdlib so that we can refine the implementation of these objects without proliferating edge cases in the rest of our codebase

This Pr reduces the cost of ProtogalaxyRecursiveTests/0.RecursiveFoldingTest from 24,630 gates to 14,106 gates.

stdlib::element is now a class alias that points to either the default element class definition or the goblin plonk class definition depending on whether goblin plonk is supported.

This allows us to apply the following improvements/useful restrictions:

  1. goblin plonk group elements no longer apply on_curve checks when created (performed in the eccvm)
  2. goblin plonk coordinate field elements no longer have range constraints applied to them (performed in the translator circuit)
  3. goblin plonk coordinate field elements no longer generate constraints when assert_is_in_field is applied (performed in the translator circuit)
  4. goblin plonk coordinate field elements do not have arithmetic operations exposed (manipulation of goblin plonk group elements should happen exclusively through the eccvm)

In addition, this PR improve the handling of checking whether bn254 points are at infinity when consuming points from a transcript via field_conversion

Copy link
Contributor

github-actions bot commented Sep 5, 2024

Changes to circuit sizes

Generated at commit: 8ab94c517fc0c88bf399244d2b7200c6e52b5f8c, compared to commit: 02c333028bf186f0472738f4a5c39d36f4980941

🧾 Summary (100% most significant diffs)

Program ACIR opcodes (+/-) % Circuit size (+/-) %
rollup_base 0 ➖ 0.00% -650 ✅ -0.02%
public_kernel_tail 0 ➖ 0.00% -650 ✅ -0.02%
public_kernel_setup 0 ➖ 0.00% -650 ✅ -0.03%
public_kernel_teardown 0 ➖ 0.00% -650 ✅ -0.03%
public_kernel_app_logic 0 ➖ 0.00% -650 ✅ -0.03%
rollup_block_merge 0 ➖ 0.00% -1,300 ✅ -0.05%
rollup_root 0 ➖ 0.00% -1,300 ✅ -0.05%
rollup_merge 0 ➖ 0.00% -1,300 ✅ -0.05%
rollup_block_root 0 ➖ 0.00% -1,950 ✅ -0.05%
parity_root 0 ➖ 0.00% -2,600 ✅ -0.05%

Full diff report 👇
Program ACIR opcodes (+/-) % Circuit size (+/-) %
rollup_base 347,688 (0) 0.00% 3,607,715 (-650) -0.02%
public_kernel_tail 259,775 (0) 0.00% 2,705,030 (-650) -0.02%
public_kernel_setup 246,841 (0) 0.00% 1,965,131 (-650) -0.03%
public_kernel_teardown 247,012 (0) 0.00% 1,962,712 (-650) -0.03%
public_kernel_app_logic 246,381 (0) 0.00% 1,961,928 (-650) -0.03%
rollup_block_merge 18,204 (0) 0.00% 2,742,018 (-1,300) -0.05%
rollup_root 18,188 (0) 0.00% 2,741,986 (-1,300) -0.05%
rollup_merge 319 (0) 0.00% 2,704,177 (-1,300) -0.05%
rollup_block_root 803 (0) 0.00% 4,051,957 (-1,950) -0.05%
parity_root 374 (0) 0.00% 5,393,891 (-2,600) -0.05%

Base automatically changed from zw/split-challenges to master September 10, 2024 19:10
…to `inner::biggroup`. `biggroup` typedef will use either `inner::biggroup` or `biggroup_goblin` depending on the curve parametrisation and circuit builder
Copy link
Contributor

@codygunton codygunton left a comment

Choose a reason for hiding this comment

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

Looks good to me. FYI I cherry picked the test in #8503 into your branch temporarily to see the change and got:

Console is in 'commands' mode, prefix expressions with '?'.
Launching: /mnt/user-data/cody/aztec-packages/barretenberg/cpp/build-debug/bin/stdlib_protogalaxy_verifier_tests --gtest_color=no --gtest_filter=ProtogalaxyRecursiveTests/0.RecursiveFoldingTwiceTest --gtest_also_run_disabled_tests --gtest_break_on_failure
Launched process 2317410
Running main() from /mnt/user-data/cody/aztec-packages/barretenberg/cpp/build-debug/_deps/gtest-src/googletest/src/gtest_main.cc
Note: Google Test filter = ProtogalaxyRecursiveTests/0.RecursiveFoldingTwiceTest
[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
[----------] 1 test from ProtogalaxyRecursiveTests/0, where TypeParam = bb::MegaRecursiveFlavor_<bb::MegaCircuitBuilder_<bb::field<bb::Bn254FrParams> > >
[ RUN      ] ProtogalaxyRecursiveTests/0.RecursiveFoldingTwiceTest
Folding Recursive Verifier: num gates unfinalized = 18085
Folding Recursive Verifier: num gates finalized = 20194
WARNING: Redundant call to finalize_circuit(). Is this intentional?
Dyadic size of verifier circuit: 32768
[       OK ] ProtogalaxyRecursiveTests/0.RecursiveFoldingTwiceTest (13082 ms)
[----------] 1 test from ProtogalaxyRecursiveTests/0 (13082 ms total)

[----------] Global test environment tear-down
[==========] 1 test from 1 test suite ran. (13082 ms total)
[  PASSED  ] 1 test.
Process exited with code 0.

* of edge cases and bloated logic in other classes
* @tparam Builder
*/
template <class Builder> class goblin_field {
Copy link
Contributor

Choose a reason for hiding this comment

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

Thanks, this is good cleanup.

// modulus (a la the bigfield(lo, hi) constructor with can_overflow == false).
ASSERT(uint1024_t(point.x.get_maximum_value()) <= Fq::DEFAULT_MAXIMUM_REMAINDER);
ASSERT(uint1024_t(point.y.get_maximum_value()) <= Fq::DEFAULT_MAXIMUM_REMAINDER);
x_lo.assert_equal(point.x.limbs[0]);
Copy link
Contributor

@codygunton codygunton Sep 11, 2024

Choose a reason for hiding this comment

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

I manually constructed a diff to see the main change is here, and in the addition of an unused handle_edge_cases argument for interface uniformity ✅

nafs[k] = (naf_entries[k][i * num_rounds_per_iteration + j + 1]);
}
to_add.emplace_back(point_table.get_chain_add_accumulator(nafs));
std::vector<std::vector<bool_ct>> naf_entries;
Copy link
Contributor

Choose a reason for hiding this comment

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

The diff on this file is actually essentially trivial--idk why it looks so large here.

std::array<uint32_t, NUM_FR_LIMBS_PER_COMMITMENT> get_witness_indices_for_commitment(const Commitment& point)
requires(IsMegaBuilder<Builder>)
{
// If using a goblin-plonk compatible builder, goblin element coordinates are stored as 2 field elements not 4.
Copy link
Contributor

Choose a reason for hiding this comment

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

Question: why can't we just refactor cycle_group, which also does this iirc.

Copy link
Contributor

Choose a reason for hiding this comment

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

Not suggestion to do, but wondering and suggesting it's worth documenting.

// If using a goblin-plonk compatible builder, goblin element coordinates are stored as 2 field elements not 4.
// We convert to stdlib::bigfield elements so data is stored in the databus uniformly regardless of flavor
using BigFq = stdlib::bigfield<Builder, typename Curve::BaseFieldNative::Params>;
const auto to_bigfield = [](Fr lo, Fr hi) {
Copy link
Contributor

Choose a reason for hiding this comment

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

Could pass by const& here right? Copy constructor will not spin up new witness indices but maybe better for clarity unless I'm mistaken.

@codygunton codygunton merged commit 12a093d into master Sep 11, 2024
72 checks passed
@codygunton codygunton deleted the zw/biggroup_goblin branch September 11, 2024 19:25
TomAFrench pushed a commit that referenced this pull request Sep 13, 2024
🤖 I have created a release *beep* *boop*
---


<details><summary>aztec-package: 0.55.0</summary>

##
[0.55.0](aztec-package-v0.54.0...aztec-package-v0.55.0)
(2024-09-13)


### Bug Fixes

* Load prover node config from env
([#8525](#8525))
([7065962](7065962))


### Miscellaneous

* Remove unneeded propose and da oracle
([#8474](#8474))
([274a6b7](274a6b7))
</details>

<details><summary>barretenberg.js: 0.55.0</summary>

##
[0.55.0](barretenberg.js-v0.54.0...barretenberg.js-v0.55.0)
(2024-09-13)


### Features

* New test programs for wasm benchmarking
([#8389](#8389))
([0b46e96](0b46e96))
</details>

<details><summary>aztec-packages: 0.55.0</summary>

##
[0.55.0](aztec-packages-v0.54.0...aztec-packages-v0.55.0)
(2024-09-13)


### ⚠ BREAKING CHANGES

* Add Not instruction in brillig
([#8488](#8488))
* refactor NoteGetterOptions::select API
([#8504](#8504))
* **avm:** variants for CAST/NOT opcode
([#8497](#8497))
* **avm:** variants for REVERT opcode
([#8487](#8487))

### Features

* (bb) remove redundant constraints on field/group elements when using
goblin plonk
([#8409](#8409))
([12a093d](12a093d))
* Add `Module::structs` (noir-lang/noir#6017)
([cb20e07](cb20e07))
* Add `TypedExpr::get_type`
(noir-lang/noir#5992)
([875cfe6](875cfe6))
* Add assertions for ACVM `FunctionInput` `bit_size`
(noir-lang/noir#5864)
([20d7576](20d7576))
* Add Not instruction in brillig
([#8488](#8488))
([ceda361](ceda361))
* Add timeouts for request / response stream connections
([#8434](#8434))
([190c27f](190c27f))
* **avm:** Parallelize polynomial alloc and set
([#8520](#8520))
([7e73531](7e73531))
* **avm:** Variants for CAST/NOT opcode
([#8497](#8497))
([bc609fa](bc609fa))
* **avm:** Variants for REVERT opcode
([#8487](#8487))
([a0c8915](a0c8915))
* **bb:** Iterative constexpr_for
([#8502](#8502))
([02c3330](02c3330))
* Better error message for misplaced doc comments
(noir-lang/noir#5990)
([875cfe6](875cfe6))
* Change the layout of arrays and vectors to be a single pointer
([#8448](#8448))
([3ad624c](3ad624c))
* Checking finalized sizes + a test of two folding verifiers
([#8503](#8503))
([d9e3f4d](d9e3f4d))
* Extract brillig slice ops to reusable procedures
(noir-lang/noir#6002)
([20d7576](20d7576))
* Format trait impl functions
(noir-lang/noir#6016)
([cb20e07](cb20e07))
* Impl Hash and Eq on more comptime types
(noir-lang/noir#6022)
([cb20e07](cb20e07))
* Implement LSP code action "Implement missing members"
(noir-lang/noir#6020)
([cb20e07](cb20e07))
* Let `has_named_attribute` work for built-in attributes
(noir-lang/noir#6024)
([cb20e07](cb20e07))
* LSP completion function detail
(noir-lang/noir#5993)
([875cfe6](875cfe6))
* Native world state
([#7516](#7516))
([c1aa6f7](c1aa6f7))
* New test programs for wasm benchmarking
([#8389](#8389))
([0b46e96](0b46e96))
* Output timestamps in prover-stats raw logs
([#8476](#8476))
([aa67a14](aa67a14))
* Rate limit peers in request response p2p interactions
([#8498](#8498))
([00146fa](00146fa))
* Refactor NoteGetterOptions::select API
([#8504](#8504))
([e527992](e527992))
* Sync from aztec-packages (noir-lang/noir#5971)
([875cfe6](875cfe6))
* Sync from aztec-packages (noir-lang/noir#6001)
([20d7576](20d7576))
* Use Zac's quicksort algorithm in stdlib sorting
(noir-lang/noir#5940)
([20d7576](20d7576))
* Validators ensure transactions live in their p2p pool before attesting
([#8410](#8410))
([bce1eea](bce1eea))
* Verification key stuff
([#8431](#8431))
([11dc8ff](11dc8ff))


### Bug Fixes

* Correctly print string tokens
(noir-lang/noir#6021)
([cb20e07](cb20e07))
* Enable verifier when deploying the networks
([#8500](#8500))
([f6d31f1](f6d31f1))
* Error when comptime types are used in runtime code
(noir-lang/noir#5987)
([875cfe6](875cfe6))
* Error when mutating comptime variables in non-comptime code
(noir-lang/noir#6003)
([20d7576](20d7576))
* Fix some mistakes in arithmetic generics docs
(noir-lang/noir#5999)
([20d7576](20d7576))
* Fix using lazily elaborated comptime globals
(noir-lang/noir#5995)
([20d7576](20d7576))
* Help link was outdated (noir-lang/noir#6004)
([20d7576](20d7576))
* Load prover node config from env
([#8525](#8525))
([7065962](7065962))
* Remove claim_public from fee juice
([#8337](#8337))
([dca74ae](dca74ae))
* Try to move constant terms to one side for arithmetic generics
(noir-lang/noir#6008)
([cb20e07](cb20e07))
* Use module name as line after which we'll insert auto-import
(noir-lang/noir#6025)
([cb20e07](cb20e07))


### Miscellaneous

* Add some `pub use` and remove unused imports
([#8521](#8521))
([8bd0755](8bd0755))
* **bb:** Fix mac build
([#8505](#8505))
([32fd347](32fd347)),
closes
[#8499](#8499)
* **bb:** Fix mac build
([#8522](#8522))
([986e703](986e703))
* **ci:** Fix bb publishing
([#8486](#8486))
([c210c36](c210c36))
* Fix a load of warnings in aztec-nr
([#8501](#8501))
([35dc1e1](35dc1e1))
* Protogalaxy verifier matches prover 1
([#8414](#8414))
([5a76ec6](5a76ec6))
* Remove RC tracking in mem2reg
(noir-lang/noir#6019)
([cb20e07](cb20e07))
* Remove unneeded propose and da oracle
([#8474](#8474))
([274a6b7](274a6b7))
* Replace relative paths to noir-protocol-circuits
([b179c6b](b179c6b))
* Replace relative paths to noir-protocol-circuits
([1c042be](1c042be))
* Replace relative paths to noir-protocol-circuits
([1c8409f](1c8409f))
* Run mac builds on master
([#8519](#8519))
([c458a79](c458a79))
* Single install script for cargo-binstall
(noir-lang/noir#5998)
([20d7576](20d7576))
* Use uint32_t instead of size_t for databus data
([#8479](#8479))
([79995c8](79995c8))
</details>

<details><summary>barretenberg: 0.55.0</summary>

##
[0.55.0](barretenberg-v0.54.0...barretenberg-v0.55.0)
(2024-09-13)


### ⚠ BREAKING CHANGES

* Add Not instruction in brillig
([#8488](#8488))
* **avm:** variants for CAST/NOT opcode
([#8497](#8497))
* **avm:** variants for REVERT opcode
([#8487](#8487))

### Features

* (bb) remove redundant constraints on field/group elements when using
goblin plonk
([#8409](#8409))
([12a093d](12a093d))
* Add Not instruction in brillig
([#8488](#8488))
([ceda361](ceda361))
* **avm:** Parallelize polynomial alloc and set
([#8520](#8520))
([7e73531](7e73531))
* **avm:** Variants for CAST/NOT opcode
([#8497](#8497))
([bc609fa](bc609fa))
* **avm:** Variants for REVERT opcode
([#8487](#8487))
([a0c8915](a0c8915))
* **bb:** Iterative constexpr_for
([#8502](#8502))
([02c3330](02c3330))
* Checking finalized sizes + a test of two folding verifiers
([#8503](#8503))
([d9e3f4d](d9e3f4d))
* Native world state
([#7516](#7516))
([c1aa6f7](c1aa6f7))
* New test programs for wasm benchmarking
([#8389](#8389))
([0b46e96](0b46e96))
* Verification key stuff
([#8431](#8431))
([11dc8ff](11dc8ff))


### Miscellaneous

* **bb:** Fix mac build
([#8505](#8505))
([32fd347](32fd347)),
closes
[#8499](#8499)
* **bb:** Fix mac build
([#8522](#8522))
([986e703](986e703))
* Protogalaxy verifier matches prover 1
([#8414](#8414))
([5a76ec6](5a76ec6))
* Use uint32_t instead of size_t for databus data
([#8479](#8479))
([79995c8](79995c8))
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
AztecBot added a commit to AztecProtocol/barretenberg that referenced this pull request Sep 14, 2024
🤖 I have created a release *beep* *boop*
---


<details><summary>aztec-package: 0.55.0</summary>

##
[0.55.0](AztecProtocol/aztec-packages@aztec-package-v0.54.0...aztec-package-v0.55.0)
(2024-09-13)


### Bug Fixes

* Load prover node config from env
([#8525](AztecProtocol/aztec-packages#8525))
([7065962](AztecProtocol/aztec-packages@7065962))


### Miscellaneous

* Remove unneeded propose and da oracle
([#8474](AztecProtocol/aztec-packages#8474))
([274a6b7](AztecProtocol/aztec-packages@274a6b7))
</details>

<details><summary>barretenberg.js: 0.55.0</summary>

##
[0.55.0](AztecProtocol/aztec-packages@barretenberg.js-v0.54.0...barretenberg.js-v0.55.0)
(2024-09-13)


### Features

* New test programs for wasm benchmarking
([#8389](AztecProtocol/aztec-packages#8389))
([0b46e96](AztecProtocol/aztec-packages@0b46e96))
</details>

<details><summary>aztec-packages: 0.55.0</summary>

##
[0.55.0](AztecProtocol/aztec-packages@aztec-packages-v0.54.0...aztec-packages-v0.55.0)
(2024-09-13)


### ⚠ BREAKING CHANGES

* Add Not instruction in brillig
([#8488](AztecProtocol/aztec-packages#8488))
* refactor NoteGetterOptions::select API
([#8504](AztecProtocol/aztec-packages#8504))
* **avm:** variants for CAST/NOT opcode
([#8497](AztecProtocol/aztec-packages#8497))
* **avm:** variants for REVERT opcode
([#8487](AztecProtocol/aztec-packages#8487))

### Features

* (bb) remove redundant constraints on field/group elements when using
goblin plonk
([#8409](AztecProtocol/aztec-packages#8409))
([12a093d](AztecProtocol/aztec-packages@12a093d))
* Add `Module::structs` (noir-lang/noir#6017)
([cb20e07](AztecProtocol/aztec-packages@cb20e07))
* Add `TypedExpr::get_type`
(noir-lang/noir#5992)
([875cfe6](AztecProtocol/aztec-packages@875cfe6))
* Add assertions for ACVM `FunctionInput` `bit_size`
(noir-lang/noir#5864)
([20d7576](AztecProtocol/aztec-packages@20d7576))
* Add Not instruction in brillig
([#8488](AztecProtocol/aztec-packages#8488))
([ceda361](AztecProtocol/aztec-packages@ceda361))
* Add timeouts for request / response stream connections
([#8434](AztecProtocol/aztec-packages#8434))
([190c27f](AztecProtocol/aztec-packages@190c27f))
* **avm:** Parallelize polynomial alloc and set
([#8520](AztecProtocol/aztec-packages#8520))
([7e73531](AztecProtocol/aztec-packages@7e73531))
* **avm:** Variants for CAST/NOT opcode
([#8497](AztecProtocol/aztec-packages#8497))
([bc609fa](AztecProtocol/aztec-packages@bc609fa))
* **avm:** Variants for REVERT opcode
([#8487](AztecProtocol/aztec-packages#8487))
([a0c8915](AztecProtocol/aztec-packages@a0c8915))
* **bb:** Iterative constexpr_for
([#8502](AztecProtocol/aztec-packages#8502))
([02c3330](AztecProtocol/aztec-packages@02c3330))
* Better error message for misplaced doc comments
(noir-lang/noir#5990)
([875cfe6](AztecProtocol/aztec-packages@875cfe6))
* Change the layout of arrays and vectors to be a single pointer
([#8448](AztecProtocol/aztec-packages#8448))
([3ad624c](AztecProtocol/aztec-packages@3ad624c))
* Checking finalized sizes + a test of two folding verifiers
([#8503](AztecProtocol/aztec-packages#8503))
([d9e3f4d](AztecProtocol/aztec-packages@d9e3f4d))
* Extract brillig slice ops to reusable procedures
(noir-lang/noir#6002)
([20d7576](AztecProtocol/aztec-packages@20d7576))
* Format trait impl functions
(noir-lang/noir#6016)
([cb20e07](AztecProtocol/aztec-packages@cb20e07))
* Impl Hash and Eq on more comptime types
(noir-lang/noir#6022)
([cb20e07](AztecProtocol/aztec-packages@cb20e07))
* Implement LSP code action "Implement missing members"
(noir-lang/noir#6020)
([cb20e07](AztecProtocol/aztec-packages@cb20e07))
* Let `has_named_attribute` work for built-in attributes
(noir-lang/noir#6024)
([cb20e07](AztecProtocol/aztec-packages@cb20e07))
* LSP completion function detail
(noir-lang/noir#5993)
([875cfe6](AztecProtocol/aztec-packages@875cfe6))
* Native world state
([#7516](AztecProtocol/aztec-packages#7516))
([c1aa6f7](AztecProtocol/aztec-packages@c1aa6f7))
* New test programs for wasm benchmarking
([#8389](AztecProtocol/aztec-packages#8389))
([0b46e96](AztecProtocol/aztec-packages@0b46e96))
* Output timestamps in prover-stats raw logs
([#8476](AztecProtocol/aztec-packages#8476))
([aa67a14](AztecProtocol/aztec-packages@aa67a14))
* Rate limit peers in request response p2p interactions
([#8498](AztecProtocol/aztec-packages#8498))
([00146fa](AztecProtocol/aztec-packages@00146fa))
* Refactor NoteGetterOptions::select API
([#8504](AztecProtocol/aztec-packages#8504))
([e527992](AztecProtocol/aztec-packages@e527992))
* Sync from aztec-packages (noir-lang/noir#5971)
([875cfe6](AztecProtocol/aztec-packages@875cfe6))
* Sync from aztec-packages (noir-lang/noir#6001)
([20d7576](AztecProtocol/aztec-packages@20d7576))
* Use Zac's quicksort algorithm in stdlib sorting
(noir-lang/noir#5940)
([20d7576](AztecProtocol/aztec-packages@20d7576))
* Validators ensure transactions live in their p2p pool before attesting
([#8410](AztecProtocol/aztec-packages#8410))
([bce1eea](AztecProtocol/aztec-packages@bce1eea))
* Verification key stuff
([#8431](AztecProtocol/aztec-packages#8431))
([11dc8ff](AztecProtocol/aztec-packages@11dc8ff))


### Bug Fixes

* Correctly print string tokens
(noir-lang/noir#6021)
([cb20e07](AztecProtocol/aztec-packages@cb20e07))
* Enable verifier when deploying the networks
([#8500](AztecProtocol/aztec-packages#8500))
([f6d31f1](AztecProtocol/aztec-packages@f6d31f1))
* Error when comptime types are used in runtime code
(noir-lang/noir#5987)
([875cfe6](AztecProtocol/aztec-packages@875cfe6))
* Error when mutating comptime variables in non-comptime code
(noir-lang/noir#6003)
([20d7576](AztecProtocol/aztec-packages@20d7576))
* Fix some mistakes in arithmetic generics docs
(noir-lang/noir#5999)
([20d7576](AztecProtocol/aztec-packages@20d7576))
* Fix using lazily elaborated comptime globals
(noir-lang/noir#5995)
([20d7576](AztecProtocol/aztec-packages@20d7576))
* Help link was outdated (noir-lang/noir#6004)
([20d7576](AztecProtocol/aztec-packages@20d7576))
* Load prover node config from env
([#8525](AztecProtocol/aztec-packages#8525))
([7065962](AztecProtocol/aztec-packages@7065962))
* Remove claim_public from fee juice
([#8337](AztecProtocol/aztec-packages#8337))
([dca74ae](AztecProtocol/aztec-packages@dca74ae))
* Try to move constant terms to one side for arithmetic generics
(noir-lang/noir#6008)
([cb20e07](AztecProtocol/aztec-packages@cb20e07))
* Use module name as line after which we'll insert auto-import
(noir-lang/noir#6025)
([cb20e07](AztecProtocol/aztec-packages@cb20e07))


### Miscellaneous

* Add some `pub use` and remove unused imports
([#8521](AztecProtocol/aztec-packages#8521))
([8bd0755](AztecProtocol/aztec-packages@8bd0755))
* **bb:** Fix mac build
([#8505](AztecProtocol/aztec-packages#8505))
([32fd347](AztecProtocol/aztec-packages@32fd347)),
closes
[#8499](AztecProtocol/aztec-packages#8499)
* **bb:** Fix mac build
([#8522](AztecProtocol/aztec-packages#8522))
([986e703](AztecProtocol/aztec-packages@986e703))
* **ci:** Fix bb publishing
([#8486](AztecProtocol/aztec-packages#8486))
([c210c36](AztecProtocol/aztec-packages@c210c36))
* Fix a load of warnings in aztec-nr
([#8501](AztecProtocol/aztec-packages#8501))
([35dc1e1](AztecProtocol/aztec-packages@35dc1e1))
* Protogalaxy verifier matches prover 1
([#8414](AztecProtocol/aztec-packages#8414))
([5a76ec6](AztecProtocol/aztec-packages@5a76ec6))
* Remove RC tracking in mem2reg
(noir-lang/noir#6019)
([cb20e07](AztecProtocol/aztec-packages@cb20e07))
* Remove unneeded propose and da oracle
([#8474](AztecProtocol/aztec-packages#8474))
([274a6b7](AztecProtocol/aztec-packages@274a6b7))
* Replace relative paths to noir-protocol-circuits
([b179c6b](AztecProtocol/aztec-packages@b179c6b))
* Replace relative paths to noir-protocol-circuits
([1c042be](AztecProtocol/aztec-packages@1c042be))
* Replace relative paths to noir-protocol-circuits
([1c8409f](AztecProtocol/aztec-packages@1c8409f))
* Run mac builds on master
([#8519](AztecProtocol/aztec-packages#8519))
([c458a79](AztecProtocol/aztec-packages@c458a79))
* Single install script for cargo-binstall
(noir-lang/noir#5998)
([20d7576](AztecProtocol/aztec-packages@20d7576))
* Use uint32_t instead of size_t for databus data
([#8479](AztecProtocol/aztec-packages#8479))
([79995c8](AztecProtocol/aztec-packages@79995c8))
</details>

<details><summary>barretenberg: 0.55.0</summary>

##
[0.55.0](AztecProtocol/aztec-packages@barretenberg-v0.54.0...barretenberg-v0.55.0)
(2024-09-13)


### ⚠ BREAKING CHANGES

* Add Not instruction in brillig
([#8488](AztecProtocol/aztec-packages#8488))
* **avm:** variants for CAST/NOT opcode
([#8497](AztecProtocol/aztec-packages#8497))
* **avm:** variants for REVERT opcode
([#8487](AztecProtocol/aztec-packages#8487))

### Features

* (bb) remove redundant constraints on field/group elements when using
goblin plonk
([#8409](AztecProtocol/aztec-packages#8409))
([12a093d](AztecProtocol/aztec-packages@12a093d))
* Add Not instruction in brillig
([#8488](AztecProtocol/aztec-packages#8488))
([ceda361](AztecProtocol/aztec-packages@ceda361))
* **avm:** Parallelize polynomial alloc and set
([#8520](AztecProtocol/aztec-packages#8520))
([7e73531](AztecProtocol/aztec-packages@7e73531))
* **avm:** Variants for CAST/NOT opcode
([#8497](AztecProtocol/aztec-packages#8497))
([bc609fa](AztecProtocol/aztec-packages@bc609fa))
* **avm:** Variants for REVERT opcode
([#8487](AztecProtocol/aztec-packages#8487))
([a0c8915](AztecProtocol/aztec-packages@a0c8915))
* **bb:** Iterative constexpr_for
([#8502](AztecProtocol/aztec-packages#8502))
([02c3330](AztecProtocol/aztec-packages@02c3330))
* Checking finalized sizes + a test of two folding verifiers
([#8503](AztecProtocol/aztec-packages#8503))
([d9e3f4d](AztecProtocol/aztec-packages@d9e3f4d))
* Native world state
([#7516](AztecProtocol/aztec-packages#7516))
([c1aa6f7](AztecProtocol/aztec-packages@c1aa6f7))
* New test programs for wasm benchmarking
([#8389](AztecProtocol/aztec-packages#8389))
([0b46e96](AztecProtocol/aztec-packages@0b46e96))
* Verification key stuff
([#8431](AztecProtocol/aztec-packages#8431))
([11dc8ff](AztecProtocol/aztec-packages@11dc8ff))


### Miscellaneous

* **bb:** Fix mac build
([#8505](AztecProtocol/aztec-packages#8505))
([32fd347](AztecProtocol/aztec-packages@32fd347)),
closes
[#8499](AztecProtocol/aztec-packages#8499)
* **bb:** Fix mac build
([#8522](AztecProtocol/aztec-packages#8522))
([986e703](AztecProtocol/aztec-packages@986e703))
* Protogalaxy verifier matches prover 1
([#8414](AztecProtocol/aztec-packages#8414))
([5a76ec6](AztecProtocol/aztec-packages@5a76ec6))
* Use uint32_t instead of size_t for databus data
([#8479](AztecProtocol/aztec-packages#8479))
([79995c8](AztecProtocol/aztec-packages@79995c8))
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants