Account Proof
represents the account and storage values, including the Merkle proof, of the specified account.
Patricia Merkle Proof for the Account Object in the execution layer (balance, nonce, codeHash, storageHash) and the storage values with its own Proofs. (using eth_getProof): Result StateRoot
State Proof is a SSZ Merkle Proof from the StateRoot to the ExecutionPayload over the BeaconBlockBody to its root hash which is part of the header.
BeaconBlockHeader is passed because also need the slot in order to find out which period and which sync committee is used.
Signature of the SyncCommittee (taken from the following block) is used to verify the SignData where the blockhash is part of the message and the Domain is calculated from the fork and the Genesis Validator Root.

This Proof is used for the following RPC-Methods:
EthStateProof
the stateRoot proof is used as part of different other types since it contains all relevant proofs to validate the stateRoot of the execution layer
The Type is defined in src/chains/eth/ssz/verify_proof_types.h.
class EthStateProof(Container):
block : Union [ # the block to be proven
None, # no block-proof for latest
Bytes32, # proof for the right blockhash
Uint64] # proof for the right blocknumber
proof : List [bytes32, 256] # the merkle prooof from the executionPayload.state down to the blockBodyRoot hash
header : BeaconBlockHeader # the header of the beacon block
historic_proof : Union [ # optional historic proof. If non null, the block is verified by this proof and the signature confirm the future block.
None, # no block-proof for latest
EthHistoricBlockProof, # proof for a historic block using the state_root
EthHeadersBlockProof] # proof block giving headers
sync_committee_bits : BitVector [512] # the bits of the validators that signed the block
sync_committee_signature : ByteVector [96] # the signature of the sync committee
Referenced Types
EthStorageProof
represents the storage proof of a key. The value can be taken from the last entry, which is the leaf of the proof.
The Type is defined in src/chains/eth/ssz/verify_proof_types.h.
class EthStorageProof(Container):
key : Bytes32 # the key to be proven
proof : List [bytes_1024, 1024] # Patricia merkle proof
EthAccountProof
the main proof data for an account.
The Type is defined in src/chains/eth/ssz/verify_proof_types.h.
class EthAccountProof(Container):
accountProof : List [bytes_1024, 256] # Patricia merkle proof
address : Address # the address of the account
storageProof : List [EthStorageProof, 256] # the storage proofs of the selected
state_proof : EthStateProof # the state proof of the account
Referenced Types
EthStorageProofData
represents the storage proof of a key. The value can be taken from the last entry, which is the leaf of the proof.
The Type is defined in src/chains/eth/ssz/verify_data_types.h.
class EthStorageProofData(Container):
key : Bytes32 # the key
value : Bytes32 # the value
proof : List [bytes_1024, 1024] # Patricia merkle proof
EthProofData
The Type is defined in src/chains/eth/ssz/verify_data_types.h.
class EthProofData(Container):
balance : Uint256
codeHash : Bytes32
nonce : Uint256
storageHash : Bytes32
accountProof : List [bytes_1024, 256] # Patricia merkle proof
storageProof : List [EthStorageProofData, 256] # the storage proofs of the selected
Referenced Types
Last updated