It’s perhaps no surprise Jacob Eberhardt is being given the stage at ethereum’s annual developer conference.
With scalability and privacy top of mind for the blockchain network, now valued in the billions, the Ph.D. researcher at the Technical University of Berlin is set to debut a new programming language at the Cancun, Mexico, event, one designed to help ethereum improve on these key weaknesses.
Called ZoKrates, the goal of the project is to provide developers with a toolkit that could help them realize the potential of a much-anticipated blockchain privacy tool called zk-snarks.
Pioneered by the cryptocurrency zcash, ethereum’s recent software update, enacted in October, paved the way for the easier use of the code, and because it effectively unlocks the use of this feature, the implications of ZoKrates are potentially vast.
For one, it’s designed to be simple for any ethereum developer to deploy, which could lead privacy features to begin surfacing in decentralized applications and tokens. And second, because zk-snarks compress information, ZoKrates has the potential to help scale the ethereum platform by moving computations off the main blockchain, easing data storage.
In short, ZoKrates allows information to be obscured off the main ethereum blockchain and then uploaded into a smart contract the network can still verify, all without exposing contract information.
Eberhardt told :
“Zk-snarks were discussed a lot, but the gap between the theoretical concept and its practical application seemed huge. This gap, I try to bridge.”
Also of note is how exactly Eberhardt believes he’s accomplished the feat.
To start with, ZoKrates is a type of ethereum smart contract. A custom version of the self-executing code that runs on top of the network, the tool serves as a way to transfer a zk-snark operation onto the blockchain and to verify that that information is valid.
As Eberhardt describes it, a ZoKrates contract verifies that a computation, or set of transactions, occurred correctly – or in his words, it “transforms a program into a set of conditions.”
This moves ethereum one step closer to offering private transactions on its blockchain. Yet, like bringing privacy to ethereum in the first place, the endeavor is far from simple.
For one, verifying a zk-snark is still expensive. When encrypted information is read and accepted onto the ethereum blockchain, it requires a lot of computational effort, which in ethereum is measured in units of “gas.” Crucially, though, the cost of verifying a ZoKrates contract, while high, remains uniform at all times, regardless of the complexity of the computation.
At present, a ZoKrates verification fee is about 1.6 million gas. Put simply for possible users, anything above this figure would be cheaper to run on ZoKrates.
As for what occurs on the blockchain itself, computations would still need to fit in ethereum’s block size constraints. However, rather than filling blocks with transaction data, the distributed ledger would feature proof that the verification of any transactions had taken place.
While the possibilities are exciting, the project isn’t without its hurdles, though.
Eberhardt identified two major challenges: for one, ZoKrates is still very much under development, meaning that while the code has been open-sourced, it’s not ready to be used in production applications.
On top of that, Eberhardt is currently working solo on the project, with some input and discussion from ethereum’s zk-snarks lead Christian Reitwiessner. For that reason, Eberhardt said, the development timeline can’t be predicted.
And, of course, as always in the blockchain world, there are concerns about zk-snarks themselves, and alternative concepts are competing for attention.