One of the most anticipated upgrade of public blockchains, which will probably be the biggest breakthrough since the invention of smart contracts, is now out of the drawing board (for the most part) and into code.
Vitalik Buterin, ethereum’s inventor, has done what he did with Casper in simplifying it to Hybrid Casper first. Here too, he has taken the complex and much theoretical work requirements for full sharding, and has simplified it to something that can be implemented relatively quickly.
Yet, although simple it is called, it is not simple, not for us mere mortals anyway. So you’ll forgive trustnodes if we make any mistake, but as we understand it, the proof of concept introduces quite a few new things.
“This is a proof of concept of (part of) a fork choice rule-based mechanism for how sharding can be bolted on top of the current ethereum main chain, with a specialized random beacon and shard block times of <10 seconds,” Buterin said.
Fork choice rules are what basically prevent double spending. If there are two chains, there needs to be a mechanism to decide which chain should be built upon. That mechanism (such as rules for Proof of Work miners, Proof of Stake validators) is the foundation of any public blockchain.
One new thing here is the random beacon. A simple way to describe such beacon is a person that throws a dice. No one can predict what numbers the dice will fall on, so no one should be able to predict what the beacon says.
The purpose of that randomness is for the beacon to chose proposers for collations. Proposers are in effect miners or validators. Collations are a collection of transactions. So the beacon chooses what miner or group of miners/validators produce the next block.
Once the block (collation) is produced, we then have another new entrant, notaries. The notaries carry out final checks and validate the block, or in Buterin’s words:
“A collation can be made by a proposer, and then for it to be eligible for the next proposer to build on top of, the collation needs to be approved by at least 4 of a random sample of 7 notaries.”
Another name for notaries can be Proof of Stake validators because Buterin says the plan is for:
“All notarizations of any shard [to] simultaneously double as votes in a global Casper FFG cycle, increasing Casper FFG scalability and allowing its min deposits and finality times to both be reduced (perhaps min deposits to 32 ETH and finality times to ~6 minutes).”
The current requirement for stakers is 1,000 eth, although you will probably be able to join a pool with even 1eth or less. That requirement will be brought down to 32 eth, so making it more decentralized. While finality is a checkpoint, like the genesis block, a point beyond which you can’t go back as a miner/staker.
The beacon itself will also eventually be in the main-chain, while for the first simple version it will create a triangle of sorts where the beacon ties to proposers, who are overseen by notaries/stakers, then all is linked to the main chain.
The notarization is not included either, he says, but that’s trivial to implement according to Buterin. The doubling of notaries as stakers is also not included, which might require a bit more work than notarization.
Which means what we have here is a skeleton, or the base foundations. The walls have to be built on top, the nice windows, the roof, and then the nice decoration and final touches.
For a time estimate, next year would probably be optimistic, but not unforeseeable as now with Hybrid Casper pretty much done, Buterin is seemingly fully focusing on sharding.
The aim here is quadratic scaling, with Buterin stating: “The primary goal is massive scalability improvement. Each one of the shards (12 in that simulation, likely 100 live) will have as high capacity (and likely more) than the current existing Ethereum chain…
The limit is basically that every node will have to verify the block headers of all the shards, and a node’s capacity to do this is bounded above by their computational capabilities. Hence ‘quadratic sharding’…
Almost everyone, including the block proposers, will have to be a light client with respect to most of the system. There will be mitigations added (keywords: fraud proofs, data availability proofs), but even still it’s a lower level of assurance than directly verifying absolutely everything…
Throughput increases will be quadratic, ie. if computers get 2x as powerful, the blockchain’s theoretical max capacity will increase by 4x.”
Fraud proofs? Some Bitcoin Core devs have stated those are impossible, but then they’ve said a lot of things are impossible, including bitcoin itself.
Fraud proofs, however, would be a breakthrough in itself and if they are implemented, the lower level of assurance would probably mainly be theoretical.
As an overview, the point of all of the above is to create parallelization. That is, instead of all 10,000 nodes processing, validating, storing, all one million eth transactions, 1,000 nodes process 100,000 transactions, and then they’re all tied together.
The above explains how that can be done in a simple form, and the published proof of concepts provides the beginning of implementing it, the digged foundations if you like upon which the rest can be built.
Once it is built and goes live, then each of the 100 shards will be able to process around 1.4 million transactions a day, giving the network a capacity of around 140 million transactions a day, or around 1,000 transactions a second.
At which point, those cryptokitties can come back and start playing again. And more widely, at that point ethereum would be ready for the mainstream. Just in time, we hope, for the new decade of roaring 20s.