Introduction to Ethereum’s Scaling Issues & The Blockchain Trilemma
Ethereum is a decentralized application platform that runs applications without any chance of fraud, censorship or third-party interference. Powering thousands of decentralized applications (dApps), Ethereum is hailed as one of the most defining digital currency projects of the era and is heavily utilized in both commercial and non-commercial settings. However, as the network continues to grow in terms of traffic, it has reached certain limitations in relation to its scalability. Scalability can generally be described as an application’s ability to handle increased loads of traffic volume; in relation to crypto projects such as Ethereum, this typically refers to limits on the number of transactions or throughput the network can handle in a given time frame.
With one of the largest, most supportive and most active communities behind its back, the Ethereum team has been attempting to tackle what is known in the industry as the blockchain trilemma. Coined by Ethereum founder Vitalik Buterin, the term contends that at a fundamental level, blockchains can only achieve two out of three of the following traits: security, decentralization, and scalability (Ometoruwa, 2018).
The upcoming Serenity release in the Ethereum roadmap, also referred to as Ethereum 2.0, includes three major updates to the project that aim to strike just the right balance between the aforementioned properties. Namely, the milestone is planned to include a transition from a proof of work consensus system to proof of stake, sharding, and a migration of the existing EVM execution engine to Ethereum flavored WebAssembly (eWasm). The following post explores each of these three updates in depth as well as reviews the current status and timeline of the Serenity release.
Proof of Stake & The Casper V2 Protocol
Transitioning the Ethereum blockchain to a proof of stake (PoS) consensus algorithm is the first major update in the highly anticipated Serenity release. The current implementation of Ethereum leverages a proof of work (PoW) consensus process that rewards participants who solve complex, mathematical puzzles in order to validate transactions and generate new blocks through a process called mining. However, mining is criticized as an unsustainable practice due to its extravagant hardware and electricity costs as well as a high risk of centralization.
Proof of stake systems enable blockchains to operate without the remarkably high hardware and electricity costs associated with mining while also reducing the risk of centralization. In such a system, “a blockchain appends and agrees on new blocks through a process where anyone who holds coins inside of the system can participate, and the influence an agent has is proportional to the number of coins… it holds” (Buterin and Griffith, 2017).
The initial plan was to incrementally transition Ethereum to proof of stake with the Casper FFG protocol, a hybrid blockchain utilizing both proof of work and proof of stake. This initial protocol required a minimum deposit of 1500 Ether to become a validator. However, the plan for Casper FFG has been abandoned and replaced with Casper V2, a protocol that will migrate Ethereum to a pure proof of stake blockchain known as the beacon chain. The beacon chain will require a minimum deposit of 32 Ether to become a validator and serve as the base layer for sharding (Dexter, 2019).
Sharding is the second major update to be included in the Serenity release and aims to largely increase the Ethereum blockchain’s total throughput rate. Currently, each node in the Ethereum blockchain processes all transactions and stores the entire state — account balances, contract code and other attributes. While this provides a great deal of security against tampering, it greatly limits scalability since such “a blockchain cannot process more transactions than a single node can” (Buterin et al., 2016).
Ethereum’s implementation of sharding is similar to techniques found in traditional database sharding, “where different parts of the state are stored by different nodes and transactions are directed to different nodes depending on which shards they affect so that they can be processed in parallel” (Buterin, 2016). Indeed, the fundamental motivation for scaling via sharding is to divide the validation responsibility among many nodes. In the proposed system, there would still be sufficient amount of nodes verifying each transaction as to maintain a high level of security, but transaction processing would be split up between smaller sets of nodes. Sharding is highly regarded as the much-needed mechanism through which Ethereum could “scale to practical levels for applications while still retaining its decentralization and security” (Curran, 2019).
Ethereum Flavored WebAssembly (eWasm)
eWasm, or Ethereum flavored WebAssembly, is the third and final major update to be included in Serenity. To understand the motivation behind eWasm, it’s important to recognize how Ethereum blockchain nodes process incoming transactions.
Currently, the system state of the Ethereum blockchain is altered through a “formal model of a virtual state machine, known as the Ethereum Virtual Machine (EVM)” (Wood, 2019). However, the current EVM has experienced little change from its early specification and has reached its limitations in regards to flexibility and performance. Specifically, the EVM is “not optimized for speed on different hardware platforms, nor is it aimed at portability”, meaning it is limited in terms of tooling and language support for smart contract development (Beyer, 2019).
eWasm is slated to replace the current EVM and be the new execution engine on the Ethereum platform by migrating the existing engine to WebAssembly, a distinctly optimized binary format for virtual machines. eWasm can be explained as a “runtime environment for smart contracts with the goal [of being] portable [while also] running code nearly as fast as native machine code” (Signer, 2018). The wasm-based EVM would leverage improved hardware features and could theoretically support smart contract development in any language that compiles into WebAssembly, including Go, Rust, C, C++ and more (Beyer, 2019). Ultimately, these expanded options and capabilities will allow Ethereum code to be executed faster.
Current Status & Timeline
Ethereum took one step closer towards Serenity with its recent, timely Testnet release in early April, 2019 allowing network users to test its much anticipated proof of stake upgrade (Isige, 2019). Despite the recent success, however, the delays and ambiguities surrounding Ethereum 2.0’s progress have led some critics to doubt the long-term survival of the project. Indeed, the project’s roadmap has seen releases delayed, priorities changed, timelines extended and even the departure of critical team members who have started competing projects. As development moves forward, many are wondering about the current state of the project. It is still not clear exactly when the release will go live, although it is expected to be finished by 2021 (Dalton, 2019). However, Buterin has recently offered reassurance, claiming that recent governance issues have not delayed the progress of Ethereum 2.0 (Wall, 2019).
Ethereum certainly has a promising — albeit somewhat unclear and uncertain — future. The Ethereum team is under pressure to achieve a higher level of scalability as newer projects are released with seemingly greater technology. Outside of its growing competition, Ethereum must indeed improve its scalability if it is to handle the immense traffic spikes that will occur as more decentralized applications are released on its blockchain.
It should be noted that other Ethereum scaling solutions are being worked on alongside those mentioned. Notable projects include Plasma and Raiden, which both offer off-chain scaling solutions by providing an extra layer on top of the main Ethereum network — similar to the Bitcoin project’s proposed lightning network — that is capable of handling massive amounts of transactions. However, these projects are not strictly considered to be a part of the Ethereum 2.0 roadmap, and thus fall outside the scope of this post.
Ultimately, the updates in the Serenity release aim to address important scaling, consensus and security issues and bring the network beyond the limits of its current incarnation. Should the release go smoothly and occur in a timely manner, Ethereum may maintain its position as the dominant decentralized application platform for the foreseeable future and silence the rallies of competing projects. However, should the project continue to experience delays and other major roadblocks, it may very well be surpassed by current and emerging competitors.