BEYOND DeFiLab · ZK & privacy
0:00
👤 Votre nom :👤 Your name: — pour enregistrer votre travail au nom de l'enseignant— to log your work for the instructor
Lab · La preuve sans l'aveuLab · Proof without disclosure

Prouver sans révélerProve without revealing

Toute la DeFi est publique : chacun voit chaque montant. Mais que se passe-t-il quand on veut prouver une chose sans la divulguer — « j'ai plus de 18 ans », « j'ai assez de fonds », « ce calcul est juste » — sans montrer la donnée ? C'est la magie des preuves à divulgation nulle (zero-knowledge). Vous allez fabriquer un engagement cryptographique réel, puis générer une preuve ZK. All of DeFi is public: everyone sees every amount. But what happens when you want to prove something without disclosing it — "I'm over 18", "I have enough funds", "this computation is correct" — without showing the data? That's the magic of zero-knowledge proofs. You'll build a real cryptographic commitment, then generate a ZK proof.
~45 minmin
2 simulateurssimulators
3 réflexionswrite-ups
1 quizquiz
Étape 1 — L'intuitionStep 1 — The intuition

La grotte d'Ali BabaAli Baba's cave

Imaginez une grotte en anneau, avec une porte secrète au fond qui s'ouvre par un mot de passe. Je veux vous prouver que je connais le mot de passe — sans vous le dire. Vous restez à l'entrée ; j'entre par un côté au hasard ; vous criez « ressors par la gauche ! ». Si je connais le mot, je peux toujours obéir. Répétez 20 fois : si je réussis à chaque fois, vous êtes convaincu — et vous n'avez rien appris du mot de passe. Picture a ring-shaped cave with a secret door at the back that opens with a password. I want to prove I know the password — without telling you. You wait at the entrance; I walk in from a random side; you shout "come out on the left!". If I know the word, I can always comply. Repeat 20 times: if I succeed every time, you're convinced — and you've learned nothing about the password.

C'est tout le ZK : convaincre sans divulguer. Voyons d'abord la brique de base — l'engagement — puis une vraie preuve. That's all of ZK: convince without disclosing. Let's first see the building block — the commitment — then a real proof.

Pour démarrer · ~6 minTo kick off · ~6 min
Ouvrir sur YouTube ↗Open on YouTube ↗
Étape 2 — Simulateur (engagement réel)Step 2 — Simulator (real commitment)

Engager, puis révélerCommit, then reveal

Un engagement (commitment) est un hash : il cache votre secret (on ne peut pas le deviner depuis le hash) tout en vous liant (vous ne pourrez plus le changer). Le calcul ci-dessous est un vrai SHA-256, exécuté dans votre navigateur. Engagez un secret + un sel aléatoire, puis révélez. Essayez ensuite de tricher en révélant un autre secret. A commitment is a hash: it hides your secret (you can't guess it from the hash) while binding you (you can no longer change it). The computation below is real SHA-256, running in your browser. Commit a secret + a random salt, then reveal. Then try to cheat by revealing a different secret.

EngagementCommit
— l'engagement (hash) apparaîtra ici —— the commitment (hash) will appear here —
RévélationReveal
Étape 3 — À vous d'écrireStep 3 — Your turn to write

À quoi ça sert ?What is it good for?

Donnez un cas concret où « engager puis révéler » change la donne (ex. enchère scellée, vote secret) — et expliquez pourquoi le sel est indispensable (indice : sans sel, qu'arrive-t-il si votre secret est « oui »/« non » ?). Give a concrete case where "commit then reveal" changes the game (e.g. sealed-bid auction, secret vote) — and explain why the salt is essential (hint: with no salt, what happens if your secret is "yes"/"no"?).

↳ Collez les premiers caractères de votre engagement (le hash) obtenu ci-dessus.↳ Paste the first characters of your commitment (the hash) you produced above.

Étape 4 — Simulateur (preuve ZK)Step 4 — Simulator (ZK proof)

« J'ai l'âge » — sans dire votre âge"I'm old enough" — without saying your age

Un site exige un âge minimum. Au lieu de tendre votre carte d'identité (date de naissance, nom, adresse…), vous générez une preuve que âge ≥ seuil. Le vérificateur reçoit un ✓/✗ — et rien d'autre. Réglez votre âge réel (privé), choisissez le seuil public, et générez la preuve au moins 3 fois (au-dessus et en dessous du seuil). A site requires a minimum age. Instead of handing over your ID (birthdate, name, address…), you generate a proof that age ≥ threshold. The verifier receives a ✓/✗ — and nothing else. Set your real age (private), pick the public threshold, and generate the proof at least 3 times (above and below the threshold).

Étape 5 — Le piègeStep 5 — The catch

Ce que le ZK ne fait PASWhat ZK does NOT do

🔧 LiéRelatedle cas « identité décentralisée » montre où ces preuves s'appliquent au monde réel.the "decentralized identity" case shows where these proofs meet the real world.
Étape 6 — ApplicationStep 6 — Application

Où ça change toutWhere it changes everything

Choisissez un domaine (KYC bancaire, vote en ligne, dossier médical, chaîne d'approvisionnement). Décrivez ce qu'une preuve ZK permettrait de prouver sans divulguer, et nommez une chose qu'elle ne pourrait pas garantir. Pick a domain (bank KYC, online voting, medical records, supply chain). Describe what a ZK proof would let you prove without disclosing, and name one thing it could not guarantee.

Étape 7 — À quoi ça sert vraimentStep 7 — What it actually buys you

Confidentialité, passage à l'échelle, ou identité ?Privacy, scaling, or identity?

Le ZK sert plusieurs buts. Classez chaque usage selon son bénéfice principal.ZK serves several goals. Classify each use by its primary benefit.

Zcash : envoyer des fonds sans révéler montant ni destinataireZcash: sending funds without revealing amount or recipient
ConfidentialitéPrivacy
Passage à l'échelleScaling
IdentitéIdentity
✓ Confidentialité : la transaction est valide et vérifiable, mais ses détails restent cachés.✓ Privacy: the transaction is valid and verifiable, yet its details stay hidden.
zk-rollup : prouver 5 000 transactions en une seule preuve sur Ethereumzk-rollup: proving 5,000 transactions in a single proof on Ethereum
ConfidentialitéPrivacy
Passage à l'échelleScaling
IdentitéIdentity
✓ Passage à l'échelle : une preuve compacte remplace la re-vérification de milliers de tx → plus de débit, moins de frais.✓ Scaling: one compact proof replaces re-checking thousands of txs → more throughput, lower fees.
Preuve d'unicité humaine (un humain = un compte, sans le nommer)Proof of personhood (one human = one account, without naming them)
ConfidentialitéPrivacy
Passage à l'échelleScaling
IdentitéIdentity
✓ Identité : prouver une propriété d'identité (unicité, >18 ans) sans dévoiler qui vous êtes. Brique anti-sybil.✓ Identity: prove an identity property (uniqueness, over-18) without revealing who you are. The anti-sybil building block.
Étape 8 — Confidentialité vs loiStep 8 — Privacy vs law

Le cas Tornado CashThe Tornado Cash case

Tornado Cash est un « mélangeur » : vous y déposez des fonds et les retirez vers une autre adresse, en prouvant par ZK que vous avez bien déposé — sans relier dépôt et retrait. Outil de confidentialité légitime pour les uns ; machine à blanchir pour d'autres. En août 2022, le Trésor américain (OFAC) a sanctionné le code lui-même — du jamais-vu : on ne sanctionnait plus une personne, mais des contrats intelligents. Un développeur a été arrêté. Débat mondial sur « peut-on interdire des mathématiques ? ». Tornado Cash is a "mixer": you deposit funds and withdraw to a different address, proving via ZK that you did deposit — without linking deposit to withdrawal. A legitimate privacy tool to some; a laundering machine to others. In August 2022, the US Treasury (OFAC) sanctioned the code itself — unprecedented: not a person, but smart contracts. A developer was arrested. A global debate on "can you ban mathematics?".

Question : la confidentialité financière est un droit dans le monde physique (le cash). Faut-il l'autoriser on-chain, sachant qu'on ne peut pas la donner « seulement aux gentils » ? Argumentez. Question: financial privacy is a right in the physical world (cash). Should it be allowed on-chain, knowing you can't grant it "only to the good guys"? Make your argument.

Étape 9 — Contrôle expressStep 9 — Quick check

Trois questionsThree questions

Que prouve une preuve à divulgation nulle ?What does a zero-knowledge proof prove?
La donnée elle-mêmeThe data itself
Qu'un énoncé est vrai, sans la donnéeThat a statement is true, without the data
L'identité du prouveurThe prover's identity
✓ On convainc le vérificateur qu'un énoncé est vrai sans rien révéler de plus.✓ You convince the verifier a statement is true while revealing nothing more.
À quoi sert le sel dans un engagement ?What is the salt for in a commitment?
Accélérer le hashSpeed up the hash
Réduire la tailleShrink the size
Empêcher de deviner par force bruteStop brute-force guessing
✓ Sans sel, un secret prévisible (« oui »/« non ») se retrouve en testant tous les hash possibles.✓ Without salt, a predictable secret ("yes"/"no") is found by hashing all possibilities.
Pourquoi les zk-rollups aident-ils au passage à l'échelle ?Why do zk-rollups help scaling?
Vérifier une preuve est rapide/bon marchéVerifying a proof is fast/cheap
Ils suppriment les fraisThey remove fees
Ils cachent les montantsThey hide amounts
✓ Une seule petite preuve atteste de milliers de tx, et la couche de base n'a qu'à la vérifier (vite).✓ One small proof attests to thousands of txs, and the base layer only has to verify it (fast).
L'idée à emporterThe takeaway

Découpler la vérité de la donnéeDecoupling truth from data

Le ZK casse une vieille équivalence : pendant des siècles, « prouver » voulait dire « montrer ». La cryptographie moderne permet de convaincre sans montrer. Conséquence : la blockchain n'a plus à choisir entre transparence vérifiable et confidentialité — elle peut avoir les deux. C'est aussi ce qui la fait passer à l'échelle (rollups) et ce qui pose les questions politiques les plus difficiles (mélangeurs, sanctions). La même brique, trois usages : confidentialité, débit, identité. ZK breaks an old equivalence: for centuries, "to prove" meant "to show". Modern cryptography lets you convince without showing. The consequence: a blockchain no longer has to choose between verifiable transparency and privacy — it can have both. It's also what makes it scale (rollups) and what raises the hardest political questions (mixers, sanctions). One building block, three uses: privacy, throughput, identity.

Lab terminéLab complete