Earlier this year, the Rayonism hackathon kicked off to protoype the architecture for Ethereum's transition to proof of stake. The transition, often refered to as The Merge, will keep the existing beacon chain (eth2) and execution layer (eth1) clients, and "merge" both chains by making the beacon chain drive the execution layer's consensus. This approach is the most recent in a series of iterations to the Ethereum roadmap (more on that here).
While Rayonism proved that this was a sound architecture, there were still several things left to design, implement and test, including the actual proof of work (PoW) to proof of stake (PoS) transition. To do so, client teams met face to face last week (analogous to the Eth2 Interop from 2019) for a workshop named Amphora 🏺.
Here is an overview of the main things that were accomplished during the workshop, and the path from here to The Merge.
The purpose of the event was to get the execution and consensus layer client teams to iron out outstanding issues in the specification and reach a set of development milestones. Each milestone got clients closer to a fully functioning merge devnet which transitioned from PoW to PoS. Representatives of Besu, Erigon, EthereumJS, Geth, Nethermind, Nimbus, Lighthouse, Lodestar, Quilt and Teku attended the workshop in person. The Prysm team, along with several members from the aforementioned teams, participated remotely.
The Amphora Milestones aimed to first get clients conforming with the spec, then gradually adding more complexity and finally growing the amount of other clients they could interoperate with.
The first milestone, M1, only required clients to implement the merge specification. It was completed by most teams prior to the workshop even starting! To help clients validate their implementation, several - testing - suites were provided.
Then, milestones M2, M3 and M4 had client teams set up devnets with an increasing technical complexity and node diversity. M2 had execution layer (EL) and consensus layer (CL) teams pair one on one, and launch a post-merge devnet. This ensured that both layers could successfully communicate via the Engine API in a PoS context.
M3 is where the Amphora workshop moved a step beyond Rayonism: clients set up emphemeral devnets which ran through the PoW to PoS transition.
The transition is based on PoW difficulty: once a block's difficulty equals or exceeds a specific value, called TERMINAL_TOTAL_DIFFICULTY, or TTD, it is considered the final PoW block. The execution layer then begins listening to the PoS consensus layer for new blocks. To ensure that each team's implementation was robust, EL teams had to connect to two CL clients and vice-versa to pass M3.
M4 was the real target for the event: to get multiple EL & CL clients on a devnet which went through the entire PoW to PoS transition. In other words, while M3 was about one-to-one devnets, M4 was about many-to-many.
We achieved this for a subset of the teams before the end of the workshop, so we then went for our stretch goal: M5.
This milestone aimed to turn Amphora from a short-lived event to long(er)-lived infrastructure that the community could use. M5 required client teams to start a devnet that would not only run through the entire transition with all client combinations, but that would persist beyond the Amphora event.
On the last day of the workshop, minutes before the final dinner was served, M5 was hit: a network of 10,000 validators across 100 nodes and several client implementations launched under PoW, reached the TERMINAL_TOTAL_DIFFICULTY, transitioned to PoS, and successfully finalized the chain 🎉!
The M5 devnet successfully finalizes post-merge, minutes before the workshop's closing dinner. Photo by Ben Edgington.
Amphora's success provides great momentum for The Merge. Client teams now have a clear list of tasks they need to work toward, and enough progress has been made to begin reaching out to a larger segment of the Ethereum community.
Yesterday, a more stable version of the M5 Amphora devnet, Pithos, was launched. Now that this network is live (explorer here), expect public calls exploring how developer tools and other core Ethereum infrastructure can best prepare for the PoW to PoS transition.
Client teams and researchers will keep iterating on The Merge specification to fix issues identified during Amphora and respond to feedback from the community. Within a few weeks the spec should be finalized and, soon after, a new stable testnet made available.
The work accomplished during Amphora exceeded all of our expectations. For this, we want to thank the client teams and researchers, without whom, none of the specifications would have been written or implemented.
Additionaly, thanks to ConsenSys, Chainsafe and Ben Edgington for their excellent coverage of the workshop.