
Zero knowledge proofs sounds mystical, academic and a little bit untouchable. At least for me they were in this manner.
Most explanations either too easy or too complicated like:
- Stay at the “Ali Baba cave” level forever (don’t worry if you don’t know “Ali Baba cave”, I’ll explain it in this post)
- Or jump straight into elliptic curves and polynomial commitments
Neither builds a real and solid intuition.
Let’s fix it. No heave math at the beginning. No magic. No any vague metaphors.
We’re trying to build a clean and solid mental model of:
- What a proof actually is
- What can “Zero Knowledge” guarantee
- Why it works
- And why it’s important with some real life usecases
Before any touch to concepts like zkSNARKs or systems like Zcash and TornadoCash (TornadoCash was once the nightmare of Anti Money Laundering agencies).
What is a Proof in Computer Science?
in practice, a proof must convince someone that something is true.
In computer science, a proof is more precise:
A protocol between a prover and a verifier .
- The prover claim a statement is true
- The verifier checks the claim
Example:
Prover: “I know the password”
Verifier: “Prove it”
In a normal system, you prove that you know the password by revealing it. It works, but with a cost. It leaks the secret.
So the main question is that, is there any way to prove we have an information (like password) without revealing it?
The Core Problem: Proofs Usually Reveal Information
Let’s check some everyday proofs:
Example 1 (Password)
To prove you know the password:
- You type it
- The server checks it
Problem: The secret was revealed during the verification.

Example 2 (Bank Balance)
To prove that you can afford a car:
- you show your bank balance
Problem: You has revealed your financial details.
Example 3 (Age Verification)
To prove you’re over 18:
- you show you ID card
- It reveals your birthdate, address, ID number
- But the only thing needed was:
Is age ≥ 18?
Everything else was unnecessary information leakage.
This is where Zero Knowledge becomes powerful.
The Big Question
Can you prove:
“I know a secret that satisfying some condition”
Without revealing the secret itself?
This is Zero Knowledge. as you see the idea of Zero Knowledge is very easy.

The Ali Baba Cave: The Classic Zero-Knowledge Story
To understand zero knowledge intuitively, let’s look at famous “Ali Baba cave” example.
Imagine a circular cave shaped like a ring.
There’s an entrance that splits into 2 paths:
- Path A (left)
- Path B(right)

At the end of the cave, the 2 paths reconnect, but with a locked door can be opened with a secret number.
Only someone who knows the secret number can open the door.
The situation
Bob (the prover) claims:
“I know the secret and can open the door”
Alice (the verifier) does not trust him (she has trust issues).
So she wants proof, unless she can not sleep.
But Bob refuses to the secret number (or open the door in front of her, since it has the risk of secret leakage)
So how can Bob convince Alice?
The protocol
- Alice waits outside the cave
- Bob enters the cave and randomly chooses one path (A or B)
- Alice then enters and shouts from which path she wants Bob to return from
“Come out from path A!” or
“Come out from path B!”
now:
- If Bob actually knows the secret number, he can:
Open the door if necessary,
and exit from whichever path Alice requests
- If he does not know the secret:
He can only exit from the path he origianlly chose
He has a 50% chance of guessing correctly
Why Repetition Matters
If Bob is cheating, his chance for fooling Alice at each experiment is 50%.
So if they repeat the experiment 10 times, and in all Bob success the experiment the chance that he cheating would be:
(1/2)¹⁰ = 1/1024
that is about 1 in 1000
(After each successful round the chance that Bob is cheating becomes half)
After enough rounds, Alice becomes convinced. without seeing the secret.
She is convinced because after enough rounds, statistically it’s impossible for Bob to succeed without knowing the secret.

It’s very important to know that this protocol is working because Bob does not know which path Alice is going to choose.
So the randomness that Alice use to choose the path is why it’s working.
If the randomness Alice using is leaked, Bob can fool her. So randomness is the key.
The Three Properties (With Practical Meaning)
A zero-knowledge proof must satisfy three properties.

