The State of Eth2, Jan 2021

The State of Eth2, Jan 2021


At the start of December, the Ethereum community bootstrapped the new beacon chain proof-of-stake consensus mechanism — the foundation of Ethereum’s long-term and sustainable home. The launch was a resounding success, and the operation of the beacon chain has proved, thus far, stable and robust.

As I write these words, the beacon chain is live with more than 2.5M ETH securing its consensus. So this is the “state of eth2” today. But what’s next? What’s on the horizon, and where are we going?

This post aims to provide high level context on the state of Ethereum’s eth2 upgrade — an overhaul of Ethereum’s core consensus to provide a more sustainable, secure, and scalable home for Ethereum and its community.

This post does not go deep into technical details, nor does it aim to be comprehensive. If you’re in search of a more granular account of all things eth2, I recommend checking out Ben Edgington’s What’s New in Eth2 and my “eth2 quick update” series on the EF blog.

Disclaimer: this is how I personally see things today. There are many voices and opinions driving the ever growing, ever evolving eth2 research process. This is just a snapshot of a slice of an interpretation. Enjoy!

eth1 + eth2 == Ethereum

The terms “eth1” and “eth2” are misnomers. If I had my way, I’d toss them out forever, but the terms are pretty ubiquitous at this point so let’s at least discuss what they mean.

These designations — eth1 / eth2 — imply a false sequentiality. They imply that eth1 will be deprecated in favor of eth2, that one is being left behind for the other. Instead, the terms actually represent different layers of the stack.

Eth1 is primarily the operation and upgrading of Ethereum’s user-layer — state, transactions, accounts — all the things the end-user considers when interacting with Ethereum. Eth2 on the other hand is a series of upgrades meant to overhaul Ethereum’s core consensus — to move from the energy-hungry, inefficient proof-of-work to a more sustainable, scalable proof-of-stake. And what do we primarily want to come to consensus on with this upgraded consensus mechanism? The eth1 user-layer!

This relative isolation of concerns (user-layer vs core consensus) has allowed for Ethereum (eth1) to keep chugging along while simultaneously supporting a major overhaul of Ethereum’s core consensus (eth2) in a relatively de-risked fashion. And, in the future, this isolation of concerns might support more specialization across the stack and software components. The heroes (eth1 client devs) that keep Ethereum alive and well today can continue to focus on user-layer optimizations and stability, while the eth2 engineering teams can do what they do best — build sophisticated proof-of-stake consensus.

After the merge, an Ethereum client will use the best from eth1 and eth2 in a modular fashion. For a high level discussion on what this might look like in practice, check out my ethresearch post on the eth1+eth2 Client Relationship (also check out my ‘eth1 + eth2 = Ethereum’ talk at ETHOnline where I belabor this point).

eth2 == consensus

When we talk about “eth2”, we mean software and protocol upgrades of Ethereum’s core consensus mechanism. Foundationally, eth2 is the swap of Ethereum’s consensus from proof-of-work to proof-of-stake and the addition of a sharded data-layer for scalability gains. If proof-of-work is the rocket ship blasting Ethereum out of Earth’s atmosphere, then eth2’s proof-of-stake beacon chain is the permanent space habitat where the rocket will eventually dock for a sustainable and spacious home.

If you take a look at the sophistication that is an eth2 client today, it is entirely in the management of consensus — finality, fork choice rule, validators, and incentives.

eth1 == user_layer

When we talk about “eth1”, we mean the Ethereum proof-of-work chain and all of the existing applications and tools deployed on mainnet. When we discuss upgrades to eth1 and bigger “eth1x” items, we are referencing things almost entirely in the “user-layer”. That is — state, contracts, execution, transactions, etc. If consensus is the brain, the user layer is the body; almost all upgrades to Ethereum since it’s inception have been directed at the body, and the (relatively small) brain of proof-of-work has remained stable.

If you take a look at the sophistication that is an eth1 client today (i.e. geth, nethermind, besu, openethereum, turbo-geth), the lions share of the optimization goes into the management of this user-layer — efficiently accessing/writing the large user state, optimizing execution, safely managing the transaction mempool, etc.

