What exactly is the content of blocks on the beacon chain

beacon-chainbeacon-nodeseth-2.0proof-of-stake

I am trying to wrap my head around how the POS ethereum will work and have so many questions.

First one is basically about the beacon chain. What exactly would the blocks in the beacon chain contain?

I read that validators will propose and attests to blocks that would be added in the proof of stake version of ethereum, but what exactly would be the content of the blocks? Will it be the everyday balance transaction that you have in the current ethereum pow blocks? or something else?

My feeling is if validators are replacing miners, and miners add blocks that contain transaction, then perhaps the blocks validators would also be adding will be transactions (given they are replacing miners) – but from what I am reading I have a feeling this is not correct. Thing is I can't also find an exact explanation of the content of blocks the validators will be proposing.

Anyone knows more about this that can help?

Best Answer

Yes, beacon blocks after The Merge (when Proof of Stake replaces Proof of Work) will contain transactions.

Beacon blocks, up to and including Altair, have the following per https://eth2book.info/altair/annotated-spec#beaconblockbody

class BeaconBlockBody(Container):
    randao_reveal: BLSSignature
    eth1_data: Eth1Data  # Eth1 data vote
    graffiti: Bytes32  # Arbitrary data
    # Operations
    proposer_slashings: List[ProposerSlashing, MAX_PROPOSER_SLASHINGS]
    attester_slashings: List[AttesterSlashing, MAX_ATTESTER_SLASHINGS]
    attestations: List[Attestation, MAX_ATTESTATIONS]
    deposits: List[Deposit, MAX_DEPOSITS]
    voluntary_exits: List[SignedVoluntaryExit, MAX_VOLUNTARY_EXITS]
    sync_aggregate: SyncAggregate  # [New in Altair]

With The Merge, an ExecutionPayload will be added per https://github.com/ethereum/annotated-spec/blob/master/merge/beacon-chain.md#beaconblockbody

class BeaconBlockBody(Container):
    randao_reveal: BLSSignature
    eth1_data: Eth1Data  # Eth1 data vote
    graffiti: Bytes32  # Arbitrary data
    # Operations
    proposer_slashings: List[ProposerSlashing, MAX_PROPOSER_SLASHINGS]
    attester_slashings: List[AttesterSlashing, MAX_ATTESTER_SLASHINGS]
    attestations: List[Attestation, MAX_ATTESTATIONS]
    deposits: List[Deposit, MAX_DEPOSITS]
    voluntary_exits: List[SignedVoluntaryExit, MAX_VOLUNTARY_EXITS]
    sync_aggregate: SyncAggregate
    # Execution
    execution_payload: ExecutionPayload  # [New in Merge]

Yes, beacon blocks after The Merge will contain transactions. An ExecutionPayload per https://github.com/ethereum/annotated-spec/blob/master/merge/beacon-chain.md#executionpayload has:

class ExecutionPayload(Container):
    # Execution block header fields
    parent_hash: Hash32
    coinbase: ExecutionAddress  # 'beneficiary' in the yellow paper
    state_root: Bytes32
    receipt_root: Bytes32  # 'receipts root' in the yellow paper
    logs_bloom: ByteVector[BYTES_PER_LOGS_BLOOM]
    random: Bytes32  # 'difficulty' in the yellow paper
    block_number: uint64  # 'number' in the yellow paper
    gas_limit: uint64
    gas_used: uint64
    timestamp: uint64
    extra_data: ByteList[MAX_EXTRA_DATA_BYTES]
    base_fee_per_gas: Bytes32  # base fee introduced in EIP-1559, little-endian serialized
    # Extra payload fields
    block_hash: Hash32  # Hash of execution block
    transactions: List[Transaction, MAX_TRANSACTIONS_PER_PAYLOAD]

Other helpful references:

The first reference contains this overview of how blocks look before and after The Merge:

enter image description here

Related Topic