What is Ethereum’s Sharding Solution and Can it Solve the Scalability Problem?May 10, 2018, 1:26PM
Ethereum’s sharding solution proposes splitting up transactions into groups of shards. This could boost performance, but comes with challenges.
Cryptocurrencies have a monumental task ahead of them: not only must they somehow upend the standard order of things by becoming a mainstream choice for transactions, and by extension, computation, and services, they must also build the technology that allows that very system to function on a global scale. Widespread adoption is dependent on the development of technology that can scale to process thousands of transactions per second.
This is perhaps the most challenging obstacle in the market’s path. It is also for this reason that the most knowledgeable in the field, such as Vitalik Buterin, advise against premature celebration and emphasize the early nature of the field.
Despite a sometimes cautious outlook the industry’s best and brightest are not stumped. On the contrary, the fire of their passion for decentralization fuels their desire to invent new solutions to the problem of scaling. There is a race to answer the question of “how do we grow our platform to support millions, potentially billions, of users, without sacrificing performance and security?”, and projects like Bitcoin and Ethereum are by no means the only projects slamming away at the keyboard.
Bitcoin’s Lightning Network has had its fair share of discussion and continues to raise hope in the eyes of the community. In recent weeks, it has been Ethereum’s sharding proposal that has done the same.
It is the mutation that Ethereum needs to rail against Visa’s transactional capability of 50,000 transactions per second. The cryptocurrency currently stands in the region of 10 - 15 transactions per second. While many proposals have been described as a solution to increase transactional capability, sharding has received notable attention lately, and Buterin himself has indicated that it will soon arrive.
What is Sharding?
The simplest description of sharding is that it distributes the transactional workload among multiple nodes, rather than burdening a single full node with all the transaction processing. This is not a new concept, as it takes an idea from database architecture and merely applies that to transaction processing.
In the current method full nodes store the entire state of the network and every subsequent transaction. This is advantageous in that it is incredibly secure, offering a consensus on a broader level - more nodes agree on the general state of the blockchain. Unfortunately, this is also what brings the processing power down. As the Ethereum team themselves describe on their Github page, the blockchain cannot process more transactions than a single node can.
Sharding’s workaround is to distribute data to smaller subsets to various nodes so that transactions can happen in parallel. Ethereum proposes associating transaction groups with specific Shard IDs, for which validators are randomly chosen to verify it. They also suggest a protocol to permit communication between these shards, which is the only way to get the system to work.
In theory, sharding could provide a lot of benefits, as we described above. However, it is not so easy to implement. There are several questions that remain unanswered.
The communication protocol is perhaps one of the more significant challenges. How can one node prove to another that it has done its part? Without a reliable method, the system fails.
Worse still, as Ethereum also notes, it may also be possible for an attacker to take over a single shard. This could result in the attacker submitting an invalid transaction, which, of course, is the worst possible outcome.
There are several more technical challenges. The ones listed here are only some of the most obvious faults in the method. The trouble with such a technique is that it must be tested in the field and there may be still more flaws discovered upon implementation. The prevailing sentiment is that switching to Proof-of-Stake might alleviate some of the problems, which Ethereum is looking into with its Casper protocol.
Sharding is most definitely an attractive solution to the scaling problem and could potentially increase the performance dramatically. However, it is not at a stage where we can celebrate it as Ethereum’s savior. It is an exciting idea on the workbench, which requires much tinkering with before it can be deemed as a genuine solution.
Disclaimer: information contained herein is provided without considering your personal circumstances, therefore should not be construed as financial advice, investment recommendation or an offer of, or solicitation for, any transactions in cryptocurrencies.