Even though cryptocurrency transactions aren't tied to anyone's identity, they're normally traceable because they're publicly recorded on a blockchain. If you want to avoid this, you'll need a specific type of cryptocurrency called a privacy coin. One of the methods privacy coins use to keep transactions anonymous is with a technology called zk-SNARKs.

For those who are considering privacy coins for personal use or as a cryptocurrency investment, it's important to understand the technology behind them. While zk-SNARKs is somewhat complicated, we'll cover exactly what it does in this guide.
What is zk-SNARK?
A zk-SNARK is a zero-knowledge proof protocol where one can prove they possess certain information without revealing it and without any interaction between the parties proving and verifying the information.
The term "zk-SNARK" is an acronym that stands for "Zero-Knowledge Succinct Non-Interactive Argument of Knowledge." Each part of the name refers to a characteristic of zk-SNARKs, so it helps to look at each component separately:
- Zero-Knowledge: The prover can show the verifier that they have a piece of information without providing the information itself.
- Succinct: The proof can be verified within a few milliseconds since the proof length is only a few hundred bytes at most.
- Non-Interactive: The proof consists of a single message from the prover to the verifier.
- Argument: Argument is the term used for these proofs because they don't quite fit the traditional definition of proofs, but they effectively serve the same purpose.
- Knowledge: Knowledge refers to the information possessed by the prover.
In cryptocurrency, zk-SNARKs are a way for transactions to be private and fully encrypted on the blockchain while still being validated using the network's consensus rules. zk-SNARKs can show that the sender has the amount of funds they want to transfer without making that information public.
zk-SNARKs explained
zk-SNARKs comes from the concept of the zero-knowledge proof, which was first introduced in a 1985 paper written by Shafi Goldwasser, Silvio Micali, and Charles Rackoff. As previously explained, a zero-knowledge proof is a method that allows one party to show only that they have a piece of information without revealing the information itself or any additional information.
Early zero-knowledge protocols required the prover and verifier to send messages back and forth. A 2012 paper by Nir Bitansky, Ran Canetti, Alessandro Chiesa, and Eran Tromer coined the term "zk-SNARK" to describe a new zero-knowledge protocol. Unlike prior methods, it wouldn't require interaction between the prover and verifier outside of a single message.
Co-author Chiesa would go on to help found Zcash (ZEC +15.12%), a privacy coin that launched in 2016. It uses zk-SNARKs technology to enable private transactions.
How zk-SNARKs are applied
zk-SNARKs are applied by turning the information that needs to be proven into a mathematical equation. The sender of the transaction constructs a proof that demonstrates:
- The transfer's input and output values match.
- The sender has the private spending keys for the input.
- Those private keys are cryptographically linked to a digital signature for the transaction, ensuring that it can't be modified by anyone who doesn't have the private keys.
The exact way this works depends on the cryptocurrency. For example, Zcash tracks unspent transaction outputs using what it calls "commitments" and requires revealing a "nullifier" to spend these commitments. To keep commitments and nullifiers private, they're stored as hashes.
zk-SNARKs are a useful technology, and cryptocurrencies that incorporate them have become popular investments. While privacy coins have a clear use case, keep in mind that they're volatile, and the level of privacy they offer could lead to regulatory issues in the future. If you decide to invest in a privacy coin, take a conservative approach and avoid putting in more money than you could afford to lose.




