Sharding: Is Enthusiasm Dying Down?
The severity of blockchain’s scaling issues cannot be oversold. Earlier this year, the Bitcoin blockchain posted 3-7 transactions per second, with Ethereum hitting 12-30. VisaNet handles an average of 150 million transactions per day and is capable of handling more than 24,000 transactions per second. Despite blockchain’s steady improvement over the past decade, it is clear there is still a long way to go.
Another perhaps more important problem that the blockchain community needs to work around is energy consumption. In short, blockchain’s energy requirements are gargantuan. According to estimates from Morgan Stanley, the original Bitcoin blockchain runs on an algorithm that could use more energy than the entire country of Argentina this year.
As the technology finds real-world use-cases and is grown out, this is a problem that will only expand with it, unless developers can produce a cleaner alternative.
Solving the scalability conundrum will require a lot of trial and error, thanks, in part, to the multitude of solutions being proposed. There are myriad companies developing solutions that all offer something slightly different, though none has emerged as a clear front-runner with the tools to take blockchain to the next level.
The key conflict, though, exists between on-chain and off-chain solutions.
On-Chain vs Off-Chain Scaling
State channels, or side chains, have emerged as a way to essentially break up the computational power necessary to power the blockchain.
Having to have every node on a chain verify a transaction can lead to excessive wait times and irresponsible power usage – take that transaction onto a much smaller side chain, though, and it becomes far more manageable. These transaction values are then qualified with the primary chain at regular intervals. Many see this as the way forward – an imperfect but malleable solution.
“Depending on who you ask, on-chain solutions either provide a form of competition for the rapidly progressing off-chain solutions to scalability, or are set to work alongside them to build out blockchain technology.”
Alternatively, there are those who believe that every transaction should take place on the main blockchain, and that scalability should be focused on making that a reality. Depending on who you ask, on-chain solutions either provide a form of competition for the rapidly progressing off-chain solutions to scalability, or are set to work alongside them to build out blockchain technology.
Sharding as an On-Chain Scalability Solution
One important method for scaling on-chain is sharding. Used widely in many kinds of databases, sharding means splitting up the information into horizontal portions and storing each ‘shard’ on different servers, each one being a smaller and more manageable collection of data than the whole.
Breaking up the deluge of information improves efficiency and offers a remedy to blockchain’s scalability, with each node having only a portion of the blockchain’s data, rather than the entire ledger.
Of course, traditional blockchains require each node to carry all the data of the blockchain, but the inherent decentralization of blockchain is still maintained when using shards. Essentially, instead of all nodes performing and recording each transaction, the burden is split up between different groups of nodes. Together, they make up a decentralized, immutable ledger, but, individually, they are being required to process a fraction of the transactions.
BDJ got in touch with Zilliqa, a blockchain platform focused on increasing the latency of next-generation smart contracts, to see how it thought on-chain solutions such as sharding stack up against off-chain as the future of the tech.
“Sharding is an on-chain solution to scalability… ensuring that the key tenets of blockchains, i.e, decentralisation, transparency and security are maintained.”
“Compared to off-chain solutions (such as state channels),” they say, “sharding is an on-chain solution to scalability. On-chain scaling solutions ensure that the key tenets of blockchains, i.e, decentralisation, transparency and security are maintained. Off-chain solutions, on the other hand, trade some of these benefits for reduced latency and high throughput.”
The Risks of Sharding
The risks with sharding have made it a relatively controversial proposition. Because consensus is decided only on a share of the nodes, rather than the entire blockchain, as was intended, there’s a risk that invalid transactions could be recorded by a small subset of malicious nodes.
“Shards run a consensus protocol called PBFT, or Practical Byzantine Fault Tolerance… With PBFT, it’s guaranteed that, if the fraction of malicious nodes in the shard is less than 1/3, then it’s impossible to record an invalid transaction.”
Proponents of sharding will tell you this can be avoided by ensuring a sufficient number of nodes oversee each shard. Indeed, Zilliqa was quick to point out that protocols are in place to deal with this problem.
“Shards run a consensus protocol called PBFT, or Practical Byzantine Fault Tolerance (PBFT),” they say. “With PBFT, it’s guaranteed that, if the fraction of malicious nodes in the shard is less than 1/3, then it’s impossible to record an invalid transaction.”
The simple fact that sharding goes against one of the fundamental tenets of blockchain technology, though, makes it difficult for some to accept.
Sharding and Privacy
There are also concerns with on-chain solutions’ ability to offer any kind of privacy at all. One of the main selling points of side chains is that they, in theory, offer the ability for transactions to be entirely private and unidentifiable.
Whether or not this can be made a workable reality is up for debate, but there are companies such as Zcash that are working to bring ‘zero-knowledge proofs’ to the market. Whether you believe ultimate privacy fundamentally undermines what blockchain is supposed to be about or not, it will be vital if businesses and the mass market are going to be willing to adopt the technology.
When operating on the primary blockchain, privacy becomes a lot more complicated. How can you have any semblance of privacy when information about every transaction you make is stored on countless nodes across the world, on a ledger that, by definition, has to be visible to everyone using it.
Anonymous digital identities are one solution, but they have serious flaws, and the Bitcoin network, for example, still allows transactions to be traced back to the accounts from which they originated. Users can have issues with a public Bitcoin address – with no one able to find out the actual name or address – but this only allows for pseudo-anonymity.
We asked Zilliqa if there can be any semblance of privacy when operating solely on the primary blockchain. “On-chain solutions can leverage cryptographic primitives such as Ring Signatures and Zero Knowledge proofs to guarantee very high levels of privacy,” they said.
“On-chain solutions can leverage cryptographic primitives such as Ring Signatures, and Zero Knowledge proofs to guarantee very high levels of privacy.”
“For instance, with these primitives, it becomes possible to cryptographically hide a transaction's sender address and amount transacted.” Depending on who you ask, though, these protocols can all be worked around, and identities more or less determined. Perhaps as they develop, on-chain solutions will be able to offer privacy equivalent to that of off-chain solutions, but they are far from reaching parity at present.
The State of Sharding
The current state of sharding is that it is underdeveloped. Attempts to put the idea into practice have been limited, despite public support from Ethereum co-founder Vitalik Buterin and his insistence that “sharding is coming”.
The enthusiasm for sharding that swelled in 2017 seems to quietly have died down, but among blockchain communities, it is still largely accepted that sharding is a promising potential solution to one of the biggest issues the technology faces.
Another on-chain solution is attracting interest for its scalability potential. Storage taxes are similar to sharding, in that they aim to break down larger parts of the consensus protocol into smaller ones. The major difference is that participants do not store data themselves. Instead, they just have to agree about the integrity of the stored data.
Users are provided with tools and incentives to save the data off the chain, and prove its authenticity and accuracy whenever they are required to do so. Users are also given the option to pay for storage that they force on the consensus protocol participants to save the data. The result is a vastly reduced memory requirement for nodes in the network, thus opening up the possibility for long term scaling.
Illustrations by Kseniya Forbender
To contact the editor responsible for this story:
Margarita Khartanovich at [email protected]