1- Completeness
If the statement is true, an honest prover can convince an honest verifier.
Example:
If you really know the password, verification should succeed.
2- Soundness
If the statement is false, a cheating prover cannot convince the verifier (except with tiny probability that is not practical in real world).
Example:
If you don’t know the password, you shouldn’t be able to fake it.
3- Zero Knowledge
The verifier learns nothing beyond the fact that the statement is true.
Example:
You prove you’re over 18.
The verifier learns:
- Yes → allowed
- No → denied
They do NOT learn:
- Your birthdate
- Your ID number
- Your address
Only the truth of the statement.
Mental Shift: Proving Knowledge of a Solution
Instead of proving:
“The password is 78%68Uifokman#”
You prove:
“I know a value such that hash(value) = stored_hash”
This will change the structure of the statements. You’re not proving the data.
you’re proving:
There’s a secret input that satisfies a known condition (without revealing the secret)
The above is the shape of almost all zero knowledge systems.

Example: Proving You Know the WiFi Password Without Revealing It
Imagine you’re at a private office.
There’s a secure WiFi network.
You tell the admin:
“I know the WiFi password.”
The admin doesn’t want you to:
- Say it out loud
- Write it down
- Or leak it in any way
But they want proof that you actually know it.
So how could you prove it?

The Challenge-Based Verification
Here’s a clever method:
- The admin generates a random number (a challenge)
- You take the WiFi password (secret) and combine it with that random number
- You compute a cryptographic hash of the combination
- You send the result back
The admin knows the correct password.
So they:
- Combine the real password with the same random number.
- Compute the same hash.
- Compare your result.
If they match, you must know the password.
But you never revealed it.
Interactive Proofs: Why Repetition Works
In early zero-knowledge systems, proofs were interactive.
Structure:
- Prover commits
- Verifier sends random challenge
- Prover responds
- Repeat
Each round reduces cheating probability.
If a cheater has a 50% chance of faking one round:
After 20 rounds:
(0.5)²⁰ ≈ 0.000001
Cheating becomes nearly impossible. Security comes from probability, not exposure.
From Interaction to One Proof
Blockchains can’t run interactive conversations.
They need:
- A single proof
- That anyone can verify later
- Without talking to the prover
Modern systems convert interaction into a single cryptographic object.
So instead of:
Prover ↔ Verifier (many rounds)
We get:
Prover → Proof → Verifier
This is what zkSNARKs achieve.
But conceptually?
It’s still:
Convince me you know a valid solution.
Example: Private Transactions
Let’s simplify how privacy coins like Zcash use this idea.

Instead of revealing:
- Sender
- Receiver
- Amount
You prove:
- The sender owns the funds.
- The input notes exist (input note are UTXOs actaully).
- The total input equals total output.
- No double spending occurs.
All without revealing amounts or addresses.
The blockchain verifies correctness.
But sees nothing sensitive.
Zero Knowledge Is Bigger Than Privacy
Many think ZK = privacy coin.
That’s narrow.
You can prove:
- You passed KYC without revealing documents
- You voted once without revealing your vote
- A smart contract executed correctly
- A machine learning model was evaluated correctly
- Secure gambling without any trust to a third party
Zero knowledge separates:
Truth from data.
That’s huge.
The Deep Insight
Traditionally:
To prove something → reveal information.
Zero knowledge breaks that coupling.
You get:
- Verification without transparency
- Integrity without disclosure
- Truth without exposure
This is why zero knowledge is becoming infrastructure.
Not a feature.
Infrastructure.
The Mental Model You Should Keep
A zero-knowledge proof is:
- A structured argument
- That proves knowledge of a secret
- Satisfying specific constraints
- Without revealing the secret
- With overwhelming confidence
Under the hood, modern systems convert:
Computation → Mathematical constraints
And prove:
“There exists an input such that these constraints hold.”
That’s it.
Not magic.
Not mystical math.
Just carefully structured cryptographic reasoning.
Where We Go Next
So far, we avoided:
- Arithmetic circuits
- R1CS
- Polynomial commitments
- Trusted setup
Because none of that matters without this foundation.
In the next post, we’ll move from philosophy to mechanism:
How does code become constraints?
How does computation become something provable?
And how does a tiny proof convince an entire network?
That’s where zkSNARKs begin.
If you’re building in Web3 today, understanding zero knowledge at this level isn’t optional.
It’s the difference between using infrastructure…
And understanding it.
Zero Knowledge Proofs Explained: Build a Strong Mental Model Before the Math was originally published in Coinmonks on Medium, where people are continuing the conversation by highlighting and responding to this story.