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: eccvm translator zk sumcheck #9199

Merged
merged 21 commits into from
Oct 24, 2024
Merged

Conversation

iakovenkos
Copy link
Contributor

@iakovenkos iakovenkos commented Oct 11, 2024

Turned on ZK Sumcheck in ECCVM and Translator Flavors.

Benching ClientIvc with ZK sumcheck turned on in ECCVM and Translator:

Benchmark without ZK with ZK (best result) with ZK with ZK (worst result) Overhead of Worst zk over non-ZK
ClientIVCBench/Full/2 12,039 ms 12,512 ms 12,658 ms 12,778 ms 6.14%
ClientIVCBench/Full/6 33,258 ms 34,830 ms 35,038 ms 35,452 ms 6.60%

*Using non-optimized ZK Sumcheck

@iakovenkos iakovenkos marked this pull request as draft October 11, 2024 16:30
@iakovenkos iakovenkos changed the title draft: eccvm translator zk sumcheck feat: eccvm translator zk sumcheck Oct 16, 2024
@iakovenkos iakovenkos marked this pull request as ready for review October 16, 2024 15:57
@@ -65,8 +65,8 @@ void eccvm_prove(State& state) noexcept
};
}

BENCHMARK(eccvm_generate_prover)->Unit(kMillisecond)->DenseRange(10, 20);
BENCHMARK(eccvm_prove)->Unit(kMillisecond)->DenseRange(10, 20);
BENCHMARK(eccvm_generate_prover)->Unit(kMillisecond)->DenseRange(12, 18);
Copy link
Contributor Author

Choose a reason for hiding this comment

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

The proving is quite slow and the time grows somewhat predictably.

Copy link
Contributor

Choose a reason for hiding this comment

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

sounds good. 2^20 is a lot of eccvm operations, far more than we expect on the client, so reducing the range is fine

std::get<0>(accumulator) +=
((z_perm + lagrange_first) * numerator_evaluation - (z_perm_shift + lagrange_last) * denominator_evaluation) *
scaling_factor;

// Contribution (2)
std::get<1>(accumulator) += (lagrange_last * z_perm_shift) * scaling_factor;
std::get<1>(accumulator) += lagrange_last_short * z_perm_shift_short * scaling_factor;
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Small optimization: taken into account the fact that the second component of the accumulator is actually of a much smaller degree ( 2 )

Copy link
Contributor

Choose a reason for hiding this comment

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

ty for spotting that 👍

@@ -70,7 +70,7 @@ template <typename Flavor> void ECCVMRecursiveVerifier_<Flavor>::verify_proof(co
gate_challenges[idx] = transcript->template get_challenge<FF>("Sumcheck:gate_challenge_" + std::to_string(idx));
}

auto [multivariate_challenge, claimed_evaluations, sumcheck_verified] =
auto [multivariate_challenge, claimed_evaluations, libra_evaluations, sumcheck_verified] =
Copy link
Contributor Author

Choose a reason for hiding this comment

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

here, the sumcheck verifier is getting evaluations of univariates that are used to mask sumcheck round univariates