In a nutshell, the Ethereum of tomorrow replaces the brain of Ethereum (with a sustainable and secure proof-of-stake) while keeping the body we know intact. This translates into uninterrupted contracts and applications with stable APIs and tools (see Mikhail’s demo of using an unmodified metamask to interact with an eth1+eth2 merge testnet).

Consensus, but on what?

A common misunderstanding of the launch of the beacon chain is that “it doesn’t do anything”, and my response is “that’s exactly the point!”.

The beacon chain, at it’s core, is a proof-of-stake consensus mechanism secured by validators that have staked ETH. As of today, the only thing that this consensus mechanism comes to consensus on is itself. It does not, yet, come to consensus on anything that end users care about — the user-layer (e.g. transactions, user accounts, smart contracts, etc). This is by design.

The Ethereum network secures hundreds of billions (€/$/Ɖ) in assets and user activity, and thus the path to upgrade its core consensus (although radical in scope) must be conservative and iterative in rollout.

In sum:

Step one [COMPLETED] — come to consensus in a decentralized and secure fashion.
Step two [IN PROGRESS] — come to consensus on items valuable to the Ethereum ecosystem: (a) the Ethereum network/state of today (i.e. eth1) and (b) the sharded data of tomorrow.

Consensus on Ethereum (eth1)

First and foremost, eth2 is for Ethereum. The beacon chain was bootstrapped and is run by the community and ultimately is for the community and its existing applications, contracts, and tools.

The hotswap of Ethereum’s consensus from proof-of-work to the beacon chain’s proof-of-stake will provide a more secure and sustainable home for both today and tomorrow’s decentralized applications. By swapping the consensus mechanism while holding the rest of the protocol (the user-layer) stable, Ethereum will provide an uninterrupted and continuous experience for existing users and applications. Before the swap, applications will continue to be secured and processed by proof-of-work, while immediately after the swap they will be secured and processed by the beacon chain. Existing APIs and tools will largely be unchanged and in general applications will just work.

This work is in progress with a merged geth+teku (eth1+eth2) client running private testnets today. We’re looking forward to releasing a more public playground soon along with some early specifications so that more clients (both eth1 and eth2) can get in on the action.

The safety and stability of the beacon chain

Through 2021, the beacon chain will continue to be battle-hardened, evaluated, and refined for the eventual merge of eth1 into eth2.

One of the necessary criteria for the merge is time. The beacon chain needs to run in production for a sufficient stretch of time to demonstrate its stability and robustness. Beyond that time-stability requirement, I expect detailed network/load analysis, additional testing/fuzzing, and extensive merge testnets.

Sharded data

In addition to a secure and sustainable home, Ethereum also needs a scalable home.

It is abundantly clear that Ethereum L1 today will not, alone, provide the throughput needed to support the global demand for decentralized applications. Although Ethereum’s current L1 coupled with L2 scalability techniques (rollups, channels, etc) will help massively in the next 12 months, even then Ethereum will continue to see demand outstrip supply as global adoption continues.

To complement the exciting L2 rollup ecosystem that creates scalability through the use of L1 data, eth2 aims to come to consensus on a scalable, sharded data layer.

That said, coming to consensus on sharded data is much simpler than coming to consensus on sharded state, both in terms of core consensus complexity as well as the complexity exposed to the end user. At the same time, this scalable L1 data multiplies the scalability gains of L2 rollup adoption.

There is optimism that the merge plus sharded data will provide functional escape velocity and ultimately get us to where we want to be. That is not to say that a sharded user-layer (user state and transactions across multiple shards) is entirely out of the question, just that today it is currently on the back-burner as we bring simpler yet powerful upgrades to Ethereum.

Check out Vitaliks post — A Rollup Centric Roadmap — or his talk — Scaling Ethereum in 2020 and Beyond for more behind the reasoning here.

Upgrades along the way

A first set of upgrades to the beacon chain is actively being spec’d and discussed. Some of the changes proposed are iterative improvements to validator incentives and state management, while others bring new, but relatively modest, features to the beacon chain — e.g. native light client support.

Much of the conversation around these iterative upgrades is taking place in the eth2 specs repo as well as in the Eth R&D discord. I expect client teams and other contributors to share more about these as they solidify in the coming month.

This first upgrade to the beacon chain will also serve as something of a “warm-up” for both eth2 client developers, as well as for the community of stakers. With a more ambitious upgrades of the merge and sharding in sight, starting with a smaller upgrade is prudent.

