Introduction
Qu'est-ce que le mixage de pièces ?
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 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.
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.
Pour conclure
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é.