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? – Cyberience Jun 27 '18 at 7:03

Here's my interpretation, based on the yellow paper:

enter image description here

...the Tries should look more like this:

enter image description here

| improve this answer | |
  • 3
    Hi @atomh33ls, do you mind sharing the source file for the illustrations (in whatever software format you used to create them). I would like to create an illustration for transactions trie. It will look almost the same as state trie except some details will be changed. Thank you! – medvedev1088 Oct 26 '17 at 10:29
  • Explain them to us in simple english – siva Nov 27 '17 at 12:36
  • @atomh33ls I would also be interested in the source files. I really like this amazing overview! What software did you use? – kn1g Jun 8 '19 at 17:13

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.

| improve this answer | |
  • 2
    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... – eth Jan 29 '16 at 22:53
  • Updated response after consulting the YP. Starting to get clearer now. Thanks! – zanzu Feb 1 '16 at 12:34
  • Why are the transactions from block N linked to those of block N+1? – Sebi Jun 10 '16 at 8:31
  • 3
    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. – zanzu Jun 10 '16 at 9:49
  • 1
    You forgot the difficulty in bitcoin headers. – Jus12 Sep 23 '16 at 16:52

Here is a complete structure of a block and where it plays its role in Ethereum's blockchain.

Ethereum Block Structure

You asked for a diagram but i think this would be more explanatory.

| improve this answer | |

The description can be found in the Yellow Paper which is the formal specification of the Ethereum protocol.

Here are the main pieces of a block:

4.3. The Block. The block in Ethereum is the collection of relevant pieces of information (known as the block header), H, together with information corresponding to the comprised transactions, T, and a set of other block headers U that are known to have a parent equal to the present block’s parent’s parent.

No diagram though (an opportunity for the community).

| improve this answer | |
  • ComeonI though you guys would do better at this explanation – siva Nov 27 '17 at 12:37

Here's a picture from V's article regarding data structures for light clients:


enter image description here

| improve this answer | |
  • 4
    The above is an abstraction of a Merkle tree. I'm rather looking for the Ethereum block structure (including all the actual header fields). – zanzu Jan 22 '16 at 8:57

Vitalik Buterin gives a compact answer:

Every block header in Ethereum contains 3 trees for three kinds of objects: Transactions, Receipts (essentially, pieces of data showing the effect of each transaction), State.

You can read a longer version with pictures here.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.