zkSNARK
zkSNARK stands for “Zero-Knowledge Succinct Non-Interactive Argument of Knowledge.” Alessandro Chiesa, a professor from UC Berkeley, co-authored a paper where the term “zkSNARK” was first used. Breaking down the acronym further: <ul> <li>Zk: “<strong>zero knowledge</strong>,” used for protecting user’s privacy</li> <li>S: “<strong>succinct</strong>” proofs, referring to data compression, which can be verified in only a few milliseconds. This means that, rather than the Ethereum mainnet validating nodes needing to verify every transaction individually, validators will just verify a small proof to ensure the validity of the transactions. Typically, proofs have a set number of group elements (consider transactions), although the actual proof size is significantly smaller.</li> <li>N: <strong>Non-Interactive</strong> signifies that the prover just needs to send a single message to the verifier instead of exchanging messages back and forth. Non-interactivity is necessary because the prover may generate a single proof that can be verified by anyone, anywhere, without ever requiring information sharing with the prover</li> <li><strong>ARK</strong>: generate off-chain trusted proofs</li> </ul> zkSNARK is used to construct a proof that allows one party (prover) to prove that the statement is true to the other party (verifier) without revealing any information. ZCash, a privacy-preserving protocol, implemented zkSNARK in 2016 to enable anonymous payments. ZCash is one of the most famous and widely used applications using zkSNARK.