Sharding is a concept that can be applied to but is not exclusive to blockchain. It is the partitioning of a database into smaller, more manageable parts referred to as data shards.
Sharding is a solution to the scaling problem faced by big and busy databases. The more transactions there are on a certain database, the longer the system’s response times become, and the greater the cost of maintaining the network. Sharding allows big databases to be split and spread across multiple servers, thereby distributing the transaction load across multiple smaller databases, each requiring less computing power.
Database overloads, which result in transaction backlogs and spikes in transaction fees, are a problem that continuously plagues the blockchain and cryptocurrency world, particularly Ethereum and Bitcoin, the biggest and busiest blockchains.
Blockchain networks consist of a network of nodes connected to each other in a peer to peer manner. On a basic blockchain, each node stores the entire network’s transaction history, the record of which must match across all participating nodes to achieve “consensus”. This ensures a high level of security that is characteristic of distributed ledger technologies. But, as the network grows and the number of users and transactions increase, the more information each node has to store, and the longer it takes to reach consensus between all nodes.
Sharding is considered a potential solution to these scaling problems. Sharding allows a blockchain to be grouped into sub-nodes (shards), which only process the transactions pertaining to that particular shard. This way, the overall network is able to process multiple transactions simultaneously, since not all nodes are involved in all transactions.