For the past few years, there has been a lot of hype surrounding blockchain – a technology believed to be one of the pillars that will support the 4th industrial revolution. Well, the craze around this revolutionary technology is justified, given the immense benefits it offers to every major industry. To be more specific, data immutability, decentralization, and security; are just some of blockchain’s fundamental properties fuelling the interest in this new technology.
However, there is a general sentiment that blockchain has failed to live up to its hype due to the scalability problem. This explains the slow adoption of blockchain technology, even in industries such as the financial sector, where it’s well suited for use.
The scalability problem is evident in Ethereum blockchain, which currently only processes less than 20 transactions per second. This leads to high gas prices and hence the cost of executing a transaction, as well as latency problems. Fortunately, sharding and its various iterations have proven to be a viable solution to the persistent scalability problem inhibiting blockchain adoption.
What is Sharding?
Sharding can simply be described as database partitioning. The concept isn’t unique to blockchain. In fact, It has been in use since the late 90s as a way of splitting large databases into smaller and manageable datasets. A good example of sharding is in a business where customers’ databases are grouped into geographical locations or age groups for efficient data management.
Similarly, this concept is extended in blockchain. Essentially, the blockchain network is a large database with numerous nodes/validators that verify data stored in the network. Through sharding, the blockchain network is broken into smaller chunks, commonly known as shards. A set of nodes is then tasked with verifying data on an individual shard instead of verifying every data on the entire network. This way, the computational and storage workload is spread out across nodes, leading to increased throughput of transactions and lower latency. This helps to overcome the scalability problem. As such, the ledger entries are public, only that they are not processed and stored by every node.
Types of Sharding
There are several iterations of blockchain sharding, which are often classified in terms of the level of functionality. Below is a review of each type of sharding:
I) Network Sharding
Network sharding is the most common type of sharding. It involves dividing the entire blockchain network into several subnetworks, with each consisting of one shard. All shards within the network process transactions in parallel, consequently increasing the performance of the entire network.
However, this type of sharding poses a risk of one node gaining control over a majority of shards, which can lead to attacks or manipulation of the network. A possible solution for this problem would be to use a randomness mechanism to help assign nodes to a particular shard. Merkle tree root of transactions, in this case, can be used to facilitate public randomness to keep a node securely on one shard.
II) Transaction Sharding
Transaction sharding is an improvement of network sharding, whereby besides splitting the network into subnetworks, it goes further to divide transactions into groups which are later routed to different shards for authentication.
III) State Sharding
On state sharding, the entire ledger information is divided and stored in different shards. This is similar to dividing the state of blockchain into multiple states where each can process transactions independently and interact with others.
Risks of Blockchain Sharding
Sharding sounds great in theory, but its implementation is not as straightforward. There are several concerns that arise.
First, sharding can only be implemented on the Proof of Stake algorithm since it has active validators which can be randomly assigned to different shards. Proof of Work (PoW), on the other hand, relies on hash power to validate a block. Therefore, it’d be expensive in terms of hardware and electric power to alter any block.
If sharding was to be done on the PoW algorithm, it would be feasible for a bad actor to accumulate enough hash power in a particular shard to manipulate the network. This is because by splitting the network – sharding – the hash power is also divided in the process. Therefore, it’ll be easier for bad actors to collude their hash power on a single shard and take control of that particular shard.
Even when using sharding on Proof-of-Stake algorithms, there still exist challenges. One of these is maintaining inter-shard communication. Often, when nodes are assigned to a specific shard, all the associates of that particular node view the shard as an independent blockchain system, yet it’s just a segment of the larger network. In such a case, establishing inter-shard communication has proven to be difficult, requiring special efforts to develop communication systems. Even with the few inter-shard communication systems, most of which are yet to be rolled out into the market, they all have to sacrifice one of the key properties of blockchain – decentralization, and security – to achieve efficient communication.
Also, as stated earlier, there are different forms of sharding, with each approach featuring its own pros and cons. This has led to a conundrum among industry players in terms of deciding which approach to take.
The Future of Sharding
Sharding has its own share of challenges slowing down its effective implementation, but it still presents an opportunity for solving the wider scalability problem facing blockchain technology. As Ethereum co-founder Vitalik Buterin once said, it’s impossible to maintain the two fundamental properties of blockchain – security and decentralization – when trying to solve scalability using sharding. His sentiments can be extrapolated to mean that, for now, the blockchain space has to rely on sharding for the maturation of the technology, and maybe with time, new approaches will be designed such that they don’t compromise on blockchain’s fundamental properties.
In fact, social media giant Facebook under its Libra coin project recently acquired Chainspace – a blockchain start-up focused on sharding. Probably this suggests that Facebook’s Libra coin project may be considering using blockchain sharding to increase the coin’s throughput. It’s further predicted that with Facebook’s interest in blockchain sharding, new complementary technologies will be designed to solve some problems such as cross-sharding communication, to deliver the necessary scalability.
Scalability is one of the roadblocks hindering blockchain’s mainstream adoption. With the borrowed concept of sharding, technology has a better chance of finally replacing the traditional data infrastructures. However, the blockchain sharding still struggles with a few bottlenecks that need to be ironed before this happens. With big data companies such as Facebook showing interest in the technology, we can anticipate that the solutions to challenges facing it will materialize soon.