transcript->send_to_verifier("Libra:evaluations", zk_sumcheck_data.libra_evaluations);
for (size_t idx = 0; idx < multivariate_d; idx++) {
const FF& libra_evaluation = zk_sumcheck_data.libra_evaluations[idx];
std::string libra_evaluation_label = "Libra:evaluation_" + std::to_string(idx);
Copy link
Contributor Author

Choose a reason for hiding this comment

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

fixed a discrepancy in the way the prover and the verifer send/receive these evals

Copy link
Contributor

Choose a reason for hiding this comment

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

actually fun fact the labels don't matter for anything other than debugging

@iakovenkos iakovenkos removed the request for review from ledwards2225 October 16, 2024 17:02
@iakovenkos iakovenkos requested a review from maramihali October 17, 2024 09:49
@iakovenkos iakovenkos marked this pull request as draft October 18, 2024 23:10
@iakovenkos iakovenkos marked this pull request as ready for review October 23, 2024 11:35
extended_edge = edge.template extend_to<MAX_PARTIAL_RELATION_LENGTH>();
};
template <typename ProverPolynomialsOrPartiallyEvaluatedMultivariates>
void extend_edges_with_masking(ExtendedEdges& extended_edges,
Copy link
Contributor Author

Choose a reason for hiding this comment

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

split the method into two to avoid optional access that was causing problems in wasm multi-threading

Copy link
Contributor

@maramihali maramihali left a comment

Choose a reason for hiding this comment

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

Mostly looks good - just some requests for cleanup, constifying and making types explicit.

@@ -32,7 +32,7 @@ export class BarretenbergWasmMain extends BarretenbergWasmBase {
module: WebAssembly.Module,
threads = Math.min(getNumCpu(), BarretenbergWasmMain.MAX_THREADS),
logger: (msg: string) => void = debug,
initial = 28,
initial = 30,
Copy link
Contributor

Choose a reason for hiding this comment

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

Is this still required?

Copy link
Contributor

Choose a reason for hiding this comment

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

if yes, will you please add a comment?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

the sizes of subrelation univariates got bigger because of the zk sumcheck, hence we have to use more initial memory

@@ -1,5 +1,7 @@
#pragma once

#include "barretenberg/constants.hpp"
Copy link
Contributor

Choose a reason for hiding this comment

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

are these needed?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

thanks for spotting this, the constants are not needed yet

{
PROFILE_THIS_NAME("compute_univariate");

// info("sumcheck data has value ", zk_sumcheck_data.has_value());
Copy link
Contributor

Choose a reason for hiding this comment

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

remove

@@ -403,7 +408,9 @@ polynomials that are sent in clear.
EvalMaskingScalars eval_masking_scalars;

for (size_t k = 0; k < NUM_ALL_WITNESS_ENTITIES; ++k) {
eval_masking_scalars[k] = FF::random_element();
// TODO(https://github.com/AztecProtocol/barretenberg/issues/1136): Once Shplemini supports ZK, these
Copy link
Contributor

Choose a reason for hiding this comment

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

this is only if we do something smarter than generating a circuit_size random polynomials.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

this could be replaced if we place the rows with randomness into the execution trace. the big random polynomial is generated and commited to after the sumcheck has finished, so it's somewhat independent

template <typename ProverPolynomialsOrPartiallyEvaluatedMultivariates>
void extend_edges_with_masking(ExtendedEdges& extended_edges,
ProverPolynomialsOrPartiallyEvaluatedMultivariates& multivariates,
size_t edge_idx,
Copy link
Contributor

Choose a reason for hiding this comment

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

const

};
template <typename ProverPolynomialsOrPartiallyEvaluatedMultivariates>
void extend_edges_with_masking(ExtendedEdges& extended_edges,
ProverPolynomialsOrPartiallyEvaluatedMultivariates& multivariates,
Copy link
Contributor

Choose a reason for hiding this comment

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

also const

Copy link
Contributor Author

Choose a reason for hiding this comment

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

the getters being applied to the multivariates are not qualified as const as opposed to the get_all() in non-zk case

@@ -14,14 +14,16 @@ template <typename FF_> class TranslatorPermutationRelationImpl {
3 // left-shiftable polynomial sub-relation
};
/**
* @brief For ZK-Flavors: The degrees of subrelations considered as polynomials only in witness polynomials,
* @brief The degrees of subrelations considered as polynomials only in witness polynomials,
Copy link
Contributor

Choose a reason for hiding this comment

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

Maybe it would be good to exemplify what you mean here to help the reader

Copy link
Contributor Author

Choose a reason for hiding this comment

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

this is explained in the sumcheck docs, although I see your point
do you think giving examples in relations' docs wouldn't pollute them? then I would also have to include those examples in every relation to make it uniform

Copy link
Contributor

github-actions bot commented Oct 24, 2024

Changes to public function bytecode sizes

Generated at commit: b7e7dae79b6b09f4556a6395a46efb2b58424312, compared to commit: 3a1a62cb84dc9457b58104e01ac358a2820159cb

🧾 Summary (100% most significant diffs)

Program Bytecode size in bytes (+/-) %
Uniswap::swap_public +1,973 ❌ +16.01%
AvmTest::pedersen_hash +286 ❌ +10.44%
AvmTest::pedersen_hash_with_index +286 ❌ +10.44%
AvmTest::sha256_hash +245 ❌ +9.13%
Parent::public_nested_static_call +270 ❌ +7.91%
Test::create_l2_to_l1_message_public +140 ❌ +7.53%
Uniswap::public_dispatch +1,499 ❌ +6.81%
Uniswap::_approve_bridge_and_exit_input_asset_to_L1 +321 ❌ +6.00%
TokenBridge::exit_to_l1_public +251 ❌ +3.87%
Parent::public_dispatch +264 ❌ +3.40%
Lending::_borrow +227 ❌ +3.20%
Lending::_withdraw +227 ❌ +3.17%
Lending::public_dispatch +767 ❌ +3.12%
TokenBridge::claim_public +291 ❌ +3.03%
Test::public_dispatch +490 ❌ +2.93%
Test::consume_mint_public_message +242 ❌ +2.91%
Test::consume_message_from_arbitrary_sender_public +147 ❌ +2.32%
AvmTest::keccak_f1600 +7 ❌ +1.52%
TokenBridge::public_dispatch +268 ❌ +1.38%
AvmTest::bulk_testing +141 ❌ +0.60%
CardGame::on_cards_claimed +26 ❌ +0.39%
AvmTest::keccak_hash +7 ❌ +0.27%
AvmTest::public_dispatch +135 ❌ +0.25%
NFT::finalize_transfer_to_private +9 ❌ +0.17%
Child::public_dispatch -8 ✅ -0.15%
TestLog::emit_unencrypted_events -4 ✅ -0.24%
StaticChild::public_dispatch -8 ✅ -0.29%
Router::public_dispatch -8 ✅ -0.29%
DocsExample::public_dispatch -16 ✅ -0.32%
AuthWitTest::public_dispatch -8 ✅ -0.39%
TokenBlacklist::public_dispatch -202 ✅ -0.82%
CardGame::public_dispatch -131 ✅ -0.89%
TokenBlacklist::update_roles -64 ✅ -0.91%
Auth::public_dispatch -106 ✅ -0.99%
NFT::public_dispatch -219 ✅ -1.02%
StaticParent::public_dispatch -58 ✅ -1.02%
Token::public_dispatch -293 ✅ -1.06%
AuthRegistry::public_dispatch -88 ✅ -1.14%
Auth::set_authorized -64 ✅ -1.17%
Auth::set_authorized_delay -64 ✅ -1.18%
TokenBlacklist::constructor -98 ✅ -1.21%
TokenBlacklist::transfer_public -81 ✅ -1.34%
Token::transfer_public -64 ✅ -1.38%
Token::burn_public -64 ✅ -1.41%
TokenBlacklist::burn_public -81 ✅ -1.44%
TokenBlacklist::mint_public -64 ✅ -1.53%
Lending::_repay -81 ✅ -1.56%
FPC::public_dispatch -148 ✅ -1.60%
FeeJuice::public_dispatch -97 ✅ -1.70%
Lending::get_position -81 ✅ -1.72%
Crowdfunding::public_dispatch -114 ✅ -1.75%
Token::constructor -98 ✅ -1.76%
TestLog::public_dispatch -55 ✅ -1.83%
NFT::constructor -98 ✅ -1.88%
AppSubscription::public_dispatch -106 ✅ -1.94%
ImportTest::public_dispatch -34 ✅ -2.05%
AuthRegistry::consume -64 ✅ -2.20%
Lending::update_accumulator -120 ✅ -2.29%
EasyPrivateVoting::public_dispatch -148 ✅ -2.31%
AppSubscription::constructor -98 ✅ -2.33%
Crowdfunding::init -98 ✅ -2.41%
StatefulTest::public_dispatch -192 ✅ -2.43%
Benchmarking::public_dispatch -123 ✅ -2.54%
TokenBlacklist::shield -157 ✅ -2.54%
AvmInitializerTest::public_dispatch -98 ✅ -2.54%
Token::mint_public -81 ✅ -2.55%
TokenBlacklist::get_roles -64 ✅ -2.57%
Spam::public_dispatch -89 ✅ -2.59%
CardGame::start_game -162 ✅ -2.59%
EasyPrivateVoting::constructor -98 ✅ -2.60%
NFT::mint -81 ✅ -2.70%
Auth::constructor -98 ✅ -2.70%
Benchmarking::increment_balance -81 ✅ -2.71%
FPC::constructor -98 ✅ -2.72%
Uniswap::constructor -98 ✅ -2.72%
Token::shield -140 ✅ -2.76%
AvmTest::test_get_contract_instance -34 ✅ -2.83%
Lending::init -81 ✅ -2.84%
NFT::transfer_in_public -108 ✅ -2.97%
AvmInitializerTest::constructor -98 ✅ -3.13%
TokenBlacklist::_increase_public_balance -81 ✅ -3.19%
Token::_increase_public_balance -81 ✅ -3.19%
Token::complete_refund -91 ✅ -3.23%
Spam::public_spam -81 ✅ -3.24%
NFT::owner_of -81 ✅ -3.26%
Claim::public_dispatch -156 ✅ -3.29%
PriceFeed::public_dispatch -123 ✅ -3.37%
FeeJuice::_increase_public_balance -81 ✅ -3.49%
Token::assert_minter_and_mint -81 ✅ -3.53%
Lending::_deposit -81 ✅ -3.54%
StatefulTest::public_constructor -142 ✅ -3.57%
EasyPrivateVoting::add_to_tally_public -81 ✅ -3.58%
FeeJuice::check_balance -81 ✅ -3.77%
Auth::get_authorized_delay -81 ✅ -3.81%
CardGame::on_game_joined -173 ✅ -3.85%
Claim::constructor -148 ✅ -3.88%
TokenBridge::constructor -148 ✅ -3.90%
CardGame::on_card_played -215 ✅ -4.07%
Lending::get_asset -81 ✅ -4.10%
InclusionProofs::public_dispatch -197 ✅ -4.22%
AuthRegistry::is_consumable -81 ✅ -4.23%
InclusionProofs::constructor -137 ✅ -4.26%
PrivateFPC::public_dispatch -200 ✅ -4.33%
TokenBlacklist::balance_of_public -81 ✅ -4.34%
Token::balance_of_public -81 ✅ -4.34%
AuthRegistry::_set_authorized -81 ✅ -4.42%
FeeJuice::balance_of_public -81 ✅ -4.42%
Auth::get_authorized -81 ✅ -4.44%
AuthRegistry::set_authorized -81 ✅ -4.48%
NFT::is_minter -81 ✅ -4.53%
Token::is_minter -81 ✅ -4.53%
Benchmarking::broadcast -81 ✅ -4.53%
TokenBlacklist::mint_private -179 ✅ -4.54%
PriceFeed::get_price -81 ✅ -4.57%
AvmTest::set_storage_map -81 ✅ -4.60%
AuthRegistry::is_reject_all -81 ✅ -4.61%
StatefulTest::get_public_value -81 ✅ -4.64%
AvmTest::read_storage_map -81 ✅ -4.67%
PriceFeed::set_price -81 ✅ -4.67%
Auth::get_scheduled_authorized -81 ✅ -4.68%
NFT::_finish_transfer_to_public -81 ✅ -4.78%
TokenBlacklist::_reduce_total_supply -44 ✅ -4.78%
AuthRegistry::set_reject_all -81 ✅ -4.90%
AvmTest::get_args_hash -81 ✅ -4.92%
AvmTest::poseidon2_hash -81 ✅ -5.15%
PrivateFPC::constructor -192 ✅ -5.19%
Token::_reduce_total_supply -49 ✅ -5.29%
AvmTest::elliptic_curve_add_and_double -37 ✅ -5.64%
Child::set_value_twice_with_nested_last -54 ✅ -5.84%
Child::set_value_twice_with_nested_first -54 ✅ -5.84%
AvmTest::add_storage_map -125 ✅ -5.97%
DocsExample::initialize_shared_immutable -49 ✅ -6.09%
DocsExample::initialize_public_immutable -49 ✅ -6.09%
Token::set_minter -120 ✅ -6.15%
Token::mint_private -196 ✅ -6.21%
StatefulTest::increment_public_value -120 ✅ -6.25%
StatefulTest::increment_public_value_no_init_check -120 ✅ -6.35%
NFT::set_minter -125 ✅ -6.39%
Child::pub_inc_value_internal -49 ✅ -6.77%
StaticChild::pub_illegal_inc_value -49 ✅ -6.82%
AvmTest::elliptic_curve_add -37 ✅ -6.99%
Child::pub_inc_value -49 ✅ -7.01%
StaticChild::pub_inc_value -49 ✅ -7.01%
NFT::set_admin -49 ✅ -7.37%
Token::set_admin -49 ✅ -7.37%
EasyPrivateVoting::end_vote -49 ✅ -7.38%
AvmTest::set_read_storage_single -49 ✅ -7.88%

Full diff report 👇
Program Bytecode size in bytes (+/-) %
Uniswap::swap_public 14,297 (+1,973) +16.01%
AvmTest::pedersen_hash 3,026 (+286) +10.44%
AvmTest::pedersen_hash_with_index 3,026 (+286) +10.44%
AvmTest::sha256_hash 2,929 (+245) +9.13%
Parent::public_nested_static_call 3,682 (+270) +7.91%
Test::create_l2_to_l1_message_public 2,000 (+140) +7.53%
Uniswap::public_dispatch 23,506 (+1,499) +6.81%
Uniswap::_approve_bridge_and_exit_input_asset_to_L1 5,674 (+321) +6.00%
TokenBridge::exit_to_l1_public 6,738 (+251) +3.87%
Parent::public_dispatch 8,021 (+264) +3.40%
Lending::_borrow 7,321 (+227) +3.20%
Lending::_withdraw 7,377 (+227) +3.17%
Lending::public_dispatch 25,384 (+767) +3.12%
TokenBridge::claim_public 9,899 (+291) +3.03%
Test::public_dispatch 17,228 (+490) +2.93%
Test::consume_mint_public_message 8,553 (+242) +2.91%
Test::consume_message_from_arbitrary_sender_public 6,491 (+147) +2.32%
AvmTest::keccak_f1600 467 (+7) +1.52%
TokenBridge::public_dispatch 19,686 (+268) +1.38%
AvmTest::bulk_testing 23,832 (+141) +0.60%
CardGame::on_cards_claimed 6,676 (+26) +0.39%
AvmTest::keccak_hash 2,555 (+7) +0.27%
AvmTest::public_dispatch 54,100 (+135) +0.25%
NFT::finalize_transfer_to_private 5,236 (+9) +0.17%
Child::public_dispatch 5,383 (-8) -0.15%
TestLog::emit_unencrypted_events 1,680 (-4) -0.24%
StaticChild::public_dispatch 2,763 (-8) -0.29%
Router::public_dispatch 2,719 (-8) -0.29%
DocsExample::public_dispatch 5,003 (-16) -0.32%
AuthWitTest::public_dispatch 2,034 (-8) -0.39%
TokenBlacklist::public_dispatch 24,383 (-202) -0.82%
CardGame::public_dispatch 14,659 (-131) -0.89%
TokenBlacklist::update_roles 6,950 (-64) -0.91%
Auth::public_dispatch 10,613 (-106) -0.99%
NFT::public_dispatch 21,309 (-219) -1.02%
StaticParent::public_dispatch 5,612 (-58) -1.02%
Token::public_dispatch 27,254 (-293) -1.06%
AuthRegistry::public_dispatch 7,657 (-88) -1.14%
Auth::set_authorized 5,429 (-64) -1.17%
Auth::set_authorized_delay 5,349 (-64) -1.18%
TokenBlacklist::constructor 7,984 (-98) -1.21%
TokenBlacklist::transfer_public 5,955 (-81) -1.34%
Token::transfer_public 4,582 (-64) -1.38%
Token::burn_public 4,475 (-64) -1.41%
TokenBlacklist::burn_public 5,553 (-81) -1.44%
TokenBlacklist::mint_public 4,114 (-64) -1.53%
Lending::_repay 5,108 (-81) -1.56%
FPC::public_dispatch 9,121 (-148) -1.60%
FeeJuice::public_dispatch 5,604 (-97) -1.70%
Lending::get_position 4,637 (-81) -1.72%
Crowdfunding::public_dispatch 6,384 (-114) -1.75%
Token::constructor 5,456 (-98) -1.76%
TestLog::public_dispatch 2,953 (-55) -1.83%
NFT::constructor 5,113 (-98) -1.88%
AppSubscription::public_dispatch 5,363 (-106) -1.94%
ImportTest::public_dispatch 1,627 (-34) -2.05%
AuthRegistry::consume 2,849 (-64) -2.20%
Lending::update_accumulator 5,115 (-120) -2.29%
EasyPrivateVoting::public_dispatch 6,251 (-148) -2.31%
AppSubscription::constructor 4,113 (-98) -2.33%
Crowdfunding::init 3,966 (-98) -2.41%
StatefulTest::public_dispatch 7,721 (-192) -2.43%
Benchmarking::public_dispatch 4,723 (-123) -2.54%
TokenBlacklist::shield 6,018 (-157) -2.54%
AvmInitializerTest::public_dispatch 3,756 (-98) -2.54%
Token::mint_public 3,098 (-81) -2.55%
TokenBlacklist::get_roles 2,430 (-64) -2.57%
Spam::public_dispatch 3,347 (-89) -2.59%
CardGame::start_game 6,086 (-162) -2.59%
EasyPrivateVoting::constructor 3,674 (-98) -2.60%
NFT::mint 2,920 (-81) -2.70%
Auth::constructor 3,531 (-98) -2.70%
Benchmarking::increment_balance 2,912 (-81) -2.71%
FPC::constructor 3,511 (-98) -2.72%
Uniswap::constructor 3,511 (-98) -2.72%
Token::shield 4,935 (-140) -2.76%
AvmTest::test_get_contract_instance 1,168 (-34) -2.83%
Lending::init 2,774 (-81) -2.84%
NFT::transfer_in_public 3,531 (-108) -2.97%
AvmInitializerTest::constructor 3,030 (-98) -3.13%
TokenBlacklist::_increase_public_balance 2,460 (-81) -3.19%
Token::_increase_public_balance 2,460 (-81) -3.19%
Token::complete_refund 2,729 (-91) -3.23%
Spam::public_spam 2,422 (-81) -3.24%
NFT::owner_of 2,401 (-81) -3.26%
Claim::public_dispatch 4,585 (-156) -3.29%
PriceFeed::public_dispatch 3,528 (-123) -3.37%
FeeJuice::_increase_public_balance 2,241 (-81) -3.49%
Token::assert_minter_and_mint 2,215 (-81) -3.53%
Lending::_deposit 2,209 (-81) -3.54%
StatefulTest::public_constructor 3,832 (-142) -3.57%
EasyPrivateVoting::add_to_tally_public 2,184 (-81) -3.58%
FeeJuice::check_balance 2,068 (-81) -3.77%
Auth::get_authorized_delay 2,046 (-81) -3.81%
CardGame::on_game_joined 4,322 (-173) -3.85%
Claim::constructor 3,671 (-148) -3.88%
TokenBridge::constructor 3,650 (-148) -3.90%
CardGame::on_card_played 5,070 (-215) -4.07%
Lending::get_asset 1,893 (-81) -4.10%
InclusionProofs::public_dispatch 4,476 (-197) -4.22%
AuthRegistry::is_consumable 1,833 (-81) -4.23%
InclusionProofs::constructor 3,080 (-137) -4.26%
PrivateFPC::public_dispatch 4,417 (-200) -4.33%
TokenBlacklist::balance_of_public 1,785 (-81) -4.34%
Token::balance_of_public 1,785 (-81) -4.34%
AuthRegistry::_set_authorized 1,752 (-81) -4.42%
FeeJuice::balance_of_public 1,752 (-81) -4.42%
Auth::get_authorized 1,742 (-81) -4.44%
AuthRegistry::set_authorized 1,726 (-81) -4.48%
NFT::is_minter 1,708 (-81) -4.53%
Token::is_minter 1,708 (-81) -4.53%
Benchmarking::broadcast 1,706 (-81) -4.53%
TokenBlacklist::mint_private 3,761 (-179) -4.54%
PriceFeed::get_price 1,693 (-81) -4.57%
AvmTest::set_storage_map 1,678 (-81) -4.60%
AuthRegistry::is_reject_all 1,675 (-81) -4.61%
StatefulTest::get_public_value 1,665 (-81) -4.64%
AvmTest::read_storage_map 1,655 (-81) -4.67%
PriceFeed::set_price 1,653 (-81) -4.67%
Auth::get_scheduled_authorized 1,650 (-81) -4.68%
NFT::_finish_transfer_to_public 1,615 (-81) -4.78%
TokenBlacklist::_reduce_total_supply 877 (-44) -4.78%
AuthRegistry::set_reject_all 1,573 (-81) -4.90%
AvmTest::get_args_hash 1,566 (-81) -4.92%
AvmTest::poseidon2_hash 1,492 (-81) -5.15%
PrivateFPC::constructor 3,508 (-192) -5.19%
Token::_reduce_total_supply 877 (-49) -5.29%
AvmTest::elliptic_curve_add_and_double 619 (-37) -5.64%
Child::set_value_twice_with_nested_last 870 (-54) -5.84%
Child::set_value_twice_with_nested_first 870 (-54) -5.84%
AvmTest::add_storage_map 1,970 (-125) -5.97%
DocsExample::initialize_shared_immutable 755 (-49) -6.09%
DocsExample::initialize_public_immutable 755 (-49) -6.09%
Token::set_minter 1,831 (-120) -6.15%
Token::mint_private 2,958 (-196) -6.21%
StatefulTest::increment_public_value 1,799 (-120) -6.25%
StatefulTest::increment_public_value_no_init_check 1,771 (-120) -6.35%
NFT::set_minter 1,831 (-125) -6.39%
Child::pub_inc_value_internal 675 (-49) -6.77%
StaticChild::pub_illegal_inc_value 670 (-49) -6.82%
AvmTest::elliptic_curve_add 492 (-37) -6.99%
Child::pub_inc_value 650 (-49) -7.01%
StaticChild::pub_inc_value 650 (-49) -7.01%
NFT::set_admin 616 (-49) -7.37%
Token::set_admin 616 (-49) -7.37%
EasyPrivateVoting::end_vote 615 (-49) -7.38%
AvmTest::set_read_storage_single 573 (-49) -7.88%

Copy link
Contributor

github-actions bot commented Oct 24, 2024

Changes to circuit sizes

Generated at commit: b7e7dae79b6b09f4556a6395a46efb2b58424312, compared to commit: 3a1a62cb84dc9457b58104e01ac358a2820159cb

🧾 Summary (100% most significant diffs)

Program ACIR opcodes (+/-) % Circuit size (+/-) %
parity_base +387 ❌ +7.76% +198 ❌ +0.62%
private_kernel_init +36 ❌ +0.15% +28 ❌ +0.09%
rollup_base +4,515 ❌ +0.94% +2,722 ❌ +0.08%
private_kernel_inner +36 ❌ +0.08% +28 ❌ +0.05%
rollup_merge +258 ❌ +6.66% +131 ❌ +0.01%
parity_root +387 ❌ +6.77% +198 ❌ +0.01%
rollup_block_root +258 ❌ +5.73% +132 ❌ +0.00%
rollup_root +129 ❌ +1.72% +66 ❌ +0.00%
rollup_block_merge +129 ❌ +1.72% +66 ❌ +0.00%
public_kernel_inner -206 ✅ -0.08% -240 ✅ -0.05%

Full diff report 👇
Program ACIR opcodes (+/-) % Circuit size (+/-) %
parity_base 5,371 (+387) +7.76% 32,293 (+198) +0.62%
private_kernel_init 24,129 (+36) +0.15% 31,697 (+28) +0.09%
rollup_base 483,401 (+4,515) +0.94% 3,359,692 (+2,722) +0.08%
private_kernel_inner 42,855 (+36) +0.08% 55,600 (+28) +0.05%
rollup_merge 4,134 (+258) +6.66% 1,904,170 (+131) +0.01%
parity_root 6,104 (+387) +6.77% 3,790,716 (+198) +0.01%
rollup_block_root 4,760 (+258) +5.73% 2,849,089 (+132) +0.00%
rollup_root 7,612 (+129) +1.72% 1,907,325 (+66) +0.00%
rollup_block_merge 7,628 (+129) +1.72% 1,907,339 (+66) +0.00%
public_kernel_inner 264,286 (-206) -0.08% 508,771 (-240) -0.05%

@iakovenkos iakovenkos self-assigned this Oct 24, 2024
@iakovenkos iakovenkos added the crypto cryptography label Oct 24, 2024
@iakovenkos iakovenkos merged commit c7d4572 into master Oct 24, 2024
115 checks passed
@iakovenkos iakovenkos deleted the si/eccvm-translator-zk-sumcheck branch October 24, 2024 13:59
TomAFrench added a commit that referenced this pull request Oct 24, 2024
* master: (66 commits)
  feat: Get logs by tags (#9353)
  feat: bytes to fields and back (#8590)
  feat: eccvm translator zk sumcheck (#9199)
  chore: bump node types (#9397)
  refactor: quick account manager refactor (#9357)
  chore: quick keystore refactor (#9355)
  chore: implement Fq add (#9354)
  chore: fix and re-enable prover coordination e2e test (#9344)
  feat: introduce default public keys and replace empty public keys (#9277)
  chore: remove unnecessary `is_integral_bit_size` function (#9352)
  feat(nr): serde for signed ints (#9211)
  feat(docs): nits (#8948)
  chore: unstake the bond when the proof lands (#9363)
  chore: print out gas at start and end of each enqueued call (#9377)
  fix: broken constants gen (#9387)
  chore: redo typo PR by pucedoteth (#9385)
  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
  ...
ludamad pushed a commit that referenced this pull request Oct 24, 2024
🤖 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).
AztecBot added a commit to AztecProtocol/barretenberg that referenced this pull request Oct 25, 2024
🤖 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).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
crypto cryptography
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants