diff --git a/evm/src/fixed_recursive_verifier.rs b/evm/src/fixed_recursive_verifier.rs index 766b9102..1e76a30e 100644 --- a/evm/src/fixed_recursive_verifier.rs +++ b/evm/src/fixed_recursive_verifier.rs @@ -644,10 +644,18 @@ where rhs: &ExtraBlockDataTarget, ) { // Connect genesis state root values. - for (&limb0, &limb1) in pvs.genesis_state_root.iter().zip(&rhs.genesis_state_root) { + for (&limb0, &limb1) in pvs + .genesis_state_trie_root + .iter() + .zip(&rhs.genesis_state_trie_root) + { builder.connect(limb0, limb1); } - for (&limb0, &limb1) in pvs.genesis_state_root.iter().zip(&lhs.genesis_state_root) { + for (&limb0, &limb1) in pvs + .genesis_state_trie_root + .iter() + .zip(&lhs.genesis_state_trie_root) + { builder.connect(limb0, limb1); } @@ -793,9 +801,9 @@ where // Between blocks, the genesis state trie remains unchanged. for (&limb0, limb1) in lhs .extra_block_data - .genesis_state_root + .genesis_state_trie_root .iter() - .zip(rhs.extra_block_data.genesis_state_root) + .zip(rhs.extra_block_data.genesis_state_trie_root) { builder.connect(limb0, limb1); } @@ -834,7 +842,7 @@ where .trie_roots_before .state_root .iter() - .zip(x.extra_block_data.genesis_state_root) + .zip(x.extra_block_data.genesis_state_trie_root) { let mut constr = builder.sub(limb0, limb1); constr = builder.mul(has_not_parent_block, constr); @@ -1037,7 +1045,7 @@ where + BlockHashesTarget::BLOCK_HASHES_SIZE + 8; for (key, &value) in genesis_state_trie_keys.zip_eq(&h256_limbs::( - public_values.extra_block_data.genesis_state_root, + public_values.extra_block_data.genesis_state_trie_root, )) { nonzero_pis.insert(key, value); } diff --git a/evm/src/generation/mod.rs b/evm/src/generation/mod.rs index 317326e8..62182cd2 100644 --- a/evm/src/generation/mod.rs +++ b/evm/src/generation/mod.rs @@ -261,7 +261,7 @@ pub fn generate_traces, const D: usize>( let txn_number_after = read_metadata(GlobalMetadata::TxnNumberAfter); let extra_block_data = ExtraBlockData { - genesis_state_root: inputs.genesis_state_trie_root, + genesis_state_trie_root: inputs.genesis_state_trie_root, txn_number_before: inputs.txn_number_before, txn_number_after, gas_used_before: inputs.gas_used_before, diff --git a/evm/src/get_challenges.rs b/evm/src/get_challenges.rs index 715c1097..ed8ff915 100644 --- a/evm/src/get_challenges.rs +++ b/evm/src/get_challenges.rs @@ -109,7 +109,7 @@ fn observe_extra_block_data< challenger: &mut Challenger, extra_data: &ExtraBlockData, ) -> Result<(), ProgramError> { - challenger.observe_elements(&h256_limbs(extra_data.genesis_state_root)); + challenger.observe_elements(&h256_limbs(extra_data.genesis_state_trie_root)); challenger.observe_element(u256_to_u32(extra_data.txn_number_before)?); challenger.observe_element(u256_to_u32(extra_data.txn_number_after)?); let gas_used_before = u256_to_u64(extra_data.gas_used_before)?; @@ -138,7 +138,7 @@ fn observe_extra_block_data_target< ) where C::Hasher: AlgebraicHasher, { - challenger.observe_elements(&extra_data.genesis_state_root); + challenger.observe_elements(&extra_data.genesis_state_trie_root); challenger.observe_element(extra_data.txn_number_before); challenger.observe_element(extra_data.txn_number_after); challenger.observe_elements(&extra_data.gas_used_before); diff --git a/evm/src/proof.rs b/evm/src/proof.rs index fd6c4f3e..3f744a61 100644 --- a/evm/src/proof.rs +++ b/evm/src/proof.rs @@ -125,7 +125,7 @@ pub struct BlockMetadata { #[derive(Debug, Clone, Default, Deserialize, Serialize)] pub struct ExtraBlockData { /// The state trie digest of the genesis block. - pub genesis_state_root: H256, + pub genesis_state_trie_root: H256, /// The transaction count prior execution of the local state transition, starting /// at 0 for the initial transaction of a block. pub txn_number_before: U256, @@ -210,7 +210,7 @@ impl PublicValuesTarget { buffer.write_target_array(&cur_hash)?; let ExtraBlockDataTarget { - genesis_state_root, + genesis_state_trie_root: genesis_state_root, txn_number_before, txn_number_after, gas_used_before, @@ -261,7 +261,7 @@ impl PublicValuesTarget { }; let extra_block_data = ExtraBlockDataTarget { - genesis_state_root: buffer.read_target_array()?, + genesis_state_trie_root: buffer.read_target_array()?, txn_number_before: buffer.read_target()?, txn_number_after: buffer.read_target()?, gas_used_before: buffer.read_target_array()?, @@ -571,7 +571,7 @@ impl BlockHashesTarget { #[derive(Eq, PartialEq, Debug, Copy, Clone)] pub struct ExtraBlockDataTarget { - pub genesis_state_root: [Target; 8], + pub genesis_state_trie_root: [Target; 8], pub txn_number_before: Target, pub txn_number_after: Target, pub gas_used_before: [Target; 2], @@ -584,7 +584,7 @@ impl ExtraBlockDataTarget { const SIZE: usize = 142; pub fn from_public_inputs(pis: &[Target]) -> Self { - let genesis_state_root = pis[0..8].try_into().unwrap(); + let genesis_state_trie_root = pis[0..8].try_into().unwrap(); let txn_number_before = pis[8]; let txn_number_after = pis[9]; let gas_used_before = pis[10..12].try_into().unwrap(); @@ -593,7 +593,7 @@ impl ExtraBlockDataTarget { let block_bloom_after = pis[78..142].try_into().unwrap(); Self { - genesis_state_root, + genesis_state_trie_root, txn_number_before, txn_number_after, gas_used_before, @@ -610,11 +610,11 @@ impl ExtraBlockDataTarget { ed1: Self, ) -> Self { Self { - genesis_state_root: core::array::from_fn(|i| { + genesis_state_trie_root: core::array::from_fn(|i| { builder.select( condition, - ed0.genesis_state_root[i], - ed1.genesis_state_root[i], + ed0.genesis_state_trie_root[i], + ed1.genesis_state_trie_root[i], ) }), txn_number_before: builder.select( @@ -652,7 +652,10 @@ impl ExtraBlockDataTarget { ed1: Self, ) { for i in 0..8 { - builder.connect(ed0.genesis_state_root[i], ed1.genesis_state_root[i]); + builder.connect( + ed0.genesis_state_trie_root[i], + ed1.genesis_state_trie_root[i], + ); } builder.connect(ed0.txn_number_before, ed1.txn_number_before); builder.connect(ed0.txn_number_after, ed1.txn_number_after); diff --git a/evm/src/recursive_verifier.rs b/evm/src/recursive_verifier.rs index 04259208..8c99ca5d 100644 --- a/evm/src/recursive_verifier.rs +++ b/evm/src/recursive_verifier.rs @@ -813,7 +813,7 @@ pub(crate) fn add_virtual_block_hashes, const D: us pub(crate) fn add_virtual_extra_block_data, const D: usize>( builder: &mut CircuitBuilder, ) -> ExtraBlockDataTarget { - let genesis_state_root = builder.add_virtual_public_input_arr(); + let genesis_state_trie_root = builder.add_virtual_public_input_arr(); let txn_number_before = builder.add_virtual_public_input(); let txn_number_after = builder.add_virtual_public_input(); let gas_used_before = builder.add_virtual_public_input_arr(); @@ -821,7 +821,7 @@ pub(crate) fn add_virtual_extra_block_data, const D let block_bloom_before: [Target; 64] = builder.add_virtual_public_input_arr(); let block_bloom_after: [Target; 64] = builder.add_virtual_public_input_arr(); ExtraBlockDataTarget { - genesis_state_root, + genesis_state_trie_root, txn_number_before, txn_number_after, gas_used_before, @@ -1084,8 +1084,8 @@ where W: Witness, { witness.set_target_arr( - &ed_target.genesis_state_root, - &h256_limbs::(ed.genesis_state_root), + &ed_target.genesis_state_trie_root, + &h256_limbs::(ed.genesis_state_trie_root), ); witness.set_target( ed_target.txn_number_before, diff --git a/evm/tests/log_opcode.rs b/evm/tests/log_opcode.rs index 3a0e5abf..dd7ea223 100644 --- a/evm/tests/log_opcode.rs +++ b/evm/tests/log_opcode.rs @@ -339,6 +339,7 @@ fn test_log_with_aggreg() -> anyhow::Result<()> { to_second_nibbles, rlp::encode(&to_account_second_before).to_vec(), ); + let genesis_state_trie_root = state_trie_before.hash(); let tries_before = TrieInputs { state_trie: state_trie_before, @@ -439,7 +440,7 @@ fn test_log_with_aggreg() -> anyhow::Result<()> { tries: tries_before, trie_roots_after: tries_after, contract_code, - genesis_state_trie_root: HashedPartialTrie::from(Node::Empty).hash(), + genesis_state_trie_root, block_metadata: block_metadata.clone(), txn_number_before: 0.into(), gas_used_before: 0.into(), @@ -583,7 +584,7 @@ fn test_log_with_aggreg() -> anyhow::Result<()> { tries: tries_before, trie_roots_after, contract_code, - genesis_state_trie_root: HashedPartialTrie::from(Node::Empty).hash(), + genesis_state_trie_root, block_metadata, txn_number_before: 1.into(), gas_used_before: gas_used_second, @@ -609,7 +610,7 @@ fn test_log_with_aggreg() -> anyhow::Result<()> { trie_roots_before: first_public_values.trie_roots_before, trie_roots_after: public_values.trie_roots_after, extra_block_data: ExtraBlockData { - genesis_state_root: first_public_values.extra_block_data.genesis_state_root, + genesis_state_trie_root, txn_number_before: first_public_values.extra_block_data.txn_number_before, txn_number_after: public_values.extra_block_data.txn_number_after, gas_used_before: first_public_values.extra_block_data.gas_used_before, diff --git a/evm/tests/many_transactions.rs b/evm/tests/many_transactions.rs index 134eb968..9678d652 100644 --- a/evm/tests/many_transactions.rs +++ b/evm/tests/many_transactions.rs @@ -216,7 +216,7 @@ fn test_four_transactions() -> anyhow::Result<()> { trie_roots_after, genesis_state_trie_root: HashedPartialTrie::from(Node::Empty).hash(), contract_code, - block_metadata: block_metadata.clone(), + block_metadata, addresses: vec![], block_bloom_before: [0.into(); 8], gas_used_before: 0.into(),