Mixage de Bitcoin avec Sparrow wallet et Samouraï Whirlpool

sparrow wallet samourai mixage bitcoin

Article écrit par Sparrow Wallet et publié sur le site Sparrowwallet.com. Traduit de l’anglais au français par Pierre-Louis.

Ce guide explique comment obtenir une bonne confidentialité en mélangeant ses bitcoins avec le service Samourai Whirlpool coinjoin. Nous utiliserons pour cela le wallet Sparrow à télécharger sur votre ordinateur (attention aux scams, il n’existe pas de version mobile).

Pourquoi faire des Coinjoins ?

Il s’agit d’une triste vérité, mais les garanties de confidentialité de Bitcoin sont faibles. Bitcoin est pseudonyme par nature, mais la plupart des utilisateurs obtiennent des Bitcoins auprès d’une plateforme d’échange qui doit conserver une trace de leur identité et de leurs retraits en raison des réglementations KYC (Know Your Customer). En outre, il existe un certain nombre d’heuristiques communes qui peuvent être appliquées pour analyser la blockchain Bitcoin et permettre de déterminer la propriété des fonds à travers de nombreuses transactions, avec un degré élevé de probabilité.

Ces heuristiques sont généralement rendues possible, du fait que les valeurs et les types de script impliqués dans les transactions Bitcoin sont publics. On peut par exemple supposer que toutes les entrées d’une transaction sont contrôlées par la même entité. Si celles-ci diffèrent lors de l’analyse des entrées et des sorties de la transaction, il est possible de retracer la propriété des fonds entre les transactions avec une certaine confiance.

Le Coinjoin est une technique simple, mais très efficace pour rendre ce type d’analyse difficile ou impossible. Les utilisateurs de Coinjoin se coordonnent pour créer une transaction qui utilise le même type de script pour toutes les entrées, chacun alimentaint et recevant des outputs de même valeur. La structure de cette transaction rend impossible la traçabilité de la propriété des fonds avec certitude. En outre, lorsque plusieurs “cycles” de coinjoins sont effectués successivement, la probabilité d’une analyse diminue considérablement à chaque cycle.

Pourquoi utiliser Whirlpool ?

Il existe de nombreux types de coinjoins, chacun avec des compromis différents. Sparrow Wallet agit en tant que client pour l’implémentation Samourai Whirlpool coinjoin. Cette implémentation offre un haut degré d’anonymat grâce à un certain nombre de choix de conception qui ont été testés et examinés pendant plusieurs années. Vous conservez la pleine propriété de vos fonds à tout moment. Il est important de noter que Whirlpool offre une bonne liquidité grâce aux autres utilisateurs. Chaque utilisateur supplémentaire dans Whirlpool augmente le potentiel d’anonymat défini pour tous les autres utilisateurs.

Chaque tour de mélange Whirlpool offre les garanties suivantes :

  • Entropie maximale.
  • Vous ne mélangez jamais vos bitcoins avec vous-même.
  • Vos bitcoins ne seront pas remélangés plusieurs fois avec les mêmes bitcoins.
  • Il n’y aura aucun lien déterministe entre les entrées et les sorties de transaction.
  • Les adresses ne sont pas réutilisées plusieurs fois.

Pour mieux comprendre tout ce que permet Whirlpool, vous pouvez lire cet article en anglais sur les outils d’anonymats de Whirlpool.

Préparez votre Wallet Sparrow.

L’utilisation de Whirlpool est assez simple. Pour commencer, vous aurez besoin d’un portefeuille logiciel BIP39 (également appelé “hot wallet”). Il s’agit simplement d’initialiser un wallet dans le logiciel Sparrow en créant une seed-phrase de 24 mots. Un portefeuille connecté à internet est nécessaire, car Whirlpool doit signer les transactions dès que le cycle de mélange est prêt. Le wallet doit être une dérivation standard sur le compte #0 par défaut (par exemple, m/84’/0’/0′ pour Native Segwit). Les portefeuilles Taproot (P2TR) et les seed-phrase générés par Electrum ne sont actuellement pas pris en charge.

