l'introduction

Bitcoin est souvent appelé monnaie numérique, mais cette comparaison est discutable. Si Alice paie dix dollars en espèces, Bob ne saura jamais d'où vient l'argent. S'il donnait ensuite cet argent à Carol, Carol ne saurait pas que l'argent était en possession d'Alice avant cela.

Bitcoin est différent en raison de sa nature publique. N'importe qui peut facilement surveiller l'historique d'une pièce particulière (ou pour être précis, son résultat de transaction non dépensé (UTXO). C'est comme écrire le montant de la transaction et les noms de ses participants sur du papier-monnaie à chaque fois qu'il est utilisé.

Cependant, les alias d'adresse publique garantissent que l'identité des utilisateurs ne sera pas facilement révélée. Mais Bitcoin n’est pas une monnaie totalement privée. Les méthodes d’analyse des réseaux blockchain sont de plus en plus sophistiquées et permettent de suivre les adresses et d’identifier les identités avec une efficacité croissante. Parallèlement à d'autres méthodes de surveillance, une entité ou un organisme peut révéler l'identité des utilisateurs de monnaie numérique. Pour résoudre ce problème, des techniques sont apparues au fil des années pour masquer les liens entre les transactions.


Qu’est-ce que le mixage de devises ?

En général, le mélange de devises peut faire référence à toute activité consistant à dissimuler de l’argent en l’échangeant contre d’autres monnaies. Mais dans le domaine des cryptomonnaies, le mixage de pièces fait référence à un service fourni par un tiers. Les fournisseurs de services prennent généralement les devises des utilisateurs (en plus d'une somme modique) et leur donnent des devises qui ne sont pas liées aux devises envoyées. Ces services sont également appelés services de diffusion ou services de mixage.

La sécurité et l’anonymat de ces services centralisés les rendent bien entendu discutables. Les utilisateurs ne sont pas assurés que leurs fonds leur seront restitués par le service de mixage ou que les pièces restituées ne sont pas corrompues d'une manière ou d'une autre. Un autre aspect à garder à l’esprit lors de l’utilisation de services mash-up est que votre adresse IP et les adresses de votre portefeuille Bitcoin peuvent être enregistrées par des tiers. En fin de compte, les utilisateurs abandonnent le contrôle des pièces dans l’espoir que les pièces introuvables leur seront restituées.

Une autre méthode que certains trouvent plus intéressante est celle des transactions CoinJoin, qui créent un degré élevé de doute raisonnable quant à la source des pièces. En d’autres termes, une fois une transaction CoinJoin effectuée, un utilisateur ne peut pas être définitivement lié à ses transactions précédentes. De nombreuses solutions CoinJoin offrent des alternatives décentralisées au mixage de services. Bien qu'un coordinateur puisse être impliqué dans le processus, les utilisateurs n'ont pas besoin de sacrifier la garde de leurs pièces.


Qu’est-ce que CoinJoin ?

Les transactions CoinJoin sont une proposition introduite pour la première fois par le développeur Bitcoin Gregory Maxwell en 2013. Dans une série d'articles qu'il a écrits, Maxwell donne un bref aperçu de la conception de ces transactions et de la manière dont elles peuvent être utilisées pour obtenir d'énormes gains en matière de confidentialité sans changer le protocole. .

À la base, une transaction CoinJoin implique de combiner les entrées de plusieurs utilisateurs en une seule transaction. Avant d'expliquer comment (et pourquoi) cela se produit, examinons la structure d'une transaction normale.

Les transactions Bitcoin sont constituées d’entrées et de sorties. Lorsqu'un utilisateur souhaite effectuer une transaction, il prend le résultat de la transaction non dépensé comme entrée, définit le résultat et appose sa signature sur l'entrée. Il est important de noter que chaque entrée est signée indépendamment des autres et que les utilisateurs peuvent placer plusieurs sorties (c'est-à-dire envoyer des pièces à différentes adresses).


image of an example transaction with four inputs and two outputs


Si nous examinons une transaction avec quatre entrées (chacune valant 0,2 BTC) et deux sorties (0,7 BTC et 0,09 BTC), nous pouvons supposer certaines choses. Tout d’abord, nous assistons à un paiement quelconque : l’expéditeur envoie l’un de ces résultats à quelqu’un et le reste revient à l’expéditeur. Comme il a utilisé quatre entrées, la sortie la plus importante est probablement destinée au destinataire. Notez qu’il manque 0,01 BTC dans la sortie, il s’agit des frais versés au mineur.

Il est également possible que l'expéditeur ait voulu une grande production non dépensée à partir d'une petite sortie, il a donc mis une petite entrée pour obtenir les 0,7 BTC qu'il voulait envoyer.

Il existe une hypothèse que nous pouvons faire sur la base du fait que chaque entrée est signée indépendamment des autres entrées. Quatre parties peuvent participer à cette transaction et signer les transactions. C’est là que réside le principe qui rend les transactions CoinJoin efficaces.


Comment fonctionnent les transactions CoinJoin ?

L’idée est que plusieurs parties se coordonneront pour créer une transaction, chaque partie fournissant les entrées et sorties souhaitées. Lorsque toutes les entrées sont combinées, il est impossible de confirmer quelle sortie suit quel utilisateur. Voir la figure suivante :


image of an example coinjoin


Ici, nous avons quatre participants qui souhaitent masquer les liens entre leurs transactions. Ces participants se coordonnent entre eux (ou par l'intermédiaire d'un coordinateur) et annoncent les entrées et sorties qu'ils souhaitent. 

Le coordinateur prendra toutes les informations et en fera une transaction, et chaque participant la signera avant de l'envoyer au réseau. Une fois la signature des participants, la transaction ne peut être modifiée sans l'invalider. Il n’y a donc aucune possibilité que le coordinateur s’enfuie avec l’argent. 

Cette transaction est comme une boîte noire permettant de mélanger les transactions. N'oubliez pas que vous pouvez réellement détruire les résultats de transactions non dépensés et en créer de nouveaux. Le lien entre les anciens et les nouveaux résultats est le même traitement, mais il n'est pas possible de faire la distinction entre les participants. Tout ce que nous pouvons faire est de dire qu'un participant a contribué à cette transaction et peut être le nouveau propriétaire de l'un des résultats qui en résultent.

Mais même cela n’est pas garanti. Qui peut dire qu’il y a quatre participants à la transaction dont nous avons parlé précédemment ? Est-ce une personne qui envoie des pièces à quatre adresses qui lui appartiennent ? Ou deux personnes effectuant des achats séparés et 0,2 BTC reviendront à leurs adresses respectives ? Ou s'agit-il de quatre personnes qui envoient des pièces à d'autres participants ou se rendent des pièces à elles-mêmes ? Je ne peux pas en être sûr.


La confidentialité par le déni

Le fait que les transactions CoinJoin existent suffit à lui seul à jeter le doute sur les méthodes utilisées pour analyser les transactions. Nous pouvons en déduire que des transactions CoinJoin ont été effectuées dans de nombreux cas, mais nous ne pouvons pas savoir qui sont les propriétaires du résultat. À mesure qu’elles gagnent en popularité, on ne peut pas supposer que toutes les entrées appartiennent nécessairement au même utilisateur – un énorme pas en avant en matière de confidentialité dans l’écosystème des crypto-monnaies.

Dans l'exemple précédent, nous avons dit que le propriétaire de l'une de ses sorties pourrait être l'un des quatre participants à la transaction, et ce numéro est connu sous le nom d'ensemble aveugle. Plus il y a de personnes dans le groupe de chiffrement, moins il est probable que leurs transactions soient liées au propriétaire d'origine. Heureusement, les implémentations récentes des transactions CoinJoin permettent aux utilisateurs de combiner plus facilement et en toute confiance des entrées avec des dizaines d'autres utilisateurs, offrant ainsi un degré élevé de déni. Récemment, une transaction impliquant 100 personnes a été réalisée avec succès.


Réflexions finales

Les outils de mixage de transactions constituent un ajout important à l’arsenal de tout utilisateur qui prend sa vie privée au sérieux. Contrairement aux mises à niveau de confidentialité proposées (telles que les transactions confidentielles), il est compatible avec le protocole tel qu'il est. 

Pour ceux qui font confiance à l’intégrité et au comportement des tiers, les services de mash-up constituent une solution simple. Mais pour ceux qui préfèrent des alternatives vérifiables et non dépositaires, les alternatives CoinJoin sont meilleures. Ces transactions peuvent être effectuées manuellement pour les utilisateurs avertis en technologie, ou à l'aide d'un logiciel simplifiant des mécanismes plus complexes. Il existe déjà un certain nombre de ces outils dont la popularité ne cesse de croître, à mesure que les utilisateurs cherchent à améliorer le niveau de confidentialité.