-
Notifications
You must be signed in to change notification settings - Fork 268
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
refactor: template Zeromorph by PCS #5215
Conversation
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.
Tree insertion statsThe duration to insert a fixed batch of leaves into each tree type.
MiscellaneousTransaction sizes based on how many contract classes are registered in the tx.
Transaction processing duration by data writes.
|
74ae8c1
to
089b5e9
Compare
@@ -75,13 +77,13 @@ template <typename Curve> class KZG { | |||
* - P₀ = C − v⋅[1]₁ + r⋅[W(x)]₁ | |||
* - P₁ = [W(x)]₁ | |||
*/ | |||
static std::array<GroupElement, 2> compute_pairing_points(const OpeningClaim<Curve>& claim, | |||
const auto& verifier_transcript) | |||
static VerifierAccumulator reduce_verify(const OpeningClaim<Curve>& claim, const auto& verifier_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.
my attempt at starting to unify interfaces for Zeromorph, IPA verifier will also call reduce_verify
in a subsequent PR and return a VerifierAccumulator that for now is set to bool
(we always perform the full IPA verification) until we have the IPA Accumulators implemented
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.
Looks good, just a couple of comments about comments
@@ -32,8 +32,8 @@ bool AvmVerifier::verify_proof(const HonkProof& proof) | |||
using Flavor = AvmFlavor; | |||
using FF = Flavor::FF; | |||
using Commitment = Flavor::Commitment; | |||
// using Curve = Flavor::Curve; | |||
// using ZeroMorph = ZeroMorphVerifier_<Curve>; | |||
// using PCS = Flavor::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.
delete?
@@ -32,8 +32,8 @@ bool ToyVerifier::verify_proof(const HonkProof& proof) | |||
using Flavor = ToyFlavor; | |||
using FF = Flavor::FF; | |||
using Commitment = Flavor::Commitment; | |||
// using Curve = Flavor::Curve; | |||
// using ZeroMorph = ZeroMorphVerifier_<Curve>; | |||
// using PCS = Flavor::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.
delete?
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 suppose, didn't want to mess with the code, just kind of changed the commented stuff to compile
* @brief Compute combined evaluation and degree-check polynomial pi | ||
* @details Compute univariate polynomial pi, where | ||
* | ||
* pi = (\zeta_c + z*Z_x) X^{N_{max}-(N-1)} |
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.
any reason you removed some of the details from this comment? I think it can't hurt to have
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.
oh, just because the quotient is going to be computed in KZG and it might not even be a quotient (i.e. in IPA it's not )
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 what will happen if we instantiate zeromorph with kzg so we can keep the details
using FF = typename Curve::ScalarField; | ||
using Commitment = typename Curve::AffineElement; | ||
using GroupElement = typename Curve::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.
is this alias used?
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.
nope, thanks, removed
// Receive proof commitment \pi | ||
auto C_pi = transcript->template receive_from_prover<Commitment>("ZM:PI"); | ||
|
||
// Construct inputs and perform pairing check to verify claimed evaluation |
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 this explanation of the meaning of the pairing inputs was helpful, no? Can we find a way to keep it?
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 in KZG, with notation made more general, to fit existing one
d80088c
to
73c79a7
Compare
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-package: 0.29.0</summary> ## [0.29.0](aztec-package-v0.28.1...aztec-package-v0.29.0) (2024-03-18) ### Features * Initial Earthly CI ([#5069](#5069)) ([8e75fe5](8e75fe5)) </details> <details><summary>barretenberg.js: 0.29.0</summary> ## [0.29.0](barretenberg.js-v0.28.1...barretenberg.js-v0.29.0) (2024-03-18) ### Features * Initial Earthly CI ([#5069](#5069)) ([8e75fe5](8e75fe5)) </details> <details><summary>aztec-cli: 0.29.0</summary> ## [0.29.0](aztec-cli-v0.28.1...aztec-cli-v0.29.0) (2024-03-18) ### Features * Use deployer in address computation ([#5201](#5201)) ([258ff4a](258ff4a)) ### Miscellaneous * Delete ContractData ([#5258](#5258)) ([e516f9b](e516f9b)) * Delete ExtendedContractData struct ([#5248](#5248)) ([8ae0c13](8ae0c13)) * Removing redundant receipts check ([#5271](#5271)) ([5ab07fb](5ab07fb)) </details> <details><summary>aztec-packages: 0.29.0</summary> ## [0.29.0](aztec-packages-v0.28.1...aztec-packages-v0.29.0) (2024-03-18) ### ⚠ BREAKING CHANGES * Acir call opcode ([#4773](#4773)) ### Features * Acir call opcode ([#4773](#4773)) ([0b15db2](0b15db2)) * Add as_slice builtin function, add execution test (noir-lang/noir#4523) ([86e1a86](86e1a86)) * Add more impls on Option (noir-lang/noir#4549) ([86e1a86](86e1a86)) * Add RelWithAssert build ([#4997](#4997)) ([4f337c7](4f337c7)) * Allow usage of noir `#[test]` syntax in stdlib (noir-lang/noir#4553) ([86e1a86](86e1a86)) * **AuthWit:** Simplify create authwit syntax ([#5132](#5132)) ([d0a5b19](d0a5b19)) * **avm:** Brillig CONST of size > u128 ([#5217](#5217)) ([2e63479](2e63479)) * **avm:** Mov opcode with direct memory ([#5204](#5204)) ([08f9038](08f9038)), closes [#5159](#5159) * Brillig IR refactor ([#5233](#5233)) ([9a73348](9a73348)) * Check initializer msg.sender matches deployer from address preimage ([#5222](#5222)) ([438d16f](438d16f)) * Extended IPA tests and fuzzing ([#5140](#5140)) ([0ae5ace](0ae5ace)) * Initial Earthly CI ([#5069](#5069)) ([8e75fe5](8e75fe5)) * New Outbox Contract [#4768](#4768) ([#5090](#5090)) ([6421a3d](6421a3d)) * Remove curly braces with fmt (noir-lang/noir#4529) ([86e1a86](86e1a86)) * Remove curly braces with fmt (noir-lang/noir#4529) ([d8b8456](d8b8456)) * Remove unnecessary `mulmod`s from verifier contract ([#5269](#5269)) ([20d9c0c](20d9c0c)) * Signed integer division and modulus in brillig gen ([#5279](#5279)) ([82f8cf5](82f8cf5)) * Use deployer in address computation ([#5201](#5201)) ([258ff4a](258ff4a)) ### Bug Fixes * **avm-transpiler:** RETURN is direct ([#5277](#5277)) ([f90b2cf](f90b2cf)) * **bb:** Mac build ([#5253](#5253)) ([ae021c0](ae021c0)) * CVC5 api update ([#5203](#5203)) ([9cc32cb](9cc32cb)) * Evaluate operators in globals in types (noir-lang/noir#4537) ([86e1a86](86e1a86)) * Evaluate operators in globals in types (noir-lang/noir#4537) ([d8b8456](d8b8456)) * Make `nargo` the default binary for cargo run (noir-lang/noir#4554) ([86e1a86](86e1a86)) * Make `nargo` the default binary for cargo run (noir-lang/noir#4554) ([d8b8456](d8b8456)) * Revert "fix: noir mirror merge strat" ([#5250](#5250)) ([7e8e8e5](7e8e8e5)) * Validation requests ([#5236](#5236)) ([25ce33b](25ce33b)) ### Miscellaneous * Add avm team to codeowners for public context ([#5288](#5288)) ([e146076](e146076)) * Add more `Hash` impls to stdlib (noir-lang/noir#4470) ([86e1a86](86e1a86)) * Add more `Hash` impls to stdlib (noir-lang/noir#4470) ([d8b8456](d8b8456)) * Add quick explanatory comment to outbox suggested by [@benesjan](https://github.com/benesjan) ([#5247](#5247)) ([56e8451](56e8451)) * **avm-simulator:** Update e2e test ([#5283](#5283)) ([e9beeca](e9beeca)) * **avm-transpiler:** Return u8 in comparison ops ([#5280](#5280)) ([1a5eb69](1a5eb69)) * **avm-transpiler:** Transpiler cleanup ([#5218](#5218)) ([199e918](199e918)) * Delete ContractDao ([#5256](#5256)) ([544e278](544e278)) * Delete ContractData ([#5258](#5258)) ([e516f9b](e516f9b)) * Delete ExtendedContractData struct ([#5248](#5248)) ([8ae0c13](8ae0c13)) * Delete isInternal and isConstructor fields from FunctionData ([#5232](#5232)) ([dea3f87](dea3f87)) * Delete unused contract tree ts code ([#5229](#5229)) ([b48dd23](b48dd23)) * Delete unused hash functions ([#5231](#5231)) ([fed70a1](fed70a1)) * Fix docker test workflows (noir-lang/noir#4566) ([86e1a86](86e1a86)) * Fixing some broken links (noir-lang/noir#4556) ([86e1a86](86e1a86)) * Making docs build before cutting versions (noir-lang/noir#4568) ([86e1a86](86e1a86)) * Old inbox purge ([#5206](#5206)) ([a26d968](a26d968)) * Removing redundant receipts check ([#5271](#5271)) ([5ab07fb](5ab07fb)) * Separate tests for execution failures from compilation failures (noir-lang/noir#4559) ([86e1a86](86e1a86)) * Separate tests for execution failures from compilation failures (noir-lang/noir#4559) ([d8b8456](d8b8456)) * Template Zeromorph by PCS ([#5215](#5215)) ([03feab2](03feab2)) * Use inotifywait to run generate in yarn-project ([#5168](#5168)) ([137c13e](137c13e)) ### Documentation * **yp:** Remove contract tree and deploy data from circuits and state ([#5260](#5260)) ([acffa7b](acffa7b)) </details> <details><summary>barretenberg: 0.29.0</summary> ## [0.29.0](barretenberg-v0.28.1...barretenberg-v0.29.0) (2024-03-18) ### ⚠ BREAKING CHANGES * Acir call opcode ([#4773](#4773)) ### Features * Acir call opcode ([#4773](#4773)) ([0b15db2](0b15db2)) * Add RelWithAssert build ([#4997](#4997)) ([4f337c7](4f337c7)) * **avm:** Mov opcode with direct memory ([#5204](#5204)) ([08f9038](08f9038)), closes [#5159](#5159) * Extended IPA tests and fuzzing ([#5140](#5140)) ([0ae5ace](0ae5ace)) * Initial Earthly CI ([#5069](#5069)) ([8e75fe5](8e75fe5)) * Remove unnecessary `mulmod`s from verifier contract ([#5269](#5269)) ([20d9c0c](20d9c0c)) * Signed integer division and modulus in brillig gen ([#5279](#5279)) ([82f8cf5](82f8cf5)) ### Bug Fixes * **bb:** Mac build ([#5253](#5253)) ([ae021c0](ae021c0)) * CVC5 api update ([#5203](#5203)) ([9cc32cb](9cc32cb)) ### Miscellaneous * Template Zeromorph by PCS ([#5215](#5215)) ([03feab2](03feab2)) </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.29.0</summary> ## [0.29.0](AztecProtocol/aztec-packages@aztec-package-v0.28.1...aztec-package-v0.29.0) (2024-03-18) ### Features * Initial Earthly CI ([#5069](AztecProtocol/aztec-packages#5069)) ([8e75fe5](AztecProtocol/aztec-packages@8e75fe5)) </details> <details><summary>barretenberg.js: 0.29.0</summary> ## [0.29.0](AztecProtocol/aztec-packages@barretenberg.js-v0.28.1...barretenberg.js-v0.29.0) (2024-03-18) ### Features * Initial Earthly CI ([#5069](AztecProtocol/aztec-packages#5069)) ([8e75fe5](AztecProtocol/aztec-packages@8e75fe5)) </details> <details><summary>aztec-cli: 0.29.0</summary> ## [0.29.0](AztecProtocol/aztec-packages@aztec-cli-v0.28.1...aztec-cli-v0.29.0) (2024-03-18) ### Features * Use deployer in address computation ([#5201](AztecProtocol/aztec-packages#5201)) ([258ff4a](AztecProtocol/aztec-packages@258ff4a)) ### Miscellaneous * Delete ContractData ([#5258](AztecProtocol/aztec-packages#5258)) ([e516f9b](AztecProtocol/aztec-packages@e516f9b)) * Delete ExtendedContractData struct ([#5248](AztecProtocol/aztec-packages#5248)) ([8ae0c13](AztecProtocol/aztec-packages@8ae0c13)) * Removing redundant receipts check ([#5271](AztecProtocol/aztec-packages#5271)) ([5ab07fb](AztecProtocol/aztec-packages@5ab07fb)) </details> <details><summary>aztec-packages: 0.29.0</summary> ## [0.29.0](AztecProtocol/aztec-packages@aztec-packages-v0.28.1...aztec-packages-v0.29.0) (2024-03-18) ### ⚠ BREAKING CHANGES * Acir call opcode ([#4773](AztecProtocol/aztec-packages#4773)) ### Features * Acir call opcode ([#4773](AztecProtocol/aztec-packages#4773)) ([0b15db2](AztecProtocol/aztec-packages@0b15db2)) * Add as_slice builtin function, add execution test (noir-lang/noir#4523) ([86e1a86](AztecProtocol/aztec-packages@86e1a86)) * Add more impls on Option (noir-lang/noir#4549) ([86e1a86](AztecProtocol/aztec-packages@86e1a86)) * Add RelWithAssert build ([#4997](AztecProtocol/aztec-packages#4997)) ([4f337c7](AztecProtocol/aztec-packages@4f337c7)) * Allow usage of noir `#[test]` syntax in stdlib (noir-lang/noir#4553) ([86e1a86](AztecProtocol/aztec-packages@86e1a86)) * **AuthWit:** Simplify create authwit syntax ([#5132](AztecProtocol/aztec-packages#5132)) ([d0a5b19](AztecProtocol/aztec-packages@d0a5b19)) * **avm:** Brillig CONST of size > u128 ([#5217](AztecProtocol/aztec-packages#5217)) ([2e63479](AztecProtocol/aztec-packages@2e63479)) * **avm:** Mov opcode with direct memory ([#5204](AztecProtocol/aztec-packages#5204)) ([08f9038](AztecProtocol/aztec-packages@08f9038)), closes [#5159](AztecProtocol/aztec-packages#5159) * Brillig IR refactor ([#5233](AztecProtocol/aztec-packages#5233)) ([9a73348](AztecProtocol/aztec-packages@9a73348)) * Check initializer msg.sender matches deployer from address preimage ([#5222](AztecProtocol/aztec-packages#5222)) ([438d16f](AztecProtocol/aztec-packages@438d16f)) * Extended IPA tests and fuzzing ([#5140](AztecProtocol/aztec-packages#5140)) ([0ae5ace](AztecProtocol/aztec-packages@0ae5ace)) * Initial Earthly CI ([#5069](AztecProtocol/aztec-packages#5069)) ([8e75fe5](AztecProtocol/aztec-packages@8e75fe5)) * New Outbox Contract [#4768](AztecProtocol/aztec-packages#4768) ([#5090](AztecProtocol/aztec-packages#5090)) ([6421a3d](AztecProtocol/aztec-packages@6421a3d)) * Remove curly braces with fmt (noir-lang/noir#4529) ([86e1a86](AztecProtocol/aztec-packages@86e1a86)) * Remove curly braces with fmt (noir-lang/noir#4529) ([d8b8456](AztecProtocol/aztec-packages@d8b8456)) * Remove unnecessary `mulmod`s from verifier contract ([#5269](AztecProtocol/aztec-packages#5269)) ([20d9c0c](AztecProtocol/aztec-packages@20d9c0c)) * Signed integer division and modulus in brillig gen ([#5279](AztecProtocol/aztec-packages#5279)) ([82f8cf5](AztecProtocol/aztec-packages@82f8cf5)) * Use deployer in address computation ([#5201](AztecProtocol/aztec-packages#5201)) ([258ff4a](AztecProtocol/aztec-packages@258ff4a)) ### Bug Fixes * **avm-transpiler:** RETURN is direct ([#5277](AztecProtocol/aztec-packages#5277)) ([f90b2cf](AztecProtocol/aztec-packages@f90b2cf)) * **bb:** Mac build ([#5253](AztecProtocol/aztec-packages#5253)) ([ae021c0](AztecProtocol/aztec-packages@ae021c0)) * CVC5 api update ([#5203](AztecProtocol/aztec-packages#5203)) ([9cc32cb](AztecProtocol/aztec-packages@9cc32cb)) * Evaluate operators in globals in types (noir-lang/noir#4537) ([86e1a86](AztecProtocol/aztec-packages@86e1a86)) * Evaluate operators in globals in types (noir-lang/noir#4537) ([d8b8456](AztecProtocol/aztec-packages@d8b8456)) * Make `nargo` the default binary for cargo run (noir-lang/noir#4554) ([86e1a86](AztecProtocol/aztec-packages@86e1a86)) * Make `nargo` the default binary for cargo run (noir-lang/noir#4554) ([d8b8456](AztecProtocol/aztec-packages@d8b8456)) * Revert "fix: noir mirror merge strat" ([#5250](AztecProtocol/aztec-packages#5250)) ([7e8e8e5](AztecProtocol/aztec-packages@7e8e8e5)) * Validation requests ([#5236](AztecProtocol/aztec-packages#5236)) ([25ce33b](AztecProtocol/aztec-packages@25ce33b)) ### Miscellaneous * Add avm team to codeowners for public context ([#5288](AztecProtocol/aztec-packages#5288)) ([e146076](AztecProtocol/aztec-packages@e146076)) * Add more `Hash` impls to stdlib (noir-lang/noir#4470) ([86e1a86](AztecProtocol/aztec-packages@86e1a86)) * Add more `Hash` impls to stdlib (noir-lang/noir#4470) ([d8b8456](AztecProtocol/aztec-packages@d8b8456)) * Add quick explanatory comment to outbox suggested by [@benesjan](https://github.com/benesjan) ([#5247](AztecProtocol/aztec-packages#5247)) ([56e8451](AztecProtocol/aztec-packages@56e8451)) * **avm-simulator:** Update e2e test ([#5283](AztecProtocol/aztec-packages#5283)) ([e9beeca](AztecProtocol/aztec-packages@e9beeca)) * **avm-transpiler:** Return u8 in comparison ops ([#5280](AztecProtocol/aztec-packages#5280)) ([1a5eb69](AztecProtocol/aztec-packages@1a5eb69)) * **avm-transpiler:** Transpiler cleanup ([#5218](AztecProtocol/aztec-packages#5218)) ([199e918](AztecProtocol/aztec-packages@199e918)) * Delete ContractDao ([#5256](AztecProtocol/aztec-packages#5256)) ([544e278](AztecProtocol/aztec-packages@544e278)) * Delete ContractData ([#5258](AztecProtocol/aztec-packages#5258)) ([e516f9b](AztecProtocol/aztec-packages@e516f9b)) * Delete ExtendedContractData struct ([#5248](AztecProtocol/aztec-packages#5248)) ([8ae0c13](AztecProtocol/aztec-packages@8ae0c13)) * Delete isInternal and isConstructor fields from FunctionData ([#5232](AztecProtocol/aztec-packages#5232)) ([dea3f87](AztecProtocol/aztec-packages@dea3f87)) * Delete unused contract tree ts code ([#5229](AztecProtocol/aztec-packages#5229)) ([b48dd23](AztecProtocol/aztec-packages@b48dd23)) * Delete unused hash functions ([#5231](AztecProtocol/aztec-packages#5231)) ([fed70a1](AztecProtocol/aztec-packages@fed70a1)) * Fix docker test workflows (noir-lang/noir#4566) ([86e1a86](AztecProtocol/aztec-packages@86e1a86)) * Fixing some broken links (noir-lang/noir#4556) ([86e1a86](AztecProtocol/aztec-packages@86e1a86)) * Making docs build before cutting versions (noir-lang/noir#4568) ([86e1a86](AztecProtocol/aztec-packages@86e1a86)) * Old inbox purge ([#5206](AztecProtocol/aztec-packages#5206)) ([a26d968](AztecProtocol/aztec-packages@a26d968)) * Removing redundant receipts check ([#5271](AztecProtocol/aztec-packages#5271)) ([5ab07fb](AztecProtocol/aztec-packages@5ab07fb)) * Separate tests for execution failures from compilation failures (noir-lang/noir#4559) ([86e1a86](AztecProtocol/aztec-packages@86e1a86)) * Separate tests for execution failures from compilation failures (noir-lang/noir#4559) ([d8b8456](AztecProtocol/aztec-packages@d8b8456)) * Template Zeromorph by PCS ([#5215](AztecProtocol/aztec-packages#5215)) ([03feab2](AztecProtocol/aztec-packages@03feab2)) * Use inotifywait to run generate in yarn-project ([#5168](AztecProtocol/aztec-packages#5168)) ([137c13e](AztecProtocol/aztec-packages@137c13e)) ### Documentation * **yp:** Remove contract tree and deploy data from circuits and state ([#5260](AztecProtocol/aztec-packages#5260)) ([acffa7b](AztecProtocol/aztec-packages@acffa7b)) </details> <details><summary>barretenberg: 0.29.0</summary> ## [0.29.0](AztecProtocol/aztec-packages@barretenberg-v0.28.1...barretenberg-v0.29.0) (2024-03-18) ### ⚠ BREAKING CHANGES * Acir call opcode ([#4773](AztecProtocol/aztec-packages#4773)) ### Features * Acir call opcode ([#4773](AztecProtocol/aztec-packages#4773)) ([0b15db2](AztecProtocol/aztec-packages@0b15db2)) * Add RelWithAssert build ([#4997](AztecProtocol/aztec-packages#4997)) ([4f337c7](AztecProtocol/aztec-packages@4f337c7)) * **avm:** Mov opcode with direct memory ([#5204](AztecProtocol/aztec-packages#5204)) ([08f9038](AztecProtocol/aztec-packages@08f9038)), closes [#5159](AztecProtocol/aztec-packages#5159) * Extended IPA tests and fuzzing ([#5140](AztecProtocol/aztec-packages#5140)) ([0ae5ace](AztecProtocol/aztec-packages@0ae5ace)) * Initial Earthly CI ([#5069](AztecProtocol/aztec-packages#5069)) ([8e75fe5](AztecProtocol/aztec-packages@8e75fe5)) * Remove unnecessary `mulmod`s from verifier contract ([#5269](AztecProtocol/aztec-packages#5269)) ([20d9c0c](AztecProtocol/aztec-packages@20d9c0c)) * Signed integer division and modulus in brillig gen ([#5279](AztecProtocol/aztec-packages#5279)) ([82f8cf5](AztecProtocol/aztec-packages@82f8cf5)) ### Bug Fixes * **bb:** Mac build ([#5253](AztecProtocol/aztec-packages#5253)) ([ae021c0](AztecProtocol/aztec-packages@ae021c0)) * CVC5 api update ([#5203](AztecProtocol/aztec-packages#5203)) ([9cc32cb](AztecProtocol/aztec-packages@9cc32cb)) ### Miscellaneous * Template Zeromorph by PCS ([#5215](AztecProtocol/aztec-packages#5215)) ([03feab2](AztecProtocol/aztec-packages@03feab2)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
First step towards making Zeromorph work with both IPA and KZG, this PR ensures that Zeromorph calls a univariate PCS building block for the opening proof and verification, right now only instantiated with KZG.