Sharding is a concept in database design, and as implied by its name, sharding involves creating smaller parts from a larger one. In the context of databases, sharding results in the creation of smaller partitions in the ledger. These partitions are thus referred to as shards.
It is important to note that in sharding, the partitioning is done horizontally as opposed to vertically. A shard may contain data that is in all the other shards; however, these partitions are designed to include data that is accessible only through it, which means that the data in each shard is unique to it. To access the data and use it, one must queue the specific shard that contains said data.
Sharding is employed in database architecture because it can improve the performance of a database or search engine. The design tool does this because it reduces the index size of a ledger. As a result, the ledger can provide search results quicker. Additionally, because different shards can be stored on different servers, the tool can be beneficial for large corporations with large data sets that they need to store separately such as multinational corporations operating in different countries.
Sharding in Distributed Ledgers
Sharding has grown in popularity within the cryptocurrency community as a result of widespread concerns over blockchain scalability issues. For instance, the Bitcoin Network processes about seven transactions per second, and Ethereum is only slightly faster, handling around 15 operations per second. These are both paltry compared to large payment processors like Visa and Mastercard.
While the bitcoin community has dealt with its scaling issues in various ways, the Ethereum project has outlined a more streamlined approach to solving its scalability concerns. Ethereum’s approach involves switching to a Proof of Stake (PoS) algorithm, which will work in tandem with a sharded database design.
How Would Sharding Work on Ethereum?
During his keynote speech at an event held at the School of Business of the Singapore University of Social Sciences, Ethereum’s cocreator Vitalik Buterin attempted to explain the concept of sharding the Ethereum ledger in a straightforward manner. In his talk entitled “The Road Ahead,” he stated:
“Imagine that Ethereum has been split into thousands of islands. Each island can do its own thing. Each of the islands has its own unique features and everyone belonging on that island, i.e., the accounts, can interact with each other and they can freely indulge in all its features. If they want to contact with other islands, they will have to use some sort of protocol.”
Currently, on the Ethereum network, as well as other blockchains, each node stores the global state. The globals state refers to the account balances, contract code and storage and all additional relevant information. Additionally, all nodes process all transactions. While this provides for a very secure ledger, it dramatically limits to what extent the network can scale because, within this design, a blockchain is only as good as a single node on its network.
In other words, the speed of a blockchain is defined by how quick a single node is as all nodes must perform the same transaction over and over.