In the world of digital currency, there are a lot of unique terms that outsiders or new investors might not understand. Sharding is one of those terms. Sharding refers to a type of database partitioning. It is also called horizontal partitioning.
It works by breaking up a large database into smaller segments that are easier to manage. The goal is to improve performance and reduce the response time for queries.
Sharding is not a new idea. It has been around in other databases since the 1990s. The name got popular through its use in large multi-player online role playing games such as Ultima Online. In these databases, the developers split up the players across different servers. Those servers are called different worlds within the game's sphere. The separation helps with traffic.
In business, sharding a large database takes place over geographic locations. In blockchain, the process works in much the same way. Each shard of a blockchain database would hold a unique set of contracts and account balances. Nodes are set up for individual shards in order to verify the transactions. This frees up the node from having to verify transactions across the entire database.
Sharding makes it easier to scale up a database when traffic increases. Ethereum is one of the largest bitcoins that would benefit from this. It uses a sequential execution in its nodes, but the workload would decrease with sharding. Instead of a linear model, it would move to a parallel model of executing transactions. Multiple transactions could process at the same time.
When a blockchain is broken down into segments, it is easier for hackers to take control over a shard. This single-shard takeover is also called a 1% attack. After it is hacked, the attackers can submit invalid transactions to the whole network. It is also possible to lose a whole segment in a 1% attack. A way for bitcoin managers to get around this security risk is through randomized sampling of transactions. The shared notaries randomly examine sections in order to verify the authentication of some transactions that were processed by the node.