Ethereum sharding plans explained
Vitalik Buterin's Ethereum's sharding proof of concept suggests that development is well underway.
Scaling has been a major problem for many cryptocurrencies, many of which are trying to solve it in different ways. The scaling problem refers to slow network speeds. At the moment, the Ethereum network can only perform about 15 transactions per second, depending on circumstances, which simply isn't enough for large-scale global use.
It aims to solve this in a few different ways though. One of the upcoming solutions, which has been long anticipated but only recently outlined in additional detail by Ethereum creator Vitalik Buterin in a newly published proof of concept, is called "sharding." With it, Ethereum is expected to be able to scale up to about 1,000 transactions per second, with more room to grow as hardware gets more powerful.
Sharding refers to splitting up a blockchain network into separate components (shards) to improve network speed and scalability. The idea is that it's quicker and easier to process a smaller component, and you can still run all necessary information across it.
It's fairly simple in theory, but can be complicated in practice.
How Ethereum sharding works
Ethereum sharding essentially aims to run multiple strands of the Ethereum blockchain simultaneously, kind of like how a single large cable might contain hundreds of smaller wires. The big cable is the Ethereum blockchain, and the smaller wires are shards.
The problem is making sure all of these are perfectly secure in their own right and can reconcile with each other to maintain the same unified distributed ledger that makes up the blockchain itself.
Ethereum solves this by tying together the shards with a three-part system that consists of collation and notarisation stages.
"Collation" is when transactions are brought back to the main blockchain to be recorded on the ledger, and where the next set of transactions is sent back out to the shards. There are three different elements involved:
- The beacon (not pictured): Sends transactions to proposers, who can create collations.
- Collation: The work done by proposers, and the sending of transactions to notaries.
- Notarisation: Checks collations and sends them on to the beacon.
Essentially, proposers collate and notaries notarise. Both of them function much like cryptocurrency miners on other networks.
Buterin described the beacon as the "heartbeat" of sharding. It might be an apt description, with the beacon keeping time and pumping transactions around the shards, just like a heart pumps blood through the body. In this case, the beacon's heart is intended to pump every two to eight seconds.
The essence of the beacon is a random number generator, which is used to pick proposers. It needs to be random for security reasons in order to prevent anyone from unduly manipulating the network.
Initially, the beacon will be on its own separate "beacon chain", but the eventual plan is to move it onto the main Ethereum blockchain.
The randomly chosen proposer can create a collation of transactions. This is similar to a bitcoin miner bundling transactions into a single block.
Once they've made a collation, they can propose it for approval. This is done by sending it off to a number of different notaries.
All notaries on the network will be notarising proposed collations. A collation gets approved once it's been successfully notarised by a random sample of at least four out of seven notaries. The eventual plan is to double up notarisation and proof-of-stake voting on the main Ethereum network to increase throughput even further.
Pros and cons
This system (most likely) works because it can securely process information off the main blockchain rather than having every single transaction clogging up the same blockchain and forming a queue. Each shard is connected to the main blockchain through a "cross link" which runs connections both from shards to the chain as well as from the chain to the shards.
When Buterin ran this model through a simulation, it included only 12 shards. The final version is expected to have 100 different shards, which is about the maximum limit with the current readily available hardware. This limit is the amount of information that can be effectively processed by each node.
There are also appropriate fail-safes built in. For example, if a proposer goes missing because their Internet dropped out, the system will give them about five seconds to make a collation before kicking it on to another proposer.
The main advantage is drastically improved throughput, but another key benefit of the final product is improved decentralisation. When notaries double as stakers on Ethereum Casper FFG, the staking amount can be drastically reduced. Currently, it's set to be about 1,000ETH, but Buterin estimates that it can be reduced to around 32ETH in later stages. This means a lot more people can operate nodes.
If everything works as intended, and if no additional security risks emerge as a result of this sharding plan, then there might be relatively few downsides except the need for both proposers and notaries to operate light Ethereum wallets and perhaps some yet-to-be-discovered downsides.
Disclosure: At the time of writing, the author holds ETH, IOTA, ICX, VEN, XLM, BTC and NANO.