What is zk-SNARKs technology?

zK-SNARKs is an acronym for “Zero-Knowledge Succinct Non-Interactive Argument of Knowledge”. Basically, zk-SNARKs is technology, which allows running transactions in decentralized peer to peer network completely anonymous. So, the sender, recipient, and amount of a transaction remain private. This technology is providing privacy in Zcash network and it is already implemented in Ethereum network.

Privacy is one of the main pillars of cryptocurrency philosophy because every user wants to be safe and anonymous. In standard cryptocurrency network without any privacy technology, all transactions are traceable directly to the end (user Exchange crypto to fiat).

How zk-SNARKs works?

Simply said, “Zero-knowledge” and “Succinct” providing, that transaction can be verified by prover without revealing any information into the public ledger and processed in a few milliseconds. We tried to describe ZkSNARKs by myself deeper but we think, that the official description from ZCash website is the best.

zk-snarks, zcash

Official description:

“Zero-knowledge” proofs allow one party (the prover) to prove to another (the verifier) that a statement is true, without revealing any information beyond the validity of the statement itself. For example, given the hash of a random number, the prover could convince the verifier that there indeed exists a number with this hash value, without revealing what it is.

In a zero-knowledge “Proof of Knowledge” the prover can convince the verifier not only that the number exists, but that they in fact know such a number – again, without revealing any information about the number. The difference between “Proof” and “Argument” is quite technical and we don’t get into it here.

“Succinct” zero-knowledge proofs can be verified within a few milliseconds, with a proof length of only a few hundred bytes even for statements about programs that are very large. In the first zero-knowledge protocols, the prover and verifier had to communicate back and forth for multiple rounds, but in “non-interactive” constructions, the proof consists of a single message sent from prover to verifier. Currently, the only known way to produce zero-knowledge proofs that are non-interactive and short enough to publish to a blockchain is to have an initial setup phase that generates a common reference string shared between prover and verifier. We refer to this common reference string as the public parameters of the system.

Source: https://z.cash/technology/zksnarks.html