What is Sharding And How It Could Help Mass Adoption Of Blockchain?
As blockchains are beginning to roll out in an increasing number of startups for everything from cross-border financial transactions to supply chain management, one key issue remains — a lack of scalability.
As more machines join the peer-to-peer network, the efficiency of the entire system usually deteriorates.
Scalability has been identified as a concern with cryptocurrencies such as Bitcoin and Ethereum. If a distributed ledger is to achieve mass adoption by FinTech and other industries and compete with centralized payment networks, it must find a way to increase scalability and throughput and address latency issues.
Sharding To The Rescue
Sharding is one of several popular methods being used by developers to increase transactional throughput. Simply put, sharding is a way of partitioning which allows the spread out the computational and storage workload over a peer-to-peer (P2P) network so that each node is not liable for processing the entire network’s transactional load. Instead, each node only controls information related to its partition or shard.
The information held in a shard can still be shared between other nodes, which retains the ledger decentralized and secure because everyone can still see all the ledger records; they just do not process and store all the information.
The Consensus Problem
One of the most persistent issues with public blockchains is related to consensus protocols — how to get an agreement from users over whether proposed transactions are genuine and should be added to a distributed ledger; consensus protocols such as the well-known Proof of Work (PoW) mechanism can be highly compute-intensive.
In a PoW-based blockchain, each authenticating node records all the data on the chain and is part of the consensus process. In large blockchains such as the one of Bitcoin, the majority of participating nodes needs to authenticate new transactions and record that information if they want it to be added to the ledger; which makes completing each transaction slow and painful. Because of that, Bitcoin can only process a maximum of 7 transactions per second. By comparison, Visa on average processes 1,700 transactions per second.
Naturally, the upside to having every node record new information being added to a blockchain is that it makes the data indisputable and unchangeable.
Is Sharding Secure?
Along with addressing the scalability problem, some argue sharding likewise maintains the native security of a blockchain because it retains “most of the desired decentralization and security properties of a blockchain,” Ethereum creator Vitalik Buterin wrote in a blog post at the time.
Still, the devil is in the details. In order to keep the blockchain secure, you have to guard against shard takeovers. Corrupting the nodes in a given shard will lead to the permanent loss of the corresponding portion of data, according to a research paper published by Cornell University.
The idea for protecting the shards is to make it difficult for an attacker to predict, or force, which shards their (malicious) node gets assigned to. This makes it more challenging to get a Byzantine takeover of any shard.
To date, however, sharding mechanisms are still in the development and testing phase. The work is also being done on creating standardized methods that address not only scalability but security. That challenge should be addressed before sharding can be deemed as a solution.