Block Proof

The Block Proof is a proof that the block is valid. It is used to verify the block of the execution layer.

This Proof is used for the following RPC-Methods:

EthBlockProof

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 EthBlockProof(Container):
    executionPayload         : Union [             # the merkle prooof from the executionPayload.state down to the blockBodyRoot hash
        DenepExecutionPayload,                     # DenepExecutionPayload
        GnosisExecutionPayload]                    # GnosisExecutionPayload
    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

EthBlockNumberProof

for eth_blockNumber we need to proof the blocknumber and the timestamp of the latest block.

The Type is defined in src/chains/eth/ssz/verify_proof_types.h.

class EthBlockNumberProof(Container):
    blockNumber              : Uint64              # the block number of the latest block
    timestamp                : Uint64              # the timestamp of the latest block
    proof                    : List [bytes32, 256] # the multi merkle prooof from the executionPayload.blockNumber and executionPayload.timestamp  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

EthBlockData

display the block data , which is based on the execution payload

The Type is defined in src/chains/eth/ssz/verify_data_types.h.

class EthBlockData(Container):
    number                : Uint64                       # the blocknumber
    hash                  : Bytes32                      # the blockhash
    transactions          : Union [                      # the transactions
        List [bytes32, 4096],                            # the transactions hashes
        List [EthTxData, 4096]]                          # the transactions data
    logsBloom             : ByteVector [256]             # the logsBloom
    receiptsRoot          : Bytes32                      # the receiptsRoot
    extraData             : Bytes[32]                    # the extraData
    withdrawalsRoot       : Bytes32                      # the withdrawalsRoot
    baseFeePerGas         : Uint256                      # the baseFeePerGas
    nonce                 : ByteVector [8]               # the nonce
    miner                 : Address                      # the miner
    withdrawals           : List [DenepWithdrawal, 4096] # the withdrawals
    excessBlobGas         : Uint64                       # the excessBlobGas
    difficulty            : Uint64                       # the difficulty
    gasLimit              : Uint64                       # the gasLimit
    gasUsed               : Uint64                       # the gasUsed
    timestamp             : Uint64                       # the timestamp
    mixHash               : Bytes32                      # the mixHash
    parentHash            : Bytes32                      # the parentHash
    uncles                : List [bytes32, 4096]         # the transactions hashes
    parentBeaconBlockRoot : Bytes32                      # the parentBeaconBlockRoot
    sha3Uncles            : Bytes32                      # the sha3Uncles of the uncles
    transactionsRoot      : Bytes32                      # the transactionsRoot
    stateRoot             : Bytes32                      # the stateRoot
    blobGasUsed           : Uint64                       # the gas used for the blob transactions

Referenced Types

Last updated