All the technologies sooner or later achieve a point where it’s very difficult to improve in a linear way, and must think in parallel solutions to continue growing it’s performance.
We’ve seen in the last 20 years how CPU manufacturers like Intel or AMD, increased the number of physical and logical computing threads to do more things in less time. The capacity of one single core and one single thread has been reached and they begin the race to scale things. AMD is launching this year CPUs with more than 64 cores and 128 threads, with proper parallelization software it can compute really fast.
BLOCKCHAIN PIT STOP
In 2017 the blockchain community arrives to a conclusion: “we need to scale this technology in the years coming, we can’t go further with current approach”. In this context a lot of smart people begin to write new theories about how to scale blockchain. The major consensus was, that we need some kind of parallelization of the process.
Since then Blockchain industry lives with 3 groups of projects:
Old Blockchain projects without intention to change
Old Blockchain projects trying to upgrade it’s technology to scale
New Blockchain projects created from scratch to scale
Some old and new projects has chosen Sharding theory as it’s approach to scale.
WHAT’S SHARDING IN THE BLOCKCHAIN?
The main concept is to make groups of nodes (Shards), and every group will process a pool of transactions. After that they will synchronize between them to keep a unified ledger.
Of course Sharding can be simplified as we see in some projects, for example determining a fixed number of shards.
The main goal of Blockchain when it begins was creating a trully decentralized computing network that was able to store and process data.
Few Projects had the courage to think and create a trully scalable sharding solution, without limits in the number of shards, to allow blockchain really scale.
Network Sharding: The ledger is full stored in all nodes, and what we improve here is the communication, creating shards to allow faster messages between nodes.
Transaction Sharding: The ledger is full stored in all nodes, and what we map in shards is the addresses structure to make faster transactions in the same shard.
State Sharding: This is the most challenge one. Every shard only stores a portion of the state. It allows transactions between shards and need fast communication between shards. To increase security, nodes will be moved between shards in a random way.
We can see projects that focus on a kind of sharding. Some of them are too much centralized and create supernodes to parallel computing, but they lost decentralization goal.
ELROND NETWORK SHARDING
Elrond started from scratch in 2018 and they worked in a unique solution that combines the 3 kinds of Sharding: network, transaction and state. They called this technology Adaptative State Sharding.
You need brilliant people in your team, a lot of commitment and patience to create such ambitious solution.
The result is a protocol that achieves this main goals:
Scalability without affecting availability: if the protocol dinamically increase or decrease the number of nodes, the network itself doesn’t have down times.
Fast dispatching and instant traceability: creating a deterministic calculation of the destination shard for computing a transaction they eliminate a lot of communication time.
Efficiency and adaptability: the shard are balanced at any given time
In it’s near mainnet will have 2 shards + meta shard and allow 11000 TPS. This approach allows Elrond the add 5400 TPS for every new shard added to the network. So it is not difficult to see Elrond scale to very high throughput capacity.
If you want to take a deeper look in Elrond Adaptative State Sharding we recommend that you read the Elrond Sharding Doc Section. There’s a very interesting visual workflow to understand better how it works.