Zk-SNARKs

A proof that allows one party to prove it owns certain information without revealing it.


A proof that allows one party to prove it owns certain information without revealing it.

What Are Zk-SNARKS?

Zk-SNARKs stands for “Zero-Knowledge Succinct Non-Interactive Argument of Knowledge.” and it is a form of zero-knowledge cryptography where one can prove possession of information, such as a private key, without revealing said information, and without interaction between the prover and verifier, thereby ensuring privacy for users.

“Zero knowledge” means one party (‘prover’) is able to prove knowledge of a secret parameter (‘witness’) to another (‘verifier’) without revealing the witness to the verifier or anyone else, besides the fact that the witness is valid.

“Succinct” implies that zero-knowledge proof can be validated within a few milliseconds, as proofs consist of only a few hundred bytes. “Non-interactive” refers to the prover having to send only a single message to the verifier. “Argument” is the term used to represent these proofs and “ Knowledge” refers to the secret parameter possessed by the prover.

When interacting in a blockchain, a user may have to prove that some conditions are met before they can complete a transaction. For example, they need to prove they have sufficient funds to complete a transaction, but without giving away information on how much they have in their wallet. 

Zk-SNARKs also come useful when proving one’s identity in a blockchain. For example, if B wants to verify A’s identity, they can send a secret message to A without telling them what it is, and ask A to decode the message using their private key. A can then send the message back to B, proving their identity.

Zk-SNARKs records only the proof of the transaction on the blockchain node, safeguarding the identity of the sender, receiver and other details associated with the transaction. Zcash was the first widely used cryptocurrency that uses zk-SNARKs to enable private transactions.