Skip to main content
161 votes

Ethereum block architecture

Here's my interpretation, based on the yellow paper: ...the Tries should look more like this:
Lee's user avatar
  • 8,558
52 votes
Accepted

How does Ethereum make use of bloom filters?

Events in the ethereum system must be easily searched for, so that applications can filter and display events, including historical ones, without undue overhead. At the same time, storage space is ...
Nick Johnson's user avatar
  • 8,174
46 votes
Accepted

Is there a table of EVM instructions and their gas costs?

The Yellow Paper is actively maintained and should always be current, and it's not as easy as a table, but the gas costs are there in Appendix G. Fee Schedule and read it with Appendix H. ...
eth's user avatar
  • 85.9k
24 votes

Ethereum block architecture

Here is a complete structure of a block and where it plays its role in Ethereum's blockchain. You asked for a diagram but i think this would be more explanatory.
Vishal Sharma's user avatar
18 votes
Accepted

What is the difference between a "call" , "message call" and a "message"

Good question. Both "message" and "call" are, arguably, overloaded terms. This question connects similar-sounding practical concerns and internal formal concerns making it challenging to address. ...
Rob Hitchens's user avatar
  • 55.4k
16 votes
Accepted

Algebra symbology guidance for Ethereum Yellow Paper

Univerally recognised mathematical symbols and their name/meaning is defined as/is equivalent to is equal to is not equal to size (length) of is in the following set is ...
14 votes

What is the difference between a "call" , "message call" and a "message"

There's "practical" answers to these questions, and "formal" ones. First, for practicality (and to avoid duplication) an important thing to understand is What is the difference between a transaction ...
eth's user avatar
  • 85.9k
14 votes

What's a precompiled contract and how are they different from native opcodes?

Not an authority, but I know of someone who is... From Vitalik's article, A Prehistory of the Ethereum Protocol The second was the idea of “precompiles”, solving the problem of allowing complex ...
benjaminion's user avatar
  • 9,297
14 votes

Why is the Ethereum paper called the "yellow paper"?

The Ethereum paper is the White Paper, originally published by Vitalik towards the end of 2013. (About a month later, in early 2014, Vitalik announced the start of the project.) Other colours of ...
Richard Horrocks's user avatar
13 votes
Accepted

How would a miner cope with a huge block time?

Summary A block mined by a miner that sets their computer time ahead of the current "real" time will have their winning block rejected by other Ethereum nodes. Other miners on the Ethereum network ...
BokkyPooBah's user avatar
  • 40.3k
11 votes
Accepted

Is there a readable (less formal) version of Ethereum Yellow Paper?

Since few days there is "Beige Paper", which is a rewrite of the Yellowpaper in non-Yellowpaper syntax, which is readable by a broader audience. GitHub Project: https://github.com/chronaeon/...
ivicaa's user avatar
  • 7,519
10 votes

Ethereum block architecture

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 ...
Jouko Salonen's user avatar
10 votes
Accepted

Is there a formal specification for the EVM?

The yellow paper is up-to-date and the only technical specification I know of. Below the headline, it says Homestead Draft which refers to the most recent homestead release on March 14, 2016. I just ...
q9f's user avatar
  • 32.9k
9 votes

How would a miner cope with a huge block time?

If a miner M sees a block B with a timestamp far in the future, here's what they would probably do: instead of building on B, they would publish their own block C with a more accurate timestamp. By ...
eth's user avatar
  • 85.9k
9 votes
Accepted

Block header structure change under the Merge to Proof of Stake?

Your question is a bit tricky because it depends on which types of block you speak of. After the merge, the beacon blocks will encapsulate all the info and thus can be considered as "the main ...
upavloff's user avatar
  • 1,120
9 votes
Accepted

What is the Identity function and what are its uses?

The Identity function simply returns whatever its input is. At a talk given by Vitalik Buterin, it's for efficient data copying. It costs 15 gas + 3 gas for each 32 bytes of input data (rounded up). ...
eth's user avatar
  • 85.9k
