Qu’est-ce que Coinjoin ?

Analyse de Coinjoin, la solution qui permet d’augmenter la confidentialité des transactions Bitcoin en tirant parti des transactions jointes.

Cet article est le premier d’une série d’articles consacrée aux protocoles assurant l’anonymat des cryptomonnaies.

Les origines de Coinjoin

CoinJoin a été proposé par Gregory Maxwell en août 2013, à travers un post sur le forum BitcoinTalk. Il y expose que la confidentialité de Bitcoin passe uniquement par l’utilisation d’adresses pseudonymes. Problème : ces adresses sont fragiles et faciles à compromettre notamment en cas de réutilisations. Elles rendent possible le suivi des paiements, peuvent être indexées sur le Web, etc. Une fois brisée, cette confidentialité est difficile et parfois coûteuse à recouvrer.

Ce manque de confidentialité pose selon lui un risque systémique pour Bitcoin, car il serait théoriquement possible de créer une liste centralisée des « bons » ou « mauvais » bitcoins mettant en péril la fongibilité de Bitcoin. Dans ce cas, certaines pièces pourraient ne plus être acceptées, car blacklistées.

Coinjoin pour « Transactions jointes »

La solution proposée a été réfléchie pour être utilisable sur le réseau Bitcoin et le tout sans effectuer de modification du protocole. Avant d’entrer dans le vif du sujet, il est important de rappeler qu’une transaction Bitcoin peut avoir plusieurs entrées et plusieurs sorties, en d’autres termes, plusieurs wallets peuvent effectuer un transfert en n’utilisant qu’une seule transaction commune.

En 2013, il était commun de penser qu’une utilisation jointe par plusieurs wallets d’une unique transaction impliquait qu’une unique personne était en charge des wallets présents dans la transaction. C’est là que gmaxwell entre en jeu : pourquoi différents individus ne pourraient-ils pas se fédérer afin de joindre leurs transferts au sein d’une seule transaction ?

C’est ce concept qui est utilisé dans Coinjoin, plusieurs utilisateurs se réunissent pour réaliser une unique transaction jointe, brisant ainsi le lien entre expéditeur et récepteur du transfert.

Transaction Coinjoin

Les avantages de Coinjoin

Ce système apporte de nombreux avantages, le premier étant la réduction des frais pour chaque utilisateur impliqué dans la transaction. En effet, au lieu d’émettre chacun une transaction – et payer X fois les frais – une unique transaction jointe est émise avec des frais uniques.

Le second avantage et le plus novateur est l’amélioration de la confidentialité. Imaginons N utilisateurs souhaitant envoyer un même montant à N destinataires, il leur est possible de faire une transaction jointe : il sera quasiment impossible d’identifier quel utilisateur a envoyé à quel destinataire. Dans cette méthode plus le nombre d’utilisateurs N est grand plus la confidentialité est importante.   

Les inconvénients de Coinjoin

Les transactions CoinJoin peuvent être comparées au mixage : l’idée est de ne pas pouvoir identifier quel émetteur et quel destinataire sont connectés.

Cela présente deux inconvénients majeurs que d’autres protocoles d’anonymats ont eux réussi à pallier.

  • les montants des transactions ne sont que partiellement offusqués, malgré qu’il soit dur de relier expéditeur et destinataire, les montants échangés eux restent visibles par tous.
  • la non-utilisation d’adresse unique permet à quiconque d’accéder à l’historique des transactions d’une adresse, n’assurant ainsi pas une grande confidentialité aux utilisateurs.

Conclusion sur Coinjoin

Comme nous l’avons vu, cette solution est utilisable sur Bitcoin. Malgré que cette solution présente des inconvénients, elle n’en reste pas moins une amélioration majeure. D’autres cryptomonnaies ont également repris le concept et l’ont adapté, c’est le cas de Dash (DASH) dont le PrivateSend est une version modifiée de CoinJoin. D’autres plateformes ou wallets implémentent également la solution, parmi eux : Wasabi Wallet, Samourai Wallet et SharedCoins.

Renaud H.

Ingénieur en software et en systèmes distribués de formation, passionné de cryptos depuis 2013. Touche à tout, entre mining et développement, je cherche toujours à en apprendre plus sur l’univers des cryptomonnaies et à partager le fruit de mes recherches à travers mes articles.