At a high level, sharding, as it pertains to blockchain-based protocols, refers to dividing (or partitioning) the current state of a network into sections (or shards) so that nodes which operate on that network are responsible only for processing transactions for a certain shard, as opposed to processing transactions for the entire network. Sharding is meant as a potential scaling solution for blockchain-based protocols such as Ethereum.
The Scaling Problem
In order to fully understand sharding as a scaling solution, the scaling problem which it aims to solve must first be understood. Using the Ethereum blockchain as an example, the scaling issue that it currently faces arises because of the manner in which the way transactions are processed.
There exist nodes on the Ethereum network which have the function of processing transactions, as well as coming to consensus on the validity of those transactions. Scaling such a network is problematic because every node is required to process all the transaction that take place. Currently, there 14,721 nodes on the Ethereum network, all of which must agree on the state of the network. Therefore, the more nodes that operate on the network, the longer it will take for consensus to be reached.
This issue largely arises because nodes process transactions in a linear manner, which contributes to the time it takes for consensus to be reached. To illustrate, consider that there are 3 nodes on a network which are all responsible for processing 1 transaction. All three nodes must process the transaction in a sequential manner, that is, node A must process the transaction, then node B and finally node C; the transaction must be processed one node at a time. Therefore, when an additional node is launched on the network, it further compounds the time taken for transactions to be confirmed.
However, it must be pointed out that additional nodes on a network provide an increased level of security, as well as increased decentralization. Thus, the observation that fewer nodes may be the solution is not necessarily the best option.
This results in a trade-off that must be made between security, scalability and decentralization.
The Trilemma: Security, Scalability & Decentralization
A blockchain can only have 2 out of the 3 following properties: security, scalability and decentralization. When a blockchain attempts to optimize for 2 of the properties, it will undoubtedly be left wanting in the remaining 1.
It can be argued that the Ethereum blockchain is currently optimized for security and decentralization. It has just under twice the number of nodes operating on its network than Bitcoin (9496), which would indicate that it is more decentralized. Furthermore, it is also secure because its large node count makes sybil attacks difficult, and its high hash rate makes 51% attacks expensive. However, the remaining property it fails in is scalability.
Therefore, it becomes important to understand the trade-offs being made when a protocol, such as Ethereum, attempts to implement a scaling solution. However, with that being said, where then does sharding fit in as a scaling solution?
Scaling Solution: Sharding
As mentioned previously, sharding refers to partitioning the current state of a network into shards, and then assigning nodes to each shard to process any relevant information.
The advantage of this architecture is that nodes are no longer required to process every transaction that occurs on the network, but instead, are only required process a section of them. This permits for parallel processing because nodes no longer have to validate transactions in a sequential manner, which in turn allows for a higher transaction throughput.
However, the immediate trade-off for implementing such a scaling solution is decentralization, and potentially, security. If a single node is assigned to process a set of transactions, without other nodes needing to validate them, the level of security required for that node becomes a higher priority.
To conclude, sharding is a scaling solution that is currently being explored in blockchain projects such as Ethereum. Scaling blockchain-based protocols is currently a challenge because of the requirement that each node must process transactions in a linear fashion.
However, sharding stands to solve this issue by requiring nodes only process a subset of those transactions.
Picture from Public Domain Pictures.
Never miss a thing and suscribe to our newsletter.
My name is Bisola Asolo and I am a cryptocurrency enthusiast! I love reading, listening and writing about anything and everything related to cryptocurrency and blockchain technology.