63 / 736CJ

CoinJoin

Une transaction commune pour mieux protéger sa vie privée

Les paiements Bitcoin sont publics, mais le registre ne révèle pas forcément à qui appartient chaque nouvelle sortie. CoinJoin exploite cette différence : plusieurs personnes construisent une transaction commune. Cela peut compliquer le suivi de leur argent, sans effacer l’historique ni promettre l’anonymat.

CoinJoin permet de réunir les fonds de plusieurs personnes dans une transaction Bitcoin, chacune conservant ses clés et vérifiant ce qu’elle signe. La transaction crée de nouvelles sorties pour les participants ou leurs destinataires. Un observateur peut avoir plus de mal à déterminer quel propriétaire initial a reçu quelle sortie. Le résultat dépend de la structure de la transaction, du protocole et des autres informations dont dispose l’observateur.

Anna paie un service et ne souhaite pas que le destinataire puisse facilement suivre le reste de ses fonds. Mais Bitcoin n’a pas de relevé bancaire privé : son historique est public. Une transaction dépense d’anciennes sorties encore disponibles, appelées UTXO, et en crée de nouvelles. Une sortie indique un montant et les conditions à remplir pour le dépenser. Lorsqu’un paiement ordinaire en utilise plusieurs, un analyste suppose souvent qu’une même personne les contrôle. C’est une règle d’estimation, une heuristique, pas une preuve. CoinJoin rompt cette hypothèse en faisant coopérer plusieurs propriétaires dans une transaction. Le passé ne change pas ; c’est la certitude des liens déduits des données publiques qui diminue. [1]

Dans un exemple simplifié, Anna et Pavel disposent chacun d’une sortie de 100 500 sat. Sat est l’abréviation de satoshi, la plus petite unité du bitcoin. Ils conviennent d’une transaction donnant à chacun une nouvelle sortie de 100 000 sat ; les 1 000 sat restants couvrent les frais réseau communs. Ce modèle pédagogique exclut les éventuels frais de service supplémentaires. Une proposition est préparée par un coordinateur ou par les portefeuilles qui communiquent entre eux. Une signature numérique est une autorisation vérifiable créée avec une clé privée, la donnée secrète qui permet de signer. La clé elle-même n’est pas divulguée. Chacun vérifie l’adresse de sa sortie, le montant, les frais et toutes les conditions avant de signer ses entrées. Le coordinateur seul ne possède ni les clés ni l’autorisation de dépenser les fonds d’autrui. Sans une signature requise, cette transaction ne peut être valablement achevée. Cette protection suppose toutefois un logiciel correct et une proposition vérifiée : signer un paiement vers l’adresse d’un escroc la ferait disparaître. [1] [5]

Dans l’exemple, une personne qui ne regarde que la blockchain voit deux nouvelles sorties de même valeur. Le montant seul ne dit pas laquelle appartient à Anna et laquelle à Pavel. Cela ne signifie pas automatiquement une chance sur deux ni un anonymat garanti : l’observateur peut connaître une adresse ou disposer d’un autre indice. Dans les transactions réelles, une monnaie rendue reconnaissable, des montants différents, les types de sortie ou le moment des opérations peuvent aider à établir les liens. L’ensemble d’anonymat désigne les candidats qu’un observateur ne distingue pas, et non simplement le nombre d’inscrits à un tour. Le score d’un portefeuille est une estimation selon un modèle, pas une promesse sur ce que sait chaque observateur. [1] [4]

Pouvoir voler de l’argent et pouvoir apprendre quelque chose sont deux capacités différentes. Un coordinateur simple peut connaître les liens entre entrées et sorties ; d’autres protocoles les lui cachent par des techniques cryptographiques. Les données réseau, comme les adresses IP et les heures de connexion, comptent aussi. Un autre problème est une attaque dite Sybil Attack : un adversaire se fait passer pour de nombreux participants, connaît ses propres sorties et réduit ainsi l’incertitude sur celles des autres. Un participant peut également refuser de signer et perturber tout le tour. Il faut donc examiner les règles de participation et les défenses contre la saturation ou le sabotage, appelés DoS. Un grand nombre d’entrées ne règle pas ces questions à lui seul. [1] [4]

Anna utilise ensuite sa nouvelle sortie avec des fonds retirés d’une plateforme qui connaît son identité. Elle peut ainsi fournir un nouveau lien à un observateur, là où elle avait cherché à créer de l’incertitude. Réutiliser des adresses ou réunir plusieurs sorties en une, une consolidation, peut produire un effet similaire. Coin Control permet de choisir les UTXO dépensés par le portefeuille et aide à séparer les différents contextes. Ce n’est pas un bouton de confidentialité absolue. Un destinataire peut connaître le payeur et un service conserver ses propres registres. La protection reste donc importante après un tour réussi ; elle ne dépend pas seulement de la forme d’une transaction. [5]

