If you've been following crypto news over the past few months, you've likely come across the narrative that 'Ethereum is dead'. The majority of the people in this industry are, rightly so, focused on the price of each asset. However, a topic that is less talked about in the click-bait headlines is the tireless work being done to scale the Ethereum blockchain.
The Scalability Trilemma
There is an age old problem in the blockchain industry called ‘The Scalability Trilemma’. The Scalability Trilemma refers to the idea that blockchains can only have two of the following properties: Decentralization, Scalability, and Security.
Currently Ethereum satisfies both the Decentralization and Security parameters of the scalability trilemma. Decentralization is attributed to the distributed nature of block production by miners around the world. Security refers to the fact that Ethereum is incredibly hard to 51% attack. And even if a bad actor were able to pull off a successful 51% attack, it would be so extraordinarily expensive to conduct that it wouldn’t be able to last very long.
Newer blockchains make different trade offs with the scalability trilemma to try and achieve what Ethereum has not been able to yet. For example, EOS is putting scalability above all else, by optimizing for high transaction throughput, while sacrificing decentralized block production and potentially security in the process.
What Ethereum developers have been tirelessly working on is scaling the Ethereum blockchain without compromising the security and decentralization of the current chain. This has proven to be a very tough task, which is almost two years into the making. However, if these attempts succeed, this could be huge for both Ethereum as a platform and as an investment. Fulfilling it’s destiny as the ‘world computer’ and potentially becoming a world store of value in the process.
Solution 1: Sharding
If you’ve been following Ethereum scaling solutions you’ve almost certainly heard the term ‘sharding’. In the history of computing, sharding has typically been used as a way to partition large databases in order to make them into smaller, faster, and more easily managed parts. The core Ethereum developers are now trying to apply this same logic to the Ethereum blockchain. The idea behind Ethereum sharding is that we can split the blockchain into smaller pieces, allowing each node to require less computation. Vitalik Buterin gave a great analogy explanation regarding sharding at the Devcon3 conference:
“Imagine that Ethereum has been split into thousands of islands. Each island can do its own thing. Each of the island has its own unique features and everyone belonging on that island i.e. the accounts, can interact with each other and they can freely indulge in all its features.”
Right now, each node on the Ethereum blockchain has to compute every transaction created. On the hypothetical sharded Ethereum blockchain, certain nodes would be required to verify only transactions from certain shards, thus lowering the total amount of compute required for each node. This would theoretically allow Ethereum to scale to thousands of transactions more than it can currently compute.
However, this method does come with some disadvantages. For one, cross-shard communication may be harder than the core developers originally thought. As of right now, they are not sure how to securely allow inter-shard communication without compromising security of the chain. Additionally, Ethereum’s expected transition to Proof of Stake is a prerequisite for sharding implementation. Sharding cannot be implemented in a Proof of Work system because, assuming each individual shard will have a fraction of the total hash power of the network, it would be trivially easy for a bad actor to 51% attack a particular shard and start submitting malicious or incorrect data to the Ethereum blockchain.
Solution 2: Plasma
The second most discussed scaling solution for Ethereum is Plasma. Plasma is what’s referred to as a ‘side-chain’ implementation; meaning users on a Plasma side-chain can transact freely with one another without interacting with the main Ethereum chain for each transaction.
The exciting part of Plasma is that, in theory, it is infinitely scalable. If implemented correctly, Ethereum could scale to thousands of times its current transaction throughput without any major changes to the layer 1 protocol. The Plasma solutions works by allowing the creation of ‘child-chains’ which are essentially smaller branches of the Ethereum blockchain. Within each child-chain, there can be multiple sub-branches including even more child-chains. The primary benefits of a system like this are that you can transact very cheaply within a Plasma chain without needing to interact with the main blockchain every time.
However, this solution does come with some disadvantages as well. For starters, each Plasma child-chain requires a ‘watcher’ who is responsible for monitoring that child-chain for malicious behavior. As you might be able to tell, the requirement of ‘watchers’ could potentially be a bottleneck in the future. Additionally, Plasma chains require a ‘challenge period’ before checkpointing back in with the Ethereum main chain which may be time inefficient. In order to ensure that all fund balances for participants in Plasma child-chain are correct, the challenge period allows users a window of time to challenge the claims of another Ethereum address before the side-chain is finalized and verified by the main Ethereum chain.
Ethereum scaling is probably the most hotly debated issue at present time in the crypto industry. As you can see above, there are some very exciting solutions in the works to scale Ethereum. If implemented properly, Plasma and Sharding have the potential to scale Ethereum to the long sought after ‘world computer’ status. However, it is no question that these implementations still require a bit of refining before they will be ready to integrate with the core Ethereum protocol. In the meantime, there are other scaling solutions, such as state channels, that aim to moderately increase transaction throughput until more robust solutions can be implemented.
Interested in learning more about scaling Ethereum? Check out these reading materials here or reach out to us on Twitter @RepublicCrypto.