Ethereum sharding: A beginner’s guide to blockchain sharding
Blockchain technology has evolved dramatically since its inception in 2009. Back then, Satoshi Nakamoto introduced Bitcoin (BTC) as a way to provide a decentralized alternative to centralized financial systems. The goal was to provide a solution that was also secure and transparent.
Bitcoin achieved this through distributed ledger technology (DLT) and blockchain technology, allowing the network to reach a consensus without the need for a central authority. However, this also meant that as more users and transactions were added to the network, it became slower and less scalable.
The Ethereum network has addressed Bitcoin’s primary issue of scalability through the implementation of a series of development updates. Arguably one of the biggest updates on the network has been its shift to a proof-of-stake (PoS) from proof-of-work (PoW) consensus mechanism similar to Bitcoin’s.
This upgrade, dubbed the Merge, successfully integrated Ethereum’s original execution layer and its new PoS consensus layer- thereby transitioning from PoW to PoS. The Merge has brought down Ethereum’s energy consumption by 99.95%, addressing one of the longest-standing issues with PoW-based blockchain systems.
But, Ethereum’s scalability efforts don’t stop there. The network is currently undergoing development updates to introduce sharding, a process that will further increase its transaction throughput and scalability. But what exactly is sharding in the context of blockchain technology and Ethereum, in particular?
What is database sharding?
Sharding is a concept that originates from database management systems back in the 1980s. In fact, SHARD used to be an abbreviation of an ‘80s database product, System for Highly Available Replicated Data.
Coincidentally, shard also means “a small part of something larger.” And that’s exactly what sharding in blockchain technology aims to do– break up a blockchain network into smaller, manageable pieces called shards. Each shard holds its own unique subset of transactional data and processes transactions simultaneously on the network.
This breaking up a blockchain network into multiple shards allows for parallel transaction processing, improved latency and increased scalability. The computational burden on the network is reduced and more transactions can be processed in a given period of time.
In Ethereum’s case, sharding will also help address one of its biggest pain points– the high gas fees on the network. Gas refers to the fee required for a transaction to be processed on the Ethereum network. Sharding would result in less competition for resources on the network, thereby reducing the overall gas fees.
Currently, Ethereum is able to process around 13 transactions per second (TPS). With sharding, the vision is that Ethereum’s throughput can reach up to 100,00 TPS. The actual figure may vary until sharding has been fully implemented on the network, but it's still a marked improvement from its current throughput.
How does sharding work?
Requisite to an understanding of sharding is a knowledge of how nodes work on a blockchain network. Nodes refer to the computers on a blockchain network that store and propagate transactional data, essentially keeping the network running.
On Ethereum’s current PoW consensus mechanism, all nodes process every single transaction on the network. This can lead to issues with scalability as more and more transactions are added to the network.
With sharding, nodes on the network are divided into groups called shard chains. Each shard chain is responsible for processing a subset of transactions on the network. These shard chains communicate with each other to reach a consensus and validate blocks of transactional data.
In the context of Ethereum, however, there will technically be shard “blobs” instead of shard chains, owing to the use of danksharding, a newer approach to sharding. Ethereum’s sharded system will consist of 64 linked databases, and transactions will be processed simultaneously and in parallel with every shard. Each shard will have a “committee” that has 128 validators. These committees will be in charge of proposing and validating each block every 12 seconds.
Why is blockchain sharding important?
Other than its benefits on a blockchain’s scalability, sharding also has important implications for decentralization. Sharding allows for a larger number of nodes to participate in the network and process transactions, thereby increasing the decentralization and distribution of power on the network. This can potentially increase security as well since there’s no single point of failure on a highly decentralized network.
But, sharding also introduces new challenges for decentralization. Since nodes on a sharded network are divided into smaller groups, there’s a higher chance of collusion and centralization within those groupings.
This is where Ethereum’s solution with danksharding comes in. It allows for more randomness and diversity among the committee members, thereby mitigating these potential centralization concerns.
Through the use of data availability sampling, danksharding will allow Ethereum to verify huge amounts of data by sampling from a small number of nodes and reducing the chances of data manipulation.
Overall, sharding is an important step for blockchain technology to achieve mainstream adoption and address scalability concerns. While it presents its own challenges, proper implementation can lead to improved performance and decentralization on a blockchain network.
What is sharding in Ethereum?
Sharding on Ethereum will work alongside layer-2 rollups, or smart contracts, on the mainnet that process and store transaction data off-chain. In this way, sharding will handle the processing of transactions while rollups handle the storage of state data, creating a more efficient system for Ethereum to scale both on-chain and off-chain.
Although there is no set timeline for when sharding will be fully implemented on Ethereum, initial talks of sharding shipping in 2023 have been discussed in the Ethereum community and published on the Ethereum site.
According to the Ethereum team, sharding plans have yet to be finalized and they are still sourcing out ways to make sharding as efficient as possible. As mentioned earlier, danksharding is one of the frontrunners at the moment.
What seems to be the consensus, though, is that early shard chains will initially be allocated to providing the network with extra data and not handle smart contracts and transactions just yet. This, in combination with rollups, is expected to provide a significant boost in scalability.
More particularly, rollups will allow decentralized applications (DApps) to bundle transactions into one, store them off-chain and generate cryptographic proof for submission to the blockchain. When used in combination with shards providing extra data availability, both techniques may very well make 100,000 TPS a reality.
The eventual goal, of course, is to make Ethereum’s shards highly functional. As such, they might be able to store and execute code, as well as handle transactions in the future. This would mean that each shard would have to contain a unique set of account balances and smart contracts, thereby necessitating cross-shard communication to facilitate transactions between the shards.
As discussed, however, nothing is set in stone yet, and these extra functionalities are still being debated and researched within the Ethereum community. Regardless, the first option is to do away with the idea of state execution altogether — shards won’t handle smart contracts and will simply function as data storage depots.
The second option is to come to a bit of a compromise and have some shards be “smarter.” This means adding functionality to a few execution shards and leaving the rest to function as normal. Another option is to table the discussion on shard functionality altogether and wait for zero-knowledge snarks to be implemented.
Zero knowledge-SNARKs are a type of cryptographic proof that ascertains the existence of transactions without having to reveal any data about them. This may potentially solve the issue of cross-shard communication, as zk-SNARKs may allow for verification of transfers between shards without having to expose any sensitive data.
Overall, sharding presents a lot of potential for Ethereum and the entire blockchain industry, but it also comes with its own set of challenges that need to be addressed before full implementation.
However, with proper execution, sharding can lead to improved performance and decentralization on the Ethereum network. Some of the network-specific features of sharding on Ethereum:
Decentralized node operation
Everyone can run a node on a sharded Ethereum. Instead of scaling by increasing the existing database’s size (which can lead to centralization), sharding allows Ethereum to scale while keeping things decentralized.
On a scaled network with an increasingly larger database, network validators would need to keep up with the network’s technical requirements. These include expensive computers, large electricity bills, cooling systems and maintenance costs.
Under such a system, centralization may unwittingly creep in by virtue of excessively high barriers to entry. Sharding, on the other hand, would not require validators to store all of a network’s state data on their computers. Data techniques can instead be employed (such as zero-knowledge Rollups) to confirm whether or not the data has been made available on the network.
One of the long-term benefits of sharding on Ethereum is increased participation. Because the network will be able to scale manageably and securely, the goal is to reach a point where people can eventually run Ethereum on a laptop or mobile phone.
Ideally, running clients (software needed to interact with the Ethereum network and view its data) will become much more accessible, attracting a larger global community of users. This circles back to security and decentralization since a more decentralized network significantly reduces the possibility of an attack or failure.
Enhanced performance and efficiency
Sharding will increase the speed and throughput of Ethereum since transaction processing will no longer be limited to a single chain. It’s estimated that sharding could potentially lead to an increased number of transactions per second on the network by
magnitudes, bringing it closer to rivaling payment systems like Visa or PayPal, which are able to process thousands of transactions per second.
Is sharding secure?
Of course, one of the biggest issues when dealing with network upgrades is security. Sharding splits Ethereum into smaller networks, which might concern some. One potential issue is the possibility of cross-shard attacks, where a malicious actor could potentially target multiple shards and harm the overall network.
However, Ethereum’s protocol has been designed with measures in place to address such concerns, including random sampling for validators as well as prevention measures against invalid state transitions and transaction-ordering dependence.
The Ethereum Foundation and the wider community are also continuously researching and developing solutions to potential challenges in sharding, with the ultimate goal of creating a secure, scalable and decentralized network for everyone.
If successfully implemented, sharding technology on Ethereum will be able to transform businesses and industries by facilitating mass adoption and unlocking new use cases for blockchain technology. Driving efficiency and creating new opportunities through shared value networks, global supply chains and decentralized finance are just a few of the possibilities.