Blockchain Semantics Insights
Business Case | Deep Tech | Announcements | Blockchain Glossary |
Sharding On Ethereum To Solve Scalability IssuesBy Viswanath Kapavarapu | June 5, 2018, 2:53 p.m. GMT
Ethereum in its current state has several limitations, the most important one being limited scalability, i.e., the number of transactions processed per second. Improving the scalability is critical in order to make public Blockchains like Ethereum more attractive to real-world cases. Case in point is what happened to the Ethereum network when people decided to buy a few Cryptokitties. Read more about it here.
One answer to improve Blockchain Scaling is Sharding. Sharding promises to increase the throughput of Blockchain by changing the way the block gets validated by the network.
This article discusses briefly about the scalability issues of Blockchain and how sharding promises to improve the scalability issue.
Scalability Issues on Ethereum
Today public blockchains like Ethereum and Bitcoin can handle only around 15 and 5 transactions per second. This number is far inferior compared to existing payment networks such as Visa, which can handle up to 50,000 transactions/sec.
Slow transaction processing makes blockchain adoption difficult for real-world cases. The network often chokes up and payments get delayed for hours, even days, each time a DApp such as Cryptokitties go viral. These delays in transaction processing occur primarily due to the way consensus is achieved among peers on Blockchain network.
Currently, all the nodes participating in the Ethereum network need to perform verifications for each and every transaction. Out of all these computations, only a single block of transactions is going to be accepted once in every 15 seconds. This enormous amount of computation power required makes the whole process very slow and cumbersome. Ethereum is trying to solve this problem through Sharding Mechanism in the upcoming Casper Protocol.
What is Sharding?
Sharding is a scaling technique that allows multiple parts of Ethereum Chain to process transactions simultaneously. As a consequence, each node would process only a fraction of transactions, eliminating the fragmentation of mining power. Each node would do so in parallel with other nodes on the network. Breaking the network into multiple parts, technically known as shards, would result in more transactions being processed and verified simultaneously.
Sharding splits the entire Ethereum state into multiple parts known as Shards. These shards contain their own independent piece of state and transaction history. For example, if we have two shards and only two accounts, say user A and user B, then each shard will keep track of the balance of a single user only.
Now imagine if A makes a transfer of 10 Ether to B. This transaction would be handled by the first shard. Once the transfer is validated, there should be a way for the shards to communicate with each other. This cross-shard communication is made possible through a shared memory of transaction receipts. These receipts are stored in such a way that other shards can see the receipts, but not modify them.
Challenges in implementing Sharding
First, there needs to be a mechanism to identify which node implements which shard.
Secondly, nodes in a Blockchain work in a trustless system. This means that if one particular transaction is broken into shards and shared with Node A, there should be some sort of proof mechanism that they have verified the transaction. To solve this, each shard on Ethereum would have special nodes called collators. These collators are tasked with the verification of shards and only after affirmation from at least ⅔ of the collators, the shard is considered as valid.
The implementation of sharding could help public blockchains process thousands of transactions every single second. Furthermore, transaction processing fee would come down significantly as less computations are required to validate a transaction. Low fees coupled with high transaction throughput could make public blockchains more attractive for mainstream adoption.