A proof that allows one party to prove it owns certain information without revealing it.
Zk-SNARKs stands for Zero-Knowledge Succinct Non-Interactive Argument of Knowledge.
They help establish trust when interacting in a blockchain and considerably speed up the verification of a transaction — hiding details from prying eyes at the same time.
Zero knowledge means one party wants to prove some statement is true without revealing why it is true.
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.
Succinct means that the zero-knowledge proof can be validated within a few milliseconds, even in the case of statements related to large-scale programs.
Non-interactive refers to a zero-knowledge protocol where the prover and verifier have little to no interaction. This means they can only exchange one proof.
Argument shows it’s secure only for provers that have limited computational resources, which means that provers with enough computational power can convince the verifier of a wrong statement.
Of Knowledge indicates that it is impossible for the prover to create a proof/argument without having knowledge.
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.