The much hyped distributed ledger technology or blockchain has some limitations. The main challenge has been scalability. This is because as the blockchain grows with the introduction of more computers and more chains added in the storage of data, the possibility that the computers are bogged down increases.
Ethereum’s co-founder, Vitalik Buterin summarized the challenges facing blockchain scalability in a blog post in 2018 in which he wrote:
The Ethereum community, key developers and researchers and others have always recognized scalability as perhaps the single most important key technical challenge that needs to be solved in order for blockchain applications to reach mass adoption. Blockchain scalability is difficult primarily because a typical blockchain design requires every node in the network to process every transaction, which limits the transaction processing capacity of the entire system to the capacity of a single node.
The developers proposed two paths to solving the scalability problem facing blockchains: one was through a layer 2 off-chain solution and the second was through sharding.
Bearing in mind that the technology has progressed beyond its traditional usage such as in cryptocurrencies. Other uses of the technology includes supply chain management, governance and even in decentralized finance as seen in its use in remittance services.
Solution To Scalability
Since it is now reshaping traditional businesses, blockchain should be scalable. This is where sharding comes handy in the quest for scalability. Many projects such as Ethereun are already working on the concept to ensure that the scalability challenges associated with blockchain are surmounted. It is the concept that helps developers to surmount the scalability challenge. Sharding is being tested by many blockchain networks to overcome the scalability issue.
The Source of The Challenge
Majority of nodes in a network have to agree that the proposed transactions are authentic and have to be added to the blockchain. The authentication that is in use at the moment is computing intensive. This is mainly due to the fact that they are based on the proof of work concept as seen from Bitcoin. Proof of work is not just computing intensive but they also are slower.
This consensus protocol takes a lot of computing power and demands that all data in the blockchain be stored and recorded in a definite pattern. The nodes on the network have to record and store a full copy of the blockchain. This implies that high CPU space is required in this type of consensus protocol. However, as more transactions occur and the blockchain grows, more computing cycles are needed and everything slows down.
What Sharding Does
Sharding is used to process more transactions within the shortest possible time by partitioning the network into “shards” that are smaller and independent when compared to the general network.
The splitting of the network helps to minimize the transaction time or latency of the network since all the nodes do not need to recreate all the data available on the blockchain at the same time. Sharding splits or partitions the network in a way that each node will not have to go through the process of going through the entire data
The current structure of blockchain entails that each node stores the complete copy of the data in it. This is the source of the high latency experienced when the blockchain becomes very large. The advantage of having independent nodes that store the full copy of the blockchain is that it is impossible to alter, change or manipulate the system. Yet this security strength has its downside, which is the slowness of the network.
Generating millions of transactions per second is near impossible under such situations. This is unlike what is obtainable in some centralized payment processing platforms such as VISA, which has the capacity to process more than 1000 transactions per second. (The company claims it can handle 24,000 transactions per second).
Sharding effectively spreads out the network through partitioning, thereby making it unnecessary for each node to process all the data at the same time. The division of labor improves the number of transactions that are possible within the blockchain.
The process of sharding could comprise a horizontal partitioning which assigns specific duties or functions to one section of the shards. This could be the storage of a specific type of data or processing of definite types of transactions from some types of addresses.
This partitioning of the shards in rows gives specialized functions to a section thereby maximizing the efficiency of the system.
Shards can be shared among others in a way that enables them to maintain the key component of the distributed ledger technology, which is enabling each component to store a copy of the data. This means that no critical data would be absent in any section of the network.
Types of Blockchains Sharding
In this type of sharding, the nodes are grouped in shards that communicate internally, one with another. The up-to-date state of the blockchain is obtained by the clients and nodes in the shards. This is done through intra-shard communication.
Specialized computing is introduced to make each shard responsible for a specific type of transaction. More shards can be assigned the role if the workload increases. This ensures that scalability is not compromised.
Storage burden is reduced by allowing the shard to store a fraction of the data. This enhances scalability. This fulfills the need for storage integrity without compromising scalability. Each node stores data that is related to its partitioning function and not the full blockchain data.
Sharding Security Challenges
One of the issues that have been raised in sharding security is the possibility of shard takeover. However, developers ensure that this doesn’t happen by making sure that the network retains its decentralized status.
However, a recent research paper by Cornell University shows that shard corruption could lead to permanent loss of data.
The concept used on the Ethereum blockchain, one of the premier networks to work on the shard concept, is that nodes are randomly assigned to shards at random times. This makes it impossible for shard takeover through a coordinated attack on the network.
Other platforms that have experimented with the shard concept are Omniledger, Chainspace, RapidChain and Monoxide.