Ethereum étant une blockchain ouverte et transparente, tous les comptes et transactions le sont également. Sachant que les utilisateurs du réseau n'ont accès qu'à une seule adresse publique il est relativement compliqué de rendre certaines transactions anonymes. Le compte de chacun peut donc être analysé ainsi que son activité sur le réseau. Mais si nous souhaitons conserver un peu d'anonymat sur Ethereum, quelles sont les possibilités ? Aujourd'hui je vous présente Tornado cash, qui pourrait permettre des transactions anonymes sur le réseau Ethereum.

 

Qu'est-ce que Tornado Cash ?

Tornado est un service de mixage d'éthers qui a pour particularité notable d'être non custodial, c'est-à-dire que vous demeurez complètement propriétaire de vos cryptomonnaies lors de son utilisation. La plupart des services de mixage de cryptomonnaies étant custodiaux, il vous faut envoyer vos fonds sur les wallets du service et leur faire confiance pour retrouver vos cryptomonnaies par la suite. Originellement Tornado ne supportait unqiuement l'utilisation des éthers, mais il est désormais possible d'anonymiser des tokens Ethereum, à commencer par le token DAI. Tornado souhaite ajouter par la suite d'autres stablecoins tels que l'USDT ou l'USDC.

 

tornadocash

 

Tornado Cash est un donc service proposé par Tornado qui propose à ses utilisateurs de bénéficier de différentes fonctions cryptographiques afin de rendre anonymes leurs transactions sur le réseau Ethereum. Vous pouvez y déposer et retirer vos éthers afin de réaliser les opérations proposées par Tornado. Tornado Cash agira à la manière d'un proxy dans le cadre de cette transaction particulière de manière à ce qu'il ne soit pas possible d'établir par la suite de lien entre l'adresse déposant les fonds et celle qui les reçoit.

L'équipe de Tornado est très active et de nombreuses fonctionnalités sont régulièrement ajoutées comme récemment le support du DAI ou l'utilisation de l'Ethereum Name Service pour spécifier les adresses utilisées. Récemment Tornado a annoncé l'ajout de nombreux relayers différents en provenance de différents développeurs de la communauté. Cela permet à l'équipe de montrer à leur communauté qu'elle a envie de décentraliser au maximum l'outil qu'est Tornado Cash. En effet Tornado est très porté vers la communauté Ethereum et la décentralisation des applications. Ils sont notamment financés par différentes DAO et souhaitent potentiellement dans le futur déployer leurs propres DAO pour développer les services de Tornado.

 

Comment les transactions sont-elles rendues anonymes ?

Le fonctionnement de Tornado Cash est très simple, il s'agit tout simplement d'un smart-contract recevant des éthers pouvant être retirés vers une autre adresse Ethereum. La difficulté est de supprimer tout lien entre ces deux adresses afin qu'il ne soit pas possible d'analyser le smart-contract afin de retrouver le propriétaire originel de ces éthers. Pour ce faire, Tornado utilise la bibliothèque de fonctions cryptographiques zkSnarks afin de réaliser cet effacement de liens entre les deux adresses de l'utilisateur.

Les ZK-SNARK sont des algorithmes de preuves à divulgation nulle de connaissance (zero-knowledge proofs), permettant dans les grandes lignes à une entité d'être convaincue qu'une autre entité possède un paramètre secret (comme une relation) sans avoir à révéler le paramètre en question à quiconque. Il s'agit de fonctions avancées que je pourrais traiter dans cet article, mais ces dernières ont pu être implémentées sur Ethereum et donner ainsi vie à des services comme Tornado Cash.

 

Comment utiliser les services de Tornado Cash ?

 

apptornado

 

Pour les utilisateurs des services de Tornado Cash, les opérations sont relativement simples à effectuer et fonctionnent par le biais d'un mécanisme de dépôt / retrait. En effet la première étape est de déposer vos fonds sur le smart-contract de Tornado tout en conservant l'accès à ces derniers. Ensuite vous êtes dans la capacité d'effectuer un retrait de vos fonds sur l'adresse Ethereum de votre choix. Il existe deux options pour effectuer ce retrait : la première est d'utiliser un wallet possédant des éthers, et la seconde est de passer par la fonctionnalité Relayer de Tornado.

En effet comme il est compliqué de posséder des éthers sur un compte anonyme, Tornado a développé la fonctionnalité Relayer permettant de générer une toute nouvelle adresse Ethereum dédiée à la réception des fonds. Relayer transmet tout simplement les fonds directement sur une adresse Ethereum fraîchement créée en échange de quelques frais supplémentaires.

Si vous utilisez les services de Tornado, il est également important de mettre en place des réflexes liés à l'utilisation générale d'internet pour conserver votre vie privée. Cela peut être l'utilisation d'un VPN de manière régulière puisque ce type de service est désormais financièrement accessible, ou bien dans des cas plus avancés de l'utilisation d'outils comme Tor. Mais si vous interagissez avec des applications décentralisées Ethereum, il est également important de nettoyer les cookies de ces dernières avant d'utiliser Tornado Cash, ainsi que toutes les données permettant de faire le lien entre vos deux adresses Ethereum.

 

Les risques de l'utilisation de Tornado Cash

Tornado Cash est un projet Ethereum et repose sur différents smart-contracts, le système tout entier est donc dépendant de leur sécurité. Toutefois afin de garantir un niveau de sécurité optimal l'équipe de Tornado a fait appel à un cabinet d'audit indépendant pour réaliser un audit de la sécurité des smart-contracts. C'est très populaire dans l'écosystème et cela permet de rester transparent avec leurs utilisateurs puisque le rapport de l'audit est rendu public et reste disponible pour tous.

Attention cependant, puisque qu'en octobre 2019 l'équipe de Tornado a réussi à exploiter des vulnérabilités du smart-contract afin d'en prendre le contrôle. Aucun fonds n'a été perdu et l'équipe a rapidement réalisé la transition vers un nouveau smart-contract plus solide, mais cela montre bien que le risque zéro n'existe pas dans l'écosystème des smart-contracts.

De par l'utilisation de la bibliothèque zkSnarks, Tornado Cash dépend également de la sécurité de cette dernière. C'est pour cette raison que Tornado suit de près les audits réalisés sur la bibliothèque ainsi que l'ajout de signatures supplémentaires.

 

Voilà qui conclut cette présentation de Tornado Cash, une application décentralisée au service de l'anonymat sur le réseau Ethereum. Avez-vous déjà utilisé des mixeurs de cryptomonnaies ou attendiez-vous le développement de services de ce type qui vous permettent de garder le contrôle sur vos fonds ? Si vous avez des questions ou remarques à propos de cet article, n'hésitez pas à nous en faire part dans les commentaires ou sur les réseaux sociaux.

A propos de l'auteur : Guillaume Chanut

twitter-soothsayerdatatwitter-soothsayerdata

Passionné par les crypto-monnaies, j’ai rapidement appris à développer des outils dans le domaine des technologies blockchain. J’aime partager mes connaissances sur le sujet et je participe activement au rayonnement des aspects techniques de la blockchain au sein de la communauté crypto. Je suis principalement intéressé par Ethereum et par son code Solidity.
Tous les articles de Guillaume Chanut.

guest
0 Commentaires
Inline Feedbacks
View all comments