Ethereum 2.0 (aka Serenity) has so far been synonymous with delays. However, in the last few months phase 0 started going live. Medalla and Spadina provided public playgrounds for anyone to try staking and see what some of the new blockchain components look like.
But before going any further we need to better understand what Ethereum 2.0 is about.
What is the Problem Exactly?
Ethereum today has a scalability problem. It can handle around 15 transactions per second, which is nowhere near the thousands of transactions the likes of VISA are handling. So today, DeFi running on Ethereum cannot challenge the centralized finance incumbents.
Another closely related problem is the high transaction fees. If a network has very limited transaction processing capacity, you are going to have competition for this limited resource, consequently transaction fees go up.
Another component that needs replacement is the Ethereum Virtual Machine, the component responsible for running smart contracts. The main problem with the EVM is its efficiency. The EVM is so important to Ethereum, that its use incurs transaction fees, and a Gas Limit blocks smart contract from overusing it.
A more efficient EVM would allow us to do more with the available computational resources. We would be able to run more complex smart contracts that today would either incur prohibitive transaction fees or would exceed the gas limit and fail altogether.
There is also the controversial energy consumption issue that is intrinsic to Proof of Work. There are different points of view on whether PoW energy consumption is a waste or is energy well used. I will not get into this. Let us just say that Ethereum wants to move away from a consensus that depends on high energy consumption for the network to be secure.
Ethereum 2.0 Solutions
Solving these problems is far from easy, as it requires dealing with the Decentralization, Scalability and Security trilemma. These are 3 key blockchain properties that are hard to achieve all together. ETH 1.0 achieves decentralization and security but does so at the expense of scalability.
Furthermore, the solution must provide continuity. It must carry forward whatever we have on Ethereum today. Ether and token balances must be carried forward to ETH 2.0. All smart contracts must keep running completely unaware of the huge changes in the underlying platform.
The ETH 2.0 solution is a combination of new technologies. Many already know about Proof of Stake because it provides a revenue opportunity. But that is only one piece of the puzzle, there are also the Beacon Chain, Sharding, Validators, Finality Protocols and WebAssembly.
These changes cannot be deployed all at one go. Thus, we got the multi-phase roadmap. This is a process that will take us from an ETH 1.0 only blockchain, to a phase where both ETH 1.0 and ETH 2.0 are running side-by-side, until ETH 1.0 is absorbed into an ETH 2.0 shard and we are entirely on ETH 2.0.
At this point it is important to appreciate something about the Ethereum 2.0 design process. Its research and design are an ongoing process. As it progresses through the various roadmap phases, the various components are still being researched and improved. This also means that things may change significantly.
PoS, Validators, Shards and the Beacon Chain
It is time to define some key Ethereum 2.0 terms. Today I will just provide a very basic description. In a future article I will get into more detail and walk you through my experience with running the Beacon Chain and Validator nodes on Medalla.
Proof of Stake is the new consensus protocol that will replace Proof of Work. This will allow anyone staking 32ETH to create/verify blocks and earn rewards.
The staked Ether is deposited to the staking contract. This earns us the right to run a Validator, the software allowing us to participate in the consensus protocol. Unlike PoW nodes, Validators are not in competition against each other. Instead, these simply stand-by and perform the tasks assigned to them, that include proposing and verifying blocks.
Sharding is a solution that aims to bring about scalability. It breaks the blockchain into a set of parallel chains. Initially the goal is that of having 64 shards. The ability to process transactions on different shards in parallel will allow Ethereum to process a larger number of transactions.
Each shard stores the state for a subset of all Ethereum accounts. This is very different from ETH1 where each full node gets to see and validate all blocks. With sharding different accounts could have their state stored on different shards. This creates an extra layer of complexity whenever an operation involves accounts from different shards.
Vitalik compares shards to islands. Whenever a shard hosts all the relevant state information, transactions can be fulfilled within the shard. Otherwise a cross-shard protocol is required for completing an operation.
A very important shard will be the one for today’s Ethereum mainnet. This will occupy one of the 64 shards. Thus, all the accounts and smart contracts running on ETH1.0, will continue to be neighbors on the same shard.
The Beacon Chain is a new blockchain that will serve as the Ethereum 2.0 backbone, bringing together all the shards. It provides a crucial coordination point by recording the status of validators, recording attestations (the verification of blocks) and recording links to shards.
To better understand how the Beacon Chain works, we will need to talk about things like Epochs, Slots and Finality. I will discuss these in another article where we will also take a look at the Medalla blockchain.
The Roadmap
The Ethereum roadmap identifies 4 phases:
Phase 0 – Deployment of the Beacon Chain
Phase 1 – Deployment of Shard Chains.
Phase 1.5 – ETH 1.0 becomes an ETH 2.0 shard.
Phase 2 - Completely functional Shards (still being researched)
Currently we are in Phase 0, thus we still have a long way to go. Today the Beacon Chain is being publicly tested through a number of test networks including Medalla, Spadina and Zinken (coming soon).
Phase 0 will be completed with the mainnet Beacon Chain going live. This will allow us to start staking real Ether and run mainnet Validators. At this point there will not be any shards. Thus, a significant segment of the Beacon Chain will not be functional. Not until Phase 1, when the shards are added.