Before I get into the technical details behind this article – I think that there has been a huge topic of conversation that I have so far neglected to cover in any of my Ethereum technical articles. That being:
Is the future of Ethereum worth thinking about, and should you even care about the upcoming Eth 2.0 release at all?
Well, in short – yes! Ethereum is going up & up.
I read an article recently that claimed ฿6200 BTC (£45.4 million GBP) has migrated to the Ethereum network, from the Bitcoin network within the last few weeks alone. I have searched for a definitive data point to back this claim up, and haven't been able to come up with 100% solidity (pun intended), so I can't state it with conviction. However – I have no reason to not believe it!
Ethereum seems to continually suck-in more and more cash. I absolutely love this infographic, showing the absolute liquidity vacuum cleaner that is Ethereum DeFi:
This Twitter thread explains the above image,
Before I dig into the technical topics of the forthcoming release; I'd like to offer my two-cents. Someone retweeted this into my news feed the other day:
It made me take a step back for just a moment, and really think about the upcoming 2.0 release, as well as actually considering Ethereum overall.
~6 years ago; I genuinely believed that BTC, and Cryptocurrency as a whole, had no future. Ethereum hadn't been announced at that point, and even after it was; I didn't give it reasonable consideration until 2017.
Nowadays, I suppose I am slightly biased towards Ethereum. I've worked exclusively in Ethereum-based technologies for the last couple of years, but I try not to be too sycophantic. I do understand that Crypto, and more specifically Ethereum, have drawbacks just as they do benefits.
I wrote an article a couple of weeks go, about the big change (total overhaul) of the Ethereum consensus mechanism, from Proof of Work (PoW) to Proof of Stake (PoS).
I still believe, arguably, that the consensus mechanism shift is the biggest change due to take place in the release of Ethereum 2.0; and it has proven to be one of the most controversial. However – there are actually quite a few important changes due to be implemented.
Let's dive on in!
#1 Beacon Chain (PoW to PoS)
Beacon Chain / Proof of Stake is scheduled for Phase 0.
Probably the most intensely debated improvement scheduled in the 2.0 release is the complete paradigm overhaul of the fee consensus mechanism, from Proof of Work (PoW) to Proof of Stake (PoS). I wrote about this change, in detail, in one of my latest articles.
To BRIEFLY recap, to save you having to navigate away to my previous article:
The Beacon Chain is the underlying base-layer supporting the whole of Ethereum 2.0.
"It is the heartbeat that keeps the system alive. It is the conductor coordinating all the players."
The Beacon Chain's main reason for existence is to manage the Proof of Stake (PoS) protocol. The management of PoS is multifaceted, and consists mainly of:
- Managing validators & their ETH stakes,
- Organising validators into committees,
- Nominating the chosen block proposer for each shard at each step,
- Applying the PoS consensus rules,
- Issuing rewards and penalties to validators,
- Facilitating cross-shard transactions by being a Shard state register.
The PoS consensus mechanism applies rules that are designed to prevent attacks on the network. Any validator discovered breaking these rules will be slashed and ejected from the network. Slashing means that a significant part of the validator’s stake is removed – even up to the entire 32 ETH stake in the most severe case.
On its own, the Beacon Chain might not seem particularly useful. But, as the first component of Ethereum 2.0 to be delivered, it really is the foundation of the entire system.
This diagram is a great illustration of the planned topography for Eth 2.0, featuring the Beacon Chain:
There is also a highly detailed Beacon Chain FAQ available here.
#2 Sharding & Shard Chains
Shard Chains are scheduled for Phase 1.
In the current Ethereum blockchain; every node stores the entire chain state, such as account balances and smart contract code etc. Each node also processes all chain transactions. While this system provides a high level of security, it greatly limits scalability. Blockchains can't process more transactions than each single node can. This leads to Bitcoin being limited to ~3–10 transactions per second, Ethereum to ~7–20.
It just so happens that I shaped much of my early Developer Relations career whilst working for a leading NoSQL database provider. Because of that fact – the very word 'sharding' invokes deep feelings of fear and hatred. Sharding, as I was taught, is a bad word causing misery & confusion and can't possibly mean anything good!
As it turns out, when not applied to SQL-databases, sharding is not only a good thing – but possibly the most sought after technology in the Blockchain space! Just as within the database industry; sharding is all about improving scalability by splitting chains (data stores) into smaller, more manageable chunks – reducing resource load and improving computation times.
For decentralisation, blockchains need to scale horizontally – specifically, sharding data onto more nodes. For Ethereum 2.0; sharding will take the form of 64 chains running alongside the beacon chain.
In theory, this all sounds wonderful. However – there is a big problem when it comes to data partitioning. In the database world, this problem can be explained by the notorious CAP Theorem. In blockchain systems an equivalent issue exists: The Scalability Trilemma.
The Trilemma states that blockchain systems can only consist of two of the following three properties:
- Decentralisation: – defined as the system being able to run in a scenario where each participant only has access to O(c) resources, i.e. a regular laptop or small VPS.
- Scalability: – defined as being able to process many transactions.
- Security: – defined as being secure against attackers with up to O(n) resources.
The Trilemma can be explained by the following DCS Triangle:
In the proposed Ethereum 2.0 sharding solution; a simplified sharding scheme on Ethereum might put all addresses starting with 0x00 into one shard, all addresses starting with 0x01 into another shard, etc.
In the simplest form of sharding, each shard also has its own transaction history, and the effect of transactions in a shard are limited to the state of that shard.
There is a highly detailed sharding FAQ available here.
There is also a detailed sharding roadmap available here.
#3 EVM to eWASM
eWasm is scheduled for Phase 2.
Phase 2 is where the functionality of the entire system will start to come together. Shard chains transition from simple data containers to a structured chain state, and Smart Contracts will be reintroduced. Each shard will manage a virtual machine based on eWASM.
Simply put; eWasm is a restricted subset of Wasm to be used for Smart Contracts in Ethereum. Much like Wasm, one of the biggest goals of eWasm is to be fast & efficient. To truly distinguish Ethereum as the ”World Computer”, we need to have a super performant VM. The current architecture of the VM is one of the greatest blockers to raw performance.
WebAssembly aims to execute at near native speed by taking advantage of common hardware capabilities available on a wide range of platforms. This will open the door for Ethereum to a wide array of uses that require performance/throughput.
Security is another key goal. With the added performance gains from eWasm, 2.0 will be able to implement parts of Ethereum such as the precompiled Smart Contract in the VM itself which will minimise our trusted computing base. WebAssembly is currently being designed as an open standard by a W3C Community Group and is actively being developed by engineers from Mozilla, Google, Microsoft, and Apple.
eWasm Goals
- To provide a specification of eWasm Smart Contract semantics and the Ethereum interface.
- To provide an EVM transcompiler, preferably as an eWasm Smart Contract.
- To provide a VM implementation for executing eWasm Smart Contracts.
- To implement an eWasm backend in the Solidity compiler.
- To provide a library and instructions for writing Smart Contracts in Rust.
- To provide a library and instructions for writing Smart Contracts in C.
- To provide a metering injector*, preferably as an eWasm Smart Contract.
I wrote a detailed article on Wasm & eWasm here.
#4 Continued Improvement
As with any decent technology; maintenance and upgrades need to be applied, on an ongoing basis. The future aspects of the tech, as well as maintaining a high level of quality, can only be ensured as long as there remains work being applied.
There has not been a definite roadmap / feature plan announced for the Beyond Phase, but ConsenSys stated that the following features are to be implemented:
- Lightweight State Protocol
- Coupling with Main-chain security
- Super-quadratic or Exponential Sharding
Just as with the improvements described above, the point of the ongoing improvements remains to ensure excellent Scalability and Performance.
Ethereum 2.0 (Serenity) Release Schedule
I mentioned above that the probable most argued Ethereum improvement, was the switch from PoW to PoS. However; there is something much more widely debated, and that topic happens to be the actual go-live dates for Eth 2.0. The release schedule has been broken into 3 main phases, (with one extra not-fully-planned beyond phase), each of which main phases will roll-out a major piece of hotly anticipated functionality.
Phase 0:
Original target release date: Summer 2020
Technical upgrades: The biggest technical implementation for Phase 0 is the introduction of The Beacon Chain.
As I mentioned above, the Beacon Chain will manage the Proof of Stake protocol for itself and all of the shard chains. It stores and manages the registry of validators.
Once Phase 0 is complete, there will be two active Ethereum chains. The original Ethereum 1.0 PoW chain will continue to run alongside the new Ethereum 2.0 PoS chain, ensuring that there is no break in data continuity.
During this phase, users will be able to send their ETH from the Eth1 chain to the Eth2 chain and become validators. They will, however, not be able to migrate this ETH back to Eth1 (for now, at least).
Although there has been much debate about the Phase 0 release - a prominent Eth researcher stated a few days ago that can't see Phase 0 going live until at least January 2021! The thing is though; if you scroll down to the top comment on that statement, (from Vitalik Buterin no less), apparently the 2020 go-live date is still very much a reachable target.
“Eth2 is not going to have any critical applications running on it until phase 1”
As many others in the 2.0 AMA thread agreed, the above quote from Vitalik does put things into a hopeful perspective, rather. I have total confidence in the amazing Ethereum contribution community / team, that a late-2020 launch is still on the cards!
Phase 1:
Original target release date: Spring 2021
Technical upgrades: The biggest technical implementation for Phase 1 is the introduction of Shard Chains.
Serenity Phase 1 will address finality and consensus on shard chains. The shard chains in Serenity’s Phase 1 will be more of a “test run” for shard chains than the release of an immediately-scalable solution. The Beacon Chain will monitor the execution of these shard chains.
Phase 1.5 is the term being used to describe a period during the Phase 1 upgrade where the Ethereum 1.0 and Ethereum 2.0 blockchains are merged. After Phase 1.5, the Ethereum 1.0 chain will run as a shard of the Ethereum 2.0 PoS blockchain.
As detailed above; this will be the moment when the full functionality of the Ethereum 1.0 chain – including the use of ETH – will become functional on Ethereum 2.0 without risking a break in data consistency.
Phase 2:
Original target release date: Late 2021 - Early 2022
Technical upgrades: The biggest technical implementation for Phase 2 is the switch to eWasm.. However, the following technical changes are also planned:
- Ether accounts,
- State Execution,
- Transactions,
- Transfers and Withdrawals,
- Smart Contract execution.
This phase will consist of the introduction of a new Virtual Machine. The new Ethereum-flavoured Web Assembly (eWASM) will replace the current EVM. This phase will also see the evolution of the shard chains to be fully functional, allowing the scaling of the Ethereum network.
With the release of the eWASM, the ethereum blockchain will theoretically allow Smart Contracts written in any language to be executed on it. Currently only Smart Contracts written in Solidarity are supported.
Finally, Phase 2 will also see the integration of the Ethereum 1.0 chain into Ethereum 2.0, so that Proof of Work can finally be completely discontinued.
Phase 3 & Beyond
Original target release date: 2022/3 - ????
Technical upgrades: Although Phase 3 is not formally planned, the whole idea is for continued Ethereum platform improvements.
As I mentioned above, although not yet set in stone, we're probably most likely to see the implementation of:
- Lightweight State Protocol
- Coupling with Main-chain security
- Super-quadratic or Exponential Sharding
Eth 2.0 Roadmap
The detailed, technical roadmap flowchart below details the implementation phases described above:
Nimbus & Eth 2.0 at Status
At its most simple; Nimbus is an Eth 1.0 & 2.0 client, built by Status for resource-restricted devices, with the ability to perform well on embedded systems and personal mobile devices, including older smartphones.
As Status' look forward to Eth 2.0, we are also contributing useful tools. The Nimbus Beacon Chain; an Open Source Nim implementation of the Ethereum 2.0 blockchain, can be found on GitHub here.
There is an excellent tutorial on Building Nimbus on Android for Eth 2.0 here.
Does Nimbus sound interesting to you, and do you enjoy writing technical content? We're hiring a Technical Writer for Nimbus!
Conclusion
Overall, the Ethereum 2.0 improvements I have detailed above will result in better Scalability and Security for the network. They will also improve reward fairness and usability for Ethereum Validators, users, and the wider Ethereum community!
As I mentioned in my latest article on Eth 2.0 PoS; I am very excited for Ethereum 2.0, and I hope to be involved in the Phases of development in one way or another, even if that is just writing about them.
If you have any questions on the relationship between Status and Ethereum 2.0, please feel free to email us at support@status.im or better yet, join our chat.
Otherwise, I would personally love to hear what you think of Ethereum 2.0, and I encourage you send me any comments & opinions you may possess on the subject. You can do so here!