la crypto pour tous
Rejoindre
A
A

Bitcoin Coinjoin - Wasabi vs Samourai

mar 05 Sep 2023 ▪ 8 min de lecture ▪ par Nicolas T.
Apprendre Wallet

Personne ne devrait savoir combien de bitcoins sont en votre possession. Il faut donc régulièrement réaliser des coinjoins.

Bitcoin coinjoin

Bitcoin Coinjoin

Les transactions en bitcoin sont publiques, si bien que les exchanges peuvent suivre ad vitam æternam les fonds retirés par leurs clients.

Un coinjoin est une transaction qui mélange les bitcoins de trois à plusieurs centaines de personnes. Le but est de se renvoyer les bitcoins à soi après dissimulation dans une foule de participants.

En sortie de transaction coinjoin, les participants reçoivent des sommes égales de bitcoins sur de nouvelles adresses. Il est alors impossible pour un exchange ou une firme de surveillance comme Chainalysis de savoir qui est qui.

L’analogie du tunnel résume bien le principe d’un coinjoin. Imaginez un hélicoptère prenant en filature trois voitures rouges roulant dans un ordre précis. Et qu’elles changent d’ordre à la faveur d’un tunnel, à l’abri des regards. En sortie de tunnel, l’hélicoptère ne sait plus qui est qui.

Et comme une image vaut mille mots :

La première personne ayant vu la possibilité de brouiller les pistes avec de telles transactions rassemblant plusieurs participants est Greg Maxwell. Il lança dès 2013 le sujet Coinjoin Bounty sur le forum BitcoinTalk.

Le développeur genjix posa les premières pierres sur Github sous le nom de « Coinjoin ». La seconde proposition fut « Bitprivacy ». Retrouvez toute la liste ICI.

Aujourd’hui, trois solutions robustes demeurent. Le protocole Wabisabi développé par le wallet Wasabi. Whirlpool de Samourai et JoinMarket. Chacun ayant sa propre manière de faire.

Bitcoin Coinjoin : différentes approches

Le principe d’un coinjoin n’est pas compliqué. Ce n’est qu’une transaction rassemblant de nombreux participants. Mais comme toujours, le diable se cache dans les détails.

La première chose dont il faut parler est l’entité qui se charge d’organiser le coinjoin, le « coordinateur ». Idéalement, ce chef d’orchestre ne doit pas pouvoir désanonymiser un coinjoin après coup.

Il ne faut donc pas qu’il puisse faire de lien entre les différentes adresses apportées par les participants.

Avec Wasabi, le coordinateur zkSNACKs attribue une nouvelle identité Tor pour chaque utxo qui entrera et sortira du coinjoin.

Même chose lors de l’enregistrement des signatures permettant de débloquer les UTXO (les bitcoins) et des adresses qui serviront à les récupérer en sortie de transaction. Le but est que le coordinateur ne puisse pas faire le lien entre les entrées et les sorties.

[Tor est un navigateur internet libre et gratuit qui permet d’anonymiser du trafic internet en l’acheminant via un réseau de serveurs qui offusquent l’origine et la destination des données.]

Autre chose très importante, les participants ne doivent jamais perdre le contrôle de leurs bitcoins. La construction d’un coinjoin doit se faire grâce à des signatures partielles. On parle de Partially Signed Bitcoin Transaction (PSBT) en anglais.

En somme, un bon coordinateur de bitcoin ne doit pas pouvoir défaire un coinjoin après coup (zero-knowledge proof), ni prendre le contrôle des bitcoins.

Doxxing change

Avant d’aller plus loin, il faut absolument parler de la monnaie rendue (« change » en anglais). La raison étant que ces bitcoins peuvent entièrement ruiner l’anonymat gagné lors d’un coinjoin. Explication.

Rappelons tout d’abord qu’un wallet contient des paires de clés privée/publique correspondant à autant d’utxo. Ces derniers sont des scripts (bout de code) que les nœuds du réseau Bitcoin gardent en mémoire.

L’addition de tous ces utxo correspond au solde total du wallet. Leur fonction est de lier une quantité de BTC (un chiffre) à une paire de clés privée/publique.

