About the Sharding category

#1

Discuss about Adaptive State Sharding here:

Sharding is a scaling technique inspired by traditional concepts of database optimization. Also known as horizontal partitioning, sharding divides the data into several pieces placed on different environments to be processed.

In a blockchain context, breaking the network into shards would result in more transactions being processed, verified and validated simultaneously. Each sharding level introduces a certain degree of parallelism, as a result, it becomes possible to process more transactions as the network grows. Implementing any sharding type on a blockchain architecture is extremely difficult.

We can identify 3 sharding types (levels):

  1. Network Sharding represents the process of grouping the nodes into shards.
  2. Transaction Sharding takes the complexity to the next level and deals with the distribution of transactions across different shards, but all the nodes keep the entire blockchain into their state.
  3. State sharding represents the most sophisticated part and is described as a mechanism that allows different shards to deal only with a portion of the state without replicating the data between nodes from different shards. A state sharded blockchain can be seen as a network of fully interconnected blockchains.

In order to match the current scalability needs, Elrond introduces a novel state sharding scheme, called Adaptive State Sharding, with a dynamic model that allows the network to adapt to population and demand changes without compromising security, availability and decentralization.