A zero-knowledge proof (ZKP) is a cryptographic protocol that lets one party, the prover, convince another, the verifier, that a statement is true without revealing any information beyond its truth. The term captures a paradox: knowledge can be confirmed without being transferred. In practice, a person can prove they know a password, own an asset, or meet a condition without revealing the underlying data.
The concept was formally introduced in 1985 by Shafi Goldwasser, Silvio Micali, and Charles Rackoff in their landmark paper The Knowledge Complexity of Interactive Proof-Systems. This work laid the theoretical groundwork for interactive proof systems and introduced knowledge complexity to measure how much information passes from prover to verifier during a proof. The first concrete zero-knowledge proof addressed deciding quadratic nonresidues modulo a given integer. From this narrow academic origin, the concept has grown into a foundational building block of modern cryptography and privacy-preserving technology.
A valid ZKP satisfies three properties simultaneously. Completeness ensures an honest prover can always convince an honest verifier of a true statement. Soundness guarantees a dishonest prover cannot convince a verifier of a false statement except with negligible probability. Zero-knowledge means the verifier learns nothing beyond the fact that the statement is true. Completeness and soundness protect against errors and fraud, while zero-knowledge shields sensitive information from exposure.
Early ZKP designs were interactive: the prover and verifier exchanged messages across multiple rounds before the verifier was convinced. A classic analogy is proving knowledge of a secret by answering specific questions repeatedly until guessing correctly by chance is negligible. While interactive proofs are intuitive, they do not scale well across distributed systems where parties may never communicate in real time.
Non-interactive zero-knowledge proofs (NIZKPs) resolve this limitation. Instead of live communication, the prover generates a single self-contained proof using cryptographic algorithms. The verifier can check this proof independently at any time without interacting with the prover. This approach relies on shared cryptographic parameters and techniques like hashing, making it more practical for applications such as blockchain networks where thousands of nodes must validate the same proof.
Two non-interactive protocols dominate practical ZKP deployment today.
zk-SNARKs (Zero-Knowledge Succinct Non-Interactive Argument of Knowledge) produce compact proofs that can be verified quickly regardless of the complexity of the underlying computation. The term was coined in 2012 by Alessandro Chiesa and colleagues at UC Berkeley, and the protocol was widely adopted by privacy-focused blockchain projects. Their main drawback is a trusted setup: before the system functions, cryptographic keys must be generated in a ceremony where secret random values ("toxic waste") are produced and must be permanently destroyed. If not discarded properly, a malicious actor could forge false proofs. zk-SNARKs also rely on elliptic curve cryptography, making them potentially vulnerable to future quantum attacks.
zk-STARKs (Zero-Knowledge Scalable Transparent Argument of Knowledge) were introduced in 2018 by Eli Ben-Sasson, Iddo Bentov, Yinon Horesh, and Michael Riabzev. They address both major weaknesses of zk-SNARKs. Because zk-STARKs rely on hash functions and public randomness rather than elliptic curve cryptography, they require no trusted setup and resist quantum attacks. They also scale more efficiently for large computations. The trade-off is proof size: zk-STARK proofs are significantly larger than SNARKs, resulting in higher on-chain verification costs in some contexts. A 2024 benchmark confirmed zk-SNARKs produce the smallest proofs while zk-STARKs generate the largest but offer faster proof generation for complex workloads.
A third protocol, Bulletproofs, offers a middle ground with no trusted setup and relatively compact proofs, though verification is slower than both SNARKs and STARKs. All three protocols are non-interactive zero-knowledge proof (NIZKP) systems and differ mainly in efficiency trade-offs, mathematical assumptions, and suitability for specific environments.
ZKPs have found their most visible use in blockchain technology. Privacy-preserving cryptocurrencies like Zcash use zk-SNARKs to shield transaction details, including sender, recipient, and amount, while allowing the network to confirm no coins are created from nothing or double-spent. Zcash uses a specific zk-SNARK construction called Groth16, widely used across blockchain projects for its compact proof size and fast verification.
Beyond privacy coins, ZKPs power ZK-rollups, Layer 2 scaling solutions for networks like Ethereum. ZK-rollups bundle many transactions off-chain, generate a proof that all are valid, and submit only that proof to the main chain. This reduces on-chain data and lowers fees without sacrificing security. Notably, many systems called ZK-rollups use mainly the succinctness property of ZKPs rather than full zero-knowledge, with privacy optional rather than default.
Zero-knowledge virtual machines (zkVMs) are a recent evolution. Systems by organizations like RISC Zero and Succinct Labs let developers write programs in mainstream languages like Rust and generate proofs verifying correct off-chain execution. This removes the need for custom circuit-writing in domain-specific languages and broadens the developer pool for ZKP applications. A 2024 analysis found about 96% of documented circuit-layer bugs in SNARK-based systems stemmed from under-constrained circuits, highlighting the security benefits of high-level zkVM abstractions.
ZKPs offer a practical alternative to conventional identity verification. Today, most services require users to submit full identity documents or personal records to prove a single fact, such as age or citizenship. With ZKPs, a person can prove they meet a required condition (for example, "I am over 18" or "I hold a valid driving license") without revealing their exact date of birth, home address, or other personal details.
This property is relevant to processes like loan applications, visa requests, and voter authentication. It also aligns with self-sovereign identity (SSI), where individuals control their credentials and disclose only what is required. Regulatory frameworks such as KYC (Know Your Customer) and AML (Anti-Money Laundering) could be satisfied using ZKP-based attestations without requiring financial institutions to store large volumes of sensitive data, reducing compliance costs and data breach risks.
ZKPs are not limited to financial systems. In healthcare, they can verify that a patient's records meet a clinical criterion, such as confirmed vaccination status, without exposing underlying health data. Supply chain management can use them to confirm product authenticity or regulatory compliance without revealing confidential information about suppliers or logistics partners.
Secure voting systems are another active research area. ZKPs can show that a ballot was counted correctly without revealing how any individual voted, combining verifiability with ballot secrecy in a way traditional paper and digital systems struggle to achieve. Database analytics is an emerging use case, with ZK coprocessors enabling off-chain execution of queries on private data and returning a proof that confirms the computation was performed correctly on unaltered data.