Ethereum has had 100% uptime since its inception, so it’s worth asking why
@ethlabs_org and EF are redesigning its consensus protocol. I want to provide some context.
Ethereum today runs what researchers call an "ebb-and-flow" consensus protocol. "Ebb-and-flow" refers to the fact that the protocol is actually two protocols in one:
- There's an "availability protocol," also called a "fork-choice rule," which can produce blocks even when a majority of Ethereum's stake are offline. This is what would keep Ethereum producing blocks even if a nuclear war took out most of the internet.
- There's a "finality gadget," which makes a block irreversible after some time. This is why we can all go to sleep at night knowing that our transactions won't be reverted when we wake up.
However, for historical reasons, these two protocols are tightly coupled on Ethereum. Every block, a subset ("committee") of Ethereum validators send votes ("attestations") to produce blocks, and the very same votes are used to finalize blocks over a long range ("epochs"). The fact that the same votes are used for both protocols means that, if you were to reduce the votes used for the availability protocol, which would speed up block production, you would need more blocks to achieve finality, which would delay finalization. On the other hand, if you were to use more votes for the availability protocol, it would speed up finalization but slow down block production. You cannot speed up both at the same time.
On the other hand, Ethereum's fork-choice rule (formally named "LMD-GHOST") has been discovered to have multiple vulnerabilities over the years. For example, it was discovered (by researchers including
@casparschwa and
@barnabemonnot) that you could secretly accumulate votes for a fork, then reveal it later to reorg out a new block. There have been consistent efforts to patch these vulnerabilities, but they are generally seen as bandaid fixes that introduce further complexity and bug surface into the protocol.
So Ethereum's new consensus design, called "decoupled consensus", is an ambitious attempt at tackling both problems at once:
- Decouple the availability protocol from the finality protocol, so both can be optimized independently.
- Fix vulnerabilities with the availability protocol.
The way this is done, in broad strokes, is this:
- We replace LMD-GHOST with a new algorithm called Goldfish, alongside a "stabilization gadget" which is another sub-protocol that prevents Goldfish from re-orging over an arbitrarily long range.
- We run the availability protocol (Goldfish+stabilization gadget) and the finality protocol in parallel, with separate votes.
The result? Ethereum will provide both fast finality and fast block times, AND it will keep producing blocks during World War III. Of all blockchains, Ethereum will be the only blockchain with these properties, and that's why it will be the settlement layer of the global economy.