Cet article n’est pas une incitation à anonymiser ses bitcoins. Cependant, imaginons que vous ayez acheté des bitcoins KYC et que la base de données de la plateforme sur laquelle vous les avez achetés ait fuité sur internet : un attaquant (kidnappeur) pourrait ainsi connaître très exactement combien de bitcoins vous possédez, ce qui faciliterait leur extorsion.
L’idée serait que l’attaquant ne puisse pas vérifier, sur un explorateur de blocs, que les fonds que vous avez retirés sont restés sur la même adresse, afin qu’il y ait une asymétrie d’information entre l’attaquant et sa cible. Il est même possible d’avoir un « panic wallet », un portefeuille contenant des fonds traçables à donner en cas d’attaque, tout en gardant la majorité des fonds dans un portefeuille moins traçable, et de dire à l’attaquant que vous ne les avez plus en votre possession (qu’ils ont été dépensés…). Ainsi, il pourrait être judicieux de rendre la majorité de vos bitcoins moins traçables, mais comment faire ? Dans cet article, nous verrons deux techniques pour préserver la confidentialité de vos bitcoins.
Le Coinjoin « classique »
La première technique est le CoinJoin. Concrètement, le CoinJoin est une technique de confidentialité pour Bitcoin dans laquelle plusieurs utilisateurs combinent leurs transactions en une seule transaction commune. Cela rend plus difficile, pour un observateur externe, d’associer quelles entrées correspondent à quelles sorties, car toutes les sorties apparaissent dans la même transaction, sans lien évident avec les entrées individuelles. Les étapes clés sont les suivantes : les participants négocient les montants et les adresses de sortie, construisent ensemble la transaction (souvent via un coordinateur), signent leurs propres entrées, puis la transaction est diffusée. Cela réorganise simplement qui paie quoi afin de casser les heuristiques de traçage.
Ci-dessous un schéma très simple de CoinJoin :

Ici, Alice et Bob se sont mis d’accord pour placer leurs bitcoins sur une même adresse afin de se les redistribuer ensuite de manière séparée, dans le but de brouiller les pistes. Mais le problème de cet exemple est qu’il n’est pas très complexe et que, dès lors qu’ils repasseront par un service KYC, il sera plus simple de reconstituer leurs heuristiques de transaction, c’est-à-dire de relier entre elles des entrées, des sorties ou des adresses sur une blockchain, puis d’en déduire quelles adresses appartiennent probablement à quel utilisateur ou quel flux de fonds elles suivent.
Une solution consiste à effectuer plusieurs CoinJoin, avec davantage de fonds et de partenaires, c’est-à-dire avec plus d’entrées et de sorties.
Ci-dessous un schéma de CoinJoin plus complexe, c’est à dire plus d’entrées et de sorties :

