Sharding is a solution that developers are working on to improve the scalability of Ethereum. According to researcher Justin Drake of the Ethereum Foundation, the arrival is scheduled for 2020.
The problems with Ethereum
Sharding is one of the possible solutions that will improve the scalability of Ethereum.
First of all, it is important to understand that scalability is not a term for a single problem. It refers to a collection of issues that need to be addressed to make Ethereum useful and applicable on a global scale.
In more detail, it aims to increase transaction throughput. Currently, Ethereum can process up to 20/30 transactions per second: not enough for global use of the entire system. By way of comparison, VISA processes 1700 transactions per second.
At present, the main limitation, as acknowledged by Buterin himself, is the fact that each transaction, whether it be a payment or the distribution of a new smart contract, is verified by every single node in the blockchain network.
This is a key feature for the operation of the blockchain, which is necessary to guarantee the concept of a distributed and trustless network. As a result, network throughput cannot be greater than what each individual node can sustain.
Buterin believes that it is necessary to move to a network where each computer checks on average some transactions, a small part of the total. This would sacrifice part of the overall security of the network but would reduce costs by a factor of 100.
What is sharding?
The concept of sharding is to divide the network into several sections, which can operate partly independently. Section A deals with a series of operations, while section B deals with another group of transactions.
This mechanism doubles the volume of transactions that can be executed, given that now the limit is determined by the processing capacity of the two nodes at the same time. By dividing the blockchain into different sections, it is possible to linearly increase the number of operations that can be handled. The implementation of the sharding solution works on the first layer of the network. It will, therefore, be necessary to perform a fork in order to update the network protocol and implement this scalability solution.
The purpose of sharding is to fragment data and partition the network. The division of the Ethereum blockchain would allow each node to store only a part of the complete network, and the nodes would be able to validate the network through the underlying mathematics and mutual communication.
The development of sharding has been divided into two major phases, the first phase being the data layer. Phase 1 should be completed by 2020 and phase 2 by 2021. Integrating the Sharding & Casper pair will allow having a complete solution, which is more secure and solves the problems related to scalability.