Ethereum might just be one step closer to sharding its blockchain.
At least that’s according to long-time blockchain researcher Vlad Zamfir, who claims to have coded up a successful proof-of-concept of the idea at the ethereum hackathon EthBerlin this week. Built with the help of several other developers, including Tim Beiko and John Marling, the code is said to demonstrate how different ethereum shards may be able to someday communicate on the blockchain.
While many ethereum developers, including ethereum creator Vitalik Buterin, are working toward making sharing a part of ethereum’s roadmap, it’s still a work in progress (estimated to be released not for another two years).
Speaking to CoinDesk, Zamfir affirmed the proof-of-concept is “not even close” to production-ready, but nonetheless he believes it contains code that will be fundamental to its deployment on ethereum.
“It’s really a proof-of-concept of the most core component in my sharding roadmap,” Zamfir said. “It prevents the cross-shard atomicity failure, or more specifically, it prevents finalization of cross-shard atomicity failure, so it will never be that a ‘send’ is finalized and a ‘not received’ is finalized.”
That likely sounds quite technical, and it is, but put simply, Zamfir and the other developers were able to show how ethereum’s native cryptocurrency, ETH, and other messages can be sent securely across a sharded blockchain.
Available on open-source code repository Github, the proof-of-concept comes with a visualizer that allows users to download and stimulate the codebase. Although the current proof-of-work isn’t completely finalized, he said.
“We’re still working on the integration but check back in a week and it should be something where we have instructions and you can follow the instructions and get it running on your computer.”
For educational purposes only
While the proof-of-concept was finally written in code at the hackathon, according to Zamfir, much of it had already been developed prior.
“The specifcation was pretty much already 100 percent done, for the most part. I didn’t have to do any research at the hackathon, I was just implementing stuff,” he told CoinDesk.
The reason for implementing the codebase, Zamfir said, is largely educational.
“There’s a lot of people who can’t look at research, especially when we don’t have research published in the way that we’re really happy with. And so seeing software is something that some people find compelling,” he said.
Beyond that, though, he continued, the proof-of-concept has “almost no significance,” since it didn’t look to uncover any new terrain or solve any known problems. What it’s missing includes a system for transaction fees and a way to route transactions and messages from one shard to another.
“We have no real routing protocol,” Zamfir said, summarizing:
“All it is doing is demonstrating the cross-shard message passing in the way that it works with the fork choice rule.”
The technicals of sharding
What Zamfir is referring to when he says “fork choice rule” is the code for how ethereum shards interact with the main blockchain. This code was released in a proof-of-concept by Buterin in May.
Still, while Zamfir’s proof-of-concept builds on the broader body of ideas out there around sharding, it is also built to work alongside his “correct-by-construction” research, which includes rules by which blockchains should come to consensus about transaction histories.
“For me, it’s all trying to use the correct-by-construction methodology and all of my sharding stuff is very much squarely within that framework,” he told CoinDesk.
And with this focus, Zamfir’s sharding roadmap deviates slightly from the mainstream ethereum sharding roadmap, fulfilling “different design criteria,” he said.
While it’s still rooted in the same problems — trying to come up with ways to solve ethereum’s scaling hurdles, as well as finalizing the upcoming switch to a more egalitarian way to secure blockchains, named proof-of-stake – Zamfir has a different design focus to others looking at sharding.
“I consider the core of sharding to be a cross-shard message or a cross-shard consistency problem,” Zamfir told CoinDesk. “Vitalik thinks of it as sharding of availability, validity and execution of the state. I have a different perspective than Vitalik does of consensus protocols and therefore also sharding.”
“I’m just focusing on what I think are the hardest problems first.”