Ethereum is working on better protocols to solve the scalability issues after announcing the Ethereum 2.0 development update in 2018. We explained the Ethereum Casper protocol in detail earlier in an article, this particular article dwells on the Ethereum sharding protocol.
The blockchain trilemma is a persistent headache in the industry that is causing slow adoption across the globe. The trilemma involves decentralization, scalability, and security where no blockchain has yet to achieve all the three at once without sacrificing one other feature. While all the three are important to all blockchains as the popularity grows, Ethereum chooses to sacrifice scalability for security and decentralization.
However, the Ethereum community are working towards solving the scalability problem (or the lack thereof) through a process called sharding. The process will involve separating the Ethereum node platform into smaller platforms to increase the speed of reaching a consensus among the nodes.
This article focuses on the trilemma problem, what sharding is and how it works and finally the challenges of getting sharding to work.
Table of Contents
The Big Trilemma issue for Ethereum
Ethereum blockchain network is highly secure given that every single node processes and validates every single transaction on the network. The rigorous validation allows for each of the transaction to be secured and recorded on the blockchain. This decentralized way of validation, however, causes a slow process of validation as the blockchain’s speed is dependent on the individual nodes processing speed. This places Ethereum with a key problem since the prioritizing of security and decentralization kills off scalability.
Despite the rapid developmental growth seen on the smart contract project, Ethereum, there are fundamental problems in the network. The project is limited to the speed of transactions [per second] and also has a low throughput. This scalability problem is posing a challenge on the adoption of the technology hence the need for a solution.
If Ethereum chooses to reduce the number of nodes to validate transactions, they will be sacrificing security and decentralization of the network.
As one of the largest blockchain projects in the world today, Ethereum is looking at sharding as an option to solve its scaling problem.
What is sharding?
Note: Nodes on the Ethereum network are responsible for verifying the transactions (or mined block) and further ensuring consensus mechanisms are followed. The blockchain stores every transaction on the blockchain on ledgers that are distributed to every single node on the network. However, the bulky nature of keeping the records (approximately 1 TB) of data has discouraged most individuals from running a node. The importance of keeping full records is to allow easy verification of transactions from miner’s work.
Sharding is a method that involves splitting Ethereum blockchain network into smaller parts called “shards”. Each shard works in a similar way to verify transactions as the main network. The shard is governed by its own protocols, contains its own unique set of balances and its smart contracts.
The sharding solution has long been popularized by Ethereum’s founder, Vitalik Buterin, who believes the new technology will boost the scalability of the network. Explaining the development, Vitalik compared it to thousands of islands which have different features and rules. The islands communicate with each other through establishing protocols and the inhabitants of the islands enjoy the features on the islands they are on. The decision-making process on each island will be faster too than making all the islands participants in a decision only needed on a particular island.
Sharding poses a challenge to the developers given the complex nature of the network. While other methods of scaling and toughen up security and decentralization are being explored, sharding poses the best results and is simultaneously the hardest to implement.
How sharding works
The main network work in conjunction with the shards to validate the transactions and record them immutable. The transaction details are unique to each shard and happen between the various accounts on that specific shard. These transactions on a shard are referred to as transaction groups. Validation of the transaction is complete when the pre-state root of the transaction group equals the shard rood recorded on the main network (globe state). Once matched, the transaction group is marked verified and the main network updated using the shard ID root.
The merkle root
While in the previous Ethereum model only the globe state root was being used for validation, sharding introduces the transaction group root too. Each shard is connected to the main Ethereum network through merkle trees. The transaction group roots act as the merkle roots containing the updated and verified records and is stored alongside the globe state root on the blockchain. Users on a shard can only communicate within their shard and make transactions with those in the shard.
The challenges of sharding
Sharding is still in the early stages of development and a couple of flaws have been identified by the development team. First, sharding faces a centralization issue if an attacker takes over majority of the shard block miners. Again, a trilemma issue. It’s easier to double-spend and do bad stuff in a shard than the main chain, since spreading transactions across lots of shards generally decreases security while increasing TPS. The team is still working on different methods to solve such an issue but it involves having a slower network.
In conclusion, Ethereum scaling will only affect the protocol development teams while users and decentralized application developers need not worry about the technicalities. The blockchain industry is far from solving the trilemma problem but sharding is yet the best solution yet.
Want to know more about it, join us on our Discord and Telegram channels and get into the discussion, or join our 8000 member community on our ICO DOG Investment Platform: