The Sharding Solution
In recent months, the news has been rife with cryptocurrency detractors quick to point out flaws in bitcoin or Ethereum, and this has created the need for the development community to come up with novel solutions to the problem at hand.
First – What’s the Problem?
Bitcoin and Ethereum both currently operate on a proof-of-work protocol. This protocol offers a very high level of security; however, this comes at the catch of being very resource intensive. As these cryptocurrencies continue to scale, this is becoming an issue.
The three big issues that are presenting themselves are latency, throughput and scalability (inability to perform at an even higher volume). With some transactions taking between a few minutes and a few days (depending on the transaction fee you pay), it is hard to imagine how this model could handle higher traffic. Bitcoin is currently limited, to 3-7 transactions per second, and Ethereum is limited to 7-15. Neither of these figures are encouraging.
As a result, novel solutions like “proof-of-stake” protocols are being invented in order to improve the speed at which transactions can be processed. Sharding is an offshoot that shows promise, and the founder of Ethereum has indicated it will likely be implemented in the future for the network.
A common engineering solution is to split a bigger problem into smaller problems and solve them one at a time. Sharding is a solution that follows a similar train of thought. The way it works is by taking the entire network and splitting it into a bunch of smaller subsets. Each subset of nodes is called a shard, and this takes away the need for each node to go through the entire transaction history in order to verify a transaction.
The term “shard” comes from the idea of a fragment of glass or pottery. The whole is split into smaller component pieces that govern themselves much like states do within a larger country.
One possible means to split up the network is based on the first digits of the public addresses, but there are many other methods that are being floated around.
By requiring its own set of validators, proof-of-stake becomes a prerequisite for the functioning of a shard. By requiring a proof-of-stake protocol to properly function, sharding becomes more practical for Ethereum in the short-term when you examine Vitalik Buterin’s recent comments on the scaling of Ethereum.
Benefits of Sharding
Sharding is necessary for the key reason that these networks need to find a way to grow, otherwise their value will be significantly limited. Implementing a solution like sharding serves to both increase the flexibility of the network while limiting the amount of storage required for it to function.
The difficulty in changing the networks from their current proof-of-work protocols is that they need to keep maintain their security, otherwise they lose all value. Sharding seems to be one of the few solutions that solves the scalability problems while still being secure.
Every solution comes with downsides, and it is important we address those of sharding. As with proof-of-work, the problem comes from the same thing that makes sharding powerful. Shards are designed to make it easy to transact with other users on the same shard. However, transactions between shards becomes complicated and add an extra layer of complexity to the solution.
If facilitating communication between the shards proves to be too difficult, then the solution has no merit. There are several workarounds that have been theorized (such as transaction receipts), although a lot of work must be done before this is brought to fruition.
Another potential issue is what happens when you create all these small shards. Will they be vulnerable to 51% attacks because of their size, or will the proof-of-stake method still make this too costly to be feasible? The value of the bitcoin and Ethereum network is in their security, so they need to be able to guarantee sharding’s efficacy before implementation.
The final thing to make clear is that this is only a potential solution, and it has not been tested yet, so we have no idea how well it would work or what the results of its implementation will be. For that, only time may tell.
Featured image courtesy of Shutterstock.