Starting in 2020, the transition to Ethereum 2.0 will be a major event, with implications beyond the crypto industry. Not only will the upcoming Serenity update lead to a proof-of-stake (PoS) mechanism, but also to a massive scalability increase due to off- and on-chain scaling efforts, as well as the possibility of writing decentralised applications (dApps) in any programming language. This combination of improved scalability and lower barrier of entry for developers will bring great opportunities. Ethereum 2.0 will be fully operational in 2021, yet thorough analysis is important now.
Ether (ETH) is the second-largest crypto asset by market capitalisation, only behind bitcoin. Furthermore, the Ethereum ecosystem has a higher number of developers and projects being built than any other blockchain platform. The global awareness and popularity of Ethereum is also considerably greater, especially among institutions and large corporations, compared to the rest of smart contract platforms. Ethereum is therefore a major component of the blockchain industry and crypto markets, so any strategic decisions or protocol updates are likely to have a significant impact on the rest of the industry. While bitcoin has the biggest market capitalisation, trading volume and institutional hedging products such as Bakkt or CME futures, the smart contract functionality of Ethereum allows for a wide variety of use cases, and it has been the preferred platform for dApps. However, due to the scalability limitations of the technology, the dApps have not been successful so far in reaching mainstream adoption and a large number of users. Nonetheless, institutional entities, including some of the largest international banks, for example, have already tested Ethereum, confirming that it is the most trusted and secure public blockchain currently to write smart contracts and dApps.
Given the great importance of Ethereum for the broader blockchain industry, the transition to Ethereum 2.0, which will start in early 2020 and last until 2022, is a major event that will affect the industry as a whole. Therefore the aim of this article is to provide a detailed overview of the transition to Ethereum 2.0 and explain the new concepts and functionalities that will be introduced.
In the first section, key concepts are defined and explained. The two phases of the Ethereum 1.0 Istanbul hard fork upgrade are then discussed. The following section covers the Serenity (Ethereum 2.0) update, which is separated into four phases. Ethereum 2.0 will be a new PoS blockchain that will run in parallel to Ethereum 1.0, which means that Ethereum 2.0 will not be created as a hard fork. The different scalability improvements of Ethereum both off-chain and on-chain are then analysed and explained. Finally, in the last section, the key ideas of the article are summarised, and the main implications and advantages of Ethereum 2.0 are identified and discussed.
1. Defining Ethereum 2.0
Ethereum 2.0 will introduce many new ideas and concepts. Therefore, in order to facilitate a better understanding of the following sections, the key definitions are presented in this first section to provide familiarisation with the Ethereum 2.0 vision and strategy. The concept of a PoS blockchain, the beacon chain and the transition from Ethereum 1.0 to Ethereum 2.0 are described first of all.
Currently, Ethereum 1.0 uses a proof-of-work (PoW) mechanism, in which the computer power or hashrate of miners determines the probability of becoming a block proposer. Ethereum 2.0 will switch to a proof-of-stake (PoS) mechanism, in which, instead of computer power, the block proposers will be selected according to their amount of tokens (stake). The total stake for the block proposer selection mechanism will consist of the sum of self-stake and the stake delegated from other token holders. The validators in PoS are equivalent to mining pools in PoW, and the staking tokens in PoS would be the equivalent to application-specific integrated circuits (ASICs) in PoW. The set of upgrades to the Ethereum 1.0 mainnet until Ethereum 2.0 is fully ready in two or three years is called “Ethereum 1.x”. In fact, until 2022, when Serenity phase 3 is expected to be completed, while both Ethereum 2.0 and 1.0 will run in parallel, Ethereum 1.0 will still be used for all transactions and for smart contract execution.
The beacon chain will be a new PoS blockchain that will run in parallel to Ethereum 1.0, and it will be the coordination layer of Ethereum 2.0. The beacon chain will not be created as a hard fork of Ethereum 1.0 because it will be an entirely new blockchain.
The key elements of the transition to Ethereum 2.0 will be the migration of both the ETH tokens and the state of the Ethereum 1.0 chain. ETH will be sent from the Ethereum 1.0 chain to Ethereum 2.0 gradually. It will not be possible to move back ETH back to Ethereum 1.0 after it has been sent to Ethereum 2.0. The state of Ethereum 1.0 will be moved to a shard of Ethereum 2.0, and this is expected to happen in 2021 during the Serenity phase 2 update.
Ethereum Improvement Proposals (EIPs)
Since Ethereum is an open-source project, any community member can propose new ideas for the protocol. These ideas describing improvements and standards for Ethereum are called “Ethereum Improvement Proposals“, or “EIPs”. EIPs are separated into three main categories called “Standard Track”, “Meta” and “Informational”. Meta EIPs consist of procedures, guidelines and changes to the decision-making process or the tools used in Ethereum development, but do not involve any changes to the Ethereum codebase. Informational EIPs are simple guidelines or information for the Ethereum community, which can be either followed or ignored.
The most important type are Standard Track EIPs because they involve changes related to the network protocol, the block or transaction validity rules, the interoperability of applications using Ethereum, and application standards or conventions. Standard Track EIPs affect most or all of the Ethereum implementations. Within the Standard Track category, there are four subcategories, of which the most well-known is the Ethereum Request for Comment (ERC). The ERCs include smart contract standards such as the ERC20, wallet formats or decentralised identity. Another subcategory within the Standard Track, called “Core”, is also quite relevant, since either a consensus fork or important core developer discussions are required. The other two subcategories are Interface, which covers improvements to client API specifications, and Networking. EIPs in the Networking subcategory cover improvements to the Ethereum peer-to-peer network, the light Ethereum subprotocol used by light clients, the communication protocol for dApps called “Whisper”, and the decentralised and redundant storage protocol called “Swarm”.
When EIPs are proposed, there is a standard terminology about the status or progress of the EIP. “Draft” means that the EIP is open for consideration and is undergoing changes. “Last Call” is the term used when the EIP is ready to be reviewed by a wide audience. After two weeks in the Last Call status, the EIP becomes “Final” after the author has addressed any technical changes requested. If an EIP is “Deferred”, it means that it may be reconsidered in the future, but it is not being considered for immediate adoption. For Core EIPs, since they require a consensus fork, there is an additional status term before Final, which is called “Accepted”. An “Accepted Core EIP” means that it has been at least two weeks in the Last Call, and any technical changes requested have been addressed. When a Core EIP is Final, it means that the core developers have decided to implement and release it in a future hard fork, or it has already been released in a hard fork.
Validators and Ether2 (ETH2)
ETH2 will be the staking token of the beacon chain. It will be obtained either by initially locking ETH in the validator deposit contract, or later as a reward for validating the beacon chain or the shards after Serenity phase 1 in 2020. The validator deposit contract will be a smart contract on Ethereum 1.0 in which users would lock their ETH. This information would be read by the beacon chain, and then an equivalent amount of ETH2 would be allocated. When the amount of ETH locked in an account is at least ETH 32, this account would be considered a validator. Once Serenity phase 2 is completed in 2021, ETH2 will be transferable to and from shards. Exchanges and custodians will need to upgrade to support ETH2 custody and staking services.
Validators in Ethereum 2.0 will be equivalent to mining pools in Ethereum 1.0, participating in the consensus and validating and proposing blocks. Users will be able to become validators by using their ETH2 tokens as the equivalent of mining power. However, the minimum threshold to become a validator will be ETH2 32. Validators can be active, inactive, pending or exiting. In addition, validators that misbehave will be slashed, losing either a part or their entire stake. As a consequence, if, after being slashed, the stake falls below ETH2 16, validators will be removed from actively validating. Voluntary exit from the validator set will also be possible.
Validators will be combined by the beacon chain in random groups of minimum 128 so-called “committees”. After each epoch, which is a group of 64 time periods for proposing a block called “slots”, the beacon chain would shuffle the validators randomly into new different committees and assign them to specific shards. These groups of validators, or committees, will validate blocks of both the beacon chain and the shards. Committees must include some verifiable information about shards, such as a Merkle root, in the beacon chain. For proposing blocks, random validators called “block proposers” will be chosen by the beacon chain. There will be a block proposer per slot for both the beacon chain and for each of the shards. The votes on the validity of either a shard or a beacon chain block are called “attestations”. If there is a sufficient number of attestations for the same shard block, then a crosslink would be created. This crosslink would confirm the whole shard segment up to that specific shard block into the beacon chain.
Crosslinks are the only reference of the shards in the beacon chain, and they represent a summary of the shard state. In addition, after Serenity phase 2 in 2021, crosslinks will support cross-shard communication. If there is enough ETH2 at stake on the network, then it would be possible to achieve crosslinks on all shards within one epoch period. However, if the amount of ETH2 at stake is low, then crosslinks would become less frequent.
Shards are semi-independent chains with committees of validators proposing blocks and voting on their validity. Shards will allow Ethereum 2.0 to process significantly more transactions per second than Ethereum 1.0, thus increasing the scalability. With sharding, nodes are separated into groups called “shards”. Each shard would only process some transactions, unlike Ethereum 1.0, where all nodes need to process every transaction on the network. It is expected that there will be 1,024 shards which will be released in Serenity phase 1 in 2020. Regarding cross-shard communication, it will be slow and not supported by all the shards. Therefore, dApps will need to decide which shard they want to choose, and smart contracts will also need to adapt to shards with and without cross-shard communication.
Currently in Ethereum 1.0, the finality is probabilistic, which means that there is a minimum number of blocks recommended before there is a high probability that a transaction has been correctly included in the valid chain and not in a fork. “Finality” means that a particular transaction cannot be reverted from the blockchain history. In Ethereum 2.0, finality will not be probabilistic, but instead it will be provided faster through the Casper the Friendly Finality Gadget (FFG) consensus mechanism. Finality with the Casper FFG consensus will happen after two-thirds of the validators have voted for a given block to be included in the beacon chain.
2. The Ethereum 1.0 Istanbul hard fork update
The Istanbul update is a planned hard fork of Ethereum 1.0 before the launch of the new Ethereum 2.0 blockchain. However, the Istanbul update is not related to Ethereum 2.0, since it is a hard fork of Ethereum 1.0, while the beacon chain and the Ethereum 2.0 ecosystem will be separated and running in parallel. The Istanbul hard fork will happen in two phases. The first one will integrate six EIPs and is expected in November 2019. For the second phase, called “Berlin”, there are currently eight tentatively accepted EIPs, but no specific date has been confirmed yet for the launch. The reason for separating the Istanbul update in two phases was due to some complex EIPs that required further analysis. In order to be able to speed up the launch of a first phase in November with the six confirmed EIPs, the EIPs requiring further review were moved to the Berlin phase. The Istanbul update will bring several improvements, such as enabling Ethereum 1.0 and Zcash to interoperate or allowing smart contracts to introduce more creative functions.
There are six accepted EIPs that will be included in phase 1 of the Istanbul hard fork update.
EIP-152 will enable atomic swap transactions with Zcash. EIP-1108 will make zk-SNARKs possible and efficient to perform secret arbitrary computations that are verifiable by anyone, thus allowing for cheaper scaling and privacy applications to be built. EIP-1344 is a way for contracts, in particular those used by layer 2 state channels or plasma, to track the correct layer 1 chain, especially during a hard fork. EIP-2028 will make layer 2 solutions able to increase throughput, but it would also increase network delay due to larger blocks and decrease the cost for attacking the network. EIP-2200 will change the calculation of cost of storage in the Ethereum Virtual Machine (EVM) and will enable contracts to introduce new functions; however, it will not affect significantly current smart contracts.
Finally, EIP-1884 will increase the cost of some EVM opcodes (a sequence of opcodes is a program in the EVM) to prevent spamming attacks and to balance blocks better. However, a number of existing smart contracts using the updated opcodes will be affected, so developers are advised to check and upgrade their code.
Phase 2 (Berlin)
There are eight tentatively accepted EIPs for the Istanbul phase 2 update, of which two are particularly important. EIP-1057 will change Ethereum’s PoW mining algorithm through the introduction of programmatic proof of work (ProgPoW), which will decrease the advantage of ASIC miners over graphics processing unit (GPU) miners from 2x to 1.2x. This will reduce the risk of a centralised mining landscape in ASICs. EIP-1702 will make it easier to upgrade the EVM or introduce new virtual machines like WebAssembly.
Other EIPs tentatively accepted are EIP-663, EIP-1962, which replaces EIP-1829, EIP-1380, which introduces reduced gas cost for call to self, EIP-1985, which introduces limits for certain EVM parameters, EIP-2045, which is related to gas cost for EVM opcodes, and EIP-2046, which would provide reduced gas cost for certain static calls.
3. The Serenity update leading to Ethereum 2.0
Serenity phase 0 is expected to start in early 2020, and will be launched as a new blockchain and not as a hard fork of Ethereum 1.0. In this phase, the beacon PoS chain will be introduced as well as a validator deposit address in Ethereum 1.0 to lock ETH and receive an equivalent amount of ETH2. To bootstrap the beacon chain, a minimum amount of ETH2 524,288 in total stake will be required, which corresponds to 16,384 validators. Phase 0 will use the Casper FFG consensus mechanism for finality, but the initial phases of Serenity will be implemented without consensus changes to Ethereum 1.0. In addition, phase 0 will not yet support dApps, but will lay the foundation for the following phases. The ETH2 balances will not be withdrawable to the shards until phase 2 in 2021, when the EVM 2.0 would be deployed and the shards would have state.
The beacon chain will store and manage the registry of validators and their stakes. It will also manage the PoS protocol for itself and for all of the shards applying the consensus rules. In addition, the beacon chain will organise validators into committees, nominate the block proposer for each shard at each time step, as well as track and update the rewards and penalties of validators. All validators will also validate the beacon chain. The votes on the validity of a shard or beacon chain block, the attestations, will be the primary source of load on the beacon chain.
Another key function of the beacon chain will be to generate good-quality randomness for the rest of the system that is distributed, verifiable and unpredictable. Also, shards will register their states in the beacon chain to facilitate cross-shard transactions. The beacon chain will be the root of security for all the shards because if some shard validators misbehave, this will eventually be detected and punished by the beacon chain.
Serenity phase 1 is planned for 2020, in which there will be a bootstrapping phase for crosslinking the shard chains. Crosslinks would allow the state of each shard to be recorded and finalised on the beacon chain, and they will also be the basis for cross-shard transactions in later phases.
In phase 1, there will be support for dApps and shards will be introduced as data chains. However, the network state will continue to be stored on the Ethereum 1.0 blockchain and it will not yet be sharded. There will still be rewards in both chains, which means that the inflation will be high; however, this inflation will gradually decrease after the Ethereum 1.0 chain systematically loses importance.
Once shards have been deployed, then for each block they will be assigned a randomly selected active validator within a committee, who will form and propose a block of transactions to be voted by the shard’s committee. If there are enough votes for the proposed block, then a crosslink would be created, confirming the shard block to be included in the beacon chain.
In phase 2, which is expected in 2021, ETH2 will become transferable and smart contracts will be reintroduced. In addition, each shard will manage a virtual machine based on eWasm. In this phase, Ethereum 2.0 will be fully sharded and the state execution will be enabled as well as smart contract account balances and execution.
The eWasm will be a new EVM, which will allow smart contracts to be written in any programming language and not just in Solidity, as it is currently the case in Ethereum 1.0. The implications of this could be important because more developers would be able to write smart contracts using programming languages with which they are already familiar. This is likely to accelerate innovation and could greatly increase the number of developers building on Ethereum 2.0.
The eWasm virtual machine will enable faster code execution and will also provide an improved developer experience. Each shard will have a virtual machine based on eWasm and there will be cross-shard communication.
Serenity phase 3 is expected in 2022, but this phase is still in active research and development, so there are currently no formal specifications. Some ideas include minimising on-chain state by moving as much as possible off-chain, improvements to light clients or cross-shard transactions, and super-quadratic sharding.
The Ethereum 2.0 contracts will be as powerful as those of Ethereum 1.0, but they will be bound to a single shard. In order to interact with contracts on other shards, crosslinks to the beacon chain will be necessary.
4. Scaling off-chain to increase global adoption
Off-chain scaling involves taking load off the main chain, thus increasing the scalability. The current capacity and speed limits of Ethereum 1.0 prevent the network from being deployed globally on a larger scale. The main off-chain scaling solutions are called “Plasma channels” and ”State channels”.
Plasma is an open blockchain project that is based on hierarchically arranged blockchain trees that are attached to the main chain. These child chains in a tree structure are smaller copies of the main Ethereum blockchain. In fact, through smart contracts and Merkle trees, an unlimited number of child chains could be created in theory. Each Plasma chain can have multiple validators, its own block validation and fraud proof mechanisms. In addition, Plasma chains are non-custodian, meaning that any issues with their validators would be avoided. Another characteristic of Plasma chains is that they are permanent and less secure than the main chain. Every Plasma chain is a customisable smart contract, which allows companies to implement tailored scalable solutions in different ways.
Fraud proofs secure communication between the Ethereum main chain and the Plasma chains. The main chain is responsible for security by punishing malicious actors. With fraud proofs, Plasma chains can file complaints to the Ethereum main chain. In addition, SNARKs will be combined with Plasma in the future to decrease the storage requirements and to improve the efficiency and light client infrastructure. In addition, certain functions will be used to increase the efficiency of Plasma chains further through the facilitation of data verification within a tree of chains.
A risk for Plasma chains is a scenario called “mass exit”, in which many users try to leave their Plasma chain at the same time. This would flood the main Ethereum chain and cause major network congestion.
The key advantages of sidechains like Plasma is that they are permanent and the assets locked can be moved back to the main chain without closing the sidechain. In addition, Plasma chains offer flexibility for developers to test software updates, for example before adding them to the main chain.
There are also a number of disadvantages with Plasma chains. Since every transaction has to be published and is received by all participants, privacy would be worse than in State channels. In addition, there is a waiting period of around 7 to 14 days for Plasma users to withdraw their assets, and these users need to trust the security of the Plasma chain because if it is compromised, then withdrawals to the main chain may not be possible. There is an intermediate mechanism between the main chain and Plasma chains called a “federation”, which decides when users’ tokens are locked or released. This federation could be an additional weak point for attackers. Other disadvantages include the fact that sufficient miners are needed in order to create a Plasma chain with enough security that is safe from attackers.
State channels improve the scalability of the main chain because transactions are taken off-chain and only the opening and closing of a channel requires on-chain transactions. A type of State channel called “payment channel” is useful for privacy, since only the opening and closing of the channel is public.
Some advantages of State channels are instant finality and the guarantee that participants can always return to the main chain and recover their assets – as long as they follow the protocol. The key disadvantages of State channels include the need for a defined set of participants with total availability and the initial costs to create the channel.
5. Scaling on-chain
On-chain scaling solutions involve improvements to the protocol instead of moving transactions off-chain to decrease the load on the main chain. The main solutions for on-chain scaling are called “sharding” and “eWasm”.
In Ethereum 1.0, all the nodes need to process all transactions. Therefore, the scalability and efficiency is limited by the nodes with the least processing power. In sharding, nodes are separated into subgroups called “shards”. Each of these shards will process only a certain number of transactions, thus allowing for parallel transaction processing to increase scalability. In more advanced forms of sharding, there will be cross-shard communication capabilities.
Shards are regularly linked to the main chain, while Plasma chains or State channels are off-chain indefinitely until an interaction with the main chain is needed.
The speed at which the EVM is able to perform tasks has a major impact on the overall usability and speed of the network. WebAssembly (Wasm) is a widely supported and high-performance standard which allows code to be deployed in any browser with the same result. It is being developed by the World Wide Web Consortium (W3C), which is responsible for maintaining and standardising the web. The Wasm project is also being supported by large technology companies like Google, Microsoft and Apple. Wasm is executable in most modern web browsers, and with the current level of tool support and adoption, many languages like C, C++, Go or Rust can compile directly to Wasm. The code runs close to hardware instructions, meaning that there is less effort required to translate different coding logics. Ethereum’s version of Wasm is called “eWasm”, and it will allow more developer adoption since dApps could be written in any programming language and not just Solidity.
With eWasm, the throughput on Ethereum 2.0, security, usability and speed will be improved. It will also allow fork-free upgrades and enable existing tooling to be reused. In addition, it will be verifiable for correctness and, before replacing the EVM, it will first be introduced on a shard.
Ethereum 1.0 will be upgraded through the Istanbul hard fork, which will happen in a first phase in December 2019 and in a second phase in early 2020. All transactions and smart contract execution will still happen in the Ethereum 1.0 blockchain until Serenity phase 2 in 2021, when Ethereum 2.0 will be fully operational. Therefore, until Ethereum 2.0 becomes the main chain, there will be further updates and improvements to Ethereum 1.0 after the Istanbul hard fork. However, it is expected that there will be a gradual transition to Ethereum 2.0, and eventually all transactions will happen in the new PoS blockchain.
In parallel to the Istanbul hard fork, the new PoS blockchain, the beacon chain, will be launched in early 2020 as part of the Ethereum 2.0 roadmap. However, Ethereum 2.0 will not be created as a hard fork of Ethereum 1.0, since it will be a completely new blockchain that will run in parallel.
The transition to Ethereum 2.0 will start in 2020, when a smart contract to lock ETH and receive ETH2 will be added to Ethereum 1.0. ETH token holders will be able to lock their tokens and receive an equivalent amount of ETH2 in the beacon chain. However, until 2021, the ETH2 tokens will not be transferable, which implies that users locking their ETH in early 2020 will not be able to access or transfer their ETH2 tokens until 2021. Nonetheless, the locked ETH2 tokens will receive staking rewards that would also be accessible once transfers are enabled in 2021. If the number of locked tokens is at least ETH 32, users would be eligible to be validators by running a validator node.
In Ethereum 2.0, which will be based in PoS, the equivalent of mining pools will be validators that will participate in the consensus and in the block proposing and validation mechanism. The hashrate or processing power will be provided by the total amount of ETH2 tokens held by validators, including their own tokens as well as tokens received as delegation from other ETH2 token holders.
Through the introduction of sharding, Ethereum 2.0 will provide improved scalability with parallel transaction processing. This would enable dApps to process a large amount of transactions from many users like traditional apps. In addition, with the introduction of interoperability solutions and the tokenisation of fiat money, users will be able to pay and register for dApps in a very intuitive and efficient way. This may increase the interest in dApps by traditional users who are not familiar with crypto assets.
Another key improvement that Ethereum 2.0 will bring is the introduction of eWasm, which will be a new EVM. Currently, Solidity is the programming language for dApps in Ethereum 1.0; therefore, only those developers who are familiar with Solidity can create dApps and contribute to the development of Ethereum 1.0. However, with the introduction of eWasm, Ethereum 2.0 will provide flexibility for developers to write dApps in any programming language in which they have expertise. This will greatly decrease the barrier of entry for traditional developers to join the Ethereum ecosystem. The impact is therefore expected to be significant because the amount of Solidity developers is small compared to the millions of global developers with expertise in the main programming languages.
The combination of improved scalability and the lower barrier of entry for developers to write dApps in any programming language is likely to bring significant advantages to Ethereum 2.0 compared to the current Ethereum 1.0 blockchain. Once phase 2 of the Serenity update in 2021 has been completed, dApps on Ethereum 2.0 could reach mainstream adoption with a similar number of users to traditional apps.