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: split up eccvm proof into two proofs #9914

Merged
merged 6 commits into from
Nov 14, 2024
Merged

Conversation

lucasxia01
Copy link
Contributor

@lucasxia01 lucasxia01 commented Nov 12, 2024

Splits ECCVM proof into pre-IPA proof and IPA proof.

We want the IPA proof to be separate from the rest of the ECCVM proof so we don't have to run IPA accumulation in the tube and base rollup circuits.

@lucasxia01 lucasxia01 marked this pull request as ready for review November 12, 2024 21:41
@lucasxia01 lucasxia01 self-assigned this Nov 12, 2024
Copy link
Contributor

@ledwards2225 ledwards2225 left a comment

Choose a reason for hiding this comment

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

LG - agree that the eccvm proof should be a struct

@lucasxia01 lucasxia01 enabled auto-merge (squash) November 14, 2024 16:26
Copy link
Contributor

Changes to public function bytecode sizes

Generated at commit: 03763e77280a7d162b5a9bde2307f80015449c60, compared to commit: 8f41beef025b7c28fe09bacdf5fe29d1142a5d74

🧾 Summary (100% most significant diffs)

Program Bytecode size in bytes (+/-) %
Token::public_dispatch +3,252 ❌ +9.66%
Token::complete_refund +208 ❌ +3.56%
TokenBridge::exit_to_l1_public +230 ❌ +2.88%
AvmTest::poseidon2_hash +12 ❌ +0.69%
AvmTest::get_args_hash +12 ❌ +0.67%
AuthRegistry::set_reject_all +12 ❌ +0.65%
AvmTest::read_storage_map +12 ❌ +0.62%
NFT::_finish_transfer_to_public +12 ❌ +0.62%
Auth::get_scheduled_authorized +12 ❌ +0.62%
PriceFeed::set_price +12 ❌ +0.62%
AvmTest::set_storage_map +12 ❌ +0.61%
StatefulTest::get_public_value +12 ❌ +0.61%
AuthRegistry::is_reject_all +12 ❌ +0.61%
PriceFeed::get_price +12 ❌ +0.60%
Benchmarking::broadcast +12 ❌ +0.60%
AuthRegistry::set_authorized +12 ❌ +0.60%
NFT::is_minter +12 ❌ +0.59%
Token::is_minter +12 ❌ +0.59%
Auth::get_authorized +12 ❌ +0.59%
AuthRegistry::_set_authorized +12 ❌ +0.58%
FeeJuice::balance_of_public +12 ❌ +0.58%
StatefulTest::increment_public_value_no_init_check +12 ❌ +0.57%
TokenBlacklist::balance_of_public +12 ❌ +0.57%
Token::balance_of_public +12 ❌ +0.57%
AuthRegistry::is_consumable +12 ❌ +0.56%
StatefulTest::increment_public_value +12 ❌ +0.56%
Token::set_minter +12 ❌ +0.55%
NFT::set_minter +12 ❌ +0.54%
Lending::get_asset +12 ❌ +0.54%
AvmTest::add_storage_map +12 ❌ +0.52%
Auth::get_authorized_delay +12 ❌ +0.50%
FeeJuice::check_balance +12 ❌ +0.49%
EasyPrivateVoting::add_to_tally_public +12 ❌ +0.47%
FeeJuice::_increase_public_balance +12 ❌ +0.46%
NFT::owner_of +12 ❌ +0.43%
Spam::public_spam +12 ❌ +0.43%
TokenBlacklist::_increase_public_balance +12 ❌ +0.42%
Token::_increase_public_balance +12 ❌ +0.42%
CardGame::start_game +29 ❌ +0.42%
Lending::_deposit +12 ❌ +0.39%
FPC::constructor +12 ❌ +0.38%
Lending::init +12 ❌ +0.38%
Claim::constructor +12 ❌ +0.37%
TokenBridge::constructor +12 ❌ +0.36%
NFT::mint +12 ❌ +0.36%
Parent::public_nested_static_call +12 ❌ +0.36%
Benchmarking::increment_balance +12 ❌ +0.32%
CardGame::on_game_joined +12 ❌ +0.24%
Lending::get_position +12 ❌ +0.23%
Lending::update_accumulator +12 ❌ +0.21%
CardGame::on_card_played +12 ❌ +0.20%
Lending::_repay +12 ❌ +0.19%
NFT::finalize_transfer_to_private +12 ❌ +0.19%
NFT::_finalize_transfer_to_private_unsafe +12 ❌ +0.19%
Token::finalize_mint_to_private +12 ❌ +0.17%
Token::_finalize_mint_to_private_unsafe +12 ❌ +0.17%
Token::finalize_transfer_to_private +12 ❌ +0.16%
CardGame::on_cards_claimed +12 ❌ +0.16%
Token::_finalize_transfer_to_private_unsafe +12 ❌ +0.16%
Lending::_borrow +12 ❌ +0.13%
Lending::_withdraw +12 ❌ +0.13%
CardGame::public_dispatch +16 ❌ +0.10%
Benchmarking::public_dispatch -1 ✅ -0.02%
AvmTest::bulk_testing -10 ✅ -0.04%
Uniswap::swap_public -10 ✅ -0.06%
Test::consume_message_from_arbitrary_sender_public -10 ✅ -0.13%
TokenBlacklist::constructor -10 ✅ -0.13%
TokenBlacklist::update_roles -10 ✅ -0.13%
Lending::public_dispatch -40 ✅ -0.14%
Uniswap::_approve_bridge_and_exit_input_asset_to_L1 -10 ✅ -0.15%
TokenBlacklist::shield -10 ✅ -0.16%
TokenBlacklist::transfer_public -10 ✅ -0.16%
Parent::public_dispatch -14 ✅ -0.16%
Auth::set_authorized -10 ✅ -0.17%
Auth::set_authorized_delay -10 ✅ -0.17%
TokenBlacklist::burn_public -10 ✅ -0.17%
AvmTest::public_dispatch -114 ✅ -0.19%
Token::constructor -10 ✅ -0.19%
NFT::constructor -10 ✅ -0.21%
Auth::public_dispatch -23 ✅ -0.21%
Token::burn_public -10 ✅ -0.21%
TokenBlacklist::mint_public -10 ✅ -0.22%
FeeJuice::public_dispatch -14 ✅ -0.22%
TokenBlacklist::mint_private -10 ✅ -0.23%
TokenBlacklist::public_dispatch -62 ✅ -0.24%
Uniswap::public_dispatch -62 ✅ -0.25%
StatefulTest::public_constructor -10 ✅ -0.26%
NFT::transfer_in_public -10 ✅ -0.27%
AppSubscription::constructor -10 ✅ -0.27%
Crowdfunding::init -10 ✅ -0.28%
NFT::public_dispatch -75 ✅ -0.28%
AvmInitializerTest::public_dispatch -10 ✅ -0.29%
EasyPrivateVoting::constructor -10 ✅ -0.31%
AuthRegistry::consume -10 ✅ -0.31%
Auth::constructor -10 ✅ -0.32%
Uniswap::constructor -10 ✅ -0.32%
Claim::public_dispatch -14 ✅ -0.33%
PriceFeed::public_dispatch -14 ✅ -0.34%
TokenBlacklist::get_roles -10 ✅ -0.36%
Spam::public_dispatch -14 ✅ -0.36%
EasyPrivateVoting::public_dispatch -23 ✅ -0.37%
InclusionProofs::constructor -10 ✅ -0.38%
AvmInitializerTest::constructor -10 ✅ -0.39%
Child::public_dispatch -26 ✅ -0.42%
DocsExample::public_dispatch -26 ✅ -0.43%
StatefulTest::public_dispatch -36 ✅ -0.44%
AppSubscription::public_dispatch -23 ✅ -0.45%
Router::public_dispatch -13 ✅ -0.50%
StaticParent::public_dispatch -39 ✅ -0.53%
Crowdfunding::public_dispatch -36 ✅ -0.57%
AuthRegistry::public_dispatch -49 ✅ -0.58%
AuthWitTest::public_dispatch -13 ✅ -0.66%
StaticChild::public_dispatch -26 ✅ -0.82%
InclusionProofs::public_dispatch -36 ✅ -0.85%
FPC::public_dispatch -84 ✅ -0.99%
TokenBridge::public_dispatch -237 ✅ -1.07%
Test::public_dispatch -549 ✅ -2.70%
TokenBridge::claim_public -486 ✅ -3.75%

