What’s coming up in Ethereum 2020?

In case you missed it, Vitalik Buterin tweeted a personal roadmap of Ethereum.

Are you wondering what his diagram means and what’s expected this year?

I’ve annotated the diagram with links and will preview what’s likely in Ethereum 2020.

The Merge: scaling Ethereum to Proof of Stake and shards

Here’s an annotated Ethereum roadmap with reference links. I accept responsibility for link choices. All credits on the diagram should still go to Buterin.

annotated-roadmap

There are four main parts to the diagram, going from top to bottom:

“eth1.x other”

“eth1.x statelessness”

A “nucleus” that starts from eth2 Phase 0 and converges to the eth1 -> eth2 merge that removes Proof of Work (PoW).

and converges to the that removes Proof of Work (PoW). eth2 Phase 2 and beyond

The middle, horizontal axis conveys time. Along this axis is a “nucleus”, from the Phase 0 launch, to the Phase 1 launch, to the “Merge”: the eth1 -> eth2 MERGE. The Merge has three dependencies:

eth2 Phase 1 launch

eth1 -> eth2 merge specification and implementation

eth1.x statelessness

With the Merge, the system deprecates the Proof of Work chain. Users will no longer have to run an eth1 client and an eth2 client to follow two blockchains. Ethereum will be a sharded Proof of Stake system. There will be one Ethereum comprised of the Beacon Chain and shard chains. The state of eth1 is stored on Shard 0. Users continue to make transactions and use applications as they’ve been doing.

The Merge is a giant leap for Ethereum scalability. Significant engineering is needed to make the Merge possible and to execute it safely and securely. The dependencies above classify the bulk of the work.

There’s much to discuss with the Merge and other items, but here we’ll hone in on the nucleus and “eth1.x other” because they contain Ethereum 2020. In the nucleus, we start with Ethereum 2.0 Phase 0.

Ethereum 2.0 Phase 0

The item most likely to be available in 2020 is the Beacon Chain.

Phase 0 consists of a running Proof of Stake network, but does not yet include sharding or the capability to process transactions other than some validator operations.

phase0

The primary prerequisites for the Beacon Chain’s launch are:

Publishing the eth2 deposit contract onto the eth1 mainnet.

At least two, ideally three, eth2 client teams publishing a production release of the software.

Once the deposit contract is published, at least 16,384 validators (524,288 ETH) depositing into it.

Why is the Beacon Chain likely for Ethereum 2020?

There’s Danny Ryan, Diederik Loerakker, and four teams that have been building production quality eth2 clients. Alphabetically, they are: Lighthouse, Nimbus, Prysm, Teku, Trinity.

There’s various levels of contributors from the Ethereum Foundation and other teams such as Artemis, Harmony, Lodestar, Nethermind, Parity, plus those setting up Staking-as-a-Service businesses, and “newcomers”. Some audits have also been performed.

The mission to deliver the Beacon Chain in 2020 is clear and forces are focused. Most of the work has also been done in a distributed fashion.

Socioeconomically, an annual percentage rate (APR) of over 20% is an attractive rate for the free market to organize and activate 16,384 validators (524,288 ETH) in obvious or creative ways. (The APR will decrease with more validators.)

Source: APR link above 2020-03-24

How to contribute to Ethereum 2020

Production releases of Beacon Chain clients are expected after more audits and a multi-client testnet is running stably for some time; single-client testnets have already been running stably although more optimization and testing under high load is desired.

More contributors are always welcome. Areas for contribution include the peer-to-peer networking of clients, their interoperability, and the usual factors of testing, security, performance, and stability of the clients and the network.

For experts in hacking, security, the EVM, and smart contracts, auditing the deposit contract and reviewing Runtime Verification’s work is paramount. Although the bytecode on mainnet is not yet deployed, you can already get a head start as no changes to the deposit contract are expected.

Ethereum 1.x needs help

The topmost part of the diagram, “eth1.x other”, are the items related to the current Ethereum mainnet.

