Overview on ETH2.0

Let’s take a look at ETH2.0 development and dive into this rabbit hole, even more, to understand how fascinating it is 🤩

If you’re in Ethereum for a few years or months, you just entered this rabbit hole. It’s super fascinating for all of us to watch the progress on how Ethereum is being developed, and it is one of my fav things to watch the progress and so Hard Forks too. Istanbul Hard Fork was like New Year’s Eve for me 🎉🎆

There are a bunch of new terms that you will become familiar with as you learn more about ETH2.0. Let’s have a look at them and let me explain how ETH2.0 will work in a simple, easy-to-understand way even for non-very-tech people 🧑‍💻

Image by @phoebezzf from Unsplash

One of the main reasons why Ethereum is planning to move into ETH2.0 is simple — the ecosystem is organically growing and so the network needs to be upgraded to keep running.

That’s why Hard Forks are happening on the current Ethereum network. The reason why Ethereum is going to move from Proof Of Work (POW) to Proof Of Stake (POS) is, so the ecosystem will be easier to run even on more basic computers (nodes).

ETH2.0 beacon chain is now running on Sapphire testnet by Prysm labs, so far there are 3 clients for ETH2.0 but together will be 7 (main-nets and testnets) they’re all talking together and no, you don’t need a time machine to run them. Testnets are now running on gETH (Goerli ETH). You can join the testnet and stake your gETH now. How to become validator on ETH2.0 Beacon chain on Lighthouse client step by step document.

Phases in ETH2.0

ETH2.0 will roll out in Phases, every phrase will sit on a different shard. Phase = software of shard = hardware of the ETH2.0 ecosystem.

Phase 0 is called beacon chain and it’s about core pieces, networking, signature schemes and randomness. It has its own Sapphire testnet created by Prysm labs. If you have some Goerli ETH, you are able to join the testnet, stake gETH and participate.

Phase 1 is oriented into the mechanics of independently operating 64 shard chains. Every shard is like one state of the whole network so every shard can run one state of the network. So, for example, you can have Maker on one shard, other DeFi applications on another shard, ETH1 on another, Crypto Kitties on another and so on…

Phase 2 is about execution engine, transaction through space and account model. Execution Engine is minimizing complexion to the system.

Not sure if more Phases will roll out. But this is still an early stage of development although researchers would like to see more Phases rolled on ETH2.0 shard chains.

Let’s take a look at the current status of Ethereum

Ethereum is in great condition after the Istanbul Hard Fork, which you don’t have to worry about, it was just a regular network upgrade to keep the chain suschainable — in the best conditions possible.

The ETH1.x chain is now called ETH1.x, “x” means upgrade. There are a few planned Hard Fork style upgrades that will happen in the next couple of months before ETH2.0 will fully roll out. ETH1.x chain is still active, useable and you don’t have to worry about not using the current Ethereum.

ETH1.x team has its own working group that’s actively working on transitioning Ethereum into a stateless model. This group started during Devcon4 in Prague as the state size of Ethereum is growing which is normal as the network is organically growing. Watch the progress of the ETH1.x chain at ethresearch.

Speaking of state, it’s growing as there are more complex transactions happening on Ethereum. By complex, I mean that more users — addresses are on the network, more tokens, cryptokitties and all the random smart contracts and storing those data requires using Ethereum state. This working group led by Piper came up with following solutions to avoid state bloat and keep the ETH1.0 chain alive and healthy:

Fundamentally improve the UX of running an Ethereum client

Improve client diversity on the Ethereum network

Lay the groundwork for moving smoothly from 1.x into a 2.0 execution environment

Those are just a few points on how ETH1.x development will move forward. If you are interested to know more about ETH1.x Working Group is up to, check out this recent article by Piper Merriam.

Regarding to the state of Ethereum, it’s like a whole new rabbit hole that goes hand in hand with a lot of graphs. Based on what Alexey’s beliefs there will most likely have to be a Hard Fork before Ethereum will be stateless. I don’t want to copy Alexey’s words, but he created a nice graph and explanation how the data are stored on Ethereum now and how the Ethereum will work when it will become stateless. Alexey wrote a lot of documents about the state of Ethereum including article about the stateless client, it’s more technical and it has a lot of graphs in it.

ETH1.x transition to ETH2.0

The transition of the current Ethereum to ETH2.0 will be easier when Ethereum will be stateless.

There’s still a lot of work on ETH2.0 to be fully running and it will take quite a long time to fully transfer from ETH1.x chain (current Ethereum) into ETH2.0.

Based on Vitalik’s words “Existing applications will keep running with no change. All account balances, contract code and contract storage (this includes ERC20 balances, active CDPs, etc) will carry over.” There’s no need to worry about Maker’s CDPs, neither any DeFi dapplications, token balances will be smoothly transitioned into ETH2.0 shards. If you are a developer and you want to help transition, you can eliminate the largest part of disruption from gas cost changes by proactively making sure you don’t write dapps with high witness sizes (ie. measure the total storage slots + contracts + contract code accessed in one transaction and make sure it’s not too high).

