A path to Ethereum 2.0
(one guy’s current understanding)
2018-07-06
Ben Edgington
Background
Disclaimer�None of this is set in stone; everything is subject to change. My understanding is likely to be faulty and/or incomplete. I am not party to any special knowledge: this is just an attempted synthesis of publicly available information.
Update 2018-07-08: I’ve added a (very) speculative delivery timeline expanding on some remarks from Justin Drake.
My nomenclature�Ethereum 1.0 is the current Mainnet, which continues as a PoW chain for the foreseeable future.�Ethereum 2.0 is features likely to be delivered “soon”, possibly in sub-stages.�Ethereum 2.x is loosely features possibly to be implemented later. Maybe 3.0.
Recent developments (last 3-4 weeks)
Looking at 4096 now
PoW
PoS
Casper FFG
Source: What you can do for Ethereum 2.0
Differences and discontinuities 1.0 → 2.0
Changes are proposed to:
(Implicit) Goals:
Consensus
Ethereum 1.0 | Ethereum 2.0 | Ethereum 2.x |
Proof of Work
| Proof of Stake overlay
| Full Casper CBC Proof of Stake. |
Concurrency
Ethereum 1.0 | Ethereum 2.0 | Ethereum 2.x |
Globally single threaded
| Sharded state and parallel Tx processing
| Exponentially sharded? |
State transition
Ethereum 1.0 | Ethereum 2.0 | Ethereum 2.x |
The EVM
|
| Alternative execution engines? |
Not yet decided: delayed state execution.
Cryptoeconomics 1: slashing
Ethereum 1.0 | Ethereum 2.0 | |
Network security is largely incentive driven:
| Network security assured by a combination of
|
Cryptoeconomics 2: storage rent
Ethereum 1.0 | Ethereum 2.x | |
Blockchain storage is paid for once and persists forever. |
|
Crypto 1: aggregate block signatures
Ethereum 1.0 | Ethereum 2.0 | Ethereum 2.x |
Not required | BLS aggregate signatures allow for large numbers of validators to be handled efficiently.
|
|
Crypto 2: randomness
Ethereum 1.0 | Ethereum 2.0 | |
| Protocol fundamentally relies on availability of a random beacon. Quality of randomness expected to be sufficient for many applications |
Choice of implementations for the random beacon:
Crypto 3: hash algorithm
Ethereum 1.0 | Ethereum 2.0 | |
Keccak256 (almost SHA3) |
Applications of hashing broaden in Ethereum 2.0:
Crypto 4: account abstraction
Ethereum 1.0 | Ethereum 2.x | |
Transaction validity is baked into the protocol:
| Account abstraction: all accounts become contract accounts. Allow contracts to specify their own Tx validity criteria. E.g.
|
This was initially proposed for the Mainnet in April 2016.
Networking
Ethereum 1.0 | Ethereum 2.0 | |
devp2p
| Sharded p2p protocol likely based on libp2p.
|
Programming model
Ethereum 1.0 | Ethereum 2.x | |
Inter-contract calls are synchronous. | Undecided
|
In general, introducing asynchrony is likely to make auditing the correctness of contract systems substantially more difficult.
Delivery Timeline�(Status: speculative. Based on utterances from the Ethereum Foundation)
Source: What you can do for Ethereum 2.0
Now
2019
2021
2020
EF Speculative timing
Phase 0: The PoS beacon chain (2019?)
Phase 1: Sharded transaction handling (The data layer - 2020?)
Phase 2: Sharded state handling (The execution layer - 2021?)
Phase X: Also under discussion...