Si vous avez déjà un wallet configuré dans Sparrow, vous pouvez l’utiliser (n’importez pas les 24 mots d’un Hardware wallet). Sinon, suivez le guide de démarrage rapide de Sparrow (en anglais) pour en créer un. Pour commencer à mélanger, vous aurez besoin d’un solde supérieur à 0,001 BTC (100 000 sats) dans le portefeuille. Si vous restaurez un wallet Whirlpool existant, lisez l’avant-dernière section de cet article, sur les autres clients de mélange.

Démarrez le mixage.

Pour commencer un mixage, allez dans l’onglet UTXOs et sélectionnez les UTXOs que vous voulez mixer (maintenez Ctrl ou Cmd pour en sélectionner plusieurs). Cliquez ensuite sur le bouton Mix Selected ci-dessous (vous devez d’abord être connecté au réseau).

mixage bitcoin sparrow wallet

Une boîte de dialogue contenant quelques détails importants sur le rôle de Sparrow en tant que client Whirlpool s’affiche. Pour qu’un coinjoin puisse avoir lieu, il est nécessaire que plusieurs utilisateurs se coordonnent pour créer une seule transaction. Dans Whirlpool, cette coordination est faite par le serveur Whirlpool. Pour un plus grand anonymat, toute communication avec le serveur Whirlpool se fait par des entrées occultées.

De plus, si vous avez configuré un proxy Tor, ou si vous utilisez un serveur Electrum sur une adresse .onion, la communication avec le serveur Whirlpool se fera via Tor. Notez que vous pouvez configurer un proxy Tor même si votre serveur est sur une adresse IP de réseau local – Sparrow utilise Tor uniquement pour se connecter à des services adressables de l’extérieur. Vous pouvez vérifier si Tor est configuré correctement à l’aide de l’icône de la barre d’état située à gauche du bouton de connexion au serveur.

tor status active sparrow

Notez que Sparrow n’utilise jamais les serveurs de Samourai pour fournir les transactions du portefeuille ou les informations UTXO. Ces informations proviennent de votre serveur connecté, comme cela a toujours été le cas. Seul le serveur indépendant de Whirlpool reçoit la communication, et les données qu’il reçoit sont occultées, de sorte qu’il n’y a aucune perte de confidentialité lors de l’utilisation de Tor.

Une fois que vous avez compris la confidentialité de l’implémentation de Whirlpool de Sparrow, vous pouvez continuer avec le bouton Suivant, ou cliquer sur Annuler pour configurer un proxy Tor si vous le souhaitez. Un proxy Tor interne démarrera automatiquement si vous vous connectez à un serveur Electrum ou Bitcoin Core sur une adresse .onion. Sinon, vous devrez configurer un proxy Tor externe pour utiliser Tor. La façon la plus simple de faire fonctionner un proxy Tor externe est de télécharger et d’exécuter Tor Browser et d’activer le proxy dans les préférences du serveur vers localhost avec le port 9150. Sparrow utilisera le proxy Tor configuré pour le coordinateur Whirlpool (et toutes les autres communications externes).

tor proxy preferences 2x

Premix, Postmix et Badbank :

Coinjoin via Whirlpool implique un certain nombre d’étapes, et en outre un certain nombre de portefeuilles. Ces portefeuilles sont tous basés sur la même seed de 24 mots que vous avez utilisée pour créer le hot wallet BIP39. Ils utilisent simplement des chemins de dérivation différents (mais connus) pour dériver d’autres adresses. Cela signifie que vous pouvez toujours récupérer tous vos fonds tant que vous avez votre seed.