Road from ETH 1.0 to ETH 2.0 — BLS Signature schema 🧾

But let’s begin with the road from ETH 1.x to ETH 2.0. How the transition is going to look like? There’s BLS Signature schema that’s application layer curve that is used at the consensus layer and also might be used at the application layer.

This schema is explaining how the transition from ETH1.x to ETH2.0 works.

You have to buy yourself into ETH 2.0 from ETH1.0 by depositing 32 ETH into a Beacon Chain contract 0 that lies on shard for example 5, so you will enter a shard number (example) 5. Now you have your ETH on 1.x chain but you have to move it to Beacon chain contract with validator/staking account so you will deposit your ETH to the shard that lies on Beacon Chain. This will create an account on the shard chain by adding another function to the Beacon chain contract that will reduce the balance in your account ( > ) which will increase balance in receiving account (< )

If you still can’t imagine how it works, there’s a graph from Will Villanueva

Beacon Chain 🥓

Beacon chain is sometimes called “heartbeat” 💗of the ETH2.0 because it defines the security rules of the system, links all shards together. The reason why Beacon Chain is called “heartbeat” of ETH2.0 is that it’s built to manage the proof-of-stake protocol for itself and all of the shard chains. It contains the base layer of the ecosystem. It has an ability to use ether with smart contract, wallets and (d)applications.

Beacon chain has native ether which means that you have to deposit 32 ETH to become validator / staker on ETH2.0 chain. Although it doesn’t have a concept of native ether and it stores a list of receipts in every block. Proposals created using beacon chain as load balancer and shard as pure computing layers are creating scripts for layers. Bitfly created Beacon chain Explorer where you can see statistic, how many staked Ether is on Beacon chain, how many active validators are on Beacon chain, and basically Beacon Chain in numbers, everything in numbers that you’re looking for regarding to Beacon chain.

Ben Edgington wrote amazing piece about Beacon chain for those who are interested in to dig more into Beacon Chain. If you’re looking for something more technical about Beacon Chain, check out this GitHub repo.

Shard Chains ⛓

Shard chains and state execution functions are reflections and integrations of the framework defined in the Beacon Chain contract. Shard chains don’t need a state which is a huge benefit from ETH1.x chain as the current Ethereum chain needs state and a lot of dapp devs were using the state as free storage for their data from dapps. Sharding helps ETH1.x access data stored on ETH2.0 chain. It’s a scalability model for ETH2.0. There will be 64 ETH1.x style shards. One promising model of using the shards and avoiding cross-shard communication is to build optimistic rollups on the shard chains. These Optimistic rollups can use multiple shards as a data layer. Sharding brings scalability on ETH2.0

Shuffling

Shuffling of shard chains. This means that shards will shuffle in epoch — every 6 minutes and state of the network will move from shards. Actually a new proposal were just recently released — Async model for smart contact devs available for Vyper and solidity. Making ETH1.0 stateless will make the transition to ETH2.0 easier. You will be validator and so you no longer have to have a database on disk to manage the large global state. As you’re executing the transaction we don’t go to the database back and forth it makes that part simpler.

If you’re trying to sync you no longer need to download a global state.

Brings the significant amount of security as there will be shuffling = you will not validate only one shard but they will shuffling every 6 mins (epoch).

Shuffling makes difficult to interrupt the committees and security for the network which gives you less time to try and corrupt them (shards). This helps with reducing the state of the network = currently facing this problem with ETH1.0 (current Ethereum).

Execution Environment

Execution Environment (EE), I feel like this is a whole new rabbit hole hidden behind ETH2.0. EE basically handes the transition from ETH1.0 to ETH2.0. How? By building Ethereum Virtual Machine in Execution Environment via WASM (web assembly). This will provide that the current EVM will be rewritten in WASM which will make the transition to ETH2.0 easier. It’s minimising complexion to the system. Execution Environment has an Execution state on a cross-shard and it acts as a data hub for with state of the network. Matt is working on Sheth which is a tool that will make EE easier for developers to design decisions of the protocol.

Conclusion

There’s still so much to be developed in ETH2.0, which means that while devs and researchers are working on ETH2.0, the ETH1.x chain will still be running — there’s a dedicated group of people who are keeping the chain suschainable.

What this means for the community? If you have 32 ETH, I recommend you to stake them onto a Beacon Chain. Try it, break it (maybe) but definitely be a part of decentralized future that’s ahead of us all.

I can’t be more grateful for everyone who’s contributing, building, testing, breaking the (un)breakable. ETH2.0 will be running on a Proof-of-Stake mechanism which is supposed to solve scalability and consensus problems. Life of ETH2.0 will open up state execution and computation of the Ethereum.

Additional reading list for the more technical part of the community:

Ethereum 2.0 Phase 0 — Honest Validator — GitHub repo

Phase 0 for Humans — notes with tech overview how Phase 0 will work

Running lighthouse validator — all you need to know if you want to become ETH2.0 validator on Lighthouse