(1/18) @ethereum Upgrades: EIP-2935
Ethereum's road to becoming the World Computer requires achieving statelessness. The path is long and full of incremental steps, but is being worked on with every hard fork. EIP-2935 is one of those upgrades, brining us another step closer.
(2/18) Ethereum is the World Computer, a single, globally shared computing platform that exists in the space between a network of 1,000s of computers (nodes).
These nodes are real computers in the real world, communicating directly from peer to peer.
x.com/LogarithmicRex/status/1592309373732151296
(3/18) Each node operates two pieces of software:
The execution client operates Ethereum's computing environment - the Ethereum Virtual Machine (EVM).
The consensus client is responsible for securing Ethereum and keeping all nodes in sync - via Proof of Stake (PoS).
x.com/LogarithmicRex/status/1589807499804176384
(4/18) The EVM is a Turing complete virtual machine - any computation that can run on any computer can also happen in the EVM.
But unlike any other computing environment, the EVM is cryptographically secured. At any moment, anyone can mathematically verify the EVM's validity.
(5/18) For example - let's say I want to see exactly how much $ETH has been deposited into @aave. In normal computing, I'd have to request the answer and trust whoever gave it to me.
In Ethereum, not only can I query the result myself, I can cryptographically prove its correct.
x.com/LogarithmicRex/status/1862168230686867611
(6/18) At a very high level, this works by storing the internal state of the EVM in a data structure that allows users to prove individual pieces of data without storing the whole dataset.
The block hash (imagine the block's digital fingerprint) is the anchor for these proofs.
(7/18) If you dive deeper, you'll learn that the EVM stores its state in a Patricia-Merkle Trie. This data structure allows for the efficient storage and verification of a large dataset.
The takeaway: a proof verifies that a piece of data exists by analyzing the root hash.
x.com/LogarithmicRex/status/1567638108937801728
(8/18) As a result, in order to cryptographically verify the state of Ethereum, you need to have a copy of the block hash (which is effectively the root hash of the EVM's Merkle trie during that block).
Without the block hash, you cannot verify anything.
(9/18) Ethereum was designed with an implicit assumption: every client has convenient access to all recent block hashes.
Because the only way to access Ethereum (directly) is to run an execution client, this is always true - this data as a natural consequence of operations.
(10/18) Today, everything works fine... but Ethereum is not yet the World Computer. To get there, Ethereum must support stateless clients.
When stateless, you'll be able to directly interact with Ethereum via cryptography - no need to store the EVM locally.
x.com/LogarithmicRex/status/1588752629118554112
(11/18) While a stateless Ethereum does allow for direct, trustless access to the World Computer, it will need to be facilitated by 3rd parties.
Specifically, someone will need to provide the proof data (also called witness data) that can be used to prove the state of the EVM.
(12/18) The problem: as of today Ethereum cannot provide you with the most recent block hashes. Again, the implicit assumption is that you already have them.
And so, whoever gives you the witness data must also give you the block hash.
(13/18) Consider this: let's say I want to prove my own balance in the EVM, but both the witness data and the block hash come from a 3rd party.
The proof guarantees the data exists in the block hash... but it does not guarantee the block hash is a valid state of the EVM.
(14/18) Which brings us to EIP-2935, a change that stores the most recent block hashes inside of the EVM and then allows users to retrieve them.
If the block hash (the anchor of the proof) comes directly from Ethereum, we know it represents the EVM.
eips.ethereum.org/EIPS/eip-2935
(15/18) EIP-2935 will not have implications for the everyday use of Ethereum immediately, but it is an important upgrade on the road to a stateless EVM.
A stateless EVM is not only much more scalable, it is the foundation of a trustless, verifiable World Computer.
(16/18) There are still many changes needed to achieve statelessness. Most significantly, we need to replace the Patricia-Merkle trie with a data structure that is more efficient.
But we are marching down that path, and EIP-2935 is an important stepping stone to get there.
(17/18) Today, users (generally) interact with Ethereum through an intermediary like @infura_io. We are explicitly trusting Infura to operate on our behalf.
With a stateless World Computer, we will still use these services to gather witness data, but we will verify ourselves.
(18/18) In summary, EIP-2935 stores the most recent block hashes within the EVM and allows users to directly query them.
This upgrade is important in allowing trustless verification of Ethereum and paving the way for statelessness and the endgame of the World Computer.