Zcash is a new cryptocurrency that launched on Friday, October 28, 2016. A clone of Bitcoin forked from the Bitcoin codebase 0.11, Zcash is differentiated from Bitcoin and Ethereum by the added functionality of completely private transactions. For that reason, Zcash has been hailed as “untraceable”.
To allow private transactions, Zcash employs a technology from a branch of cryptography and computer science called zero-knowledge proofs. Even the smartest mathematicians in the space describe zero-knowledge proofs as “moon math”and a handful of dedicated researchers worldwide have a complete understanding of the details of how it works.
Simply put, a zero-knowledge proof means you can prove to someone that you’ve done a computation without their having to redo the computation themselves. The effect is that you can prove a statement true without revealing anything about it other than that it’s true.
Zero-knowledge proofs help make Zcash “untraceable” by creating private transactions on the public Zcash blockchain. Transactions on Zcash cryptographically obscure the addresses of the sender and recipient, as well as the value one address sends to another. This is unique in that other blockchains to date show the value transfer from one address to another, and the value being sent can be seen by anyone on the blockchain. Unlike other blockchains, Zcash users can cryptographically fully shield their transactions. The only thing that is disclosed is that “something” happened at a particular point in time.
The addresses sending Zcash are all pseudonymous, meaning that if you don’t know their actual identities or real-world addresses, you can’t see where the currency is flowing to or from.
For example, let’s say you have 100 wallets each with one bitcoin, and that’s all there is on the blockchain. Now let’s say five of these people cryptographically shield their bitcoins using zero-knowledge proofs. There would be 95 transparent coins and 5 shielded ones. The blockchain and the network keep track of the amount of coins that are shielded and don’t care who un-shields a portion later. The coins go into a big pool and when you pull a little piece out there’s no way to correlate it to what went into the pool. Zero-knowledge proofs prevent people from pulling more out of the pool than they put into the pool in the first place.
There is a wide range of legitimate use cases for financial privacy. In fact, if you think about it, financial privacy is probably desirable for most transactions that happen in the world.
Size is a scarce resource in public blockchains. If you have a transaction that takes up half a MB of space, it’s going to increase the size of the blockchain by half a MB. With 2,000 transactions, in two hours you would have a GB. With the blockchain growing so quickly, it would soon become an unusable system.
Importantly, the Zcash team was able to optimize the size of these private transactions down to the point of being actually usable, reducing them to only about 1500 bytes. With the reduced size , the cryptographic shielding computation dropped from five or six minutes down to one minute.
The launch of Zcash was different from the launch of say, Ethereum. In the first token sale of ether, the sale ratio was 2,000 ether for each bitcoin. Then after 42 days, it linearly dropped down to 1.337 per ether at the end of the sale. There were only 60 million ether issued to the buyers on the very first block. An additional 12 million ether went to the Ethereum Foundation and early contributors as compensation. 9.9% was devoted to past contributors and another 9.9% was an endowment for the Foundation. Ethereum started with 72 million coins and had relatively low inflation after that. 30,000 additional ether are added each day to compensate miners for processing transactions and keeping the network secure.
Similar to the start of Bitcoin, the distribution mechanism for Zcash at launch was to start mining coins at the outset with no pre-existing “pre-mined” coins. After 24 hours, there were only four Zcoins that had been mined out of 21 million total Zcash coins. The issuance per day continuously increases from 0 to 7200 Zcoins for 30 days, and stays at 7,200 Zcoins after that, with Zcash receiving 10% of all mined coins over time as a fee.
It’s Economics 101. With no actual coins out at the launch, a very low supply coupled with a very high demand led to a high price. Zcash started on Friday at a very high price and then continued to drop as the monetary base inflation kicked in. Super high inflation leads to significant price instability. When there was only one coin, price hovered around $500,000, then continued to drop to the point where we are now, around $1,000.
Over the first two months, on a monthly basis there is effectively 100% monetary base inflation with 210,000 Zcoins mined in the first month. In the next month there are going to be another 210,000 Zcoins mined, doubling the amount of extant coins. Then two months after that, another 100% monetary basis inflation will occur, as extant Zcoins go from 420,000 to 840,000.
There are two manners in which Ethereum developers can use the features that Zcash has pioneered. The simplest way to integrate the blockchains is by using a BTCRelay-style SPV (Simple Payment Verification) system, called ZRelay. This would allow public transactions on the Zcash blockchain to be verified by smart contracts on Ethereum, allowing Ethereum DApps to take advantage of the privacy of Zcash for value transfers. The more powerful, but more complex way is to incorporate the zkSNARKs as a native feature of Ethereum. This would allow, with the addition of the account abstraction set to be introduced in Metropolis, for Ether itself to be transferred privately. Work in this direction is ongoing.
Today, Ethereum developers are able to build experimental and functional prototypes however, fully functional applications using Zcash cannot currently be implemented on the main network because the network gas limit is lower than what is required by the relatively expensive proof-of-work verification computations. In order for Zcash to work on Ethereum, a new precompile (a new deep protocol element of the system, similar to a new opcode) would need to be added so that all of the expensive computations happen in a highly optimised native manner, as opposed to on the general-purpose EVM.
Hopefully, in the next version of Ethereum, we’ll be able to have this atomic swap capability between ether and Zcash, and in the future we may have the full functionality of zero-knowledge proofs available directly in Ethereum and accessible from a variety of smart contracts.
Zooko Wilcox, Founder and CEO of Zcash, has been quoted saying that Zcash is “not so much about making money” but rather “what’s important is that the technology is out there, being used and tested”. With Zcash addressing the most important key to solving the privacy issue, the Ethereum community could benefit from the partnership, bringing us closer to the ultimate goal of building a globally scalable, configurable, private, infrastructure for economic social, and political systems for the entire planet.
Edit: A previous version of this article stated that encrypted transactions were 20 or 30KB. This error has been corrected.
Disclaimer: Futurism has a personal affiliation with ConsenSys. This is a piece of editorial content. ConsenSys does not have any review privileges on editorial decisions.