The majority of existing blockchains now face one main issue called scalability. It is a situation when a system is not able to process all the requests efficiently. In the case of a blockchain, it is an inability to manage all transaction requests in a timely manner.
There are different solutions offered by different projects. But for now, the most efficient solution is sharding crypto.
What Is Sharding?
To understand better what sharding is, let us check an example. For example, you are a farmer and you want to sell melons in the market. But to be allowed to do so, your melons have to be rated by 100 specialists. You cannot start selling your product before it is rated by all specialists.
It would take a lot of time for the rating to be completed, would it? And now, imagine that you are not the only one, that there are 100 farmers more, and each of their products has to be rated by the same 100 specialists. It is called the scalability issue.
Now, imagine that the situation is basically the same but this time, specialists are divided into 50 groups, with 2 specialists in each group, and accordingly, the farmers are divided. Each group of farmers now shall be rated by 2 specialists only. It is how sharding solves the scalability issue.
So, in the blockchain, each shard is responsible for its set of data only. Therefore, instead of confirming a transaction by the entire blockchain, it is confirmed by a small part of it called a shard.
Every shard is responsible for its own data portion. This differs one shard from another one. These data sets are not assigned to shards in a random manner. Each shard is responsible for its specific piece of data. So, there are shards responsible for:
Storing the state of every transaction, for example, when you decide to swap Shiba to Ethereum.
- Storing the addresses.
- Storing the transaction history.
- Storing the digital asset type, and similar.
Therefore, each set of data is stored in or processed by its own shard.
While sharding is applied in many fields already, it is not a perfect solution for blockchain due to the latter complexity and decentralization.
Issues That Come with Sharding
Blockchain is a completely decentralized system. Therefore, there is a possibility of a one-shard takeover attack. For example, if several nodes are assigned to one shard, and one node is malicious, it might lead to significant problems.
That’s why in most cases, to prevent the one-shard attack, different nodes are assigned to different shards randomly. The potential attacker has no idea what nodes are going to be assigned to what shard and at what time. Therefore, planning and preparing a one-shard attack becomes impossible.
PoW blockchains require each node to have the entire blockchain, and the verification of transactions occurs only when the majority of nodes have come to a consensus. Such blockchain aren’t technically suitable for sharding.
Communication among shards
To work efficiently, the system needs to establish reliable communication ways among its components, in our case, these are shards. To enable communication between shards, most systems use a separate solution. It is still the matter of time to develop automated solutions that would work synchronously without failures to enable efficient cross-shard communication.
Sharding is a technology, or rather an approach that might solve the scalability problem. However, it comes with its issues, just like any solution that hasn’t been developed properly. With time though, we hope that the technology will be improving, and valid solutions to the existing issues will be offered.