ZK Snarks Definition
What are zkSNARKs?
zkSNARK, which stands for “Zero-knowledge Succinct Non-interactive Argument of
Knowledge”, is a protocol that allows one party to demonstrate, or prove, to a different party that
given a statement is true, without having to communicate anything other than the fact that the
statement is indeed true.
zkSNARKs are a variant of zero-knowledge proofs, where no interaction is required between prover and verifier.
Zero-knowledge proofs must have these characteristics to function correctly:
- Complete: If the given statement is true, an honest prover will be able to convince an
honest verifier of the validity of the statement. - Sound: If the proving party is dishonest, he or she cannot convince the verifier that the
statement is sound by lying. - Zero-knowledge: If the given statement is true, the verifier will be able to tell that the
statement is indeed true, but still have no knowledge of what the statement actually is.
zkSNARKs are “succinct”, meaning that the zero-knowledge proofs are verifiable within
milliseconds. This is because the proof length only needs to be a few hundred bytes, even for
statements about programs or systems that are by nature very large. In addition, zkSNARKs are
“non-interactive”, meaning that the proof is just a single message sent from the prover to the
verifier.
What are zkSNARKs Used For?
- To verify any relation with having to disclose in puts or leak private information.
- As the backbone of the Zcash blockchain; they let users make shielded, private
transactions. zkSNARKs play a vital role in decentralized anonymous payment schemes,
which let users pay each other directly and privately. - As a building block to help scale the Ethereum blockchain. In this case, zkSNARKs will
be used to create a verification algorithm that will trigger on-chain activity, though the
generator is run off-chain.