Sharding introduction; a way to improve scalability

Prior to the advent of Sharding , it was thought that the three attributes of “decentralization“, “scalability” and “security” could never be combined in a blockchain project, and that one should always be sacrificed to others. Together, these three features create a concept called scalability triple, first proposed by Vitalik Butrin; This concept says that if a project wants to be highly scalable, it must decentralize and then sacrifice security, and if a project intends to adhere to the decentralization feature, it must go beyond scalability.
Sharding is one of the potential scalability solutions in the blockchain that divides the computational load and data storage into smaller parts to increase network speed and capacity. This solution has the potential to overcome the “scalability triple” challenge, despite the significant challenges involved in its implementation.
With the birth of Sharding, it seems that the way was opened for the developers of the blockchian to increase the scalability of their projects while maintaining security and decentralization. In this article, compiled with the help of an article from Block Research site, we will examine the history and concept of Sharding and look at the applications of this innovation in blockchain projects.
What is Sharding?
Simply put, sharding means dividing a large process into smaller processes. Suppose you want to complete a jigsaw puzzle of 1,000 pieces. Instead of putting all the 1,000 pieces on the table and starting to pick them up, you can separate them by the color of the pieces and then finish the job. This categorization makes it easier and faster to examine the pieces that are for a particular section.
Sharding is a solution that divides the processing load into smaller parts, thereby increasing the capacity and speed of the network. Sharding is presented as a solution that theoretically can overcome the scalability challenges of the blockchain at the lowest cost.
The word “shard” means piece or piece, and sharding is literally called the cutting of a thing. To better understand the concept of sharding, we will first look at its history and then examine its role in blockchain technology.
History
Sharding is not a new concept and has been used in centralized database management since the late 1990s. The term became popular when the developers of one of the first online and multiplayer role-playing games, Ultima Online, decided to distribute players on different servers to manage incoming traffic.
A common example of shading a large database in the business world is segmenting customer databases by geographic area. Customers in the same geographic locations are grouped together and placed on unique servers.
Sharding in cryptocurrencies
Given the definition of sharding and the relationship between this definition and the scalability problems of the blockchain, you have probably realized how useful this technique can be in the world of blockchain and digital currencies. In general, in the field of blockchain, sharding means dividing a data set into several parts and storing it in several databases.
Blockchain networks are actually databases in which each node or node acts as a separate server in the network. If we run sharding in a blockchain, we are actually splitting the network into smaller components called “shards”. Each account will maintain a unique set of smart contracts and account balances. In general, in the field of blockchain, sharding means dividing a data set into several parts and storing it in several databases.
Nodes are placed in separate shards to approve specific transactions and operations. In other words, nodes in Sharing will no longer be responsible for validating all network transactions. For a better explanation of sharding, we can use the example of Ethereum blockchain.
The Ethereum blockchain is made up of thousands of computers called nodes. Each of the nodes provides a certain amount of hash power to the network so that the Ethereum Virtual Machine (EVM) can perform its tasks such as executing smart contracts and decentralized applications.
Ethereum currently operates on a sequential or linear basis in which each node must process all operations and transactions. This is why it takes so long for transactions to go through this process. Ethereum can currently process about 13 transactions per second; but for instance, the visa payment system is capable of processing 24,000 transactions per second.
Sharding actually changes the linear execution model in which each node processes all activities to a parallel execution model in which each node is only responsible for processing a certain number of transactions. In this case, the processing of transactions will proceed in parallel and in multiple lines.
A fold block is divided into different shards (subdomains or buckets). Nodes also need to run only the part of the general ledger assigned to them to verify transactions, and there is no need to maintain and update the entire transaction. This is why sharding is also called Horizontal Partitioning, which is an alternative to Vertical Partitioning.
In horizontal partitioning, different users’ data is stored at different speeds. In vertical partitioning, however, each user profile will be stored on a separate screen. For example, the account balance will be on one shred and the wallet address on another shard.
In blockchain technology, horizontal segmentation has more advantages; since scalability can be implemented more efficiently. In horizontally segmented networks, when a larger number of users or nodes enter the network, it is easy to create a new shard to store their information; This means that as the number of users increases, so does the number of Shards, and there will be no problem with scalability.
Nevertheless, in vertical segmentation, because the number of shards is determined and fixed based on the grouping of information, we still face the problem of scalability. In this way, some shards, such as the shard that is intended to store users’ wallet addresses, will eventually face the same scalability problem that ordinary blockchains face as the number of users increases.
A blockchain that fully implements shading can achieve the following capabilities:
- The capacity to perform transactions increases by executing more transactions in multiple streams that operate in parallel.
- Since new nodes do not need to store the entire transaction history, barriers to entry of new nodes in the form of shredded databases are reduced and, as a result, the scope of decentralization expands;
- Security in shredded blockchains is higher than in multi-chain ecosystems; Because in encrypted systems, transactions have to be verified across the network. In multi-chain ecosystems, however, single-chain transactions are only validated in the same chain.
However, sharding is not without its problems and has its own challenges. Here are some of the challenges and limitations of sharing.
Sharing Limitations
Sharding, like other solutions, has its own limitations. In protocols such as Zilika that use network shading, the scalability triad is not completely resolved; Because Zilika nodes still have to store the status of the entire China blockchain network.
On the other hand, a clear picture of protocols such as Nier that use the status shading method is not available. The Nightshade algorithm, which manages the status of the Nier, is currently less than two years old; Therefore, it is too early to talk about male vulnerabilities.
The most important issue is that scrambled protocols need to increase the number of nodes for scalability, which means that their success depends on increasing acceptance. Many consider this one of the features of Sharding; That is, in their view, increasing the acceptance of a protocol will increase the number of nodes. This is despite the fact that such an assumption is incorrect; because the number of nodes is independent of the number of users or transactions.
If after a period, the number of nodes in a blockchain decreases significantly with the aim of reducing the number of shreds, this will reduce the network’s operational capacity to perform transactions. In such a situation, if the number of users who make a transaction during this period suddenly increases, the fees will increase or the waiting time will be long, which is undesirable for the users.
Fortunately, this has not happened so far, but this suggests that the consequences of such a scenario cannot be accurately predicted. However, it is important to understand the possible occurrence of this scenario and to create appropriate incentives for the nodes to prevent it.
Is there an alternative to sharding ?
One of the solutions that is sometimes suggested to increase scalability is to increase the size of blocks. With the idea that the larger the blocks, the more transactions will take place in them, and accordingly, the number of transactions that can be done per second will increase. Although this solution can be implemented, it should be borne in mind that larger blocks mean the need for more computational power to validate them.
If block size were to increase indefinitely, only highly specialized equipment and hardware could handle transaction processing as nodes, and the number of network nodes could be significantly reduced. The cost of providing this equipment means that the nodes are concentrated and the risk of attack increases by 51%. In addition, increasing the block size requires a Hardfork, which carries the risk of creating a dichotomy in the project community. If not everyone in the blockchain upgrades to the new version, two separate chains with separate coins will be created; therefore, increasing the block size is only a temporary solution.
In Conclusion
Sharing has serious challenges ranging from cross-chain communications to ensuring the validity and accessibility of processed data. These issues have not yet been satisfactorily resolved, and even if they are, they have not yet been seriously tested. Only time will tell whether the promise of scalability of fold blocks will be fulfilled through sharding. However, even if it turns out that sharding is not a successful solution, second-tier solutions such as roll-ups can greatly improve the scalability of blockchains.
To increase the acceptance of Blockchain technology in society and to use them in everyday processes, one must think about the issue of scalability. All of these solutions and innovations are presented with the aim of increasing scalability. It is hoped that one day, based on these strategies, blockchains will compete with or replace today’s large financial institutions in terms of transaction capacity and operational capacity.

Comments
Post a Comment