Most cryptocurrencies out there expose your entire payment history to the public, because each transaction registration on the blockchain requires validation by each node. Some scientists and developers realised this problem early and are working on adding a privacy layer on top of blockchain based currencies. Here, I’m going to talk about Zcash, a young cryptocurrency that is leading the way to provide private transactions on a public blockchain, without compromising decentralization.
Zcash, pronounced “zee-cash” was introduced in October 2016, with the aim to offer “privacy and selective transparency of transactions.” As stated on their official website, “Zcash is the first open, permissionless cryptocurrency that can fully protect the privacy of transactions using zero-knowledge cryptography.” Zcash payments do get published on a public blockchain, but they shield away the sender, recipient and amount information from other blockchain nodes. They say, “If Bitcoin is like http for money, Zcash is https—a secure transport layer”. Interchangeability, enabling new applications and upholding confidentiality are the three primary aspects the Zcash team is currently focusing on.
To ensure healthy interchangeability, Zcash aims to provide a “fungible” cryptocurrency. In order to remain equally interchangeable, units of the cryptocurrency must be detached from their history so that one unit is as good as any other unit / value. Zcash brings fungibility to the cryptocurrency by unlinking shielded coins from their history on the blockchain. The interface with which Zcash provides privacy is quite a good design, but its implementation is non-trivial. Zcash makes heavy use of “zero-knowledge proofs”, and applies other cutting-edge cryptography to blockchain technology. Zero-knowledge proofs are an especially eccentric way of thinking. These constructs prove statements without revealing any extra information. Think of them like ways to prove your blind friend that one ball in your hand is of different colour than the other ball in your hand, without revealing the individual colours of the ball. Zero-knowledge proofs allow encrypted transactions to be confirmed as valid. This very property, Zcash claims, enables entire new classes of decentralized applications to be built.
I recently attended a talk by a Zcash employee at a hackathon. When he was asked about explaining the Zcash implementation, he said it’s basically like enclosing your coins in your fist and putting it in an opaque and secure, though publicly accessible box, from where the recipient can take the money. The recipient searches and then takes out the coin with the id provided to him by the sender. This is the id that gets recorded on the public blockchain, along with a few other metadata, so that only the id is public but the sender, recipient and value amount remains confidential.
Zcash sounds like a novel technology to enable transactional confidentiality to cryptocurrencies. However, the Zcash mission raises an obvious question – if Zcash provides transactional privacy, won’t bad people use it? I think this question is part of a broader discussion which is not specific to Zcash. Should FBI be allowed to tap into American calls to track terrorists? This privacy debate is one of the top questions at the Zcash FAQ, and their team answers it well: “[Won’t bad people use Zcash?] Yes, but bad guys will use anything. Bad guys use cars, bad guys use the Internet, bad guys use cash, bad guys use the current banking system. Our goal is not to invent something that bad guys can’t use, it is to invent something that can empower and uplift the billions of good people on this planet.”
Saurabh Chaturvedi is a freelance developer and technical writer with a keen interest in blockchain, Bitcoin, and other cryptocurrencies.
You can reach out directly to discuss our market development services by sending an email to julia at dailyfintech dot com