Zk-SNARKs, an acronym for “Zero-Knowledge Succinct Non-Interactive Argument of Knowledge,” is a zero-knowledge cryptographic method that allows users to prove they possess specific information.
Such as a private key, without disclosing the information itself and without any interaction between the prover and verifier. This ensures user privacy.
The “zero-knowledge” aspect indicates that one party (the ‘prover’) can demonstrate knowledge of a secret parameter (the ‘witness’) to another party (the ‘verifier’) without revealing the actual witness, other than confirming its validity.
“Succinct” suggests that the zero-knowledge proof can be verified within milliseconds, as the proofs only consist of a few hundred bytes.
“Non-interactive” means the prover needs to send only a single message to the verifier.
“Argument” denotes the proofs themselves, while “Knowledge” refers to the secret parameter held by the prover.
Users may need to prove certain conditions are met within a blockchain before conducting a transaction.
Private Identity Verification on Blockchain
Zk-SNARKs can also be employed for identity verification in a blockchain.
If User B wants to confirm User A’s identity, they can send a secret message to User A without revealing its content and ask User A to decode it using their private key.
User A then returns the decoded message to User B, verifying their identity.
Zk-SNARKs only record the transaction proof on the blockchain node, thus protecting the identities of the sender, receiver, and other transaction-related details.
Zcash was the first widely adopted cryptocurrency to utilize zk-SNARKs for private transactions.