Ces portefeuilles sont décrits comme suit :

  • Premix : Ce portefeuille contient les UTXO de votre transaction premix (également appelée Tx0). Votre transaction premix divise vos UTXOs en quantités égales prêtes à être mélangées.
  • Postmix : Ce porte-monnaie contient les UTXOs issus de vos mélanges. Whirlpool sélectionnera les UTXOs des deux portefeuilles Premix et Postmix pour les inclure dans les transactions coinjoin. Les fonds dans ce portefeuille peuvent être considérés comme mélangés et peuvent être dépensés anonymement en toute sécurité, surtout après un certain nombre de tours de mélange.
  • Badbank : Ce portefeuille contient le petit surplus de bitcoins de votre transaction premix (Tx0). Il s’agit de ce qui reste après avoir divisé vos UTXOs en montants égaux. Vous pouvez le mélanger avec d’autres UTXOs, à l’exception des fonds mixés (Postmix) avec lesquels ils ne doivent jamais être mélangés ! Les mélanger annulerait votre mix en établissant un lien claire entre vos fonds Premix et Postmix. Découvrez cet article en anglais pour apprendre les bonnes pratiques sur “Coinjoin change Output”.

Vous verrez tous ces portefeuilles apparaître à gauche de la fenêtre des wallet plus tard. Pour l’instant, la boîte de dialogue vous donne un aperçu de la façon dont ils apparaîtront.

premix postmix badbank 2x 1

Configuration de votre transaction de Premix :

Comme indiqué ci-dessus, votre transaction premix (Tx0) est nécessaire pour diviser les UTXOs que vous avez sélectionnés en quantités égales prêtes pour le coinjoin. En outre, avec cette transaction, vous fournirez les frais de minage nécessaires pour la transaction de coinjoin, et payerez une petite taxe unique au serveur Whirlpool. Si vous en avez un, ces frais peuvent être réduits en entrant un code de réduction ou un SCODE. Vous pouvez également ajuster le taux des frais pour la transaction premix. Si vous n’avez pas de SCODE, laissez simplement le champ vide et passez à Suivant.

mix scode 2x 1

Enfin, vous devez sélectionner le pool de mélange auquel vous souhaitez participer. Il existe actuellement quatre pools différents :

  • 0.5 BTC
  • 0.05 BTC
  • 0.01 BTC
  • 0.001 BTC

Seuls les pools qui sont inférieurs à la valeur de votre UTXO sélectionné seront affichés. Le choix du pool détermine la taille des UTXOs de la transaction coinjoin. En outre, les frais de Whirlpool sont fixés à 5 % de la taille du pool (avant l’application de toute remise). Il est important de noter que vous ne payez ces frais qu’une seule fois pour chaque transaction de premix. D’autres tours de mix se produisent automatiquement pour accroître votre anonymat, mais ils sont gratuits !

mix select pool 2x

Dans l’exemple ci-dessus, le pool 0.001 BTC a été sélectionné. Chaque transaction de coinjoin Whirlpool a 5 sorties, ce qui est appelé un ensemble d’anonymat (ou anonset) de 5. Les frais de pool sont indiqués comme 5% de la taille du pool, et l’UTXO fourni est divisé en 6 sorties.

Une fois que vous avez sélectionné votre pool, vous pouvez cliquer sur Preview Premix. Ne vous inquiétez pas, même si le mot de passe de votre portefeuille vous est demandé, la transaction de prémélange ne sera pas encore diffusée.

Diffusion de la transaction premix :

Une fois que vous avez cliqué sur Preview Premix, vous obtenez une vue similaire à celle ci-dessous. Notez d’abord que les portefeuilles Premix, Postmix et Badbank ont été ajoutés sur la gauche. Les onglets vous permettent de sélectionner ces portefeuilles, qui se comportent comme les portefeuilles Sparrow normaux, sauf qu’ils n’offrent pas d’adresses (vous ne pouvez donc pas recevoir directement vers eux). Votre portefeuille existant s’appelle ‘Deposit’ et fonctionne exactement comme avant.

