Vitalik Buterin has recommended that developers work on building a skeletal version of a sharding system until the Ethereum community is able to produce a more precise vision of how sharding will work.
Recognizing that proposed schemas for an Ethereum “sharding” system are constantly evolving, Ethereum creator Vitalik Buterin has unveiled what he calls a “minimal sharding protocol.” The concept is billed as a sharding project that developers can work on without wondering whether the ongoing shifting of the sharding goalposts will later render their contributions useless.
Sharding has been pitched as a means to help blockchains scale up their capacity in order to be able to process many transactions by many users.
While the Ethereum network has faced challenges related to high transaction volumes, the platform is as functional as it is today in large part because it is still a relatively niche technology. In its current form, it would very likely be unable to service the number of users that would rely on it in a post-mainstream adoption scenario.
In a sharding system, a contract (alternatively called the “validator manager contract,” or VMC, and “sharding manager contract,” or SMC) on the main blockchain helps to maintain many shards, each of which is also a blockchain. This could significantly reduce the amount of data per transaction that needs to be written to the main blockchain, enabling the network as a whole to scale up.
Now to the nuts and bolts: in Buterin’s new scheme, “anyone” can propose a header for a particular shard at any time. A block header is a hash that contains information referring to the new transactions (and any other data, in Ethereum’s case) contained within that block and, through a series of other references, to the entire history of the blockchain.
By proposing a certain header, the proposer is contending that all the new transactions and other new data referred to therein should be contained in the next collation (a term that some developers use to describe the blocks of a shard-blockchain).
Buterin’s stripped-down protocol also calls for the selection of a certain (undefined) number of “notaries,” also known as collators or validators, which are nodes that have been temporarily granted the power to vote on whether or not they consider the contents of a given collation header to be legitimate.
This selection is performed anew on every shard during every “period,” which is a stretch of time measured in terms of the number of blocks added to the main blockchain. No more than one collation can be added to the shard-blockchain during a single period. (Tying a set of notaries, who are selected shortly before a period is to begin, to that particular period makes certain kinds of attacks on their shard significantly harder to perpetrate.)
If two-thirds or more of the selected notaries vote to accept a proposed header before the end of a given period, clients will recognize that header’s approval and update their copies of the shard-blockchain to include it.
A secure, scalable, market-ready sharding system would obviously be significantly more complex than this pared-down version.
However, there’s no telling when such a system will be built, nor how many proposed designs will be scrapped along the way. As a leading authority in the Ethereum community, Buterin appears to be making a prudent move in suggesting this path.