The state of eth2 clients

In general, we are in a great place with eth2 clients. We have four production mainnet clients (Nimbus, Teku, Lighthouse, and Prysm), each with a share of validator usage. Additionally, Lodestar is currently running mainnet in more of an alpha state while continuing to provide excellent JS tools and libraries to the growing eth2 developer ecosystem.

There is continued work on performance and stability across the board, and there are still gains to be had in terms of client diversity. But all in all, we’re seeing a rich ecosystem of both clients and stakers.

Client diversity

As far as we can tell, client diversity is not optimal today. According to some estimates, Prysm nodes account for at least 50% of mainnet nodes, and although this does not map 1:1 to the amount of stake being secured by each client, it is likely directionally representative.

With four production mainnet clients, the ideal distribution is closer to equal weight (25%) across all clients, and certainly less than 50% for any one client. Given the state of eth2 clients, this is achievable, but it will take the concerted effort of community members and institutional stakers to seek out and adopt the clients with lower shares of the network. As someone who has operated all four clients in the past, I can attest — they are all stable and performant, and each has an enthusiastic and welcoming team dedicated to making life as easy as possible for you.

Client development in 2021

Client teams will spend much of 2021 improving security and stability of mainnet clients while at the same time pushing toward production implementations of the various upgrades discussed above. In early 2021, much of this will be R&D as specs are vetted and refined, but in the latter half of the year, we’ll begin to see production testnets of merge and/or sharding upgrades.

I expect client teams will keep you updated much better than I can. Join their discord servers, follow their repos, and keep an eye on their blogs.

Additional context

Stateless Ethereum

As discussed above, “eth2” broadly represents a series of upgrades to Ethereum’s core consensus mechanism, whereas “eth1x” represents R&D and upgrades to Ethereum’s user-layer. Stateless Ethereum (and much of eth1x) is focused on making the L1 state more sustainable, while opening up a spectrum of node-types that ultimately provides users with more choice on how to interact with the network.

Due to the separation of concerns (consensus vs. user-layer) this R&D effort is being designed and built in parallel to the eth2 upgrades. Although there are some points at which we must ensure the designs are cohesive, statelessness can be shipped either before or after the eth1+eth2 merge. The sooner the components of statelessness ship, the better, but eth2 is not dependent on the stateless timeline.

There are currently monthly stateless calls and an active R&D effort. I expect to see some solid movement on some of these iterative upgrades in 2021!

EIP 1559

EIP 1559, a highly anticipated upgrade of Ethereum’s fee market, is also sufficiently independent of eth2 and can technically happen either before or after the eth1+eth2 merge. That said, R&D on this item has picked up steam in the past 12 months, and we optimistically will see 1559 fee mechanics on mainnet in 2021.

Something of note, though, is that 1559 style fee mechanics will be native to eth2’s sharded data layer. This will allow for a better UX to Ethereum’s data consumers when attempting to chuck data into the Ethereum network, most tangibly aiding rollups in confidently checking their block data into the beacon chain.

For more on the 1559 upgrade in eth1, check out Tim Beiko’s great 1559 Updates.

Community and tooling

The community and tooling around eth2, although still early, is currently thriving and rapidly growing. There are many community organized initiatives — EthStaker, Ethereum Due Diligence Committee, Ethereum Studymaster, Secret Shared Validators, and more — all actively enhancing the validator experience (and new open source projects and contributions to tooling each week)!

The EF ran a very successful Medalla Data Challenge and is in the midst of evaluating a ton of exciting proposals from the Staking Community Grants round. Keep your eyes peeled for more exciting eth2 initiatives this year!

With the launch of the beacon chain, there is seemingly endless green field to get involved and make an impact. Remember, we’re building this together. If you feel something is missing, or a project could use some help, please don’t hesitate to get involved! Contributions, both small and large, can make a huge impact.

Wrapping it up

All in all, there is a ton of work to do in 2021, but what’s new?

The successful launch of the beacon chain was a huge milestone for engineers, stakers, and the community at large. We now have the foundation for Ethereum’s sustainable future. Although there are many moving pieces and innumerable winding threads, across the board the Ethereum community has shown its unbelievable resilience and ability to deliver.

Here’s to a great 2021 🚀


Source link

Leave a Reply