Gm everyone ππΌ
From the time since its inception, scalability has been a big concern for Blockchain networks.
As blockchains become mainstream, its essential for networks to be scalable with high throughput for explosive growth.
Low gas fees + Ultra high TPS = Growth π
Initially, vertical scaling was the dominant solution. Simply explained, add more power to all the nodes so they can compute hash and validate transactions faster.
But there is a maxima to the technological advancement of nodes. This limits the total network throughput.
Since, data from whole blockchain resides on each node of the network, this causes significant latency.
To counter this technical limitation, blockchain networks started looking into horizontal scaling solutions.
Here comes the legendary Sharding approach ππ½
Sharding is originally a database partitioning methodology. Explaining through an example:
Suppose you have a Database with extremely huge number of rows of records. Sharding this database can be done by separating rows of a table into multiple different tables, known as partitions.
Each partition has the same schema and columns, but also entirely different rows with unique data.
For blockchain networks, it basically distributes data present on-chain into all the available nodes.
New block can be added by processing on a node while remaining nodes continue processing other transactions. This ensures scalability of network which is an important pillar of Blockchain Trilemma.
Also, randomly shuffling the data between nodes & shards prevents major ~Shard Overtake Attacks~ too. Ultimately, security & speed is the key to bring next billion people on chain π
Technical know-how of how shards are defined and used is dependent on Blockchain networks. Broadly, two types of sharding exists for chains: Homogeneous and Heterogeneous
Homogeneous shards use same runtime and same validation logic across all the shards. This allows them to implement dynamic resharding. A great example is NEAR Protocol.
Heterogeneous sharding on the other hand allows blockchains to feasibly create a shard that fits into specific application requirements. Each blockchain can be configured completely anew. This is more suited for chains like Polkadot and Cosmos.
I hope this article has trained your mental neurons so well that next time you see somebody saying sharding, you can absolutely debate without hesitating.
Hey Ashutosh, what if they shouting zkRollups? Or Tokenomics? Or NFTs & DAOs? Well in that case, you can subscribe to this blog and Iβll make sure you donβt miss out on your regular dose of Crypto Literacy.
I am quite active on Twitter. If you wanna discuss something, you can always DM me @pythontony.
In the next article, we will understand how zero-knowledge Proofs work. Till then, goodbye and keep exploring β€οΈ