Comme illustré ci-dessus, le CoinJoin comporte davantage d’entrées et de sorties : l’utilisateur a envoyé 1,9 bitcoin et a reçu l’équivalent (1,2 + 0,7 bitcoin) sur deux adresses différentes.
Les exemples de CoinJoin ci-dessus ne prennent pas en compte les frais de transaction ni ceux du coordinateur.
Les avantages du CoinJoin sont sa simplicité : on envoie ses bitcoins à une adresse, on indique une adresse de réception, et c’est tout. De plus, c’est relativement peu coûteux dans la mesure où, en théorie, cela ne représente que les frais de transaction, même si, dans la pratique, le coordinateur prélève une commission.
Les inconvénients sont les suivants : ce n’est efficace qu’à condition qu’il y ait beaucoup de partenaires (liquidité), et cela peut prendre du temps ; c’est pourquoi l’opération peut durer plusieurs jours. De plus, les régulateurs peuvent se joindre au CoinJoin (s’y infiltrer) afin de rendre les fonds plus traçables. Enfin, qu’est-ce qui nous assure que le coordinateur ne va pas « trahir » l’utilisateur et revendre les données (adresse IP et schéma du CoinJoin), ou que ses propres données ne vont pas fuiter ?
Peut-on faire confiance au coordinateur ? Une solution pourrait être de devenir son propre coordinateur et de ne pas dépendre de partenaires.
Le mixage par swap Bitcoin/Monero
La deuxième technique est plus radicale, car elle suppose d’être son propre coordinateur et d’utiliser un autre crypto-actif, à savoir Monero : il s’agit du mixage par swap Bitcoin/Monero.
L’idée est de fractionner ses bitcoins en plusieurs parties, de convertir ces parties en monero, de regrouper ces moneros sur une seule adresse, d’effectuer une transaction Monero vers soi-même (sur un autre portefeuille), de fractionner les moneros en plusieurs parties, de reconvertir ces parties en bitcoin, puis de regrouper les bitcoins sur une même adresse.
Ci-dessous le schéma de mixage par swap Bitcoin/Monero avec 2 fractions de bitcoins et une parité BTC/XMR de 1 pour 10 :
Ce schéma illustre un processus de mixage par swap Bitcoin/Monero conçu pour masquer l’origine des fonds numériques. Le flux commence par la division d’un bitcoin en plusieurs fractions, lesquelles sont immédiatement échangées contre du monero, une cryptomonnaie aux transactions anonymes. Ces actifs sont ensuite regroupés sur une même adresse, puis les moneros sont envoyés vers une autre adresse appartenant au même utilisateur. La transaction de Monero à soi-même (d’un portefeuille auto-hébergé à un autre) constitue une étape essentielle pour brouiller les pistes, car les transactions par « signatures d’anneaux » de Monero sont réputées intraçables. Cela empêche notamment les services de swap de savoir d’où proviennent les fonds. Les moneros sont ensuite redistribués à travers de nouveaux échanges avant d’être reconvertis en bitcoins, puis finalement regroupés sur une même adresse. Cette méthode utilise des swaps (échanges) de devises et des transactions en « signatures d’anneaux » afin de rompre la traçabilité. En combinant ces étapes, l’utilisateur obtient un actif final anonymisé, déconnecté de son historique de transactions initial.
Il est possible, pour brouiller encore davantage les pistes, de multiplier le nombre de fractions de bitcoin.
Ci-dessous figure le schéma de mixage par swap Bitcoin/Monero avec trois fractions de bitcoin et une parité BTC/XMR de 1 pour 10 :

C’est exactement le même principe, mais avec davantage de fractions de bitcoin.
Les exemples de mixage ci-dessus ne prennent pas en compte les frais de transaction ni les frais de swap.
Il est préférable, durant l’opération, d’utiliser un VPN ou de passer par Tor, et de se connecter à des nœuds Bitcoin et Monero de confiance (les siens, si possible). De plus, il est préférable de changer d’adresse IP entre les premiers et les derniers swaps, ainsi que de ne pas utiliser les mêmes sites de swap. Cela permet de se prémunir en cas de fuite de données.
L’intérêt de cette méthode est que l’on est son propre coordinateur, que l’on n’a pas besoin de partenaires et que l’anonymisation est préservée même en cas de fuite de données.
L’un des risques potentiels est que, lorsque tous les bitcoins sont convertis en monero, le prix de ce dernier baisse par rapport au bitcoin (slippage), ce qui implique d’effectuer l’opération relativement rapidement. Les plateformes de swap Bitcoin/Monero peuvent se trouver sur des sites tels que https://kycnot.me/?categories=exchange ; charge à vous de trouver un service de swap fiable.
Conclusion
Le moyen le plus radical d’éviter une attaque en cas de fuite de données est de déménager ou d’avoir, au préalable, donné une fausse adresse. Sinon, il est nécessaire de rétablir une asymétrie d’information entre l’attaquant et vous, en faisant en sorte que les bitcoins que vous avez retirés aient changé d’adresse, afin que l’attaquant ne puisse pas être certain que vous les ayez conservés.
Le CoinJoin est simple, mais peut prendre du temps et suppose en général l’utilisation d’un tiers de confiance, qui est le coordinateur. Rien ne garantit par ailleurs que les informations du coordinateur ne fuiront pas.
Le mixage par swap Bitcoin/Monero est complexe à mettre en œuvre, mais radicalement efficace pour anonymiser ses bitcoins, car même si les informations des services de swap fuient, les heuristiques de transaction sont brisées.
Bref, le CoinJoin, c’est bien, mais le mixage par swap Bitcoin/Monero, c’est mieux !
A propos de l’auteur

Thomas Mang, ancien doctorant au CEA de Grenoble, est ingénieur en Photonique depuis 2017. Passionné par les technologies du numérique (l’impression 3D, Bitcoin), il s’y intéresse non pas à travers le prisme des « sciences dures » mais par les sciences humaines : l’histoire ou l’anthropologie.
BTC : bc1qs7fw8mnllx3d4tt4fu3m2qv4lueg9kqx0uk0xa
Article sous licence CC BY-NC – Attribution – Pas d’Utilisation Commerciale




