Research/Education/Zcash/What Are zk-SNARKs? The 4 Words in the Name, One at a Time
# Zcash

What Are zk-SNARKs? The 4 Words in the Name, One at a Time

BloFin Academy08/30/2026

The name is an acronym, and it hides 4 separate ideas. Most explanations treat a zk-SNARK as one thing, which is a large part of why they are hard to follow. It is four properties. Each one solves a different problem, and each one had to be worked out on its own.

So what follows takes them one at a time. Zero-knowledge, then succinct, then non-interactive, then argument of knowledge. For each one, the problem comes first and the property comes second, because none of the four makes much sense until you can see what would go wrong without it.

Why proving anything on a public chain is hard

Start with the situation, not the maths. A network of strangers has to agree that a payment is valid. Nobody is in charge, and agreement is reached by proof of work rather than by authority. Every participant checks for themselves. That works well when everything is public, and it stops working the moment anything is hidden.

On a transparent chain, checking is easy because everything is visible. A node can see which coins moved, where they came from, then whether they were already spent. If you have read about how nodes, miners and wallets divide the work, that checking job is what a node spends its time on.

Now hide the amounts and the parties. The node still has to say yes or no. It cannot look, so it needs something else to look at.

That something is a proof. But an ordinary proof gives the game away. If you prove a payment is valid by showing the payment, you have not hidden anything.

So the requirement is strange on its face. The network needs to be convinced without being shown. And it needs that in a form small enough to store forever. It has to be fast enough to check thousands of times, and complete enough that nobody has to ask a follow-up question.

Nothing about that is one idea. It is four, and they were solved separately over about thirty years. The people who build these systems are blunt about the complexity: "constructions of zk-SNARKs involve a careful combination of several ingredients; fully understanding how these ingredients all work together can take a while" (source: Electric Coin Company).

You do not need the ingredients. You need to know what each of the four words is buying.

Zero-knowledge: proving without showing

The first word is the one everybody has heard. It has a precise meaning and it is narrower than the marketing version. Zero-knowledge does not mean nothing is revealed. It means nothing is revealed beyond the one fact being proved.

Two roles matter here. One side has a secret and wants to prove something about it. That side is the prover. The other side has to be convinced. That side is the verifier. A review of the field puts the whole idea in one sentence: a zk-SNARK "lets one party, the prover, prove to another party, the verifier, that a statement about some privately-held information is true without revealing the information itself" (source: arXiv).

Zcash's own specification says the same thing in its own vocabulary. A zero-knowledge proving system "allows proving a particular statement, dependent on primary and auxiliary inputs, in zero knowledge", meaning "without revealing information about the auxiliary inputs other than that implied by the statement" (source: Zcash Protocol Specification).

That last clause is the one to hold on to. Other than that implied by the statement. If the statement itself gives something away, zero-knowledge will not save you. The property protects the inputs, not the claim.

Here is a small example, borrowed from the teaching literature and far away from money. Say you want to prove that two objects are different colors to somebody who cannot see color. You can do it, and you can do it without ever telling them which object is which. That is the shape of the thing: a real conviction, carrying no extra information.

What Zcash proves with it, and the exact list of claims a shielded spend makes, is our guide to How Zcash privacy works's subject. This article stays on the tool rather than the use.

Succinct: the proof has to be small

The second word is where theory meets engineering, and it explains why any of this ended up inside a real system. Succinct means the proof is short and the check is fast. That sounds like a nice-to-have rather than a requirement. It is the opposite. Without succinctness, none of this goes on a chain at all.

Think about what a chain is. Every node stores it. Every new node downloads it from the beginning. Anything you put in there, you put in there for everyone, forever. A proof that ran to a megabyte would be a proof nobody could afford to keep.

Then think about checking. A node does not check one proof. It checks every proof in every block it ever sees, and it does that on ordinary hardware. If verifying took a second each, a busy chain would stall.

Succinctness solves both at once. The proofs are "short and easily verifiable proofs of the truth of a statement" (source: Wikipedia), and short here is genuinely small: a few hundred bytes rather than a few hundred kilobytes.

The part that surprises people is what the size does not depend on. A proof about a tiny statement and a proof about an enormous one come out around the same size. The statement can be a whole program with thousands of steps. The proof stays small, and the check stays fast.

That is why the same tool shows up far outside privacy. Rollups use it to prove that a batch of transactions was processed correctly, so the main chain can accept the result without redoing the work. Our explainers on why Ethereum needs layer 2 networks and on how a zkEVM works cover that use, which is a different job from the one Zcash gives it.

The cost has to go somewhere, and it does. Making the proof is expensive even though checking it is cheap. That asymmetry is deliberate, and what it means for a wallet is a separate topic covered in our guide to Zcash proof generation and wallet cost.

Non-interactive: nobody is around to ask questions

The third word fixes a problem you would probably never guess at, because it is a problem about timing rather than about secrecy. The earliest zero-knowledge protocols were conversations. The prover made a claim. The verifier asked a question. The prover answered. Round after round, until the verifier was finally satisfied.

That works fine between two people who are both online. It does not work on a chain at all.