Commence par préciser quelles informations tu souhaites protéger, et contre qui. Un destinataire curieux, le coordinateur et un observateur du réseau n’ont pas les mêmes moyens. Vérifie ensuite qui garde les clés, ce que signe l’application, les coûts facturés et la gestion des sorties obtenues. Un service auquel tu envoies d’abord les fonds pour qu’il les conserve repose sur une confiance différente de celle d’un CoinJoin sans garde. CoinJoin n’ajoute aucune règle spéciale à Bitcoin : les nœuds vérifient une transaction ordinaire et ses conditions. Un nœud est un ordinateur équipé d’un logiciel qui vérifie les transactions et les blocs Bitcoin. CoinJoin n’efface pas les registres d’une plateforme ou d’un destinataire et ne promet pas la façon dont un service traitera le paiement. Comprendre ces limites aide davantage un débutant qu’une étiquette ‘anonyme’ dans une application. [1] [5]

Gregory Maxwell a expliqué publiquement CoinJoin en août 2013. L’idée n’exigeait pas de modifier les règles du réseau, mais il restait à permettre aux participants de se trouver et de s’entendre. JoinMarket a illustré une approche de marché : la personne qui organise une transaction commune rémunère d’autres personnes pour la disponibilité de leurs fonds. Les protocoles coordonnés organisent la coopération autrement. WabiSabi accepte notamment des montants variables et des justificatifs anonymes permettant de vérifier le droit à des sorties sans révéler directement leur lien avec les entrées. CoinJoin ne se résume donc pas à une application, et toutes ses variantes ne doivent pas nécessairement utiliser uniquement des sorties identiques. [1] [2] [4]

Le texte de Maxwell explique l’idée de base, la documentation d’un portefeuille décrit sa procédure, et l’article WabiSabi présente les propriétés du protocole. Ce sont des niveaux de preuve différents. Au moment de cette révision, le dépôt original JoinMarket client/server est archivé ; il sert ici de référence historique et technique, pas de recommandation d’installation. PayJoin, selon BIP 78, est une coopération voisine entre payeur et destinataire, où les deux apportent des entrées. Il ne vise généralement pas un grand groupe de sorties identiques. Pour comparer, demande qui coopère, ce que chacun peut apprendre et ce que la personne et son portefeuille vérifient réellement avant de signer, plutôt que de t’en tenir au mot ‘confidentialité’. [1] [2] [3] [4] [5] [6]

Exemple · CJ

Une transaction commune ne signifie pas que tout appartient à une seule personne

Alice et Bob contrôlent chacun une entrée distincte d’une transaction commune et reçoivent leurs propres sorties. Supposer que toutes les entrées appartiennent à une personne est ici faux. Les réunir ne garantit pas de cacher l’attribution des sorties ; montants, autres informations et dépenses ultérieures peuvent révéler des liens.

Pour une vision complète, lisez aussi Bitcoin, Confidentialité de Bitcoin, Pseudonymat, Portefeuille, UTXO, Transaction. Cette entrée est également citée par Change Address, Confidentialité de Bitcoin, Pseudonymat, KYC.

01Un coordinateur CoinJoin peut-il voler les fonds des entrées ?

Dans un CoinJoin sans garde des fonds correctement conçu, les participants conservent leurs clés. Avant de signer, ils vérifient toute la transaction, notamment leurs propres sorties, les montants et les frais. Sans les signatures requises, le coordinateur ne peut créer de dépense valide, mais peut perturber un tour ou refuser une participation. Mais si un participant signe une transaction qui envoie son argent à un escroc, il autorise lui-même ce paiement.

02Les sorties restent-elles anonymes pour toujours après CoinJoin ?

Non. L’historique reste public. Réutilisation d’adresses, regroupement, paiements à des contreparties connues, comportement reconnaissable du portefeuille et métadonnées réseau peuvent réduire ou supprimer l’ambiguïté. Le résultat dépend du protocole et de l’utilisation ultérieure des sorties.

DOC · 001Gregory Maxwell — CoinJoin: Bitcoin privacy for the real worldSource primaire DOC · 002JoinMarket client/serverSource primaire DOC · 003JoinMarket — Architecture Notes (archived)Documentation DOC · 004WabiSabi: Centrally Coordinated CoinJoins with Variable AmountsSource primaire DOC · 005Wasabi Wallet — CoinJoin documentationDocumentation DOC · 006BIP 78 — PayjoinSpécification
Révisé le: Sources d’abord · Pas un conseil financier