Mixage de piÚces et CoinJoins expliqués
Accueil
Articles
Mixage de piÚces et CoinJoins expliqués

Mixage de piÚces et CoinJoins expliqués

Avancé
Publié le Mar 25, 2020Mis à jour le Dec 28, 2022
6m

Introduction

Le Bitcoin est souvent appelé argent numérique, mais il s'agit d'une comparaison approximative. Si Alice paie 10 dollars en liquide à Bob, ce dernier n'a aucune idée de l'origine de cet argent. S'il le donne ensuite à Carol, elle ne pourra pas savoir qu'Alice l'a eu en sa possession.
Le Bitcoin est diffĂ©rent en raison de sa nature publique. L'historique d'une piĂšce donnĂ©e (plus prĂ©cisĂ©ment, une sortie de transaction non dĂ©pensĂ©e ou UTXO) peut ĂȘtre trivialement consultĂ© par quiconque. C'est un peu comme Ă©crire le montant de la transaction et les noms des participants sur une facture Ă  chaque fois qu'elle est utilisĂ©e.
Cela dit, le pseudonymat d'une adresse publique garantit que les identités des utilisateurs ne sont pas facilement révélées. Néanmoins, le bitcoin n'est pas complÚtement privé. L'analyse de la blockchain est de plus en plus sophistiquée et est capable de relier de plus en plus efficacement les adresses aux identités. ParallÚlement à d'autres techniques de surveillance, une entité dédiée peut désanonymiser les utilisateurs de cryptomonnaies. Pour remédier à ce problÚme, des techniques permettant de dissocier les transactions ont fait surface au fil des ans.


Qu'est-ce que le mixage de piĂšces ?

D'une maniÚre générale, le mixage de piÚces peut faire référence à toute activité impliquant l'obfuscation des fonds en les substituant à d'autres. Cependant, dans l'espace des cryptomonnaies, le mixage de devises indique généralement un service fourni par un tiers. En général, les fournisseurs de services prennent les fonds des utilisateurs (et une petite commission) et renvoient des fonds qui n'ont aucun lien avec celles qui ont été envoyées. Ces services sont également connus sous le nom de tumblers ou mixers.

La sĂ©curitĂ© et l'anonymat de ces services centralisĂ©s sont bien sĂ»r discutables. Les utilisateurs n'ont aucune garantie que leur argent leur sera rendu par le mĂ©langeur ou que les piĂšces rendues ne sont pas altĂ©rĂ©es d'une maniĂšre ou d'une autre. Un autre aspect Ă  prendre en compte lors de l'utilisation d'un mixeur est que les adresses IP et Bitcoin peuvent ĂȘtre enregistrĂ©es par un tiers. En fin de compte, les utilisateurs abandonnent le contrĂŽle de leurs fonds dans l'espoir de recevoir en retour des fonds non liĂ©s.

Une approche probablement plus intéressante existe sous la forme de transactions CoinJoin, qui créent un degré significatif de déni plausible. Cela signifie qu'aprÚs un CoinJoin, aucune preuve ne peut lier un utilisateur avec certitude à ses transactions précédentes. De nombreuses solutions CoinJoin offrent une alternative décentralisée aux mélangeurs. Bien qu'il puisse y avoir un coordinateur impliqué, les utilisateurs n'ont pas besoin de sacrifier la garde de leurs fonds.


Qu'est-ce qu'un CoinJoin ?

Les transactions CoinJoin ont Ă©tĂ© initialement proposĂ©es par le dĂ©veloppeur de Bitcoin Gregory Maxwell en 2013. Dans son fil de discussion, il donne un bref aperçu de la structure de ces transactions et de la façon dont les gains massifs en matiĂšre de confidentialitĂ© peuvent ĂȘtre rĂ©alisĂ©s sans aucune modification du protocole.
En substance, un CoinJoin implique la combinaison des entrées de plusieurs utilisateurs en une seule transaction. Avant d'expliquer comment (et pourquoi), examinons la structure d'une transaction de base.

Les transactions Bitcoin sont constituées d'entrées et de sorties. Lorsqu'un utilisateur veut effectuer une transaction, il prend ses UTXO comme entrées, spécifie les sorties et signe les entrées. Il est important de noter que chaque entrée est signée indépendamment et que les utilisateurs peuvent définir plusieurs sorties (allant à des adresses différentes).



Si nous considérons une transaction donnée composée de quatre entrées (0,2 BTC chacune) et de deux sorties (0,7 BTC et 0,09 BTC), nous pouvons faire quelques hypothÚses différentes. Tout d'abord, nous verrons qu'un paiement a lieu : l'expéditeur envoie l'une des sorties à quelqu'un et se renvoie la différence. Comme ils ont utilisé quatre entrées, la sortie la plus importante est probablement pour le destinataire. Notez qu'il manque 0,01 BTC dans les sorties, ce qui correspond aux frais donnés au mineur.

Il est également possible que l'expéditeur veuille créer un grand UTXO à partir de petits UTXO, et qu'il consolide les petites entrées pour obtenir le résultat souhaité de 0,7 BTC.