Consider who is verifying a Zcash transaction. Not one person. Every node that ever validates that block, including nodes that will not exist for another decade. The spender is long gone. There is nobody to ask.

So the proof has to be a one-way message. Written once, checked forever, by anyone, with no reply. That is what non-interactive means: "the proof itself is a blob of data that can be verified without any interaction from the prover" (source: Consensys).

This is the property that makes the whole thing a chain technology rather than a laboratory curiosity. An interactive proof cannot be stored. A non-interactive one is just data, and data is what a block is made of.

It also changes who has to be trusted, and in which direction. In a conversation. The verifier's questions have to be unpredictable, or the prover can cheat by preparing answers in advance. Removing the conversation means removing the questioner, and the unpredictability has to come from somewhere else. How different systems arrange that is where they mostly differ from each other, and Zcash's current arrangement is our guide to Zcash halo2's subject rather than this one's.

Argument of knowledge: knowing it, not just that it exists

The fourth word is the subtlest of the four, and it is the one most explanations skip over entirely. There is a real difference between proving that something exists somewhere and proving that you personally have it. Money depends on that difference, and so does every claim a wallet ever makes.

Start with the weaker claim. You could prove that somewhere in the world there is a key that opens a particular lock. True, probably. Also useless, because it says nothing about you.

Now the stronger claim. You prove that you know the key. Not that one exists. That you have it today and could use it. The primary source draws the line exactly there: in a proof of knowledge "the prover can convince the verifier not only that the number exists, but that they in fact know such a number, again, without revealing any information about the number" (source: Zcash).

Apply that to a payment. A shielded transaction has to establish that the spender controls the funds. Proving that some valid coin exists on the chain proves nothing at all, because valid coins obviously exist. The claim has to be about the spender.

Then there is the other half of the phrase, and it is the honest part. It says argument, not proof. Those are different words on purpose.

A proof, in the strict sense, holds against any opponent whatsoever, including one with unlimited computing power. An argument holds against opponents with realistic amounts of computing power. That is a weaker guarantee, and it is the guarantee almost all practical cryptography runs on, including the public and private key pairs behind every wallet you have ever used.

Calling it an argument is a disclosure rather than a hedge. The name itself tells you the security rests on certain problems being hard, not on them being impossible.

Where zk-SNARKs came from

The ideas here are considerably older than the coins that use them. Zero-knowledge proofs date back to academic work in the 1980s, and for a long stretch afterwards they stayed academic. They were too slow, too big, or otherwise too chatty to put inside anything that had to run in the real world.

The acronym itself arrived later. It was introduced in a 2012 paper by Nir Bitansky, Ran Canetti, Alessandro Chiesa and Eran Tromer (source: Chainlink). That paper gave the field the name it still uses.

The bridge to money came from a project called Zerocash, which set out to build "a privacy-preserving version of Bitcoin", on the grounds that on Bitcoin "every user's payment history is recorded in public view on the block chain, and is thus readily available to anyone" (source: Zerocash). That critique still holds, and the workarounds people use instead are covered in our guide to Bitcoin privacy basics. The project became Zcash.

That order matters for understanding what Zcash is. The privacy problem was identified first. The proving system was picked as the way to solve it. Zcash was built around the proofs from the start rather than adding them later, which is why the design departs so far from the Bitcoin transaction model it started from. Our guide to what Zcash is covers that lineage.

Since then the same tool has spread far past its first use, into scaling, into identity, into almost anything where somebody needs to check work without repeating it. The privacy application came first, though, and it remains the one with the longest live track record. That history is worth knowing because it explains an oddity people often notice: a technology now associated mainly with scaling was built to solve a privacy problem, and the scaling use arrived years afterwards.

Limits of a zk-SNARK

Four properties is a great deal of engineering, and the result buys less than most summaries assume. Naming the gaps serves a reader better than another round of praise, so here are four specific things this tool does not give you and never claimed to.

It does not make a chain private. It proves statements. Whether that adds up to privacy depends on what gets published alongside the proof, on which parts of a transaction are hidden at all, and on what users actually do. Zcash publishes plenty that a proof never touches, and that is our guide to Zcash privacy leaks and metadata's subject.

It does not check that the statement is worth proving. A proof establishes that some claim is true. It says nothing about whether the claim was the right one to make. If the rule being proved is wrong, the proof will faithfully certify the wrong thing, and it will look perfect while doing it.

It does not remove trust, it moves it. You no longer have to trust the person paying you. You do have to trust that the mathematics is sound, that the software implementing it has no defects, and that the parameters were generated correctly. Those are real assumptions and they are not smaller than the ones they replaced, just different.

It is not the only way to do this. Other constructions exist, with different trade-offs around proof size, verification speed and setup requirements, and one explainer for a competing platform frames the question as how zk-SNARKs "differ from other zero-knowledge proofs like zk-STARKs or Bulletproofs" (source: Aleo). Choosing between them is an engineering decision rather than a discovery of the right answer.

None of that makes the tool weak. It makes it a tool. Anybody working out how much of their own activity is actually protected will get further from privacy basics than from any amount of proof theory.

