Dépôt
Le navigateur génère des secrets et une note privée. L’actif et le hash de cette note sont envoyés vers un pool à montant fixe.
commitmentHashsecret + nullifierTORNADO.CASH / DOCUMENTATION DE TORNADO CASH
Tornado Cash est un protocole décentralisé pour les transactions privées sur les blockchains publiques. Il dissocie visiblement l’adresse de dépôt du destinataire grâce à des pools de contrats intelligents immuables et à des preuves à divulgation nulle.
Documentation de Tornado Cash: La documentation décrit Classic, Nova, la conservation des notes, les relayers, la gouvernance et les justificatifs de conformité. Les contrats doivent néanmoins être vérifiés séparément.
Le protocole reçoit un engagement depuis une adresse puis vérifie une preuve pour un destinataire. La note privée relie ces actions pour l’utilisateur, mais elle n’est jamais publiée on-chain.
Le navigateur génère des secrets et une note privée. L’actif et le hash de cette note sont envoyés vers un pool à montant fixe.
commitmentHashsecret + nullifierLorsque d’autres engagements de même valeur rejoignent le pool, les corrélations temporelles évidentes deviennent moins utiles. La confidentialité dépend aussi du comportement et des métadonnées réseau.
Le client prouve qu’un engagement valide et non dépensé existe dans l’arbre de Merkle. Le contrat vérifie la preuve et transfère les fonds au destinataire choisi.
root + nullifierHashdeposit path + secretsUne blockchain publique expose normalement un chemin direct. Tornado Cash le modifie : la source publie un engagement et le destinataire présente ensuite une preuve valable pour le pool partagé.

La note contient les secrets nécessaires à la preuve. Elle doit être protégée comme une clé privée et ne jamais être partagée.
Le contrat enregistre un engagement dans l’arbre de Merkle plutôt que la note secrète de l’utilisateur.
Un hash public du nullifier marque la note comme dépensée sans révéler l’engagement correspondant.
Les paramètres du destinataire et du relayer sont intégrés aux entrées de la preuve afin d’empêcher leur substitution.
Les contrats Tornado Cash évaluent des faits cryptographiques. Ils n’ont pas besoin de connaître la note privée, de tenir un solde client ou de choisir le destinataire d’un retrait valide.
Lire la documentation du protocole ↗Un hash issu du secret et du nullifier est inséré comme feuille dans l’arbre de Merkle du pool.
H(secret, nullifier)
Le client reconstruit l’arbre et prouve que son engagement appartient à une racine acceptée.
leaf ∈ root
Le contrat refuse un hash de nullifier déjà utilisé, ce qui empêche un second retrait.
spent[nHash] == false
Le vérificateur contrôle la preuve et le pool envoie le montant fixe au destinataire lié.
verifyProof() → true
Les pools Classic regroupent des montants identiques. Les dépôts génèrent des notes utilisées plus tard pour construire une preuve de retrait.
Nova introduit des valeurs arbitraires et des transferts pouvant rester dans le pool protégé, avec un modèle de compte différent.
Le contrôle repose sur des secrets détenus par l’utilisateur et non sur un compte géré par un opérateur.
Les contrats, circuits, outils de preuve et interfaces peuvent être audités et hébergés indépendamment.
Les contrats déployés exécutent leur bytecode sans dépendre des développeurs d’origine.
Les propositions et votes TORN se déroulent on-chain et restent séparés de la garde des notes.
Ces réponses décrivent le cœur du système. La confidentialité n’est pas automatique : le timing, la réutilisation d’adresses, le navigateur, les RPC et la loi comptent aussi.
Le contrat reçoit l’actif et un engagement dérivé de secrets. La note privée reste chez l’utilisateur et sert à produire la preuve de retrait. Le protocole ne conserve ni mot de passe classique ni base de récupération.
L’attente permet à d’autres dépôts de même valeur de rejoindre le pool et réduit les corrélations temporelles évidentes. Elle ne garantit pas seule la confidentialité.
Elle démontre que le retirant connaît les secrets associés à un engagement inclus dans une racine de Merkle acceptée et que le nullifier n’a pas déjà été utilisé.
Un relayer peut envoyer la transaction de retrait et payer le gas pour le destinataire. La preuve lie le destinataire et les frais demandés.
Lisez la documentation, vérifiez les contrats, protégez la note et comprenez les hypothèses de confidentialité avant toute interaction.