Skip to content

DappsAtlas index · 14,224 dApps

DappsAtlas

Blockchain · Explainer

What Is a Zero-Knowledge Proof? How ZKPs Work

A zero-knowledge proof lets you show that a claim is true without handing over the secret that makes it true. Learn how the cryptography works, where blockchains use it, and what it can—and cannot—protect.

By the DappsAtlas editorial team · Updated

Illustration for What Is a Zero-Knowledge Proof? How ZKPs Work

What is a zero-knowledge proof?

A zero-knowledge proof (ZKP) is a cryptographic method for proving that a statement is true without revealing the private information used to prove it. The person or system making the claim is the prover; the person or system checking it is the verifier. The hidden information is often called the witness.

For example, imagine proving that you are old enough to enter a service without showing your exact birth date. A suitable system could verify the age condition while keeping the date private. The proof is about a specific claim—such as “this person meets the age threshold”—rather than a way to reveal or transmit the underlying record.

“Zero knowledge” describes what the verifier learns from the proof: ideally, nothing beyond the fact that the stated claim is valid. It does not mean that no information is shared at all. The claim itself may be public, and the verifier may learn other details from the surrounding service or transaction.

ZK proofs are useful when someone needs to establish a fact but does not need to disclose all the data behind it. They are a family of cryptographic techniques, not a single product, coin, blockchain, or privacy setting.

How does a ZK proof work?

A ZK proof is built around a statement that can be checked. The prover has some private data, or witness, that makes the statement true. A proof system defines how that data relates to the claim and how a verifier can check the result without receiving the witness itself.

A simplified flow looks like this:

  1. Define the claim. For example: “I know a secret number whose hash matches this public value.”
  2. Prepare the witness. The prover supplies the secret number to the proof-generating process, not to the verifier.
  3. Generate a proof. The system uses cryptographic procedures to produce a compact object representing evidence that the claim holds.
  4. Verify it. The verifier checks the proof against the claim and any public inputs. Verification should succeed only if the proof is valid under the system’s rules.

The verifier typically needs to know what is being asserted and which public values the proof concerns. Those are called public inputs. The witness remains private. In a blockchain application, public inputs might include a transaction commitment or a state root; the exact inputs depend on the protocol.

This is a conceptual description, not a recipe for creating cryptography. Practical proof systems involve precise mathematical definitions, and developers use established implementations rather than inventing their own.

What makes a proof zero-knowledge and trustworthy?

A proof system is commonly assessed against three properties. Completeness means an honest prover with a valid witness can convince the verifier. If the claim is true and the system is used correctly, verification should accept the proof.

Soundness means a dishonest prover should not be able to convince the verifier that a false claim is true, except with a very small probability or by breaking the system’s security assumptions. Soundness matters because a proof that accepts fabricated claims is not useful evidence.

Zero knowledge means that verification should reveal no additional information about the witness beyond what the claim and public inputs already reveal. In formal cryptography, this is expressed by showing that a simulated proof can be generated without the secret witness and is indistinguishable from a real one. That technical definition is stronger and more precise than simply saying “the data is private.”

These properties rely on the proof system being correctly designed and implemented. A bug in the circuit, verifier, wallet, or application can undermine the intended guarantees. So can an incorrect statement: a proof may be valid evidence for the wrong condition if developers encode the rules badly.

When evaluating a ZK application, ask what exact statement is proven, which inputs are public, and what assumptions make the proof secure. The phrase “uses zero knowledge” alone does not answer those questions.

What is the difference between SNARKs and STARKs?

A zero-knowledge proof describes a privacy property; zk-SNARK and zk-STARK describe particular families of proof systems. The names indicate different technical designs and trade-offs rather than two interchangeable settings.

A zk-SNARK is generally designed to produce short proofs that can be checked efficiently. Some SNARK systems require a trusted setup: a preparation process that creates public parameters. If secret setup material is not destroyed or handled as intended, it may create a security risk. Other systems avoid this kind of setup or use different assumptions, so the details must be checked for the specific protocol.

A zk-STARK uses a different construction and is commonly associated with transparent setup assumptions and resistance to attacks by future quantum computers under its stated assumptions. STARK proofs can be larger than some SNARK proofs, which can affect storage or verification costs. Actual performance varies with the implementation and the computation being proved.

Neither label is a blanket security rating. Proof size, proving time, verification cost, setup requirements, cryptographic assumptions, and implementation maturity all matter. Systems also differ in how they represent computations and whether their proof can be verified directly by a blockchain.

For users, the practical question is not just “SNARK or STARK?” It is whether the specific system’s design, setup process, code, and threat model fit the task it claims to perform.

How are zero-knowledge proofs used on blockchains?

Blockchains can use ZK proofs to move some computation away from the base chain while still letting the chain check a result. A zero-knowledge rollup executes transactions off-chain, then submits a proof that the resulting state follows the rollup’s rules. The base chain verifies the proof rather than re-executing every transaction in full.

This can help a blockchain process activity more efficiently, but it does not make computation free. Someone must generate the proof, and users may still pay for data publication, verification, or other network operations. Costs and throughput depend on the proof system, rollup design, activity level, and base-chain conditions.

The term “zero-knowledge rollup” can also be misleading if read as a promise of transaction privacy. Many rollups use ZK proofs mainly to validate state transitions. Transaction data may still be published so other participants can reconstruct the rollup’s state. In that design, the proof improves verification or scaling, while the activity itself is not necessarily confidential.

A privacy-focused blockchain or application may use proofs differently—for example, to show that a payment is valid without disclosing certain transaction details. What is hidden depends on the design. Addresses, timing, network activity, or other metadata may remain visible, and the system may still have public rules or limits.

When comparing projects, check whether ZK is used for scaling, privacy, identity, or another purpose. Those uses have different guarantees.

Can ZK proofs protect identity and personal data?

ZK proofs can support selective disclosure: a person proves a limited fact about a credential instead of handing over the whole document. For instance, a service might need confirmation that a credential meets a requirement but not the holder’s full identity details. In a properly designed system, a proof can establish the condition without exposing unrelated fields.

That does not mean the proof system issues or validates the original credential by itself. Someone must establish that the credential is genuine, define which issuer or data is accepted, and ensure that it has not expired or been revoked when that matters. The application also needs to connect the proof to the right person or account without exposing more information than necessary.

ZK proofs can also help demonstrate facts about data, such as knowing a secret that matches a public commitment or meeting a rule without revealing the underlying values. A commitment is a cryptographic way to bind to a value while keeping it hidden; a proof can then show that a computation involving the committed value meets specified rules.

These methods can reduce unnecessary disclosure, but they do not guarantee complete anonymity. A service may collect other identifying information, and repeated use of the same credential or identifier may make activity linkable. The claim being proven can itself reveal sensitive information.

Privacy depends on the entire process: data collection, credential issuance, proof generation, verification, and how the service stores or links records.

How are ZK proofs different from encryption, hashes, and signatures?

A ZK proof is not encryption. Encryption transforms information so that only someone with the right key can read it; a zero-knowledge proof lets a verifier check a claim without receiving the hidden information. A system may combine encryption and ZK proofs, but they solve different problems.

It is not the same as hashing, either. A hash produces a fixed-length fingerprint of input data. A proof can establish a fact about data, potentially including data represented by a hash, without disclosing the data itself. Hashes often appear inside commitments or proof systems, but a hash alone does not prove that a claim is correct.

Nor is a ZK proof simply a digital signature. A signature can show that a particular key signed a message, subject to the signature scheme’s assumptions. A ZK proof instead demonstrates that a statement satisfies specified rules. Some systems combine signatures with proofs—for example, to prove a property of a signed credential while withholding some fields.

Tool Main purpose What it establishes
Encryption Keep data unreadable to unauthorized parties A key holder can recover the protected data
Hash Create a data fingerprint Whether data matches a particular digest
Digital signature Authenticate a message or approval A signing key authorized the signed content
ZK proof Prove a defined claim privately The claim holds, without revealing the witness

Choosing the right tool depends on the information and guarantee an application needs.

What are the limits and risks of zero-knowledge proofs?

ZK proofs do not remove every privacy or security risk. First, a proof can establish only the statement encoded by its rules. If those rules contain an error, the proof might faithfully verify a result that does not match what users think the system promises. Clear documentation should explain the claim in ordinary terms as well as in technical detail.

Second, generating proofs can require significant computation, memory, or specialized infrastructure. This can affect speed, cost, and accessibility. Verification may be cheaper, but the total system still has operational expenses and dependencies.

Third, the design may rely on cryptographic assumptions or a setup process. Users should be able to learn what the system assumes, how any setup was conducted, and whether the implementation has been independently reviewed. An audit can find issues, but it cannot prove that software is bug-free or guarantee future safety.

Finally, a valid proof does not necessarily hide surrounding activity. Public transactions can expose timing, amounts, addresses, or patterns; an application may also collect account, device, or identity data. Reusing identifiers or linking an account to a real-world profile can reduce privacy even when the proof itself is zero-knowledge.

Treat ZK as one privacy or verification technique within a larger system. Check what is public, who operates the components, how keys and data are handled, and what happens if a service is unavailable or compromised.

How should you evaluate a zero-knowledge application?

Before relying on a ZK-based app or blockchain feature, identify the concrete guarantee it offers. Do not assume that the term means your identity, transactions, or account activity are hidden. Review the system’s description of the statement being proven, the private witness, the public inputs, and any data that is still published or collected.

A practical checklist:

  • Purpose: Is the proof used for scaling, privacy, identity, or another function?
  • Disclosure: Which fields, transaction details, and metadata remain visible?
  • Rules: What exact condition does the proof verify, and who defines it?
  • Assumptions: Does the system require a trusted setup or rely on specific cryptographic assumptions?
  • Implementation: Is the code independently reviewed, and are limitations or known issues documented?
  • Operations: Who generates proofs, stores data, and maintains the verifier? What happens if those services fail?

For a user-facing service, consider whether it asks for data that the proof is supposed to make unnecessary. For a blockchain, check whether transaction data is public even when state changes are verified with ZK proofs. For developers, use well-reviewed libraries and follow the proof system’s established specifications instead of designing custom cryptography.

A sound decision comes from the system’s actual properties, not its label. ZK proofs can make verification more private or efficient, but users still need to understand what is being proved and what remains exposed.

Frequently asked questions

Do zero-knowledge proofs make transactions anonymous?

No. A zero-knowledge proof can demonstrate that a claim is true without revealing the private information behind it, but it does not automatically hide every detail of an interaction. A blockchain transaction may still expose its timing, size, or public addresses, depending on the system.

Is every blockchain that uses ZK private?

No. Zero-knowledge is a property of a proof, not a blockchain or product by itself. A network or application may use ZK proofs for privacy, scaling, or another purpose, and its security depends on the design and implementation.

How does a verifier check a zero-knowledge proof?

A prover creates a proof using private data and a claim to be checked; a verifier checks the proof against the claim and any public inputs. The verifier should learn that the claim follows, not the hidden data used to establish it.

Is a zero-knowledge proof the same as a hash?

No. A hash is a fixed-length fingerprint of data, while a zero-knowledge proof demonstrates that a statement about data is true without disclosing the data. Systems can use hashes inside a proof, but the two tools have different jobs.

Are zero-knowledge systems automatically secure?

Potentially, but the label alone is not a guarantee. Look for clear information about what is hidden, what remains public, the proof system and its assumptions, any setup process, and independent security review. A ZK design can still have bugs or leak information through surrounding systems.

Keep reading

Related guides

All blockchain guides

Blockchain · Explainer

What Are zk-SNARKs? How Zero-Knowledge Proofs Work

A zk-SNARK lets someone prove that a computation or claim is valid without revealing the private information behind it. Learn what the acronym means, how proof generation and verification work, and where the technology’s limits and risks lie.

Blockchain · Explainer

What Is Crypto Mining? How Proof of Work Works in 2026

Crypto mining is the process that lets proof-of-work networks such as Bitcoin order transactions and secure their blockchains. Learn how miners compete, how rewards work, what equipment and costs matter, and why mining is different from staking.

Token · Explainer

How Does Crypto Mining Work? Proof of Work Explained

Crypto mining is the competition that lets proof-of-work networks order transactions, add blocks and issue rewards without a central operator. Learn how hashing works, what miners earn, what equipment costs and how mining differs from staking.

Blockchain · Explainer

What Is a zkEVM? A Plain Guide to Zero-Knowledge EVMs (2026)

A zkEVM is a zero-knowledge proof system that can prove a program ran correctly on the Ethereum Virtual Machine, letting a network process transactions off the main chain and post a short proof back. This guide explains what that means, how it works, and what to check before relying on one.

Blockchain · Chain guide

What Is WAX? A Guide to the WAX Blockchain and WAXP

WAX, short for Worldwide Asset eXchange, is a blockchain built for NFTs, games and digital collectibles, with the WAXP token at its centre. This guide covers how it works, what WAXP does and what to check before you use it.