Where you meet these outside Zcash

The construction started here and it did not stay here, and knowing where else it appears makes the idea concrete.

Scaling systems use it to compress work. A large amount of computation is performed off-chain, a proof is produced that it was performed correctly, and only the proof is published. Every node checks the proof instead of repeating the work, which is the same asymmetry that makes private payments viable.

Identity systems use it to prove attributes without disclosing them. Proving you are over an age threshold, or that you hold a credential, without revealing the underlying document is the textbook example and it is now shipping in real products.

Voting and auction systems use it to prove a result was computed correctly from inputs that stay sealed. The count is verifiable and the individual choices are not.

And bridging systems use it to prove one chain's state to another without either side trusting an intermediary.

The common shape across all four is worth naming, because it is the thing to recognize rather than any particular application. Somebody wants to establish that a computation was performed correctly, and somebody else wants to check that claim without seeing the inputs or redoing the work. Whenever those two requirements appear together, this family of constructions is the tool.

The three properties, in one place

The name packs four claims into an acronym, and it is worth having them stated together rather than across four sections.

Zero-knowledge means the proof reveals nothing beyond the truth of the statement. Not less detail. Nothing.

Succinct means the proof is small and quick to check, regardless of how much computation it is describing. This is what makes publishing one to a public network practical.

Non-interactive means the prover and the verifier never talk. The proof is produced once and anyone can check it later, which is a requirement rather than a convenience when the verifier is every node that will ever sync the chain.

And argument of knowledge means the prover actually holds whatever the statement is about, rather than merely establishing that such a thing exists somewhere.

Drop any one of the four and the construction stops being usable for this job. That is why the name is a mouthful, and it is a reasonable summary of what a decade of research had to deliver at once.

It is also why the term gets used loosely. A great deal of writing uses it for any proof system that hides something, and the family is broader than the acronym: constructions differ in proof size, verification cost, and whether they need a setup procedure at all. When a claim matters, the question worth asking is which construction rather than whether it is one of these, because the differences between members are larger than the property they share.

What they cost

Nothing about this is free, and three costs are worth stating alongside the properties.

Producing a proof is computationally expensive. The party constructing it does substantial arithmetic, which is why sending a private transaction takes noticeably longer than sending a public one and why the wait is worse on modest hardware.

The constructions are difficult to implement correctly. A circuit expresses a statement in a form the proving system can handle, and an error in that expression produces a system that proves the wrong thing while behaving normally. This is not hypothetical.

And they are hard to audit. Verifying that a circuit expresses what it is supposed to express requires expertise that very few people have, which means the assurance most users have rests on a small number of specialists rather than on broad review.

Those three are the honest counterweight to the properties above, and none of them is a reason not to use the technology. They are the reason to read a claim about a specific implementation rather than a claim about the mathematics.

Frequently asked questions

What does zk-SNARK stand for?

Zero-Knowledge Succinct Non-Interactive Argument of Knowledge. Each word is a separate property. Zero-knowledge means nothing is revealed beyond the fact being proved. Succinct means the proof is small and quick to check. Non-interactive means it is a single message with no back-and-forth. Argument of knowledge means the prover shows they know a secret rather than merely that one exists, under realistic assumptions about how much computing power an attacker has. All four had to be solved separately.

How do zk-SNARKs work in simple terms?

One side turns a claim and a secret into a short piece of data. Anyone can check that data against the public part of the claim and get a yes or a no. The check reveals nothing about the secret. The clever part is that checking stays fast and the data stays small even when the claim being proved is very large.

Who invented zk-SNARKs?

The underlying idea of zero-knowledge proofs comes from academic cryptography in the 1980s. The specific acronym was introduced in a 2012 paper by Nir Bitansky, Ran Canetti, Alessandro Chiesa and Eran Tromer. The first widespread deployment inside a currency grew out of the Zerocash project, which set out to build a privacy-preserving version of Bitcoin and became Zcash. The name and the underlying mathematics therefore have different origins, and the first real product has a third.

What are the disadvantages of zk-SNARKs?

Making a proof is far more expensive than checking one, so the cost lands on the sender's device. The security is computational rather than absolute, which is what the word argument signals. The system depends on correct setup parameters and on the implementation being free of defects. And a proof only certifies the statement it was given, so a badly chosen statement produces a perfectly valid proof of the wrong thing.

Is a zk-SNARK the same as encryption?

No, and the difference is worth keeping straight. Encryption hides data from anyone without a key, and someone with the key can read it. A proof does not hide or store the data at all. It is a separate object that lets a stranger confirm a claim about data they will never see. The two get used together, and they do different jobs.


Researched and written by the BloFin Academy editorial team with AI-assisted drafting. Primary sources are the Zcash protocol specification, the Zcash project's own zk-SNARK explainer, an Electric Coin Company technical post, a peer-reviewed review of zk-SNARKs on arXiv, a Consensys introduction, the Zerocash project site, and two reference pages. All facts independently verified against cited documentation current as of August 2026. what follows explains the proving system and deliberately leaves the setup question, the current construction, and proving costs to the articles that own them.