Réaliser une transaction bitcoin signifie signer un utxo grâce à la clé privée qui permet de déverrouiller les BTC et de les lier à une nouvelle paire de clés. Il en découle un nouvel utxo venant écraser l’ancien.

À vrai dire, nous devrions dire « nouveaux utxo ». Et notamment celui qui correspond à cette monnaie rendue qui pose problème. Lors d’une transaction lambda, trois utxo au minimum sont créés :

-Montant envoyé au destinataire
-Frais de transaction payés aux mineurs
-Monnaie rendue

La monnaie rendue tient au fait que l’on ne dispose jamais d’un UTXO correspondant exactement au montant désiré. Si bien qu’il faut utiliser un (ou plusieurs UTXO) d’un montant supérieur.

D’où la monnaie rendue vers une adresse appartenant à l’envoyeur. Malheureusement, cet UTXO est problématique. Pourquoi ?

Parce que la firme de surveillance sait qu’il vous appartient. Par conséquent, si vous avez le malheur de le combiner dans une transaction future avec les utxo obtenus après coinjoin, Chainalysis que l’ensemble de ces UTXO vous appartiennent.

D’où l’expression « doxxic change » qu’il faut isoler dans le wallet pour s’assurer qu’ils ne soit jamais mélangé avec les utxo anonymisés obtenus en sortie de coinjoin.

Wasabi vs Samourai

Cette introduction sur l’utxo correspondant à la monnaie rendue est nécessaire pour comprendre la façon de faire de Samourai.

Alors que Wasabi a choisi de créer des coinjoins comportant un très grand nombre de participants, ceux de Samourai sont de plus petites transactions (cinq participants). Il faut donc garder ses BTC dans Whirlpool et laisser les coinjoins s’enchaîner pour obtenir un anonymat équivalent.

A noter qu’enchaîner les coinjoins est gratuit. Les frais de transaction de ceux qui restent dans Whirlpool sont payés par les nouveaux venus. Dit autrement, il faut une croissance perpétuelle des nouveaux venus pour que le système tienne debout.

La technique du coinjoin massif (des centaines de participants) de Wasabi paraît donc plus avantageuse. Notamment au niveau de la rapidité d’exécution, du coût et, surtout, de l’espace bloc consumé pour un résultat similaire.

D’autant plus que chez Samourai, une transaction zéro (Tx0) de préparation est nécessaire avant le coinjoin. Et c’est là que nous voulions en venir.

Cette Tx0 sert d’une part à diviser l’utxo original en plusieurs utxo de même montant. Et d’autre part à envoyer le « doxxic change » dans une section « isolée » du wallet. [Ce qui requiert de révéler sa xpub si l’on passe par le dojo (noeud) de Samourai. Dit autrement, Samourai a accès à toutes les adresses du wallet…].

A contrario, dans le nouveau protocole Wabisabi, cet utxo « s’élimine » directement dans le coinjoin. Il n’y a pas besoin de Tx0. Les utxo apportés peuvent être de n’importe quel montant.

Le résultat en sortie peut être une consolidation en utxo plus grands, ou bien une fragmentation en utxo plus petits. Le grande nombre de participants et la variété infinie de groupes d’utxo de montants similaires (en sortie) empêche de faire un genre de sudoku pour tenter de savoir qui est qui.

Pour information, la commission du coordinateur zkSNACKs est de 0,3 % pour tout utxo supérieur à 0,01 bitcoin. En dessous, aucun frais n’est ponctionné (PlebsDontPay). Samourai ponctionne pour sa part des frais fixes.

Terminons en disant que chez Wasabi, les utxo apportés en entrée sont filtrés afin d’éviter le risque de se retrouver en sortie avec les BTC de criminels qui pourraient être refusés par les exchanges.

Maximisez votre expérience Cointribune avec notre programme 'Read to Earn' ! Pour chaque article que vous lisez, gagnez des points et accédez à des récompenses exclusives. Inscrivez-vous dès maintenant et commencez à cumuler des avantages.



Rejoindre le programme
A
A
Nicolas T. avatar
Nicolas T.

Reporting on Bitcoin, "the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy".

DISCLAIMER

Les propos et opinions exprimés dans cet article n'engagent que leur auteur, et ne doivent pas être considérés comme des conseils en investissement. Effectuez vos propres recherches avant toute décision d'investissement.