Considérons maintenant la transaction de premix affichée. Les premières sorties de la transaction (outputs) sont la commission Whirlpool et le montant du change Badbank. Ensuite, les sorties du prémix sont affichées, comme Premix output n°0, Premix output n°1, etc. Leur valeur est légèrement supérieure à celle de la taille du pool, car les premix outputs sont responsables du paiement des frais des mineurs pour une transaction de coinjoin. Enfin, les frais de mineur pour la transaction premix elle-même peuvent être notés.

premix send

Une fois que vous êtes prêt à diffuser, cliquez sur le bouton Broadcast Premix Transaction. Si vous voulez changer les UTXOs inclus, ou le pool sélectionné, retournez simplement à l’onglet UTXOs.

Du Premix au Postmix :

Une fois que la transaction Premix a été diffusée, le client Whirlpool démarre automatiquement. Cliquez sur le Wallet Premix, et allez à l’onglet UTXOs. Cela peut prendre quelques secondes avant que votre serveur ne détecte la transaction Premix. Une fois qu’il l’a fait, vous devriez voir toutes les sorties Premix apparaître comme “Non confirmées”. Votre première transaction coinjoin commencera après que la transaction premix ait été minée, vous devrez donc attendre un peu. Une fois confirmé, le client Whirlpool sélectionnera un des UTXOs à inclure dans un tour de mélange. Cela est indiqué par la barre de progression qui apparaît dans la colonne centrale “Mélanges”. Vous pouvez obtenir plus d’informations sur la progression du cycle de mélange en passant la souris sur la barre de progression.

premix to postmix

Une fois que le coordinateur Whirlpool a trouvé suffisamment d’UTXOs disponibles chez d’autres utilisateurs pour se joindre au tour, il demandera au client Whirlpool de signer son entrée dans la transaction, et la transaction sera diffusée. À ce stade, la barre de progression balaie de gauche à droite en attendant que votre serveur prenne en charge la transaction nouvellement diffusée. Cette transaction dépensera l’UTXO Premix en un nouvel UTXO dans le Wallet Postmix. Cliquez sur le Wallet Postmix à gauche, et allez dans l’onglet UTXOs pour le voir.

Félicitations, votre première transaction de coinjoin est terminée ! Le client Whirlpool va maintenant sélectionner d’autres UTXOs premix et les mélanger aux postmix outputs.

Les autres tours de postmix :

Chaque sortie postmix qui a passé un tour de mixage a un ensemble d’anonymat de 5 (en d’autres termes, une des 5 possibilités). C’est bien, mais pas génial. Idéalement, vous voulez que ce nombre soit plus élevé pour offrir un réel anonymat. L’obtention de ce résultat est très simple – il suffit de laisser Sparrow fonctionner avec le portefeuille ouvert. Le client Whirlpool continuera à fonctionner et sélectionnera les UTXOs post-mix pour participer à d’autres tours de mixage. Le grand avantage est que cela ne coûte pas de frais supplémentaires – votre anonymat augmente gratuitement !

Important : pendant que votre UTXO attend d’être sélectionné, il est important que votre ordinateur ne se mette pas en veille en raison des paramètres d’économie d’énergie. Si votre ordinateur dort, il fermera la connexion au coordinateur de manière unilatérale, entraînant l’échec du mixage. Afin de protéger les autres utilisateurs, le coordinateur interdira temporairement les UTXO qui font échouer les mixages plusieurs fois sur une courte période. Désactivez la mise en veille de l’ordinateur pendant le mixage en utilisant le Panneau de configuration sous Windows, les Préférences système sous OSX et les paramètres de gestion d’énergie sous Linux. Vous pouvez également installer Caffeine (Windows), Amphetamine (OSX) ou Caffeine NG (Linux). Sparrow peut également empêcher votre ordinateur de dormir en maintenant l’écran en éveil – voir la fonction dans le menu Outils.

Si vous le souhaitez, vous pouvez arrêter et démarrer le mélange avec le bouton en bas du tableau UTXOs. Sparrow se souviendra de ce réglage lors des redémarrages.

