Ethereum block architecture

  • Where can I find a description (preferably a diagram like below) showing the block structure in an Ethereum blockchain?

    Diagram showing how Bitcoin transactions can be verified

    Credits: Wikipedia

    Correct me if I am wrong but this is not only relevant to Proof of Work, the Proof of stake will still use the same Merkle Tree right?

  • zanzu

    zanzu Correct answer

    5 years ago

    Lets first start with my adaptation of this figure illustrating the Bitcoin block structure:

    Boitcoin Blockchain architecture

    So far so good. All fairly basic.

    Enter Ethereum and things get a wee bit more complex. After reading through this and this, and as per @eth 's recommendation this, my best interpretation is the figure below:

    ![Ethereum Blockchain Architecture

    The header field definitions are available in section 4.3 of the yellow paper.

    Uncles is a hash (of a list of uncles), Yellow Paper has: "The Keccak 256-bit hash of the ommers list portion of this block". Codehash is just a hash since contracts are immutable. The pointers point to "hash of whole block header" (the Keccak-256 hash of all the bytes in the block header). To have a full diagram, should really consult the Yellow Paper...

    Updated response after consulting the YP. Starting to get clearer now. Thanks!

    Why are the transactions from block N linked to those of block N+1?

    These links correspond to contract state that has not changed in between blocks. Referencing the state from the previous blocks instead of replicating is more efficient from a block size perspective.

    You forgot the difficulty in bitcoin headers.

    Are new mined transactions included in the block as a 'reference' (e.g: only hash of previously broadcasted transaction in mempool) or is the transaction structure fully inlined in the block? If inlined/copied: there is some redundant data ineffeciency, right? once where transaction is broadcasted into mempool and then when copied to the block? If block transaction references mempool transaction: what happens if a node validating block has an unknown transaction? e.g: transaction is not in node mempool?

License under CC-BY-SA with attribution


Content dated before 7/24/2021 11:53 AM