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):
- Network Sharding represents the process of grouping the nodes into shards.
- 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.
- 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.