Wasabi contre. Samourai pour le mélange Bitcoin
Wasabi Wallet contre Samourai Wallet a été l’une des querelles les plus anciennes de cet écosystème. La confidentialité sur Bitcoin est une propriété très vitale, avec beaucoup de travail pour fournir des solutions à ce jour, ainsi que beaucoup de travail à faire pour l’améliorer.
Je pense personnellement que la querelle et ses conséquences sont une situation plutôt triste, des deux côtés, il y a eu attaques personnelles, déclarations inexactes faites à propos de l’autre projet et des tentatives cohérentes de marketing ancrées dans ces deux choses. Il a fait beaucoup pour faire reculer la compréhension de la manière d’assurer la confidentialité à l’aide de Bitcoin, ainsi que l’adoption d’outils de confidentialité au sein de la communauté Bitcoin au sens large.
Démêler toutes les retombées et les idées fausses résultant de cette querelle prendrait probablement une petite nouvelle, mais il y a une seule différence technologique entre les deux projets sur laquelle je voudrais me concentrer ici. Chaque projet utilise une structure et un flux de transaction différents lors de l’engagement dans CoinJoining. Wasabi choisit de créer de très grandes transactions pour inclure une quantité substantielle d’entrées et de sorties, créant ainsi un plus grand ensemble d’anonymat par transaction. Samourai choisit de s’engager dans des transactions beaucoup plus petites avec des interactions structurées entre elles et un anonymat composé à travers de nombreuses transactions successives.
TX0 du samouraï
Une partie de la conception de Samourai est Transaction Zero (TX0). Il s’agit d’une sorte de transaction de configuration précédant les transactions CoinJoin réelles. Il divise l’entrée originale non mélangée en sorties de dénomination de mélange individuelles, les sorties de changement, et c’est là que Samourai perçoit ses frais de mélange pour coordonner les CoinJoins.
Diviser la sortie non mélangée d’origine en sorties de dénomination mixte permet d’abord à toutes de rejoindre la file d’attente pour le mélange en même temps car, rappelez-vous, Samourai coordonne de nombreuses transactions CoinJoin plus petites en parallèle et beaucoup plus rapidement. TX0 permet à vos pièces de tirer parti de ces mélanges parallèles plus rapidement, sinon vous devriez attendre jusqu’à ce que vous rasiez une sortie de dénomination mixte une par une et receviez votre changement dans la transaction CoinJoin elle-même pour l’utiliser comme entrée dans le prochain une. Étant donné que Samourai a de nombreux CoinJoins se produisant en parallèle, ce serait une conception très inefficace.
Un de le point de discussion le plus ancien dans la querelle entre les deux projets est que TX0 offre une amélioration fondamentale de la confidentialité par rapport à l’absence de TX0. L’affirmation traditionnellement faite est qu’en supprimant et en isolant la sortie de modification dans la transaction pré-CoinJoin au lieu de la première transaction CoinJoin, les UTXO mixtes sont rendus plus privés. C’est totalement inexact.
Pour comprendre pourquoi, je vais expliquer à quoi ressemblent les choses en chaîne pour un mélange Samourai et Wasabi.
Corrélations des graphiques de transaction
Le but d’un CoinJoin est d’obscurcir les connexions entre les entrées et les sorties d’une transaction Bitcoin. En structurant une transaction impliquant plusieurs personnes qui prend des entrées et crée des sorties de la même dénomination, en les recyclant dans les cycles futurs si les utilisateurs le souhaitent, vous pouvez créer des transactions Bitcoin où les observateurs extérieurs ne peuvent pas être certains des entrées corrélées aux sorties en termes de propriété. Si cinq personnes fournissent des entrées de n’importe quelle valeur et reçoivent toutes des sorties de la même dénomination (disons 0,01 BTC), alors un observateur extérieur ne peut pas être certain du propriétaire d’une entrée donnée qui possède une sortie résultante de la dénomination mixte (0,01 BTC).
Alors asseyons-nous et réfléchissons à ce qui se passe lorsque vous allez d’abord mélanger avec Samourai. Vous prenez 1.1 BTC et allez mélanger avec Whirlpool dans le pool 0.5, la première chose qui arrive est votre TX0. Votre 1.1 BTC est divisé en deux sorties de 0,5 BTC, puis la sortie de changement de 0,1 BTC.
À ce stade, il est toujours clair que toutes ces sorties appartiennent à la même personne. Vous mettez ensuite en file d’attente les deux sorties 0,5 BTC dans le pool de mélange, et elles finissent par participer à la première transaction CoinJoin réelle. À ce stade, un observateur extérieur sait que l’entrée initiale de 1,1 BTC appartient à une personne, que la sortie de changement de 0,1 BTC appartient toujours à cette personne, la première transaction de coinjoin à laquelle chaque sortie de 0,5 BTC a participé et le fait que le la personne observée possède l’une de ces sorties de transaction (mais pas quelle sortie spécifique).
La seule façon dont la sortie de changement de 0,1 BTC peut en aucune façon nuire à la confidentialité des deux sorties mixtes de 0,5 BTC est si elle est dépensée et combinée avec elles dans une seule transaction, ou d’une autre manière liée avec elles sur la blockchain ( comme envoyer la sortie de modification à la même adresse que celle à laquelle vous avez envoyé une sortie mixte).
Pensons à ce qui se passe lorsque vous mélangez avec Wasabi. Vous prenez la même entrée 1.1 BTC et vous la mettez en file d’attente pour un mélange. De nos jours, Wasabi prend en charge quelques dénominations de mélange différentes, mais pour des raisons de simplicité, supposons simplement qu’elles ne prennent en charge que les dénominations de mélange de 0,1 BTC. Cette entrée est mise en file d’attente, le CoinJoin se produit et vous recevez une sortie de dénomination de mélange de 0,1 BTC et une sortie de changement de 1,0 BTC. Que voit l’observateur extérieur ? Ils voient que le propriétaire de l’entrée 1.1 BTC contrôle toujours une sortie de changement 1.0 BTC, ils voient la première transaction CoinJoin à laquelle ils ont participé, et ils savent que cette personne possède l’une des sorties de dénomination de mélange 0.1 BTC dans cette transaction (mais pas laquelle sortie spécifique qui est).
Ils apprennent exactement les mêmes informations qu’ils apprennent en observant un mélange Whirlpool. Si l’utilisateur Wasabi répète le processus avec sa sortie de modification, rien ne change. L’observateur apprend la corrélation entre l’entrée non mélangée et la sortie de changement, et le fait que l’une des sorties mixtes appartient à cette personne, mais pas laquelle. Tant que la sortie de changement n’est pas connectée à une sortie mixte sur la chaîne, elle ne présente aucune fuite de confidentialité pour l’utilisateur. TX0, et retirer le changement avant la transaction CoinJoin elle-même, ne fait absolument aucune différence dans le niveau de confidentialité.
Alors qu’est-ce que TX0 ? Il s’agit d’une optimisation pour une implémentation CoinJoin qui coordonne de nombreuses transactions CoinJoin en parallèle, ce qui n’a aucun sens à mettre en œuvre pour une implémentation CoinJoin qui coordonne une seule transaction CoinJoin une à la fois. Dans Whirlpool, il est logique de diviser les pièces à l’avance, car il existe de nombreux CoinJoins différents qui se produisent en parallèle auxquels chaque sortie prédivisée peut participer. Dans Wasabi, il n’y en a qu’une à la fois, donc fragmenter vos pièces à l’avance ne fait aucun sens en termes d’efficacité.
Samourai a des garanties plus solides que Wasabi en ce qui concerne la gestion du changement, mais cela n’a rien à voir avec la structure de transaction de ce qui se passe sur la chaîne. C’est son isolation des sorties de changement dans un ensemble séparé d’adresses et ses avertissements dans le portefeuille et les protections qui empêchent de dépenser les sorties de changement avec des sorties mixtes.
Je suis sûr qu’au moment où vous lirez ceci, de nombreux utilisateurs et développeurs de Samourai crieront que je répands FUD. J’encourage les lecteurs à vraiment s’asseoir et à réfléchir aux faits tels que je les ai exposés et à analyser les choses de manière logique. Tout ce que j’ai dit est entièrement factuel et vérifiable uniquement par une réflexion raisonnée.
À ce stade, avec les actions récentes de Wasabi concernant la censure des entrées spécifiques « entachées » de l’inscription à CoinJoins avec leur coordinateur, je ne recommanderais jamais de l’utiliser uniquement pour des raisons éthiques. Je pense que l’action que son équipe a prise sans aucune obligation légale ou réglementaire de le faire est franchement lâche et montre une faiblesse qui encouragera les entités gouvernementales à pousser plus fort les attaques contre la vie privée.
Cela dit, je pense qu’en ce qui concerne les outils de confidentialité, les utilisateurs devraient prendre des décisions éclairées en fonction de la façon dont les choses fonctionnent réellement, et pas simplement des slogans et des revendications marketing. Wasabi et Samourai peuvent assurer la confidentialité des utilisateurs lorsqu’ils sont utilisés correctement. Samourai a absolument beaucoup plus de garanties pour s’assurer qu’il est utilisé correctement, mais ceux-ci sont tous intégrés simplement comme des avertissements dans le logiciel du portefeuille et dans la façon dont les adresses pour les sorties mixtes et non mélangées sont générées séparément. TX0 n’a rien à voir avec cela et n’offre aucun avantage supplémentaire en matière de confidentialité.
Ceci est un article invité de Shinobi. Les opinions exprimées sont entièrement les leurs et ne reflètent pas nécessairement celles de BTC Inc ou Bitcoin Magazine.