-
Notifications
You must be signed in to change notification settings - Fork 231
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: translator on Shplemini #9329
Conversation
barretenberg/cpp/src/barretenberg/commitment_schemes/shplonk/shplemini.hpp
Show resolved
Hide resolved
RefSpan<Polynomial<Fr>> multilinear_polynomials, | ||
RefSpan<Polynomial<Fr>> multilinear_polynomials_to_be_shifted, | ||
RefVector<GroupElement> multilinear_commitments, | ||
RefVector<GroupElement> multilinear_commitments_to_be_shifted) | ||
RefVector<Commitment> multilinear_commitments, |
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 unified the use of GroupElement of Commitment in gemini as the fact that some of the code was using GroupElement and so,e Commitment in function signatures was creating annoying compiling error when coupling protocols. Now, we use GroupElement explicitly for operations where it's needed. As I understand, this is fine because the only place where we need to be careful is when adding stuff to transcript (we shouldnt add projective elements to transcript.)
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.
Also the commitment schemes tests do in general need a thorough autumn cleaning, added an issue for that: AztecProtocol/barretenberg#1137
@@ -283,48 +337,6 @@ template <typename Curve> class GeminiVerifier_ { | |||
|
|||
return batched_eval_accumulator; | |||
} |
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 native branch of this code was moved to reduce verification to simplify my work. Basically GeminiVerifier is only going to be used for debugging, in the native universe, and this seemed the simplest approach
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.
LGTM, nice work
std::vector<Commitment> multilinear_commitments_to_be_shifted = { commitment2 }; | ||
|
||
auto [concatenation_groups, concatenated_polynomials, c_evaluations, concatenation_groups_commitments] = | ||
generate_concatenation_inputs<TypeParam>(u, /*mun_concatenated=*/3, /*concatenation_index=*/2, this->ck()); |
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.
typo
@@ -224,13 +255,39 @@ std::vector<typename GeminiProver_<Curve>::Claim> GeminiProver_<Curve>::compute_ | |||
// A₀₋(X) = F(X) - G(X)/r, s.t. A₀₋(-r) = A₀(-r) | |||
A_0_neg -= tmp; | |||
|
|||
// Reconstruct the batched concatenated polynomial from the batched groups, partially evaluated at r and -r and add |
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 wont ask you to un-ascii these comments but keep in mind that we probably are going to need to re-write them eventually
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.
Yeah I know, although ascii makes it so much easier to read when looking at code without having doxygen open which is why I've done it
…plemini' into mm/translator-on-shplemini
* master: fix: remove reliance on invalid decompositions in selector calculation (#9337) chore: disable bench-process-history (#9360) feat(avm): full poseidon2 (#9141) chore: remove noir_js_backend_barretenberg (#9338) feat!: TXE single execution env (#9183) fix(ci): report 4 epochs true (#9346) feat: translator on Shplemini (#9329) fix: support empty epochs (#9341) git subrepo push --branch=master noir-projects/aztec-nr git_subrepo.sh: Fix parent in .gitrepo file. [skip ci] chore: replace relative paths to noir-protocol-circuits git subrepo push --branch=master barretenberg refactor: minor test cleanup (#9339) feat!: remove hash opcodes from AVM (#9209) chore!: remove delegate call and storage address (#9330) feat: publicly accessible bootstrap cache (#9335) fix(avm): public dispatch in proving tests (#9331) test: scenario for upgrading gerousia (#9246)
* master: (45 commits) feat: Sync from noir (#9332) fix: remove reliance on invalid decompositions in selector calculation (#9337) chore: disable bench-process-history (#9360) feat(avm): full poseidon2 (#9141) chore: remove noir_js_backend_barretenberg (#9338) feat!: TXE single execution env (#9183) fix(ci): report 4 epochs true (#9346) feat: translator on Shplemini (#9329) fix: support empty epochs (#9341) git subrepo push --branch=master noir-projects/aztec-nr git_subrepo.sh: Fix parent in .gitrepo file. [skip ci] chore: replace relative paths to noir-protocol-circuits git subrepo push --branch=master barretenberg refactor: minor test cleanup (#9339) feat!: remove hash opcodes from AVM (#9209) chore!: remove delegate call and storage address (#9330) feat: publicly accessible bootstrap cache (#9335) fix(avm): public dispatch in proving tests (#9331) test: scenario for upgrading gerousia (#9246) chore: silence cache-download.sh (#9317) ...
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-package: 0.60.0</summary> ## [0.60.0](aztec-package-v0.59.0...aztec-package-v0.60.0) (2024-10-24) ### Features * Introduce default public keys and replace empty public keys ([#9277](#9277)) ([47718ea](47718ea)) * Sequencer cast votes ([#9247](#9247)) ([bd05d87](bd05d87)) </details> <details><summary>barretenberg.js: 0.60.0</summary> ## [0.60.0](barretenberg.js-v0.59.0...barretenberg.js-v0.60.0) (2024-10-24) ### Features * Eccvm translator zk sumcheck ([#9199](#9199)) ([c7d4572](c7d4572)) ### Miscellaneous * Remove noir_js_backend_barretenberg ([#9338](#9338)) ([cefe3d9](cefe3d9)) </details> <details><summary>aztec-packages: 0.60.0</summary> ## [0.60.0](aztec-packages-v0.59.0...aztec-packages-v0.60.0) (2024-10-24) ### ⚠ BREAKING CHANGES * replace usage of vector in keccakf1600 input with array ([#9350](#9350)) * TXE single execution env ([#9183](#9183)) * remove hash opcodes from AVM ([#9209](#9209)) * remove delegate call and storage address ([#9330](#9330)) ### Features * Apella ([#9084](#9084)) ([205ce69](205ce69)) * **avm:** Full poseidon2 ([#9141](#9141)) ([eae7587](eae7587)) * Bytes to fields and back ([#8590](#8590)) ([65b8493](65b8493)) * Constrain protocol VK hashing ([#9304](#9304)) ([3d17e13](3d17e13)) * **docs:** Nits ([#8948](#8948)) ([008fdd1](008fdd1)) * Eccvm translator zk sumcheck ([#9199](#9199)) ([c7d4572](c7d4572)) * Gerousia ([#8942](#8942)) ([54b5ba2](54b5ba2)) * Get logs by tags ([#9353](#9353)) ([719c33e](719c33e)) * Handle reorgs on sequencer ([#9201](#9201)) ([d4dea16](d4dea16)) * **interpreter:** Comptime derive generators (noir-lang/noir#6303) ([a166203](a166203)) * Introduce default public keys and replace empty public keys ([#9277](#9277)) ([47718ea](47718ea)) * Modify private calldata to use public keys ([#9276](#9276)) ([e42e219](e42e219)) * New formatter (noir-lang/noir#6300) ([a166203](a166203)) * **nr:** Serde for signed ints ([#9211](#9211)) ([66f31c7](66f31c7)) * Publicly accessible bootstrap cache ([#9335](#9335)) ([28392d5](28392d5)) * Remove hash opcodes from AVM ([#9209](#9209)) ([e6db535](e6db535)), closes [#9208](#9208) * Sequencer cast votes ([#9247](#9247)) ([bd05d87](bd05d87)) * Sha256 refactoring and benchmark with longer input (noir-lang/noir#6318) ([a166203](a166203)) * **ssa:** Various mem2reg reverts to reduce memory and compilation time (noir-lang/noir#6307) ([a166203](a166203)) * Sync from aztec-packages (noir-lang/noir#6301) ([a166203](a166203)) * Translator on Shplemini ([#9329](#9329)) ([21fa3cf](21fa3cf)) * TXE single execution env ([#9183](#9183)) ([1d1d76d](1d1d76d)) * Warn about private types leaking in public functions and struct fields (noir-lang/noir#6296) ([a166203](a166203)) ### Bug Fixes * 4epochs kind test et al ([#9358](#9358)) ([e480e6b](e480e6b)) * Allow array map on empty arrays (noir-lang/noir#6305) ([a166203](a166203)) * **avm:** Public dispatch in proving tests ([#9331](#9331)) ([42e5221](42e5221)) * Barretenberg readme scare warning ([#9313](#9313)) ([f759d55](f759d55)) * Broken constants gen ([#9387](#9387)) ([eb7bc6b](eb7bc6b)) * Ci github clone edge case ([#9320](#9320)) ([15abe6f](15abe6f)) * **ci:** Report 4 epochs true ([#9346](#9346)) ([1ce0fa5](1ce0fa5)) * Display function name and body when inlining recursion limit hit (noir-lang/noir#6291) ([a166203](a166203)) * Do not warn on unused self in traits (noir-lang/noir#6298) ([a166203](a166203)) * Enforce correctness of decompositions performed at compile time (noir-lang/noir#6278) ([a166203](a166203)) * Reject invalid expression with in CLI parser (noir-lang/noir#6287) ([a166203](a166203)) * Remove reliance on invalid decompositions in selector calculation ([#9337](#9337)) ([c8e4260](c8e4260)) * Support empty epochs ([#9341](#9341)) ([9dda91e](9dda91e)) * Use github.actor on publish workflow dispatch ([#9324](#9324)) ([5fa660d](5fa660d)) ### Miscellaneous * **avm:** Some cleaning in avm prover ([#9311](#9311)) ([523aa23](523aa23)) * Bump node types ([#9397](#9397)) ([763d5b1](763d5b1)) * Copying world state binary to yarn project is on generate ([#9194](#9194)) ([8d75dd4](8d75dd4)) * Disable bench-process-history ([#9360](#9360)) ([8e6734e](8e6734e)) * **docs:** Refactoring guides and some other nits (noir-lang/noir#6175) ([a166203](a166203)) * Fix and re-enable prover coordination e2e test ([#9344](#9344)) ([3a1a62c](3a1a62c)) * Implement Fq add ([#9354](#9354)) ([1711fac](1711fac)) * Minor test cleanup ([#9339](#9339)) ([a2ed567](a2ed567)) * Print out gas at start and end of each enqueued call ([#9377](#9377)) ([29c0b95](29c0b95)) * Quick account manager refactor ([#9357](#9357)) ([648d043](648d043)) * Quick keystore refactor ([#9355](#9355)) ([31b9999](31b9999)) * Redo typo PR by pucedoteth ([#9385](#9385)) ([fd1a0d1](fd1a0d1)) * Release Noir(0.36.0) (noir-lang/noir#6213) ([a166203](a166203)) * Remove dead function (noir-lang/noir#6308) ([a166203](a166203)) * Remove delegate call and storage address ([#9330](#9330)) ([465f88e](465f88e)) * Remove noir_js_backend_barretenberg ([#9338](#9338)) ([cefe3d9](cefe3d9)) * Remove unnecessary `is_integral_bit_size` function ([#9352](#9352)) ([ac8e6d7](ac8e6d7)) * Remove usage of slices in pedersen hash (noir-lang/noir#6295) ([a166203](a166203)) * Replace relative paths to noir-protocol-circuits ([32bd7b9](32bd7b9)) * Replace relative paths to noir-protocol-circuits ([add4605](add4605)) * Replace relative paths to noir-protocol-circuits ([8cb89af](8cb89af)) * Replace usage of vector in keccakf1600 input with array ([#9350](#9350)) ([cb58490](cb58490)) * Scenario for upgrading gerousia ([#9246](#9246)) ([66f59d6](66f59d6)) * Silence cache-download.sh ([#9317](#9317)) ([314d9d2](314d9d2)) * Test 4epochs in native-network ([#9309](#9309)) ([ddb312a](ddb312a)) * Unstake the bond when the proof lands ([#9363](#9363)) ([b25b913](b25b913)) * Update `noir-edwards` repo to point at `noir-lang` org (noir-lang/noir#6323) ([a166203](a166203)) * Updated NFT flows ([#9150](#9150)) ([407f8b4](407f8b4)) </details> <details><summary>barretenberg: 0.60.0</summary> ## [0.60.0](barretenberg-v0.59.0...barretenberg-v0.60.0) (2024-10-24) ### ⚠ BREAKING CHANGES * replace usage of vector in keccakf1600 input with array ([#9350](#9350)) * remove hash opcodes from AVM ([#9209](#9209)) * remove delegate call and storage address ([#9330](#9330)) ### Features * **avm:** Full poseidon2 ([#9141](#9141)) ([eae7587](eae7587)) * Eccvm translator zk sumcheck ([#9199](#9199)) ([c7d4572](c7d4572)) * Remove hash opcodes from AVM ([#9209](#9209)) ([e6db535](e6db535)), closes [#9208](#9208) * Translator on Shplemini ([#9329](#9329)) ([21fa3cf](21fa3cf)) ### Bug Fixes * **avm:** Public dispatch in proving tests ([#9331](#9331)) ([42e5221](42e5221)) * Barretenberg readme scare warning ([#9313](#9313)) ([f759d55](f759d55)) ### Miscellaneous * **avm:** Some cleaning in avm prover ([#9311](#9311)) ([523aa23](523aa23)) * Copying world state binary to yarn project is on generate ([#9194](#9194)) ([8d75dd4](8d75dd4)) * Remove delegate call and storage address ([#9330](#9330)) ([465f88e](465f88e)) * Remove noir_js_backend_barretenberg ([#9338](#9338)) ([cefe3d9](cefe3d9)) * Replace usage of vector in keccakf1600 input with array ([#9350](#9350)) ([cb58490](cb58490)) </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-package: 0.60.0</summary> ## [0.60.0](AztecProtocol/aztec-packages@aztec-package-v0.59.0...aztec-package-v0.60.0) (2024-10-24) ### Features * Introduce default public keys and replace empty public keys ([#9277](AztecProtocol/aztec-packages#9277)) ([47718ea](AztecProtocol/aztec-packages@47718ea)) * Sequencer cast votes ([#9247](AztecProtocol/aztec-packages#9247)) ([bd05d87](AztecProtocol/aztec-packages@bd05d87)) </details> <details><summary>barretenberg.js: 0.60.0</summary> ## [0.60.0](AztecProtocol/aztec-packages@barretenberg.js-v0.59.0...barretenberg.js-v0.60.0) (2024-10-24) ### Features * Eccvm translator zk sumcheck ([#9199](AztecProtocol/aztec-packages#9199)) ([c7d4572](AztecProtocol/aztec-packages@c7d4572)) ### Miscellaneous * Remove noir_js_backend_barretenberg ([#9338](AztecProtocol/aztec-packages#9338)) ([cefe3d9](AztecProtocol/aztec-packages@cefe3d9)) </details> <details><summary>aztec-packages: 0.60.0</summary> ## [0.60.0](AztecProtocol/aztec-packages@aztec-packages-v0.59.0...aztec-packages-v0.60.0) (2024-10-24) ### ⚠ BREAKING CHANGES * replace usage of vector in keccakf1600 input with array ([#9350](AztecProtocol/aztec-packages#9350)) * TXE single execution env ([#9183](AztecProtocol/aztec-packages#9183)) * remove hash opcodes from AVM ([#9209](AztecProtocol/aztec-packages#9209)) * remove delegate call and storage address ([#9330](AztecProtocol/aztec-packages#9330)) ### Features * Apella ([#9084](AztecProtocol/aztec-packages#9084)) ([205ce69](AztecProtocol/aztec-packages@205ce69)) * **avm:** Full poseidon2 ([#9141](AztecProtocol/aztec-packages#9141)) ([eae7587](AztecProtocol/aztec-packages@eae7587)) * Bytes to fields and back ([#8590](AztecProtocol/aztec-packages#8590)) ([65b8493](AztecProtocol/aztec-packages@65b8493)) * Constrain protocol VK hashing ([#9304](AztecProtocol/aztec-packages#9304)) ([3d17e13](AztecProtocol/aztec-packages@3d17e13)) * **docs:** Nits ([#8948](AztecProtocol/aztec-packages#8948)) ([008fdd1](AztecProtocol/aztec-packages@008fdd1)) * Eccvm translator zk sumcheck ([#9199](AztecProtocol/aztec-packages#9199)) ([c7d4572](AztecProtocol/aztec-packages@c7d4572)) * Gerousia ([#8942](AztecProtocol/aztec-packages#8942)) ([54b5ba2](AztecProtocol/aztec-packages@54b5ba2)) * Get logs by tags ([#9353](AztecProtocol/aztec-packages#9353)) ([719c33e](AztecProtocol/aztec-packages@719c33e)) * Handle reorgs on sequencer ([#9201](AztecProtocol/aztec-packages#9201)) ([d4dea16](AztecProtocol/aztec-packages@d4dea16)) * **interpreter:** Comptime derive generators (noir-lang/noir#6303) ([a166203](AztecProtocol/aztec-packages@a166203)) * Introduce default public keys and replace empty public keys ([#9277](AztecProtocol/aztec-packages#9277)) ([47718ea](AztecProtocol/aztec-packages@47718ea)) * Modify private calldata to use public keys ([#9276](AztecProtocol/aztec-packages#9276)) ([e42e219](AztecProtocol/aztec-packages@e42e219)) * New formatter (noir-lang/noir#6300) ([a166203](AztecProtocol/aztec-packages@a166203)) * **nr:** Serde for signed ints ([#9211](AztecProtocol/aztec-packages#9211)) ([66f31c7](AztecProtocol/aztec-packages@66f31c7)) * Publicly accessible bootstrap cache ([#9335](AztecProtocol/aztec-packages#9335)) ([28392d5](AztecProtocol/aztec-packages@28392d5)) * Remove hash opcodes from AVM ([#9209](AztecProtocol/aztec-packages#9209)) ([e6db535](AztecProtocol/aztec-packages@e6db535)), closes [#9208](AztecProtocol/aztec-packages#9208) * Sequencer cast votes ([#9247](AztecProtocol/aztec-packages#9247)) ([bd05d87](AztecProtocol/aztec-packages@bd05d87)) * Sha256 refactoring and benchmark with longer input (noir-lang/noir#6318) ([a166203](AztecProtocol/aztec-packages@a166203)) * **ssa:** Various mem2reg reverts to reduce memory and compilation time (noir-lang/noir#6307) ([a166203](AztecProtocol/aztec-packages@a166203)) * Sync from aztec-packages (noir-lang/noir#6301) ([a166203](AztecProtocol/aztec-packages@a166203)) * Translator on Shplemini ([#9329](AztecProtocol/aztec-packages#9329)) ([21fa3cf](AztecProtocol/aztec-packages@21fa3cf)) * TXE single execution env ([#9183](AztecProtocol/aztec-packages#9183)) ([1d1d76d](AztecProtocol/aztec-packages@1d1d76d)) * Warn about private types leaking in public functions and struct fields (noir-lang/noir#6296) ([a166203](AztecProtocol/aztec-packages@a166203)) ### Bug Fixes * 4epochs kind test et al ([#9358](AztecProtocol/aztec-packages#9358)) ([e480e6b](AztecProtocol/aztec-packages@e480e6b)) * Allow array map on empty arrays (noir-lang/noir#6305) ([a166203](AztecProtocol/aztec-packages@a166203)) * **avm:** Public dispatch in proving tests ([#9331](AztecProtocol/aztec-packages#9331)) ([42e5221](AztecProtocol/aztec-packages@42e5221)) * Barretenberg readme scare warning ([#9313](AztecProtocol/aztec-packages#9313)) ([f759d55](AztecProtocol/aztec-packages@f759d55)) * Broken constants gen ([#9387](AztecProtocol/aztec-packages#9387)) ([eb7bc6b](AztecProtocol/aztec-packages@eb7bc6b)) * Ci github clone edge case ([#9320](AztecProtocol/aztec-packages#9320)) ([15abe6f](AztecProtocol/aztec-packages@15abe6f)) * **ci:** Report 4 epochs true ([#9346](AztecProtocol/aztec-packages#9346)) ([1ce0fa5](AztecProtocol/aztec-packages@1ce0fa5)) * Display function name and body when inlining recursion limit hit (noir-lang/noir#6291) ([a166203](AztecProtocol/aztec-packages@a166203)) * Do not warn on unused self in traits (noir-lang/noir#6298) ([a166203](AztecProtocol/aztec-packages@a166203)) * Enforce correctness of decompositions performed at compile time (noir-lang/noir#6278) ([a166203](AztecProtocol/aztec-packages@a166203)) * Reject invalid expression with in CLI parser (noir-lang/noir#6287) ([a166203](AztecProtocol/aztec-packages@a166203)) * Remove reliance on invalid decompositions in selector calculation ([#9337](AztecProtocol/aztec-packages#9337)) ([c8e4260](AztecProtocol/aztec-packages@c8e4260)) * Support empty epochs ([#9341](AztecProtocol/aztec-packages#9341)) ([9dda91e](AztecProtocol/aztec-packages@9dda91e)) * Use github.actor on publish workflow dispatch ([#9324](AztecProtocol/aztec-packages#9324)) ([5fa660d](AztecProtocol/aztec-packages@5fa660d)) ### Miscellaneous * **avm:** Some cleaning in avm prover ([#9311](AztecProtocol/aztec-packages#9311)) ([523aa23](AztecProtocol/aztec-packages@523aa23)) * Bump node types ([#9397](AztecProtocol/aztec-packages#9397)) ([763d5b1](AztecProtocol/aztec-packages@763d5b1)) * Copying world state binary to yarn project is on generate ([#9194](AztecProtocol/aztec-packages#9194)) ([8d75dd4](AztecProtocol/aztec-packages@8d75dd4)) * Disable bench-process-history ([#9360](AztecProtocol/aztec-packages#9360)) ([8e6734e](AztecProtocol/aztec-packages@8e6734e)) * **docs:** Refactoring guides and some other nits (noir-lang/noir#6175) ([a166203](AztecProtocol/aztec-packages@a166203)) * Fix and re-enable prover coordination e2e test ([#9344](AztecProtocol/aztec-packages#9344)) ([3a1a62c](AztecProtocol/aztec-packages@3a1a62c)) * Implement Fq add ([#9354](AztecProtocol/aztec-packages#9354)) ([1711fac](AztecProtocol/aztec-packages@1711fac)) * Minor test cleanup ([#9339](AztecProtocol/aztec-packages#9339)) ([a2ed567](AztecProtocol/aztec-packages@a2ed567)) * Print out gas at start and end of each enqueued call ([#9377](AztecProtocol/aztec-packages#9377)) ([29c0b95](AztecProtocol/aztec-packages@29c0b95)) * Quick account manager refactor ([#9357](AztecProtocol/aztec-packages#9357)) ([648d043](AztecProtocol/aztec-packages@648d043)) * Quick keystore refactor ([#9355](AztecProtocol/aztec-packages#9355)) ([31b9999](AztecProtocol/aztec-packages@31b9999)) * Redo typo PR by pucedoteth ([#9385](AztecProtocol/aztec-packages#9385)) ([fd1a0d1](AztecProtocol/aztec-packages@fd1a0d1)) * Release Noir(0.36.0) (noir-lang/noir#6213) ([a166203](AztecProtocol/aztec-packages@a166203)) * Remove dead function (noir-lang/noir#6308) ([a166203](AztecProtocol/aztec-packages@a166203)) * Remove delegate call and storage address ([#9330](AztecProtocol/aztec-packages#9330)) ([465f88e](AztecProtocol/aztec-packages@465f88e)) * Remove noir_js_backend_barretenberg ([#9338](AztecProtocol/aztec-packages#9338)) ([cefe3d9](AztecProtocol/aztec-packages@cefe3d9)) * Remove unnecessary `is_integral_bit_size` function ([#9352](AztecProtocol/aztec-packages#9352)) ([ac8e6d7](AztecProtocol/aztec-packages@ac8e6d7)) * Remove usage of slices in pedersen hash (noir-lang/noir#6295) ([a166203](AztecProtocol/aztec-packages@a166203)) * Replace relative paths to noir-protocol-circuits ([32bd7b9](AztecProtocol/aztec-packages@32bd7b9)) * Replace relative paths to noir-protocol-circuits ([add4605](AztecProtocol/aztec-packages@add4605)) * Replace relative paths to noir-protocol-circuits ([8cb89af](AztecProtocol/aztec-packages@8cb89af)) * Replace usage of vector in keccakf1600 input with array ([#9350](AztecProtocol/aztec-packages#9350)) ([cb58490](AztecProtocol/aztec-packages@cb58490)) * Scenario for upgrading gerousia ([#9246](AztecProtocol/aztec-packages#9246)) ([66f59d6](AztecProtocol/aztec-packages@66f59d6)) * Silence cache-download.sh ([#9317](AztecProtocol/aztec-packages#9317)) ([314d9d2](AztecProtocol/aztec-packages@314d9d2)) * Test 4epochs in native-network ([#9309](AztecProtocol/aztec-packages#9309)) ([ddb312a](AztecProtocol/aztec-packages@ddb312a)) * Unstake the bond when the proof lands ([#9363](AztecProtocol/aztec-packages#9363)) ([b25b913](AztecProtocol/aztec-packages@b25b913)) * Update `noir-edwards` repo to point at `noir-lang` org (noir-lang/noir#6323) ([a166203](AztecProtocol/aztec-packages@a166203)) * Updated NFT flows ([#9150](AztecProtocol/aztec-packages#9150)) ([407f8b4](AztecProtocol/aztec-packages@407f8b4)) </details> <details><summary>barretenberg: 0.60.0</summary> ## [0.60.0](AztecProtocol/aztec-packages@barretenberg-v0.59.0...barretenberg-v0.60.0) (2024-10-24) ### ⚠ BREAKING CHANGES * replace usage of vector in keccakf1600 input with array ([#9350](AztecProtocol/aztec-packages#9350)) * remove hash opcodes from AVM ([#9209](AztecProtocol/aztec-packages#9209)) * remove delegate call and storage address ([#9330](AztecProtocol/aztec-packages#9330)) ### Features * **avm:** Full poseidon2 ([#9141](AztecProtocol/aztec-packages#9141)) ([eae7587](AztecProtocol/aztec-packages@eae7587)) * Eccvm translator zk sumcheck ([#9199](AztecProtocol/aztec-packages#9199)) ([c7d4572](AztecProtocol/aztec-packages@c7d4572)) * Remove hash opcodes from AVM ([#9209](AztecProtocol/aztec-packages#9209)) ([e6db535](AztecProtocol/aztec-packages@e6db535)), closes [#9208](AztecProtocol/aztec-packages#9208) * Translator on Shplemini ([#9329](AztecProtocol/aztec-packages#9329)) ([21fa3cf](AztecProtocol/aztec-packages@21fa3cf)) ### Bug Fixes * **avm:** Public dispatch in proving tests ([#9331](AztecProtocol/aztec-packages#9331)) ([42e5221](AztecProtocol/aztec-packages@42e5221)) * Barretenberg readme scare warning ([#9313](AztecProtocol/aztec-packages#9313)) ([f759d55](AztecProtocol/aztec-packages@f759d55)) ### Miscellaneous * **avm:** Some cleaning in avm prover ([#9311](AztecProtocol/aztec-packages#9311)) ([523aa23](AztecProtocol/aztec-packages@523aa23)) * Copying world state binary to yarn project is on generate ([#9194](AztecProtocol/aztec-packages#9194)) ([8d75dd4](AztecProtocol/aztec-packages@8d75dd4)) * Remove delegate call and storage address ([#9330](AztecProtocol/aztec-packages#9330)) ([465f88e](AztecProtocol/aztec-packages@465f88e)) * Remove noir_js_backend_barretenberg ([#9338](AztecProtocol/aztec-packages#9338)) ([cefe3d9](AztecProtocol/aztec-packages@cefe3d9)) * Replace usage of vector in keccakf1600 input with array ([#9350](AztecProtocol/aztec-packages#9350)) ([cb58490](AztecProtocol/aztec-packages@cb58490)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
In this PR:
The Translator VM works on many many small polynomials (whose length is determined by a "minicircuit size"). To avoid the permutation relation having a very high degree, these small polynomials are split into groups, and each group is concatenated into a single polynomial. We want the prover to avoid having to commit to these extra concatenation polynomials (as they will likely not be sparse at all) but rather reuse the commitments to the polynomials in its corresponding concatenation group, also showing they are correctly related in the opening protocol. Briefly, in Gemini, this is achieved by adding the contributibution to the batched concatenated polynomials when computing the fold polynomials (A_0, A_1, ..., A_(logn -1)) but computing A_0- and A_0+ using the polyinomials in the batched concatenated groups. As the verifier only receives commitments to A_1, .., A_(logn-1) and has to compute the commitments to A_0- and A_0+ , it can then do this using the commitments of the polynomials in concatenation groups.