Le Wallet Postmix peut être utilisé comme un wallet normal pour l’envoi de bitcoins. Par défaut, il utilisera le paramètre ‘Privacy’ lors de la construction d’une transaction. Avec ce paramètre, le portefeuille tente de créer un faux coinjoin à 2 personnes (également connu sous le nom de STONEWALL) lors des dépenses afin de protéger davantage l’anonymat de toutes les sorties Postmix. Si cela n’est pas possible (généralement en raison de fonds insuffisants), sachez que le fait de combiner des UTXO postmix indique une propriété commune sur ceux-ci et diminue votre anonymat.

Voici un exemple d’une fausse transaction de coinjoin à deux personnes (STONEWALL). Les deux premiers outputs ont la même valeur, l’un étant le montant du paiement et l’autre vous revenant en tant que monnaie de change (en plus des outputs normaux de change). Les intputs sont soigneusement sélectionnées de manière à ce qu’il soit impossible de savoir de l’extérieur si deux personnes se sont coordonnées pour créer un coinjoin afin d’accroître leur confidentialité, ou s’il s’agit simplement d’un paiement avec des outputs supplémentaires.

spending postmix

Comprendre les mélanges :

Pour qu’un mix coinjoin se produise, il faut qu’il y ait 2 à 3 UTXOs de premix dans chaque transaction. Cela permet de s’assurer que l’entropie reste élevée et que nous ne mélangeons pas simplement les mêmes bitcoins entre eux, ce qui n’apporterait que peu d’avantages. En outre, les UTXOs de premix fournissent les frais de mineur pour la transaction.

Il y a généralement beaucoup plus d’UTXOs postmix que d’UTXOs premix disponibles dans le pool. En pratique, cela signifie que vos UTXOs premix seront mélangés à des UTXOs postmix rapidement, mais une fois dans le Wallet Postmix, il peut s’écouler un certain temps avant qu’une transaction postmix à postmix ne se produise. La sélection des UTXOs postmix pour le remixage se fait de manière aléatoire et est donc sujette à des variations – vous pouvez recevoir plusieurs mélanges dans une courte période, ou attendre une journée pour que les choses avancent. Laissez Sparrow ouvert en arrière-plan (notez la fonctionnalité Minimiser dans la barre d’état système dans le menu Affichage) et les transactions postmix se produiront au fur et à mesure que les UTXOs seront sélectionnés dans un tour de mélange. Notez également que des périodes aléatoires entre les mélanges aident à briser l’analyse des modèles.

Plus d’UTXOs dans un pool donné, ainsi qu’un débit plus rapide du cycle de mixage augmentent les chances d’être sélectionné pour un mixage. Un seul mélange rompt les liens déterministes, tandis que plusieurs mélanges (à partir de n’importe quelle mix output) augmentent votre ensemble d’anon prospectif. Lisez Diving head first into Whirlpool Anonymity Sets pour mieux comprendre cela.

Parfois, vous pouvez voir une icône d’erreur à côté de votre UTXO avec une info-bulle “Entrée rejetée”. En général, cela se produit lorsqu’il y a trop d’échecs, par exemple lorsque le client est déconnecté plusieurs fois au cours d’un mix, ce qui entraîne trop d’échecs de mixage dans un court laps de temps. Le coordinateur Whirlpool implémente un bannissement temporaire automatique pour se protéger contre les attaques ou les clients instables. Ce bannissement expire automatiquement après un certain temps (environ 12h). Si vous voulez faire débloquer un UTXO dans cet état plus tôt, envoyez un email à help@samourai.support avec les détails de l’UTXO pour qu’ils puissent enquêter.

Il vous manque un UTXO postmix ? Parfois, le client Whirlpool avance l’index des adresses au-delà de la limite d’écart configurée pour le Wallet Postmix. Vous pouvez augmenter la limite d’écart en allant dans l’onglet Paramètres et en cliquant sur le bouton “Advanced”. Veillez à “Apply” après avoir fermé la boîte de dialogue.

Mixer vers un stockage à froid (hardware wallet) :