eth1x-other

Three areas, roughly three EIPs, need dedicated owners, to have a reasonable chance of getting deployed on mainnet in 2020.

A BLS12-381 precompile has been championed for several months by Alex Vlasov of Matter Labs, and EIP 2537 is well on its way. EIP 2537 adds support for the BLS12-381 curve that eth2 is using and will enable smart contracts to be light clients of eth2. With the precompile, new smart contracts can be written that verify data from eth2 shards. The launch of eth2 Phase 1 will introduce shards, which boost data availability for eth1 rollups. Basically, rollups are smart contracts that have the bulk of their computation and storage off-chain, but some data on-chain for fallback. Rollups become more scalable when they are not bottlenecked by data availability. With Alex Vlasov, the BLS12-381 precompile looks likely in 2020 (and may even be available ahead of the Beacon Chain).

EIP-1559 is exciting for users because they can ignore setting gas prices while at the same time have reassurance that they are not overpaying fees or will have their transactions unfairly delayed. From the EIP: “it is expected that most users will not have to manually adjust gas fees, even in periods of high network activity”. Furthermore, its elegance involves burning some fees which counterbalances inflation of ETH without greatly diminishing miner rewards. There’s been some work since the EIP was proposed almost a year ago. Unfortunately, there is no current owner.

Account abstraction allows the creation of accounts with whatever authorization logic they want. This added flexibility can be far-reaching but here’s a simple example. A multisig smart contract wallet can pay its own gas with the funds it already has. Once a wallet is created and funded, a separate account with ETH is not needed to interact with the wallet and pay gas. Account abstraction has origins back to 2015, but a proposal written one month ago presents an opportunity for someone to make it happen in 2020.

Contact https://gitter.im/ethereum/AllCoreDevs if you’d like to learn more and contribute.

“eth1.x statelessness” also needs help but it’s a vast topic itself. Meantime, check out a proposed roadmap for “Stateless Ethereum” and the 1.x Files.

An ongoing tribute to the Geth team

Last week was the 164th release of Geth on Github. Let’s not forget that the Geth team continues to release features, improvements, and optimizations to Geth. It is easy to take them and their work for granted. Let’s thank, alphabetically, Guillaume Ballet, Zsolt Felföldi, Felix Lange, Gary Rong, Adam Schmideg, Martin Holst Swende, Péter Szilágyi!

Felix, Martin, and Péter have been improving and optimizing Geth for years, back to the initial network “Shanghai attacks” (with former teammates Nick Johnson and Jeffrey Wilcke).

A few months ago, Péter was the guest at a developer roundtable at ConsenSys. He shared some views on topics such as eth2, statelessness, incentivizing contributors, and appreciating people (~49th minute). Thank you for this reminder Péter and thank you to you and the rest of the team for your important work and dedication.

Join the Discord channel for Go Ethereum if you would like to thank them, make referrals, or learn and contribute to Geth.

Ethereum 2020 and beyond

Currently, a rough sequence of what’s likely in Ethereum are:

Beacon Chain (eth2 Phase 0) in 2020 BLS12-381 precompile in 2020 (maybe first) if there are owners for account abstraction and EIP 1559, there’s a chance they’ll be available in 2020 eth2 Phase 1 eth1.x statelessness eth1 -> eth2 MERGE further execution models, privacy and security improvements, and advanced cryptography

The Beacon Chain has the most people dedicated to making it happen in 2020. “Eth2 is looking good – Phase 0 is stable, client teams are crushing it.” On eth1, Geth releases will continue and the BLS12-381 precompile looks likely in 2020 (maybe even ahead of the Beacon Chain). However, owners are needed soon for EIP 1559 and account abstraction to have a realistic chance of making Ethereum 2020. The roadmap is tackled by many others in parallel and may be discussed in future articles: follow me for updates. Take care with COVID-19.

A tribute section might fit nicely in later posts. Thinking of the Solidity team for a next tribute, they will be hosting an inaugural Solidity Summit 2020.