Zk-SNARK is an acronym that stands for “Zero-Knowledge Succinct Non-Interactive Argument of Knowledge.” A zk-SNARK allows one party to prove it possesses certain information without revealing what that information is. This proof uses a secret key created before the transaction takes place and is part of the protocol for Zcash, a cryptocurrency.
For most of cryptocurrency’s early adopters, privacy was an unstated but desired goal. Yet it always took a backseat to another priority: developing a way to securely and reliably transfer digital currency without resorting to traditional banking methods.
Bitcoin users in the early 2010’s thought that their transactions were anonymous. This was because user’s public keys weren’t associated with offline identities. However, efforts from data scientists, hackers and law enforcement at the end of the decade proved otherwise. It is possible and relatively easy to re-identify people who had given pseudonymous data to multiple sources.
Because people were concerned about the lack of privacy with original cryptocurrencies like Bitcoin, developers started working on creating coins that focused on privacy. The most well-known of these was Zcash, which used a technology called zk-SNARKs.
zk-SNARKs use “zero-knowledge proofs,” which were first though up in the 1980s. In short, a zero-knowledge proof is when two people can confirm they have certain information to each other without revealing what that information is.
Proofs that don’t utilize 2FA require one party to have access to all the information. A standard proof is akin to a password used for logging into an online network. The user inputs the password, and then the network checks its contents for accuracy. However, in order for this method to work, the network must also have access To sum up, Two-Factor Authentication adds an extra layer of security by requiring two pieces of evidence (or “factors”) before granting authorization.
In a zero-knowledge proof scenario, the user would demonstrate to the network (by way of mathematical proof) that they have the proper password, without revealing the password itself. The advantages for privacy and security are evident: If the network doesn’t store the password somewhere for verification purposes, then it cannot be stolen.
Though the mathematics behind zk-SNARKs is complex, this type of proof allows one party to show not only that a certain piece of information exists, but also that they are aware of it. With Zcash, these proofs can be verified quickly, and the protocol does not need any interaction between the person demonstrating and the person verifying.
There are a few concerns that come along with zk-SNARKs, though. For example, if somebody got ahold of the private key used to create the protocol’s parameters for proofing, they could make false proofs that would look valid to anyone who checks them. This person would essentially be able to print new Zcash tokens through counterfeiting. To stop this from happening, Zcash was designed so that the protocols for proving are complicated and done by multiple people instead of just one.
The Zcash team went to great lengths to make sure that the cryptocurrency couldn’t be counterfeited by implementing a false-proof system. However, there is another issue with Zcash that investors should be aware of. For the first several years after its creation, every block mined will have a 20% tax levied on it – this is known as the “founder’s tax” and goes towards compensating the developers behind Zcash.
Some people have said that the Zcash founders could make an infinite number of extra tokens without anyone else knowing. So, we don’t exactly know how many Zcash tokens there are right now.
In 2019, some developers started to improve zk-SNARKs by removing the reliance on a trust setup. Suterusu, one of these teams, developed zK-ConSNARK. This system is supposed to work without needing a trust setup, can provide privacy protection for popular blockchains like Bitcoin, and has less inflation than any other existing cryptocurrency.