What Does the Future of Zcash Look Like?

Zcash was facing a pretty serious counterfeiting problem which was a direct offshoot of their zk-snark programming.

In Zcash 1.0, the private transactions rely on SNARK public parameters for the creation and verification of zero-knowledge proofs. Generating these SNARK public parameters requires the creation of a public/private key pair and then destroying the private key and keeping the public key.

What Does the Future of Zcash Look Like?

However, this is where things get tricky.

If someone gets hold of that private key, then they can create counterfeit coins!

This usually isn’t a problem in an open ledger like bitcoin where all the transactions are open for the world to see. However, in Zcash, privacy stops anyone from checking the state of the coins.

This how Zooko Wilcox describes the private key or, as he likes to call it, “toxic waste” problem:

“We call the private key “the toxic waste”, and our protocol is designed to ensure that the toxic waste never comes into existence at all. Imagine having a bunch of different chemical byproducts in your factory, each of which is individually harmless, but if you let all of them mix together they will form a dangerous substance that’s difficult to manage safely. Our approach is to keep the individually-harmless chemicals separate until they are destroyed, so the toxic waste never comes into existence at all.”

So, in order to reduce the chance of an attacker to get their hand on the “toxic waste”, an elaborate ceremony was conducted.

The Ceremony

The ceremony is beautifully documented in the Radiolab podcast and you can give it a listen here.

The ceremony’s purpose was as follows:

Create a secure multiparty computation in which multiple people each generate a “shard” of the public/private key pair.

Once that is created, each member destroys their shard of the private key and then come together to join the public key shards to create the public key.

So basically, if only one participant destroys their private key shard then it is impossible to recreate. The experiment fails only if all of the participants have been dishonest.

You should read Morgan Peck’s first-hand account of the ceremony. The sheer lengths to which these people went to conduct it is extremely commendable.

This is Zooko Wilcox’s statement on the bottom-line of the ceremony:

“We have performed a remarkable feat of cryptographic and infosec engineering in order to generate SNARK public parameters for Zcash 1.0 “Sprout”. The general design of this Ceremony was based on Multi-Party Computation, air-gaps, and indelible evidence trails. Six different people each took one part of the Ceremony. The Multi-Party Computation ensures that even if all five of the others were compromised, or were secretly colluding, to try to reconstruct the toxic waste, one single Witness behaving honestly and deleting their shard of the toxic waste would prevent it from ever being reconstructable. Despite the remarkable strength of this Ceremony, I intend to advocate for a major upgrade to the Zcash protocol next year which will add a layer of detection in addition to the current layer of prevention.”

Ethereum + Zcash = <3 ?

Zcash is a cryptocurrency launched by Zerocoin Electic Coin Company on 9th September 2016 and is the first example a cryptocurrency marrying the concepts of blockchain technology with Zk-Snarks. It aims to provide completely safe and shielded transaction spaces for its users without revealing details (such as their addresses) to anyone.

Ethereum wants to integrate Zk-Snarks as it enters its Metropolis phase and the way that they are planning to do so is by creating an alliance with Zcash which will include a mutual exchange of value. The chief developer of Zcash, Zooko Wilcox, gave a presentation in DevCon2 in Shanghai which explored the future of such an alliance. According to him, there are 3 ways that Z-Cash and by extension, zk-snarks could be integrated with Ethereum.

The first method is called Baby Zoe (Zoe = Zcash on Ethereum). It adds a zk-snark pre-compiler on Ethereum and makes a mini Zcash smart contract on Ethereum. The idea is to see whether the Ethereum system can create a zk-snark enabled DAPPs

The Second method is to integrate the Ethereum computability inside the Zcash. As Wilcox puts is, the greatest asset of Ethereum is its computability and people want to see whether they can integrate it on a zk-snark based blockchain like Zcash. Can people create DAPPS made with zero-knowledge proofs? That is something that they are waiting to see.

The third and most exciting aspect is Project Alchemy. This is basically the connection and interoperation of the two blockchains such that one can seamlessly move between the two. The way that Zcash plans to do that is by cloning the BTC  Relay. It is an Ethereum script that was written to create a Bitcoin light client inside Ethereum. The Zcash clone will use the same concept to create a Zcash light client inside Ethereum.

If this works then we will have the first, decentralized currency system in the world which facilitates the creation of DAPPS with zero knowledge ingrained in it.