Cryptocurrency Spotlight: Zcash
Founded by Zooko Wilcox, Zcash is a peer-to-peer cryptocurrency that allows for private transactions to occur on its blockchain. Like Bitcoin, Zcash can be used as a medium of exchange to purchase goods and services, but Zcash allows for all these transactions to be private. With Bitcoin, you can identify a user’s address, and then track the movement of money flowing to and from that address. Zcash encrypts all this information, providing the user with greater anonymity. This is done by utilizing its special proof of construction known as zk-SNARK, which is an acronym for ‘zero-knowledge Succinct Non-interactive ARgument of Knowledge’.
zk-SNARK is a novel form of zero-knowledge cryptography. Zero-knowledge proofs enable one party (the prover) to convince the other party (the verifier), that a statement is true, without revealing any information about the statement itself. This process can be performed without any interaction between the prover and the verifier. For example, A prover could prove to the verifier that the hash value of a random number existed, without revealing any information about the hash value. In having zero-knowledge privacy in Zcash, the function determining the validity of a transaction (according to network consensus rules) must decide if a transaction is valid, without revealing any information about the transaction itself. This is achieved by encoding some of Zcash’s consensus rules in zk-SNARKs.
Using zk-SNARKs, transactions on the Zcash blockchain can be fully shielded (encrypted). Information such as the address of the sender and recipient, and the value of the transaction are all cryptographically obscured. In order to do this, the sender of a shielded transaction constructs a proof to show that, with a high probability:
- The input values sum to the output values for each shielded transaction.
- The sender proves that they have the private spending keys of the input, giving them the authority to spend.
This is in contrast to cryptocurrencies such as Bitcoin, where transactions are validated by linking the sender address, receiver address, and input and output values on its blockchain. This means that every single piece of information about that transaction can be seen by anybody. The only piece of information that is revealed in a Zcash shielded transaction is that a transaction occurred at a particular point in time.
Zcash also gives users the option to make their address either shielded or transparent. Zcash payments sent from a shielded address to a transparent address reveals the value of the transaction being received by the transparent address. Whilst Zcash payments made from a transparent address to a shielded address will not disclose the transaction value being received by the shielded address.