Une autre hypothÚse que nous pouvons faire est basée sur le fait que chaque entrée est signée indépendamment. Cette transaction peut comporter jusqu'à quatre parties différentes qui signent les entrées. Et là c'est le principe qui rend les CoinJoins efficaces.


Comment fonctionne un CoinJoin ?

L'idée est que plusieurs parties vont se coordonner pour créer une transaction, chacune fournissant des entrées et des sorties souhaitées. Comme toutes les entrées sont combinées, il devient impossible de dire avec certitude à quel résultat appartient l'utilisateur. Examinez le diagramme ci-dessous :



Nous avons ici quatre participants qui souhaitent rompre le lien entre les transactions. Ils coordonnent entre eux (ou par l'intermédiaire d'un coordinateur dédié) pour annoncer les entrées et sorties qu'ils souhaitent inclure.

Le coordinateur prendra toutes les informations, les transformera en transaction et demandera Ă  chaque participant de signer avant de les diffuser sur le rĂ©seau. Une fois que les utilisateurs ont signĂ©, la transaction ne peut pas ĂȘtre modifiĂ©e sans devenir invalide. Il n'y a donc aucun risque que le coordinateur s'enfuie avec les fonds.

La transaction sert en quelque sorte de boĂźte noire pour mĂ©langer les piĂšces. N'oubliez pas que nous dĂ©truisons les UTXO pour en crĂ©er de nouveaux. Le seul lien entre l'ancien et le nouveau UTXO que nous avons est la transaction elle-mĂȘme, mais bien sĂ»r, nous ne pouvons pas distinguer les participants. Au mieux, nous pouvons dire qu'un participant a fourni l'une des entrĂ©es et qu'il est peut-ĂȘtre le nouveau propriĂ©taire d'une sortie rĂ©sultante.

Mais ce n'est en aucun cas garanti. Qui peut dire, lorsqu'il s'agit de la transaction ci-dessus, qu'il y a quatre participants ? Est-ce une seule personne qui envoie ses fonds Ă  quatre de ses propres adresses ? Deux personnes effectuant deux achats distincts et renvoyant chacune 0,2 BTC Ă  leur propre adresse ? Quatre personnes envoient de l'argent Ă  de nouveaux participants ou reviennent Ă  eux-mĂȘmes ? On ne peut pas en ĂȘtre sĂ»r.


La confidentialité par la possibilité de déni

Le simple fait que des implĂ©mentations de CoinJoin existent suffit Ă  mettre en doute les mĂ©thodes utilisĂ©es pour analyser les transactions. Vous pouvez dĂ©duire qu'un CoinJoin a eu lieu dans de nombreux cas, mais vous n'ĂȘtes toujours pas en capacitĂ© de savoir qui possĂšde les sorties. Au fur et Ă  mesure qu'ils gagnent en popularitĂ©, l'hypothĂšse selon laquelle les entrĂ©es sont toutes dĂ©tenues par le mĂȘme utilisateur est affaiblie, impliquant une augmentation massive de la confidentialitĂ© dans l'Ă©cosystĂšme dans son ensemble.

Dans l'exemple prĂ©cĂ©dent, nous disons que la transaction avait un jeu d'anonymat de 4. Le propriĂ©taire d'une sortie pourrait ĂȘtre n'importe lequel des quatre participants impliquĂ©s. Plus le jeu d'anonymat est grand, moins il est probable que les transactions puissent ĂȘtre liĂ©es Ă  leur propriĂ©taire initial. Heureusement, les rĂ©centes mises en Ɠuvre de CoinJoin permettent aux utilisateurs de fusionner de maniĂšre fiable leurs entrĂ©es avec des dizaines d'autres, offrant ainsi un haut degrĂ© d'anonymat. RĂ©cemment, une transaction Ă  100 personnes a Ă©tĂ© exĂ©cutĂ©e avec succĂšs.


Pour conclure

Les outils permettant de mélanger les piÚces sont un ajout important à l'arsenal de tout utilisateur soucieux de sa vie privée. Contrairement aux améliorations proposées en matiÚre de confidentialité (telles que les transactions confidentielles), elles sont compatibles avec le protocole tel qu'il existe aujourd'hui.

Pour ceux qui font confiance Ă  l'intĂ©gritĂ© et Ă  la mĂ©thodologie de tiers, les services de mixage constituent une solution facile. Pour ceux qui prĂ©fĂšrent une alternative vĂ©rifiable et non custodial, les alternatives CoinJoin sont supĂ©rieures. Cela peut ĂȘtre fait Ă  la main pour les utilisateurs techniquement compĂ©tents, ou en utilisant des outils logiciels qui rĂ©sument les mĂ©canismes les plus complexes. Il existe dĂ©jĂ  une poignĂ©e de ces outils qui ne font qu'augmenter leur popularitĂ© Ă  mesure que les utilisateurs s'efforcent d'amĂ©liorer leur confidentialitĂ©.