5 étapes pour utiliser Bitcoin anonymement, avec la Whirlpool de Samourai Wallet
S’il y a bien deux idées qui persistent dans l’inconscient collectif, c’est de penser que Bitcoin est par nature fongible et qu’il permet un certain niveau d’anonymat. Sans revenir sur les différences importantes entre pseudonymat et anonymat, il est néanmoins assez évident que lorsque vous révélez certaines informations en utilisant Bitcoin (comme votre identité ou votre IP, par exemple), il devient théoriquement possible de vous relier à votre activité sur le réseau. Et si, par malheur, vous avez de mauvaises habitudes d’utilisation de vos portefeuilles crypto, il devient alors d’autant plus facile de remonter à votre solde, et à l’intégralité de vos transactions.
Voyons comment remédier à cette situation, en testant ensemble la solution offerte par la Whirlpool de Samouraï Wallet.
Des petites erreurs évitables
Une adresse = une transaction
Le cas le plus fréquent est la réutilisation de nos adresses Bitcoin. C’est une mauvaise habitude renforcée par les exchanges, lesquelles ont la fâcheuse tendance à nous permettre d’enregistrer nos adresses pour une utilisation plus souple et plus rapide. Il devient simple d’identifier l’ensemble des transactions passées et à venir d’un utilisateur, notamment pour une société qui se spécialiserait dans cette activité. Or, il se trouve que de telles sociétés, il en existe bien.
Laissez-moi préciser d’emblée que je ne m’adresse pas aux pirates et aux autres crypto-criminels liés à des activités illicites diverses et variées. Le raisonnement qui est le mien est le suivant : de la même manière que vous n’aimeriez pas que votre employeur ait accès à votre compte bancaire, il n’y aucune raison d’ouvrir les pages de votre précieux carnet comptable crypto à un tiers, quel qu’il soit.
Le poids de l’Histoire
Et ce n’est pas tout : même lors d’une utilisation classique, nos bitcoins ne sont pas toujours égaux entre eux. C’est tout le problème de ce que l’on appelle la fongibilité du Bitcoin : dans l’idéal, une monnaie est totalement fongible si l’on ne peut pas distinguer une pièce d’une autre similaire, et qu’elles ont alors toutes les deux la même valeur.
Mais, là où ça se corse un petit peu, c’est que de part la conception du protocole Bitcoin, vos bitcoins ont une histoire. D’une certaine manière, vous en héritez. Malheureusement pour vous, il est impossible d’y avoir accès avant d’acheter ces bitcoins en question sur un exchange classique par exemple. Mais ce ne sera sans doute pas le cas d’une autorité formée et équipée quelconque : à l’aide des formalités de KYC, tout client d’exchange est désormais facilement identifiable. Avec le renfort d’une société spécialisée en suivi de transactions blockchainisées (comme Chainalysis ou CipherTrace, pour ne pas les citer), remonter la piste de bitcoins un jour mêlés à des activités illicites pourrait s’avérer un jeu d’enfants. Certains, par conséquent, se questionnent : les bitcoins vérolés – car reconnus comme ayant un jour transités par des détenteurs peu recommandables – auront-ils moins de valeur que des bitcoins tout neufs juste sortis de la besace d’un mineur ?
Une confidentialité qui n’est pas un dû
Heureusement et malgré les défauts du protocole Bitcoin, il est possible de mélanger nos transactions avec celles d’autres possesseurs de bitcoin. L’idée derrière ce mixage de coins est la suivante : plus ce mélange est important, et plus il est difficile d’analyser une transaction. De cette manière, il est possible d’essayer de s’assurer une plus grande confidentialité dans les transactions en effaçant les liens avec les antécédents historiques de ces dernières.
Les bases des UTXO
Avant d’entrer dans le vif du sujet, il faut comprendre comment se calcule le solde de votre wallet Bitcoin. Ce dernier possède un ensemble d’adresses. Lorsqu’une de ces dernières réceptionne des bitcoins, elle récupère le contrôle d’une transaction. En grammaire bitcoin, c’est ce qu’on appelle une transaction non dépensée. Lorsque vous dépensez un bitcoin, vous utilisez la clef privée associée à l’adresse Bitcoin pour débloquer la transaction et la transférer à une nouvelle adresse.
Le solde final correspond donc à la somme des fonds non dépensés contrôlés par l’utilisateur (les fameux unspent transactions outputs, ou UTXO).
La mise en commun
Une transaction Bitcoin peut donc 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 : c’est alors qu’est née l’idée de permettre à plusieurs utilisateurs de mélanger leurs transferts respectifs en une seule transaction. C’est ce que l’on appelle une transaction Coinjoin.
Pour mieux saisir à quel point vos transactions du quotidien sont traçables en temps normal, vous pouvez consulter le site KYCP (Know Your Coin Privacy). Il permet d’établir des liens entre les transactions à partir d’une adresse donnée ou d’un identifiant de transaction, et d’ainsi reconstituer tout l’historique rattaché.
Miroir, mon beau miroir
Observons ensemble avec KYCP à quoi ressemble une transaction classique. Les liens entre chaque transaction apparaissent comme assez évidents.
Pour rendre les choses encore un peu plus graphiques, sachez qu’il est même possible d’obtenir des représentations visuelles de ces liens transactionnels. Il suffit de se servir de la plateforme OXT. Dans l’exemple suivant, on peut par exemple se douter que les transactions formant un triangle ont été réalisées par une seule et même personne.
Alors que dans le cas suivant, il devient bien plus difficile et relativement improbable de reconstituer quoi que ce soit.
Bienvenue parmi les Samouraïs
Cet article nous permettra donc d’étudier ce mélange des transactions Bitcoin prenant la forme de Coinjoin. Vous serez donc fin prêts pour les mises à jour prochaines de l’application mobile Android Samourai Wallet. L’application évolue régulièrement et a pour objectif de renforcer la confidentialité de ses utilisateurs. Encore en phase de test, une de ses fonctionnalités permettra justement de mélanger ses transactions avec celles d’autres participants, pour ainsi rendre difficile le travail de traçabilité… le tout, directement depuis votre mobile. Manipulons l’application en 5 étapes pour mixer vos bitcoins.
1. Le principe des pools de mixing
En attendant l’intégration de cette fonctionnalité directement dans l’application mobile de Samouraï Wallet, il sera par contre nécessaire d’utiliser l’application de mixage de bureau Whirlpool. Vous pouvez la télécharger juste ici.
L’application Whirlpool permet d’utiliser de se constituer en coopératives momentanées de mixage, à la manière dont les mineurs peuvent se fédérer en coopératives de minage. L’application propose donc trois pools différents pour mixer les UTXOs de ses utilisateurs.
Selon le pool utilisé, le mélange initial sera divisé en plusieurs UTXOs.
Par exemple, pour une balance de 1 BTC :
- Le pool 0.5 BTC mélangera séparément deux UTXOs de 0.5 BTC,
- Celui de 0.05 BTC mélangera 20 UTXOs de 0.05 BTC,
- Celui de 0.01 BTC fournira 100 UTOxs de 0.01 BTC.
Dans notre exemple, je vais mixer un peu plus de 0.02 BTC dans le pool le plus petit.
2. Préparer le mixage
Pour ce faire, direction l’application Whirlpool. Cliquez sur le bouton « +Deposit ». L’application vous fournira une adresse au format Bech32 (débutant par bc1). Si vous n’avez encore jamais utilisé ce type d’adresse, je vous invite à vérifier la compatibilité de votre wallet, mais surtout sa capacité à envoyer des fonds à ce type d’adresse.
Une fois envoyée, la transaction sera vue immédiatement dans Whirlpool comme étant non confirmée.
En attendant la confirmation, vous pourrez sélectionner le nombre de rounds de mixage souhaités pour votre mélange. En soi, cette configuration est sans importance, puisque l’on peut ajouter à tout moment un mix supplémentaire.
Notez également que deux types de frais sont appliqués. Le premier type concerne les frais de minage et dépendent de l’état du réseau. Le second concerne les frais appliqués par le pool pour le service offert. Ces derniers s’élèvent à 5% du montant du pool sélectionné (et pas du montant à mélanger). L’ensemble des frais s’appliquent en une fois, et il est donc possible de réaliser autant de mélanges que l’on souhaite sans dépenser plus. Cela à plusieurs intérêts :
- Fournir de la liquidité au pool et ainsi faciliter le mélange ultérieur des autres transactions,
- Mélanger encore plus vos propres transactions et rendre vos bitcoin encore plus fongibles (en théorie).
La transaction confirmée, vous avez la possibilité de la mixer en cliquant sur le bouton Tx0 >>. Une fenêtre s’affiche vous permettant de définir le pool désiré (dans notre cas, celui des 0.01 BTC), les frais de transaction applicables et le nombre de rounds de mixage souhaités.
Cliquez à nouveau sur Tx0 pour confirmer. Vous remarquerez que deux transactions s’affichent désormais dans un nouveau menu, le groupe Premix.
Le premix est une étape nécessaire consistant à préparer le premier mélange de nos transactions avec celles des autres participants.
3. Let’s mix
Il est ensuite l’heure de lancer le mix ! Vous pourrez notamment vérifier les frais de transaction fixes liés au pool (de 0.0005 BTC) ainsi que la création de trois UTXOs. Seul les UTXOs supérieurs à 0.01 BTC seront mélangées.
Ces deux transactions sont séparées et mélangées séparément avec quatre autres participants, comme nous pouvons le voir dans cet exemple.
Voici enfin à quoi ressemble cette transaction mélangée par Whirlpool, selon l’explorateur KYCP.
Comme vous pouvez le voir, il n’est pas possible de faire le lien entre les transactions sources et destinations.
Une fois le premier mélange terminé, les transactions sont déplacées dans le menu du postmix.
4. Décider de la route à prendre
A partir de là, plusieurs possibilités s’offrent à vous :
- Conservez vos bitcoins dans Whirpool afin de continuer les mélanges,
- Dépensez vos bitcoins (ou les envoyez sur un exchange),
- Transférez vos bitcoins sur un de vos wallets.
Les deux dernières options sont les plus délicates, puisqu’une mauvaise manipulation peut vous faire perdre une grande partie de l’anonymat durement gagné. En effet, c’est lorsque vous souhaiterez récupérer vos fonds que vous risquez de les associer à nouveau à vos traces numériques multiples. Par ailleurs, l’unique mélange réalisé dans cet article est insuffisant pour effacer d’une quelconque façon l’historique de vos bitcoins, et il est préférable d’opter pour la première option afin d’ajouter suffisamment d’entropie si vous souhaitez véritablement récupérer un peu de votre droit à la vie privée.
Pour en revenir à la récupération ou à la dépense de vos fonds, l’idéal est alors de dépenser moins de la moitié de vos fonds à l’aide de la fonctionnalité StoneWall. Il s’agit d’un outil permettant de cacher au maximum le lien entre les transactions et ainsi éviter une dés-anonymisation. En effet, comme nous en parlions en introduction de cet article, chaque wallet Bitcoin choisit différents UTXO lorsque vous souhaitez dépenser des fonds, et il peut laisser une trace que les entreprises d’analyse peuvent utiliser pour établir une corrélation entre plusieurs transactions. StoneWall cherche à réduire ce risque, mais nous n’entrerons pas plus dans le détail dans le présent article.
5. Récupérer vos fonds
Si, comme moi, vous souhaitez récupérer vos fond sur votre wallet matériel, il faudra y aller étape par étape en transférant vos UTXOs une à une. C’est un peu laborieux, mais il faut ce qu’il faut, comme on dit.
Par ailleurs, je vous recommande vivement de créer un nouveau compte (sur ledger live) ou d’utiliser un nouveau chemin de dérivation afin de réduire considérablement les possibilités de corréler les différentes transactions.
Dans mon cas, j’ai donc deux transactions en POSTMIX et une en DEPOSIT.
Les UTXOs concernées devront absolument être transférées une à une vers des adresses différentes de votre wallet. Dans le cas contraire, vous perdrez tous les bénéfices d’avoir mélangé vos transaction. Mais comment faire ? Voyons cela ensemble.
Dans un premier temps, envoyez directement votre reste de dépôt non mélangé tiré du Deposit sur une des adresses encore non utilisées de votre wallet. Réalisez le transfert directement depuis Samourai Wallet.
Pour les fonds du POSTMIX, il faudra d’abord les transférer sur Samourai Wallet. Depuis ce dernier, allez dans le menu options (en haut à droite), cliquez sur « Settings », puis « Troubleshoot » et enfin « Address calculator ».
Sélectionnez « Whirlpool Segwit address » et entrez l’index correspondant. Vous le retrouvez dans le POSTMIX Whirlpool sous la forme M/0/0. Le dernier chiffre est l’index de l’UTXO. Cette opération vous permettra de récupérer la clé privée correspondante.
Importez-la dans Samourai Wallet avec l’option « Sweep private key ». Vous pourrez ensuite vous envoyer gérer les fonds du POSTMIX directement depuis Samourai Wallet, pour les envoyer eux-aussi vers une adresse publique encore jamais utilisée pour recevoir des fonds.
Au bilan, pour mixer 0.02301024 BTC, j’ai payé 0,00065295 de frais soit un peu moins 3% de frais. Évidemment, il s’agit d’un exemple très personnel et purement indicatif, puisque ces frais dépendent à la fois des frais variables du réseau Bitcoin, mais également du pool de mélange sélectionné.
Comme nous venons de le voir, la solution proposée par Samourai – bien qu’essentielle – reste encore relativement pointue, y compris pour les bitcoiners aguerris. Gardons en tête que cette solution est encore en bêta et que la prochaine version intégrera tout le processus nativement.
Faciliter l’usage de techniques permettant de rendre fongible Bitcoin est un projet pour le moins ambitieux, et il impliquera lui aussi forcément un gros travail sur l’expérience utilisateur.