Scalability and privacy are at the forefront for ethereum developers.
And Jacob Eberhardt's new programming language, ZoKrates, aims to address these topics – providing ethereum developers with a toolkit that could help the network realize the full potential of privacy technologies. Zk-snarks has been popularized by Anonymous Cryptocurrency zcash, but the recent Byzantium Ethereum hard fork included some procedures that pave the way for easier use of technology on its blockchain.
Revealed at Devcon3, the annual conference of the ethereum developers, ZoKrates today allows you to hide off-channel information and upload it into a smart contract that can be verified on the channel. Ethereum without exposing the contract information.
The implications of ZoKrates are vast. On the one hand, it is designed to be so simple to use that any ethereum developer can deploy the technology, which means that the privacy features are starting to appear in the cases of the company. Use of ethereum, decentralized applications to ERC-20 chips. And secondly, because zk-snarks compress information, ZoKrates has the potential to help scale the ethereum platform. by moving the calculations off-line and removing some of the blockchain's load.
As Eberhardt, a Ph.D. researcher at the Technical University of Berlin, told CoinDesk:
"zk-SNARKs has been much discussed within the community over the last two years, but the gap between the theoretical concept and its practical application seemed enormous, I am trying to bridge this gap."
Confidentiality – which has generally been viewed as an ethereum defect – and scalability are topical topics at this year's Devcon3, while the developers of the Ethereum are prepare to lower the head to meet the high expectations of the ethereum.
Private and intelligent contracts
With ZoKrates, a smart ethereum contract – which only executes if certain prerequisites are met – is used to transfer a zk-snark operation to the blockchain and verify that this information is valid.
As Eberhardt describes it, a ZoKrates contract verifies that an unknown calculation has occurred correctly, or in its terms, a ZoKrates, "turns a program into a set of conditions."
That brings a little more etheric about offering private deals on its blockchain, the "practical implementations" that Christian Reitwießner, leader of the Ethereum, told CoinDesk in September would be missing to make technology directly useful to Byzantium.
But, just as the fact of bringing confidentiality to ethereum in the first place, the business is complex.
For one, checking a zk-snark is always expensive. When encrypted information is read and accepted on the ether chain, it costs a lot of computational effort, which is measured in the ethereum in units of "gas".
Although ZoKrates bypasses this problem by moving privacy calculations out of the chain, the chain check process is still very expensive.
Although, Eberhardt said that ethereum could, by future improvements, make this process less expensive. Byzantium, for example, has already introduced some mechanisms to make private transactions more affordable, such as gas-subsidized twinning.
Steps to Scalability
Although, cryptography still has obstacles to overcome. At the moment, it takes a lot of "gas" – about a quarter of the global limit placed on ether blocks.
However, the cost of checking a ZoKrates contract remains stable at all times, no matter how complex the calculation it represents. At the present time, ZoKrates audit costs amount to about 1.6 million gases. In other words, anything that exceeds this figure would be cheaper to run on ZoKrates.
The same applies to everything that can not fit into one block because the size of a ZoKrates check is consistent. So, if deployed, the blockchain would be filled with string checks, rather than transactional information. Eberhardt explains that this could "lead to higher throughput" because more checks could enter a block than the calculations themselves.
But that does not mean that there are not a few roadblocks on the way.
Speaking to CoinDesk, Eberhardt has identified two major challenges for the software so far. On the one hand, although Eberhardt is currently dedicated to making the language "more expressive, intuitive and easy to use", it is still very much in development.
Eberhardt opened the source today, but says he's still in the prototyping phase and he's not ready for deployment yet. In addition to this, Eberhardt is currently working on the project alone, with comments and discussions from Christian Reitwießner, leader of zk-snarks ethereum, and for that reason, he can not predict the development schedule.
The other major concern – less of a problem with ZoKrates than zk-snarks itself – is the unfortunate "trustworthy setup".
In the generation of a zk-snark, information is generated that can totally destroy the integrity of that data. There are ways to get around this – for example, zcash used an install phase in generating its blockchain to ensure its integrity – but it's hard to demonstrate that the process was foolproof, and it was not easy to use. zcash team continues its audits. ]
Zk-snarks on Ethereum would need a version of this – and it should be flexible enough to work in the generation of all ZoKrates contracts. To do this, Eberhardt attends zk-starks – the equivalent of privacy protection, as detailed by CoinDesk, completely removes the configuration phase. This protocol is expected to be released over the next year – and one of its main authors, Eli-Ben Sasson, will introduce the technology this Thursday in Devcon.
Quote from Socrates via Shutterstock