Il est également possible de mixer directement vers un wallet déconecté d’internet (y compris les portefeuilles multisigs !). Avec cette fonctionnalité, la sortie de postmix va directement dans un autre wallet Sparrow ouvert de votre choix après un nombre configurable de cycles de mélange. Cette option est largement préférable à l’envoi direct de bitcoins postmix vers un autre wallet, qui peut combiner les UTXO et détruire vos gains de confidentialité. Vous pouvez activer cette fonctionnalité en cliquant sur le bouton Mix to… sous le tableau des UTXOs dans le portefeuille Postmix. Pour garantir que les sorties de coinjoin apparaissent similaires, seuls les portefeuilles Segwit natifs sont pris en charge. Il est également nécessaire que le portefeuille de stockage à froid soit ouvert pour que cette fonctionnalité fonctionne. Ceci est nécessaire pour éviter la réutilisation des adresses.

mix to dialog 2x

La boîte de dialogue qui s’affiche vous permet de sélectionner le wallet et le nombre minimum de mélanges à effectuer avant d’effectuer un mélange vers celui-ci. Notez qu’afin d’augmenter la confidentialité en réduisant l’analyse potentielle des modèles, il y a 75 % de chances que le mixage soit effectué vers le portefeuille sélectionné à chaque tour de mixage, après que le nombre minimum de mixages ait été atteint. En pratique, cela signifie que vous pouvez laisser Sparrow finir de mélanger, et toutes les sorties post-mélange apparaîtront dans le portefeuille de stockage à froid après un certain temps.

Comme l’affichage du cold wallet doit rester ouvert dans Sparrow, il est judicieux de verrouiller l’accès au portefeuille à l’aide de la fonction du menu “View”. Vous pouvez faire de même pour le hot wallet de mixage – le client Whirlpool continuera à fonctionner en arrière-plan.

Les Autres clients de mélange

Il existe actuellement deux autres clients de mélange – le wallet Android Samourai, et l’outil CLI Samourai. L’outil Samourai CLI fait partie des applications incluses dans les full-Nodes Ronin Dojo, et peut également être exécuté seul ou connecté à l’outil de bureau Samourai GUI.

Il est possible de mélanger le même portefeuille BIP39 sur l’un ou l’autre de ces clients et sur Sparrow en même temps. Pour ce faire, vous devrez ajuster les paramètres “Mix To” en utilisant la boîte de dialogue décrite dans la section précédente.

Pour mélanger simultanément avec Sparrow et l’application Samourai Wallet, changez le champ “Index Range” en “Even”.
Pour mélanger simultanément Sparrow et l’outil CLI/GUI de Samourai, changez le champ “Index Range” en “Odd”.
Cela permet de s’assurer que Sparrow n’essaie pas de mélanger les mêmes adresses que l’autre client en utilisant des index de dérivation différents.

Pour restaurer un porte-monnaie Samourai sur Sparrow pour le mixage (ou un porte-monnaie Sparrow Whirlpool à partir d’une seed), créez un nouveau wallet dans Sparrow en utilisant le même processus décrit dans le guide de démarrage rapide. Cependant, au lieu de générer une nouvelle seed, entrez votre seed et votre passphrase à partir de Samourai Wallet (ou de votre sauvegarde). Une fois que le portefeuille a été créé, vous pouvez ajouter les comptes Whirlpool (Premix, Postmix, Badbank) à partir de l’onglet Paramètres. Sélectionnez “Add Account” en bas, puis sélectionnez “Whirlpool Accounts” dans la liste déroulante.

Conclusion

L’utilisation de coinjoin est l’une des meilleures méthodes disponibles pour préserver votre vie privée. On peut dire que chaque UTXO postmix a une bonne confidentialité forward – en d’autres termes, sa propriété ne peut pas être déterminée à partir du passé. Notez que cela n’efface pas votre activité passée, mais cela vous permet de stocker et de dépenser des bitcoins en toute confidentialité. Dans le contexte du grand livre ouvert et global de Bitcoin, cela est à la fois précieux et nécessaire.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *