PROTOCOLE DE CONFIDENTIALITÉ NON DÉPOSITAIRE

TORNADO.CASH / ADRESSES DE CONTRATS TORNADO CASH

Adresses de contrats 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.

Adresses de contrats Tornado Cash: Il n’existe pas une adresse universelle. Les contrats varient selon le réseau, l’actif et le montant ; chaque adresse doit être comparée au bytecode et à l’historique de déploiement.

GARDENon dépositaire
VÉRIFICATIONPreuves zk-SNARK
EXÉCUTIONContrats intelligents
MODÈLE DE CONFIDENTIALITÉ ZERO-KNOWLEDGE Visualisation de l’état du protocole
LOGIQUE VÉRIFIÉE
01 EngagementLe hash public entre dans l’ensemble
ENSEMBLE D’ANONYMATEngagements partagés on-chain
02 Preuve zkPropriété prouvée en privé
03 VérificateurPreuve valide, aucun lien avec le dépôt
NOTEConservée par l’utilisateur
ON-CHAINEngagement + nullifier
DIVULGUÉAucun lien dépôt-destinataire
01 // FLUX DE TRANSACTION

Déposer. Attendre. Retirer.

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.

01
CRÉER UN ENGAGEMENT

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.

PUBLICcommitmentHash
PRIVÉsecret + nullifier
02
LAISSER LE POOL ÉVOLUER

Attente

Lorsque 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.

ACTIVITÉ DES DÉPÔTS
03
PROUVER SANS RÉVÉLER

Retrait

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.

PUBLICroot + nullifierHash
MASQUÉdeposit path + secrets
02 // MODÈLE DE CONFIDENTIALITÉ

Un pool.
Deux adresses.

Une 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é.

SOURCE
0x71…9A2Adresse de dépôt
POOL PARTAGÉArbre de Merkle
DESTINATAIRE
0xB4…E08Adresse de retrait
01

La note reste privée

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.

02

Le pool voit un engagement

Le contrat enregistre un engagement dans l’arbre de Merkle plutôt que la note secrète de l’utilisateur.

03

Le nullifier empêche la réutilisation

Un hash public du nullifier marque la note comme dépensée sans révéler l’engagement correspondant.

04

La preuve lie le destinataire

Les paramètres du destinataire et du relayer sont intégrés aux entrées de la preuve afin d’empêcher leur substitution.

03 // SOUS LE CAPOT

Vérifié par le code,
pas par un opérateur.

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
#
ÉTAPE 01

Engagement

Un hash issu du secret et du nullifier est inséré comme feuille dans l’arbre de Merkle du pool.

H(secret, nullifier)
ÉTAPE 02

Appartenance à l’arbre

Le client reconstruit l’arbre et prouve que son engagement appartient à une racine acceptée.

leaf ∈ root
Ø
ÉTAPE 03

Contrôle du nullifier

Le contrat refuse un hash de nullifier déjà utilisé, ce qui empêche un second retrait.

spent[nHash] == false
ÉTAPE 04

Vérification on-chain

Le vérificateur contrôle la preuve et le pool envoie le montant fixe au destinataire lié.

verifyProof() → true
04 // MODÈLES DU PROTOCOLE

Classic et Nova.

CLASSICMONTANTS FIXES

Notes privées et pools de même valeur

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.

  • Montants fixes
  • Garde de la note privée
  • Engagements Merkle
  • Retraits via relayer en option
Documentation Classic
NOVAMONTANTS LIBRES

Soldes protégés et transferts privés

Nova introduit des valeurs arbitraires et des transferts pouvant rester dans le pool protégé, avec un modèle de compte différent.

  • Montants flexibles
  • Transferts protégés
  • Accès par compte
  • Déploiement Gnosis Chain
Documentation Nova
01

Non dépositaire

Le contrôle repose sur des secrets détenus par l’utilisateur et non sur un compte géré par un opérateur.

02

Code source ouvert

Les contrats, circuits, outils de preuve et interfaces peuvent être audités et hébergés indépendamment.

03

Pools immuables

Les contrats déployés exécutent leur bytecode sans dépendre des développeurs d’origine.

04

Gouvernance communautaire

Les propositions et votes TORN se déroulent on-chain et restent séparés de la garde des notes.

05 // QUESTIONS FRÉQUENTES

Détails du
protocole.

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.

01Comment le dépôt reste-t-il sous le contrôle de l’utilisateur ?+

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.

02Pourquoi attendre entre le dépôt et le retrait ?+

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é.

03Que démontre la preuve à divulgation nulle ?+

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é.

04Quel est le rôle d’un relayer ?+

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.

TORNADO.CASH

La confidentialité est un protocole,
pas une promesse.

Lisez la documentation, vérifiez les contrats, protégez la note et comprenez les hypothèses de confidentialité avant toute interaction.