Full diff report 👇
Program Bytecode size in bytes (+/-) %
Token::public_dispatch 36,905 (+3,252) +9.66%
Token::complete_refund 6,056 (+208) +3.56%
TokenBridge::exit_to_l1_public 8,226 (+230) +2.88%
AvmTest::poseidon2_hash 1,746 (+12) +0.69%
AvmTest::get_args_hash 1,816 (+12) +0.67%
AuthRegistry::set_reject_all 1,857 (+12) +0.65%
AvmTest::read_storage_map 1,941 (+12) +0.62%
NFT::_finish_transfer_to_public 1,941 (+12) +0.62%
Auth::get_scheduled_authorized 1,953 (+12) +0.62%
PriceFeed::set_price 1,958 (+12) +0.62%
AvmTest::set_storage_map 1,968 (+12) +0.61%
StatefulTest::get_public_value 1,972 (+12) +0.61%
AuthRegistry::is_reject_all 1,982 (+12) +0.61%
PriceFeed::get_price 2,000 (+12) +0.60%
Benchmarking::broadcast 2,006 (+12) +0.60%
AuthRegistry::set_authorized 2,019 (+12) +0.60%
NFT::is_minter 2,036 (+12) +0.59%
Token::is_minter 2,036 (+12) +0.59%
Auth::get_authorized 2,053 (+12) +0.59%
AuthRegistry::_set_authorized 2,066 (+12) +0.58%
FeeJuice::balance_of_public 2,080 (+12) +0.58%
StatefulTest::increment_public_value_no_init_check 2,110 (+12) +0.57%
TokenBlacklist::balance_of_public 2,134 (+12) +0.57%
Token::balance_of_public 2,134 (+12) +0.57%
AuthRegistry::is_consumable 2,149 (+12) +0.56%
StatefulTest::increment_public_value 2,159 (+12) +0.56%
Token::set_minter 2,212 (+12) +0.55%
NFT::set_minter 2,217 (+12) +0.54%
Lending::get_asset 2,221 (+12) +0.54%
AvmTest::add_storage_map 2,328 (+12) +0.52%
Auth::get_authorized_delay 2,410 (+12) +0.50%
FeeJuice::check_balance 2,453 (+12) +0.49%
EasyPrivateVoting::add_to_tally_public 2,559 (+12) +0.47%
FeeJuice::_increase_public_balance 2,598 (+12) +0.46%
NFT::owner_of 2,808 (+12) +0.43%
Spam::public_spam 2,808 (+12) +0.43%
TokenBlacklist::_increase_public_balance 2,867 (+12) +0.42%
Token::_increase_public_balance 2,867 (+12) +0.42%
CardGame::start_game 6,994 (+29) +0.42%
Lending::_deposit 3,053 (+12) +0.39%
FPC::constructor 3,164 (+12) +0.38%
Lending::init 3,204 (+12) +0.38%
Claim::constructor 3,281 (+12) +0.37%
TokenBridge::constructor 3,362 (+12) +0.36%
NFT::mint 3,376 (+12) +0.36%
Parent::public_nested_static_call 3,376 (+12) +0.36%
Benchmarking::increment_balance 3,725 (+12) +0.32%
CardGame::on_game_joined 5,058 (+12) +0.24%
Lending::get_position 5,250 (+12) +0.23%
Lending::update_accumulator 5,776 (+12) +0.21%
CardGame::on_card_played 5,959 (+12) +0.20%
Lending::_repay 6,191 (+12) +0.19%
NFT::finalize_transfer_to_private 6,447 (+12) +0.19%
NFT::_finalize_transfer_to_private_unsafe 6,494 (+12) +0.19%
Token::finalize_mint_to_private 7,117 (+12) +0.17%
Token::_finalize_mint_to_private_unsafe 7,164 (+12) +0.17%
Token::finalize_transfer_to_private 7,327 (+12) +0.16%
CardGame::on_cards_claimed 7,350 (+12) +0.16%
Token::_finalize_transfer_to_private_unsafe 7,374 (+12) +0.16%
Lending::_borrow 9,021 (+12) +0.13%
Lending::_withdraw 9,285 (+12) +0.13%
CardGame::public_dispatch 16,259 (+16) +0.10%
Benchmarking::public_dispatch 5,659 (-1) -0.02%
AvmTest::bulk_testing 23,785 (-10) -0.04%
Uniswap::swap_public 15,713 (-10) -0.06%
Test::consume_message_from_arbitrary_sender_public 7,967 (-10) -0.13%
TokenBlacklist::constructor 7,928 (-10) -0.13%
TokenBlacklist::update_roles 7,689 (-10) -0.13%
Lending::public_dispatch 28,493 (-40) -0.14%
Uniswap::_approve_bridge_and_exit_input_asset_to_L1 6,463 (-10) -0.15%
TokenBlacklist::shield 6,428 (-10) -0.16%
TokenBlacklist::transfer_public 6,323 (-10) -0.16%
Parent::public_dispatch 8,500 (-14) -0.16%
Auth::set_authorized 6,044 (-10) -0.17%
Auth::set_authorized_delay 5,958 (-10) -0.17%
TokenBlacklist::burn_public 5,890 (-10) -0.17%
AvmTest::public_dispatch 61,247 (-114) -0.19%
Token::constructor 5,155 (-10) -0.19%
NFT::constructor 4,799 (-10) -0.21%
Auth::public_dispatch 10,885 (-23) -0.21%
Token::burn_public 4,701 (-10) -0.21%
TokenBlacklist::mint_public 4,623 (-10) -0.22%
FeeJuice::public_dispatch 6,335 (-14) -0.22%
TokenBlacklist::mint_private 4,306 (-10) -0.23%
TokenBlacklist::public_dispatch 25,304 (-62) -0.24%
Uniswap::public_dispatch 25,014 (-62) -0.25%
StatefulTest::public_constructor 3,872 (-10) -0.26%
NFT::transfer_in_public 3,726 (-10) -0.27%
AppSubscription::constructor 3,702 (-10) -0.27%
Crowdfunding::init 3,547 (-10) -0.28%
NFT::public_dispatch 26,386 (-75) -0.28%
AvmInitializerTest::public_dispatch 3,442 (-10) -0.29%
EasyPrivateVoting::constructor 3,235 (-10) -0.31%
AuthRegistry::consume 3,234 (-10) -0.31%
Auth::constructor 3,109 (-10) -0.32%
Uniswap::constructor 3,068 (-10) -0.32%
Claim::public_dispatch 4,291 (-14) -0.33%
PriceFeed::public_dispatch 4,058 (-14) -0.34%
TokenBlacklist::get_roles 2,785 (-10) -0.36%
Spam::public_dispatch 3,829 (-14) -0.36%
EasyPrivateVoting::public_dispatch 6,112 (-23) -0.37%
InclusionProofs::constructor 2,633 (-10) -0.38%
AvmInitializerTest::constructor 2,557 (-10) -0.39%
Child::public_dispatch 6,115 (-26) -0.42%
DocsExample::public_dispatch 6,066 (-26) -0.43%
StatefulTest::public_dispatch 8,139 (-36) -0.44%
AppSubscription::public_dispatch 5,037 (-23) -0.45%
Router::public_dispatch 2,612 (-13) -0.50%
StaticParent::public_dispatch 7,339 (-39) -0.53%
Crowdfunding::public_dispatch 6,241 (-36) -0.57%
AuthRegistry::public_dispatch 8,466 (-49) -0.58%
AuthWitTest::public_dispatch 1,971 (-13) -0.66%
StaticChild::public_dispatch 3,152 (-26) -0.82%
InclusionProofs::public_dispatch 4,196 (-36) -0.85%
FPC::public_dispatch 8,389 (-84) -0.99%
TokenBridge::public_dispatch 21,955 (-237) -1.07%
Test::public_dispatch 19,815 (-549) -2.70%
TokenBridge::claim_public 12,470 (-486) -3.75%

@lucasxia01 lucasxia01 merged commit 37d7cd7 into master Nov 14, 2024
45 of 46 checks passed
@lucasxia01 lucasxia01 deleted the lx/split-ipa-proofs branch November 14, 2024 17:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants