Key takeaways
- A zero-knowledge proof lets one party prove a statement is true without revealing the underlying data, and the formal idea dates to a 1985 academic paper.
- A full zero-knowledge proof satisfies three properties at once: completeness, soundness, and zero-knowledge, with the general definition allowing tiny error terms and perfect completeness as the stronger guarantee.
- SNARKs offer small proofs and fast verification but often need a trusted setup, while STARKs need no setup and resist quantum attacks at the cost of larger proofs.
- STARK scaling is not symmetric: proving time grows quasi-linearly, roughly n log n with the computation, while verification grows only polylogarithmically, which means a polynomial in the logarithm that STARK 101 materials put on the order of log squared, so the two sides scale very differently.
- Validity rollups batch many transactions off-chain, post one proof that Ethereum verifies for roughly 500,000 gas, and publish enough data, either transaction data or state differences, to reconstruct state.
- The label is misleading: most rollups called ZK rely on validity proofs that are often not even zero-knowledge, and Starknet's FAQ confirms its STARK proofs currently are not, while transaction confidentiality is a separate matter again.
Imagine you want to prove you are old enough to enter a venue, but you do not want to hand over your full ID with your home address, birth date, and document number printed on it. What you really want is to prove one narrow fact, that you are over a certain age, while keeping everything else private. That gap between proving a statement and exposing the data behind it is exactly what a zero-knowledge proof is built to close.
Zero-knowledge proofs sound like advanced mathematics, and underneath they are. But the core idea is simple and has been around since 1985, long before blockchains existed. In crypto today the term shows up constantly, attached to rollups, privacy coins, identity systems, and voting tools. It is also one of the most misunderstood phrases in the whole space, because the name promises something it does not always deliver. This guide walks through what a zero-knowledge proof actually is, the different flavors that exist, where it is used, and the honest tradeoffs you should keep in mind.
The one-sentence definition
A zero-knowledge proof is a method by which one party, called the prover, can convince another party, called the verifier, that a statement is true without revealing any information beyond the fact that the statement is true. That is the definition used across cryptography, and it traces back to a 1985 academic paper by Shafi Goldwasser, Silvio Micali, and Charles Rackoff titled "The Knowledge Complexity of Interactive Proof Systems." That work introduced the formal idea and later earned its authors major recognition in computer science.
The key word is "without." Plenty of systems can prove a statement. A bank statement proves you have a balance, but it also reveals the exact number, your account, and your transaction history. A zero-knowledge proof aims to strip all of that away and leave only the single bit of truth you need to share. In practice that means you can prove you know a password without sending the password, prove a batch of transactions was processed correctly without re-sending every transaction, or prove you are a unique human without revealing who you are.
The three properties every proof must have
According to the standard definition, a protocol only counts as a zero-knowledge proof if it satisfies three properties at the same time. These are worth understanding because they explain both the power and the limits of the technique.
Completeness
If the statement is true and both parties follow the rules honestly, the verifier accepts the proof. In the general definition used in cryptography, completeness allows a tiny margin of error, so an honest prover with a true claim succeeds with overwhelming probability rather than as an absolute certainty. Many practical systems go a step further and offer what is called perfect completeness, the stronger property under which an honest prover holding a true statement is always accepted, with no chance of rejection at all. Either way, completeness is the baseline that makes a proof system usable, and a well-designed system keeps any residual rejection chance so small that it does not matter in practice.
Soundness
If the statement is false, a cheating prover cannot trick an honest verifier into accepting it, except with a vanishingly small probability. This is the security guarantee. It is what stops someone from proving they processed transactions correctly when they actually stole funds, or proving they are over a certain age when they are not.
Zero-knowledge
If the statement is true, the verifier learns nothing beyond the fact that it is true. No part of the secret leaks out during the exchange. This is the privacy guarantee and the property that gives the whole family its name. It is also, as you will see later, an extra property that a proof can either have or lack, and plenty of real systems leave it out.
All three have to hold together for a protocol to earn the full "zero-knowledge proof" label. Drop soundness and you have a system that proves lies. Drop zero-knowledge and you still have a perfectly useful proof, just one that leaks data rather than concealing it. Weaken completeness too far and honest users get turned away for no reason. The mathematics behind real implementations exists to satisfy these properties while keeping any error terms negligibly small.
A simple analogy to make it click
Cryptographers often use a cave analogy. Picture a ring-shaped cave with a single entrance that splits into two paths, left and right, meeting at a locked door deep inside. The prover claims to know the secret word that opens that door. The verifier wants proof without learning the word.
The verifier waits outside while the prover walks in and picks a path at random. Then the verifier shouts which path they want the prover to come back out of. If the prover truly knows the secret word, they can always open the door and return by the requested path, no matter which one they originally entered. If they do not know the word, they can only come back the correct way if they happened to guess right, a coin flip each time.
Run this once and a lucky cheater has a fifty percent chance of fooling the verifier. Run it twenty times in a row and the odds of a fraud getting every round right become astronomically small. The verifier ends up convinced the prover knows the word, yet never hears the word itself. That is completeness, soundness, and zero-knowledge working together in a story you can picture. Real proofs replace the cave with number theory, but the shape of the argument is the same.
Interactive versus non-interactive proofs
The cave example is interactive. It requires repeated back-and-forth rounds between the prover and the verifier, and the proof only convinces the person who was present for those rounds. That is a problem for blockchains, where thousands of people need to check the same proof and nobody can afford endless chatter.
The solution is the non-interactive proof. Here the prover produces a single, self-contained proof that anyone can check later, with no live conversation required. A shared setup or a clever use of cryptographic hashing replaces the verifier's random challenges. This is the form that matters for crypto, because a rollup operator can post one proof to a network and every node can verify it independently, at any time, without talking to the operator. Non-interactive proofs are what make the on-chain use cases practical.
SNARKs and STARKs, the two main families
When you read crypto documentation you will run into two acronyms over and over: ZK-SNARK and ZK-STARK. Both are non-interactive proof systems used to attest that a computation was carried out correctly, and both are widely used. They differ in meaningful ways.
SNARK stands for Succinct Non-Interactive Argument of Knowledge. The headline features are small proof sizes and fast verification, which keeps costs down when the proof lands on a network like Ethereum. The main catch is that many SNARK systems require a trusted setup, a one-time ceremony that generates secret parameters. If the secret from that ceremony is not destroyed, someone holding it could in theory forge proofs. Well-run ceremonies spread the secret across many participants so that it stays safe as long as a single honest participant deleted their piece, but the requirement is still a wrinkle worth knowing.
STARK stands for Scalable Transparent Argument of Knowledge. The transparent part is the selling point, because STARKs need no trusted setup at all. They rely on hash functions rather than the elliptic-curve math common in SNARKs, which also makes them more resistant to future quantum computers. The tradeoff is larger proof sizes, which can mean higher on-chain costs for the data. Ethereum's documentation notes that verifying a STARK proof can carry even higher fees than a SNARK for this reason. The word "scalable" in the name actually points to a specific pair of scaling costs, and the important detail is that those two costs are not the same as each other. In StarkWare's original research and its STARK 101 teaching materials, proving time grows quasi-linearly with the size of the computation being proved, meaning roughly in proportion to the work itself plus an extra logarithmic factor, a relationship often written as n log n. Verification time grows far more slowly, only polylogarithmically. That word is easy to garble, so it is worth stating precisely. Polylogarithmic does not mean proportional to the logarithm. It means proportional to a polynomial in the logarithm, and the STARK 101 materials specifically put verifier work, and the proof size along with it, on the order of log squared, written as log squared of n, not plain log n. The practical upshot still holds: as the computation gets larger, the prover shoulders a cost close to the work itself while the verifier's cost stays comparatively tiny, since a power of the logarithm grows far slower than the work. Some shorthand descriptions, including Ethereum's own wording, blur this by saying both prover and verifier times grow only slightly, but the proving side and the verifying side scale on materially different curves, and that gap between them is precisely the point of the design.
It is tempting to turn these contrasts into a simple rule that one family always scales better than the other, but the real picture depends on the specific construction, the workload, the number of public inputs, and the implementation. Groth16, a widely used SNARK, is a good counterexample. It produces a fixed-size proof of three group elements and verifies with three pairings plus a small amount of work tied to the public inputs, so its verification cost stays essentially constant no matter how large the proved computation grows. Other SNARK constructions behave differently, and some newer ones trade a little proof size for better prover scaling. Treat the table below as a guide to common tradeoffs between the two families, not a law that holds for every system.
Neither family is strictly better. The choice depends on what a project values more, the smaller footprint and maturity of many SNARKs or the setup-free transparency and quantum resistance of STARKs. The table below lays the typical differences side by side.
Where zero-knowledge proofs show up in crypto
The theory is decades old, but the reason the term is everywhere now is that blockchains gave it two prominent uses, scaling and privacy. There are a few others worth knowing too.
Scaling with rollups and validity proofs
Scaling is the use that put these proofs on most people's radar. A ZK-rollup is a type of Layer 2 network that bundles many transactions together, executes them off the main chain, and then posts a single validity proof back to the base layer. Instead of re-running every transaction, the base chain simply verifies the proof. If the proof checks out, the entire batch is accepted as correct.
The economics are the whole point. According to Ethereum's own documentation, verifying a zero-knowledge proof on the main network costs on the order of 500,000 gas. That sounds like a lot until you compare it to the cost of re-executing the hundreds or thousands of transactions the proof stands in for. Verification is far cheaper than re-execution, and that gap is what lets a rollup push much more activity through the same base-layer capacity. The result is lower fees per transaction for users while still inheriting the security of the underlying chain.
These rollups also differ from their cousins, optimistic rollups, in how quickly funds settle. Optimistic rollups assume batches are valid and allow a challenge window during which someone can dispute them, which introduces a waiting period before withdrawals finalize. A validity rollup instead proves validity up front with cryptography. As Ethereum's documentation puts it, there are no delays when moving funds back to the base chain because exit transactions execute once the rollup contract verifies the validity proof. That faster finality is a real advantage for anyone who does not want to wait.
Privacy coins and shielded transactions
The other famous use is confidentiality. Privacy-focused systems use zero-knowledge proofs to let users prove a transaction is valid, that the money exists and is not being double spent, without revealing the sender, receiver, or amount. This is the mechanism behind shielded transactions in several privacy coins and privacy layers. The proof convinces the network that the rules were followed while keeping the details encrypted. This is a case where the zero-knowledge property is genuinely being used to hide information, which is not true of most scaling rollups.
Identity and proof of personhood
Zero-knowledge proofs are a natural fit for digital identity. You can prove you are a citizen, over a certain age, or a unique individual without handing over the documents that establish it. Some national digital identity programs and proof-of-personhood systems already use these techniques so that a person can verify an attribute about themselves while disclosing as little as possible.
Voting and other coordination
Some on-chain voting and funding systems use zero-knowledge tooling to resist bribery and collusion. The idea is that a voter can prove their vote was counted correctly without being able to prove to a briber how they voted, which removes the incentive to buy votes. These are more specialized but show how broad the toolkit is.
How a rollup proof travels, step by step
It helps to trace the full path a proof takes inside a rollup, because it makes the abstract idea concrete. The operator collects a batch of user transactions and runs them on a separate virtual machine off the main chain. From that execution it computes a new state root, which is a compact cryptographic summary, usually a Merkle tree hash, of everyone's updated balances. Then it generates a validity proof, a SNARK or STARK, that mathematically attests the new state root really is the result of applying that batch of transactions correctly.
The operator posts the proof and the new state root to a verifier contract on the base chain. That contract checks the proof. If it passes, the chain accepts the new state as final. Crucially, the rollup also publishes enough data to the base layer for anyone to reconstruct its state independently rather than trusting the operator to tell them what happened. Rollups differ in what that data is. Some post compressed transaction data, historically as calldata and now more often in dedicated data blobs, while others, such as Starknet, publish compressed state differences instead. In both cases the published information is sufficient to rebuild the rollup's state. Verification plus that published data is what lets the rollup borrow the base chain's security instead of inventing its own.
The biggest misconception: most "ZK" rollups are not actually zero-knowledge
This is the single most important thing to get right, and it trips up even experienced people. There are really three separate ideas hiding behind the "ZK" label, and they tend to get collapsed into one.
The first is the validity proof. A rollup posts a proof that a batch of transactions was executed correctly. That is a computational integrity guarantee, and it is what every validity rollup actually relies on. The second is the zero-knowledge property itself, the formal guarantee that the proof reveals nothing beyond the truth of the statement. Here is the surprise: a validity proof does not have to be zero-knowledge, and many are not. Starknet's own FAQ states this directly, explaining that its STARK proofs are currently not zero-knowledge, because zero-knowledge is an additional property layered on top of proving computational integrity, and the network has not been built to provide it. The same FAQ goes further and says that most so-called ZK-rollups are not really zero-knowledge, and that the confusion comes from mixing up validity proofs, which assure correctness, with zero-knowledge proofs, which additionally keep information hidden. The third idea is transaction confidentiality, meaning whether your sender, receiver, and amount are hidden from the public. That is different again.
So on a typical rollup labeled ZK, your transactions are just as public as they are on the base chain, visible to anyone with a block explorer. The proof keeps the chain honest and cheap to verify. It does not, on its own, make the proof zero-knowledge, and even a genuinely zero-knowledge proof would not automatically make your transaction data confidential. Those are three distinct design choices, and a project can make any combination of them.
In other words, using a mainstream validity rollup to save on fees does not shield your transactions from view. It makes them cheaper and faster, not secret. Real confidentiality is a separate and deliberate effort. It requires encryption or a dedicated privacy layer built specifically for that purpose. Some projects are building shielded or privacy-preserving rollups, and some validity proofs are built to be genuinely zero-knowledge, but neither is the default. If anyone tells you that moving to a ZK network automatically makes you anonymous, they are confusing ideas that are far clearer when kept apart.
The honest tradeoffs and limits
These proofs are powerful, but they are not magic, and treating them as a guarantee of safety or privacy is a mistake. A few limits deserve attention.
Trusted setup risk. As noted, many SNARK systems depend on a one-time ceremony that produces secret parameters. If that secret is not properly destroyed, the soundness guarantee can be undermined. Reputable projects run elaborate multi-party ceremonies to minimize this risk, and STARKs avoid it entirely, but it is a real consideration when you evaluate a system.
Complexity and bugs. The proofs themselves may be mathematically sound, yet the software that generates and verifies them, the circuits and the smart contracts, is written by humans and can contain bugs. A flaw in a verifier contract or in the way a circuit encodes the rules can break the guarantees in practice even when the underlying math is correct. The cryptography being trustworthy does not make the implementation automatically trustworthy.
Centralized operators. Validity rollups vary in how decentralized they are. Proof verification happens on-chain and is trust-minimized, but the sequencer that orders transactions may be run by a single company. That operator usually cannot steal funds, because invalid state transitions will not produce a valid proof, but it may be able to censor or delay transactions. Decentralizing sequencers is an active area of work across the industry.
Marketing versus reality. Not everything labeled "ZK" uses genuine validity proofs, and most that do are not actually zero-knowledge in the strict sense. A true validity rollup settles with a cryptographic validity proof posted on-chain. Some projects borrow the label while relying on other mechanisms, and others use the "zero-knowledge" tag even though their proofs only prove correctness. When a project claims to be zero-knowledge, it is reasonable to ask whether there is an actual on-chain verifier contract checking real proofs, and whether the zero-knowledge property is even part of the design or just part of the branding.
How to think about all this as a regular user
You do not need to understand elliptic curves or polynomial commitments to use a rollup, any more than you need to understand how a card network authorizes a payment to swipe a card. For most people the practical takeaways are straightforward.
If you are using a validity rollup mostly to save on fees and get faster settlement, that is a legitimate and common reason, and you can treat the underlying proof system as plumbing that works. Just do not assume it hides your activity. If privacy is your actual goal, look specifically for tools that promise confidentiality and understand exactly what they conceal and what they still reveal, because a "zero-knowledge" label is not the same as "private," and often is not even the same as a proof that carries the zero-knowledge property.
To make the fee angle concrete, it can help to play with a simple hypothetical. Suppose cheaper settlement on a rollup frees up a small amount each month that you choose to set aside rather than spend. The tool below lets you adjust a starting amount, a monthly amount, an assumed annual return, and a number of years to see how such a habit might add up. Treat it strictly as an illustration of compounding, not a promise about rollup fees or any investment return, since both can move in either direction.
The point is not the exact figure, which depends entirely on inputs you cannot know in advance. The point is that the practical value of a scaling technology often shows up as small, repeated savings rather than a single dramatic moment. Validity proofs are what make that steady cost reduction possible on networks that would otherwise be far more expensive to use.
When you evaluate any project that leans on this technology, a few plain questions go a long way. Does it post real validity proofs to a public verifier contract? Are those proofs actually zero-knowledge, or do they only prove correctness? Is there a trusted setup, and if so was the ceremony run openly with many participants? Is enough data published, whether transaction data or compressed state differences, for the state to be independently reconstructed? How centralized is the operator, and what can that operator actually do? None of these require deep math to ask, and the answers tell you far more than a buzzword ever will.
Zero-knowledge proofs, and the broader family of validity proofs they belong to, are among the genuinely important ideas in modern cryptography. They let systems prove correctness, and in some designs protect information at the same time, a combination that used to feel contradictory. In crypto they already underpin a range of scaling systems and a growing set of privacy and identity tools, and their role is widening rather than shrinking. The best way to keep your footing is to remember the core promise and its limit at once: a validity proof can show a statement is true without re-running the work behind it, a zero-knowledge proof can do so without revealing why, and whether your own data stays private depends entirely on what the system was actually designed to hide.
Crypto punishes guesswork faster than any market on Earth.
Volatility is survivable. Not knowing what you own is not. The Financial IQ Test measures your actual money knowledge, from market basics to risk math, so your conviction is built on understanding instead of a feed full of hype.
Test your Financial IQQuestions people ask
Does using a ZK-rollup make my transactions private?
Usually no. On most of these rollups your transactions are as public as they are on the base chain and visible in a block explorer. The proofs involved are validity proofs, which guarantee the batch was executed correctly. They are often not even zero-knowledge in the strict sense; Starknet's FAQ says its STARK proofs currently are not. And even a genuinely zero-knowledge proof would not by itself hide your transaction details. True confidentiality requires a dedicated privacy design.
What is the difference between a ZK-rollup and an optimistic rollup?
A validity rollup proves each batch is valid up front with a cryptographic proof, so withdrawals can finalize once that proof is verified. An optimistic rollup assumes batches are valid and allows a challenge window to dispute them, which introduces a waiting period before funds settle back to the base chain.
What is a trusted setup and why does it matter?
Many SNARK systems generate secret parameters in a one-time ceremony. If that secret is not destroyed, someone holding it could in theory forge proofs, which would undermine soundness. Projects run multi-party ceremonies to reduce the risk, and STARKs avoid a trusted setup entirely by using hash functions instead.
Do STARK proving and verification times scale the same way?
No, and this is a common simplification to avoid. In StarkWare's research and STARK 101 materials, proving time grows quasi-linearly with the size of the computation, often written as n log n, while verification time grows only polylogarithmically. Polylogarithmic means a polynomial in the logarithm, not the logarithm itself; those materials put verifier work on the order of log squared. Either way the verifier's cost stays comparatively small as the computation grows, even though the prover's cost tracks close to the work itself.
Does completeness mean a valid proof is always accepted?
Not always in the strict sense. The general cryptographic definition allows a tiny completeness error, so an honest prover with a true claim succeeds with overwhelming probability. Systems with perfect completeness go further and guarantee acceptance every time. In practice any residual rejection chance is kept so small that honest users are not affected.
Is a validity proof the same as a zero-knowledge proof?
Not necessarily. A validity proof shows that a computation was performed correctly, which is a computational integrity guarantee. Zero-knowledge is an additional property on top of that, meaning the proof reveals nothing beyond the truth of the statement. Starknet's FAQ explains that its STARK proofs are validity proofs and currently are not zero-knowledge, and that most rollups marketed as ZK are in the same position. The two terms should not be treated as interchangeable.
Keep reading

Bitcoin Explained for Normal People (2026 Edition)

The Crypto Scam Field Guide: Every Major Con and How to Spot It

Crypto Taxes in 2026: What You Actually Owe the IRS
The Flourish Letter
One smart money idea each week, charts included. Join free and get the printable 2026 Money Calendar in your welcome email.
