Reading — step 1 of 5
Read
What ZK Proofs Are
A zero-knowledge proof is a way for a Prover to convince a Verifier of a statement WITHOUT revealing why.
Examples:
- "I know the password" — without sending the password.
- "This account has > $1000" — without revealing the actual balance.
- "I am 18+ years old" — without showing your date of birth.
- "This vote is valid" — without revealing the choice.
Three properties:
- Completeness: if the statement is true, an honest prover convinces an honest verifier.
- Soundness: if the statement is false, no prover can convince the verifier (except with negligible probability).
- Zero-knowledge: the verifier learns nothing beyond the truth of the statement.
The classic intuition: Ali Baba's cave. Two paths to a magic door; Peggy claims to know the magic word. Victor stays at the entrance. Peggy enters, randomly picks a side. Victor shouts which side to come out. If Peggy doesn't know the magic word, she can only emerge from the side she entered. After 20 random rounds: 1-in-2^20 chance she got lucky every time. Convincing without revealing the word.
Today's ZK landscape:
- Sigma protocols (Schnorr, etc.): interactive, simple, foundational.
- Fiat-Shamir transform: makes them non-interactive.
- SNARKs (zk-SNARKs, Groth16, PLONK): succinct non-interactive arguments. Tiny proofs, fast verification, but trusted setup.
- STARKs: transparent (no trusted setup), bigger proofs, post-quantum-friendly.
- Bulletproofs: range proofs for confidential transactions.
Used in: Zcash (private cryptocurrency), Tornado Cash (mixer), zkRollups (Ethereum scaling), private credentials, identity systems.
Building ZK is heavy math. Our goal: understand sigma protocols + Fiat-Shamir, see how SNARKs scale up.
Discussion
Ask a question, share an insight, or help someone who’s stuck.
Sign in to post a comment or reply.
Loading…