8 votes

Is there a table of EVM instructions and their gas costs?

If you're looking for such a table for the purpose of golfing down contract gas cost, I'd recommend you bookmark protocol_params.go. It is good for two reasons: It is the source of truth. The gas ...
user2754799's user avatar
8 votes
Accepted

Is the LogsBloom in the block header the same as the Bloom filter in the Transaction Receipts Trie?

No, they are not the same thing. The Bloom filter in the transaction (R_b) contains only the logs from this transaction while the Bloom filter in the block header (H_b) contains the logs from all ...
ComandanteCheth's user avatar
7 votes

How are miners minimum acceptable gas price determined?

Replying to euri10's question (this should be a comment instead of an answer but I cannot format in comments), here is the geth --help snippet that displays the options to set the gas price options - ...
BokkyPooBah's user avatar
  • 40.3k
7 votes
Accepted

What is the exact data structure of each block?

Yes, the Ethereum Yellow Paper (YP) and related Ethereum block architecture. Here are the main pieces of a block and the YP has all the sizes: 4.3. The Block. The block in Ethereum is the ...
eth's user avatar
  • 85.9k
7 votes
Accepted

why is the EVM stack limited to 1024?

Because if it was very large, then executing a contract would be more expensive (ie, require more memory). I think 1024 was a very conservative value to be as safe as possible I think the ...
Earlz's user avatar
  • 471
6 votes

What is the exact data structure of each block?

Here's an illusatration adapted from another answer -> definitions summarised from the yellow paper: See also Equation (35) of the yellow paper. On github here, Latex format: The component types are ...
Lee's user avatar
  • 8,558
6 votes

Ethereum block architecture

Extrapolating from the syntactic block structure, we can also ask what the semantic ethereum world state structure looks like. I use this diagram to explain the relationship between "on-chain&...
samlaf's user avatar
  • 160
5 votes

Why does difficulty affect the block header nonce range?

In that equation, the fancy n doesn't refer to nonce. Hn refers to nonce. Here's the full, put together equation which might clarify it: More info on difficulty: Given an approximately uniform ...
tayvano's user avatar
  • 16k
5 votes
Accepted

Does the EXTCODECOPY instruction also copy the state of the variables?

No, EXTCODECOPY only copies the bytecode. Can a contract access another contract's storage? No, a contract cannot read the state or storage of another arbitrary contract. If you're writing a ...
eth's user avatar
  • 85.9k
5 votes
Accepted

From an account's address is it possible to tell whether the account is a contract account or externally owned contract?

No, it is not possible to determine from the address alone if it is a contract account or an externally owned account. See this previous post on how contract addresses are generated: How is the ...
max taldykin's user avatar
  • 2,966
5 votes

What is a Zombie Account in Ethereum?

From the Yellowpaper, o, the resultant byte sequence from the execution of the initialisation code, specifies the final body code for the newly-created account. If the initialization function ...
Nicolas Bernard's user avatar
5 votes
Accepted

(key,value) pair in account storage and corresponding modified Merkle patricia tree

In the storage contents of the account what are these (k,v) i.e keys and values? The contract code is free to use these as it wishes. For example, in this Solidity code the compiler will take index 0 ...
medvedev1088's user avatar
5 votes
Accepted

Transaction init and 24kb contract size limit

Let's start by saying that you are right, it is quite weird because the "init bytecode" is basically the deployed contract. With that being said, the yellow paper may have amends by the EIPs ...
matank001's user avatar
  • 820
4 votes

Is there a table of EVM instructions and their gas costs?

There are lots of reference websites for EVM opcodes: crytic's evm-opcodes repo ethereum.org ethervm.io evm.codes My favorite one is evm.codes:
Paul Razvan Berg's user avatar

Only top scored, non community-wiki answers of a minimum length are eligible