Skip to main content

Dynamic State Sharding

There are two types of State Sharding - Static State Sharding & Dynamic State Sharding.

Static ShardingDynamic Sharding
Shards pre-existShards are formed as needed
Shards address space is pre-determined Shards address space is variable
Asynchronous processing of multi-shard transaction Synchronous processing of multi-shard transactions
No composability for cross shard transactionsAtomic composability for all transactions

The most general approach to sharding is to divide the address space of accounts into multiple fixed-size regions called shards. Nodes in the network are assigned to different shards.

In a dynamic state sharding system like Shardeum, shards can adapt to changes in network conditions. It involves splitting or merging shards, adding or removing nodes from shards, or reassigning nodes to different shards. Reorganization can help maintain an optimal balance between the system's load and resources, ensuring the network operates efficiently and securely. Shard reorganization happens through various algorithms that respond to changes in real time.

In Shardeum, each validator covers a unique range of addresses and only needs to execute transactions assigned to it and store respective state changes. Although each validator covers a unique range of addresses, some validators cover the same addresses in the sense of overlap, thus adding redundancy. Ensuring every address in Shardeum has the required redundancy of at least 128 validators.

Compared to Static State Sharding, Dynamic State Sharding allows the number of shards and their composition to change dynamically based on network conditions. This adaptability enables Dynamic State Sharding to optimize the system's performance and resource allocation with increased efficiency.