Sharding, Explained


To explain sharding, let’s use the Ethereum blockchain as an example.

The Ethereum blockchain is made up of thousands of computers, aka nodes — currently 8,622, according to — each lending a certain amount of hash power to the network. It is this hash power that allows the Ethereum Virtual Machine (EVM) to function — i.e., to execute smart contracts and run decentralized applications (DApps).

At the moment, Ethereum works on a sequential execution basis in which every single one of these nodes has to calculate every single operation and process every single transaction. A transaction passing through this verification process can, therefore, take a long time. Currently, Ethereum is hovering at around 10 transactions per second (TPS) — Visa, for comparison, does 24,000 TPS on average. Adding computers to the network will not necessarily improve efficiency, as the whole ledger is kept on every single computer and the chain of verification will just become longer.

With sharding, the idea is to move from a linear execution model, in which every node has to compute every operation, to a parallel execution model, in which nodes are assigned to process only certain computations. This will allow for multiple, parallel transaction processing at the same time.

The blockchain will be divided into separate shards (subdomains, or “buckets”). Nodes will only have to run the part of the ledger that they are assigned in order to execute processes and validate transactions, instead of maintaining the whole ledger all of the time.

This post was originally published on