Naviguer dans les différentes implémentations de CoinJoin

By Bitcoin Magazine - il y a 1 an - Temps de lecture : 12 minutes

Naviguer dans les différentes implémentations de CoinJoin

Comment éliminer le bruit et la confusion pour trouver la manière optimale d'utiliser CoinJoins et masquer leur bitcoin transactions?

Ceci est un éditorial d'opinion de Thibaud Maréchal, contributeur à l'ouvrage axé sur la vie privée. Bitcoin projet de portefeuille Wasabi Wallet.

“Divide and conquer” is a battle-tested military strategy to fracture a group of people by making them disagree and fight each other instead of joining together against a common enemy. Wasabi and Samourai, two popular bitcoin les portefeuilles avec différentes implémentations de CoinJoin se battent depuis de nombreuses années. JoinMarket, une troisième implémentation de CoinJoin, a également été impliqué dans des débats colorés avec d'autres développeurs de confidentialité.

Apprendre sur bitcoin la confidentialité et CoinJoins sont devenus assez difficiles avec le drame en cours. À qui faire confiance ? Comment peut-on vérifier par soi-même ? Tout cela est très flou. Qu'est-ce que ça apporte aux pré-coiners, occasionnels bitcoinamateurs et puristes ? Confusion, peur, incertitude et doute (FUD). L'Etat de bitcoin la vie privée est embarrassante avec tout ce drame perpétuel qui fait fuir les nouveaux utilisateurs. Un temps précieux est perdu par les développeurs, les éducateurs et les utilisateurs réguliers qui feraient probablement mieux de faire autre chose que d'essayer de suivre le drame.

Il est évident que personne n'est d'accord sur « comment bien faire CoinJoins », et encore moins sur la façon dont CoinJoins devrait être implémenté pour optimiser la confidentialité des utilisateurs et bloquer l'efficacité de l'espace sur le réseau. Bitcoin réseau? Quels sont les compromis entre les différentes implémentations ? Certaines implémentations sont-elles carrément défectueuses ? Comment les CoinJoins « franchissent-ils le gouffre » entre les premiers utilisateurs et les utilisateurs grand public alors que des milliards de personnes se tourneront vers bitcoin Dans les années à venir?

Examinons maintenant CoinJoins en posant des questions fondamentales et en soulevant certaines hypothèses pour construire une sorte de modèles mentaux, qui seront utiles pour évaluer différentes implémentations dans de futurs articles.

Tous les CoinJoins ne sont pas égaux

L'efficacité du Blockspace doit être prise en compte pour garantir que les transactions CoinJoin évoluent au fur et à mesure Bitcoin est utilisé par de plus en plus de personnes à travers le monde. C’est rarement une priorité absolue. Toute conception de CoinJoin qui ignore la rareté de l'espace de bloc spamme inutilement la chaîne de blocs tout en accumulant une dette technique, qui sera difficile à rembourser à mesure que de plus en plus d'utilisateurs de CoinJoin à l'avenir. Avoir une empreinte minimale sur la blockchain est un objectif qui semble très raisonnable : un petit nombre de transactions pour atteindre un niveau acceptable d’anonymat semble idéal.

Quel est le niveau d’anonymat acceptable ? Que signifie l'anonymat dans le contexte de bitcoin confidentialité ?Comment les conceptions CoinJoin particulières gèrent-elles la rareté de l'espace de bloc ?

Récupérez votre vie privée

Anonymat dans bitcoin signifierait qu'il n'y a aucune caractéristique exceptionnelle ou inhabituelle qui rendrait une transaction donnée remarquable par rapport aux autres transactions du grand livre. Bien entendu, ce n’est pas intentionnel Bitcoin réseau, qui est un système pseudonyme dans lequel les pièces (UTXO, qui signifie Unspent Transaction Output en termes techniques) ne sont par défaut pas fongibles en raison de leurs historiques de transactions uniques.

CoinJoins add a level of anonymity to the bitcoin réseau en rompant les liens entre les entrées et les sorties de transaction, rendant principalement les UTXO résultants impossibles à distinguer les uns des autres. Il existe d'autres heuristiques que les sociétés d'analyse de chaîne utilisent pour surveiller bitcoin réseau, tels que la propriété commune des intrants, les dépenses personnelles, les montants ronds ou l'analyse temporelle pour n'en nommer que quelques-uns, qui peuvent ou non être masqués par CoinJoins.

Aide CoinJoins bitcoinLes utilisateurs récupèrent leur vie privée mais ne sont pas la solution à tout. Si la confidentialité est comprise comme le choix de partager des informations sur soi-même, une grande confidentialité peut être obtenue grâce à CoinJoins, mais il est essentiel de choisir la bonne mise en œuvre.

What is my privacy goal using CoinJoins? Which heuristics does a CoinJoin implementation protect me against?What are the risks that I want to avoid?

Nombre de participants

Les implémentations CoinJoin existantes ont des manières très différentes d'améliorer la confidentialité. Indépendamment de chaque conception d'implémentation de CoinJoin, l'ensemble d'anonymat (une mesure du niveau d'anonymat) semble être le moyen le plus traditionnel d'évaluer le degré de confidentialité que l'on obtient d'un CoinJoin. Il existe d'autres moyens qui seront abordés dans d'autres articles. Les hypothèses sont qu'un ensemble d'anonymat élevé est atteint avec une grande transaction CoinJoin ou qu'il est atteint sur plusieurs transactions CoinJoin plus petites. Ces deux paramètres sont tous les deux importants, mais y en a-t-il un qui est plus important que l'autre ?

En termes d'efficacité de l'espace de blocs, l'hypothèse serait que la réalisation d'un grand ensemble d'anonymat avec une seule très grande transaction qui compte de nombreux participants est meilleure que plusieurs très petites transactions avec quelques participants.

Is one single large CoinJoin or multiple small CoinJoins better for privacy?How can that be verified truthfully and rigorously? How small is too small for a CoinJoin? What is the right metric to evaluate how much privacy you can get from a CoinJoin? What is the most blockspace efficient when it comes to the size and number of CoinJoins to reclaim your privacy?Is it realistic to expect coins to participate in multiple CoinJoins over time as more people start using CoinJoins? How many CoinJoin rounds is enough or too much?

In simple terms, CoinJoins allow bitcoin à récupérer leur vie privée en leur donnant un déni plausible. La plausibilité est une mesure de probabilité. Quelle est la probabilité que votre bitcoinLes s ont été dépensés ou simplement déplacés vers une autre adresse que vous contrôlez toujours ? Quelle est la probabilité qu’une entrée soit liée à une sortie donnée ?

De toute évidence, plus les probabilités parmi de nombreuses options sont faibles, plus le déni plausible que vous obtenez en tant que hodler est grand. Un déni plausible est difficile à préserver car les erreurs sont faciles à commettre. Les résultats du changement sont souvent problématiques pour bitcoinLes utilisateurs se soucient de la vie privée et sont souvent une source de discussions controversées et de critiques. Pourquoi la sortie de changement est-elle un sujet si controversé dans CoinJoins ?

Modifier la sortie

It’s all about deterministic links. If bitcoin les transactions avaient un spectre de confidentialité, à une extrémité se trouverait une transaction avec un déni absolument plausible, ce qui signifie 0 % de chance de connaître le lien entre les entrées et les sorties. Ceci est également appelé caractère aléatoire ou entropie dans un CoinJoin. L’hypothèse est que plus l’entropie est aléatoire ou élevée, mieux c’est. À l’autre extrémité se trouverait une transaction avec des liens 100 % déterministes entre sa seule entrée et sa seule sortie.

De manière non intuitive, une entropie élevée ne signifie pas nécessairement qu'une transaction offre une bonne confidentialité. Une transaction avec trois entrées et trois sorties de montants égaux a techniquement une entropie de 100 %, ce qui signifie qu'il n'y a aucun moyen de distinguer chaque sortie les unes des autres ; et pourtant, il y a 33.33 % de chances que chaque entrée soit liée à une sortie particulière. Une entropie élevée ne signifie pas nécessairement un bon déni plausible.

Le changement a presque toujours un lien déterministe très élevé avec sa transaction précédente. En d'autres termes, il ne fait guère de doute qu'une sortie de changement n'est pas liée à la transaction précédente qui l'a dépensée. Cela peut être un problème de confidentialité considérable si une sortie de modification donnée devait être dépensée conjointement avec d'autres entrées anonymes après CoinJoins (bien que des exceptions puissent s'appliquer dans certains cas). Ceci est généralement appelé consolidation UTXO et peut être fatal à votre vie privée s'il est fait naïvement.

Les résultats de modification peuvent désanonymiser les résultats qui ont obtenu un certain déni plausible de la part de CoinJoins s'ils sont dépensés ensemble. Les erreurs sont monnaie courante pour bitcoin et parfois la prise de conscience arrive trop tard, annulant des années d’améliorations diligentes de la confidentialité en une seule dépense. Comment se débarrasser de ce problème de sortie de modification ?

Les implémentations CoinJoin existantes ont trois façons de gérer les sorties de changement : isoler la modification dans un autre portefeuille qui n'est pas CoinJoining, inclure la sortie de modification dans le même portefeuille qui est CoinJoining ou se débarrasser de la sortie de modification en n'ayant aucune sortie de modification. Cette dernière semble être la plus recommandée en termes de confidentialité et d'efficacité de l'espace de bloc, mais des recherches supplémentaires sont nécessaires pour valider ou rejeter cette hypothèse.

Is a high entropy score enough to qualify a CoinJoin as good for your privacy?Is it better to isolate change outputs in another wallet or should it be removed entirely?Is a change output always bad for your privacy?

Dénominations des pièces

Se débarrasser des sorties de changement dans CoinJoins nécessite que les dénominations de pièces soient variables dans un CoinJoin. En d'autres termes, les entrées enregistrées dans un CoinJoin donné ne peuvent pas avoir une taille fixe comme 0.1 BTC, autrewise it becomes impossible (or at least very hard) to consume inputs without creating change outputs as most UTXOs don’t have round numbers (i.e. 0.19572394 BTC where 0.09572394 BTC would be the change in a 0.1 BTC fixed coin denomination CoinJoin).

Changer les sorties peut être dangereux pour votre vie privée, n'oubliez pas ? Avoir plusieurs tailles pour les entrées et les sorties dans un CoinJoin semble être une mauvaise idée car cela nous rapproche des liens déterministes entre les entrées et les sorties, n'est-ce pas ? Eh bien, oui et non. Ça dépend. Si un CoinJoin a un petit nombre de participants (c'est-à-dire peu d'entrées et peu de sorties), alors différentes dénominations sont une mauvaise idée. Mais que se passe-t-il si un grand nombre d'entrées et de sorties sont incluses dans un CoinJoin donné ?

Dans un grand CoinJoin, plusieurs dénominations peuvent apporter un niveau élevé de déni plausible à chaque sortie résultante sans créer de sorties de changement et nécessiter des transactions supplémentaires, ce qui est une utilisation très efficace de l'espace de bloc. Il semble que de nombreuses cases pourraient être cochées à ce stade.

Est-il préférable d'avoir des dénominations de pièces fixes ou variables dans un CoinJoin ? Quelle doit être la taille d'un CoinJoin pour que les dénominations variables aient un sens ? Les dénominations de pièces variables sont-elles le meilleur moyen de se débarrasser des modifications dans CoinJoins ?

Il va sans dire que l'interconnectivité des tours CoinJoin ne devrait en aucun cas être tolérable, que les dénominations des pièces soient différentes ou que le CoinJoin soit une transaction grande ou petite, n'est-ce pas ? Bon, là encore, il y a une nuance importante à comprendre.

Interconnectivité des rondes Coinjoin

Il est affirmé que l'enregistrement des entrées d'anciens CoinJoins partagés dans de nouveaux CoinJoins est déconseillé dans tous les cas. Les participants d'anciens CoinJoins mutuellement partagés ne semblent pas bénéficier du mélange dans d'autres CoinJoins. Cela semble préjudiciable à la vie privée et est souvent critiqué.

Que se passe-t-il si un CoinJoin est volumineux et que certaines entrées enregistrées proviennent de plusieurs autres CoinJoins, chacun étant également en aval de plusieurs autres CoinJoins ? Dans un tel cas, les participants qui remixent ensemble améliorent encore leur vie privée malgré leur passé partagé CoinJoin. Si chaque CoinJoin est suffisamment grand, les participants ne sont pas tenus de remixer plusieurs fois, bien qu'ils le puissent s'ils souhaitent augmenter davantage leurs ensembles d'anonymat.

Si de nombreux grands CoinJoins entrelacés sont impliqués, l'ensemble d'anonymat qui en résulte devrait fournir de nombreux démentis plausibles, malgré le partage d'anciens CoinJoins comme origine des fonds.

L'interconnectivité des tours CoinJoin, qui partage des CoinJoins passés mutuels, est-elle une mauvaise chose en soi ? Quelle doit être la taille d'un CoinJoin pour qu'un remix avec d'autres entrées passées soit considéré comme sûr ?

Nœud complet personnel

Devriez-vous gérer votre propre bitcoin nœud complet lors de la participation à CoinJoins ? À première vue, cela semble être une excellente idée, et c’est généralement le cas. Certaines implémentations de CoinJoin le permettent, tandis que d'autres l'exigent carrément. D'autres ne vous permettront même pas d'utiliser votre propre nœud complet. Est-ce à condamner absolument ? Si vous avez lu jusqu’à présent, sachez que la réponse est nuancée et ouvre un profond terrier de lapin à explorer plus tard.

L'exécution de votre propre nœud complet entraîne des compromis en termes de convivialité et peut ne pas ajouter beaucoup de protection de la vie privée si tous les utilisateurs ne le font pas. L'exécution de votre propre nœud peut même vous donner un faux sentiment de sécurité et de confidentialité si peu de participants CoinJoin le font, ce qui peut être profondément nocif. Si Tor est utilisé comme moyen anonyme de CoinJoin (et nous le laisserons comme ça pour l'instant), alors l'utilisation d'un nœud complet de confiance pour diffuser la transaction CoinJoin peut convenir par défaut. Beaucoup de nuances, et bien sûr, ne vous fiez pas, vérifiez.

Il y a quelques questions essentielles à se poser pour ne pas tomber dans le piège du signalement des vertus de la vie privée.

L'implémentation de CoinJoin permet-elle d'exécuter des nœuds complets, les exige par défaut ou ne les autorise pas ? Si les nœuds complets personnels ne sont pas obligatoires, quels sont les boucliers de confidentialité en place ? c'est-à-dire Tor, bloquer les filtres, etc… Si j'exécute mon propre nœud complet, mais que je m'attends à ce que la plupart des utilisateurs utilisent un nœud de confiance par défaut pour CoinJoin, comment cela affecte-t-il ma confidentialité ? Le coordinateur peut-il me désanonymiser ?

En matière de confidentialité, il est toujours important de comprendre ce que vous essayez de protéger et contre qui. Exécuter un nœud complet et l'utiliser avec votre propre portefeuille est la bonne façon d'utiliser bitcoin as it allows you to verify your wallet balance and broadcast transactions to the network without trusting anyone. But when it comes to CoinJoins, there is usually a coordinator in charge. What does the coordinator do and how is it selected? Read on.

Le coordonnateur

Le coordinateur CoinJoin est chargé de faire en sorte que chaque participant enregistre ses entrées et sorties, et signe la transaction collaborative avant de la diffuser. La plupart des implémentations de CoinJoin utilisent par défaut un coordinateur central, ce qui constitue un point de défaillance unique. Jusqu'à présent, cela a été un compromis accepté dans la plupart des pays. bitcoin communautés. Un coordinateur central CoinJoin peut-il échouer ? Absolument. D'autres implémentations permettent à n'importe qui d'être coordinateur pour chaque CoinJoin différent, bien qu'il existe ici d'autres ensembles de compromis qui seront discutés plus tard.

Les Coinjoins n'étant pas dépositaires, aucune perte de fonds ne pourrait survenir en cas d'échec d'un coordinateur. Le coordinateur ne devrait jamais en savoir plus que ce que tout le monde sait publiquement sur le bitcoin réseau. Pourquoi? Si un coordinateur en sait plus que ce qui est accessible au public, un coordinateur CoinJoin devient un pot de miel contenant des données hautement sensibles qui peuvent être exploitées contre bitcoin qui font confiance au service.

Vous ne devriez jamais faire confiance à un coordinateur CoinJoin. Si un coordinateur CoinJoin ne peut pas être mauvais, bon. Si cela peut être mal, ce sera finalement, par erreur, omission, coercition ou malhonnêteté pure et simple.

Un exemple de données utilisateur sensibles serait les XPUB, qui divulguent indéniablement toutes les informations sur un portefeuille, ses adresses, y compris passées, actuelles et futures. bitcoin transactions. Un autre exemple serait le rapport entre les utilisateurs exécutant leurs propres nœuds complets et les utilisateurs faisant confiance au nœud complet du coordinateur pour diffuser CoinJoins, car cela pourrait désanonymiser les utilisateurs exécutant leurs propres nœuds et donc connaître de manière déterministe les liens entre leurs entrées et sorties. Il s’agit là d’un autre sujet nuancé, qui nécessiterait une enquête et une discussion plus approfondies.

Le coordinateur en sait-il plus que ce qui est publiquement disponible sur le bitcoin network? Do users leak sensitive data to the coordinator, such as their XPUB or whether or not they run their own full nodes?Does the coordinator claim that users should trust them using legal defense mechanisms? (i.e. warrant canaries, regulatory arbitrage, etc…)

Frais

En fin de compte, qui paie quoi dans CoinJoins ? Ces bitcoin les transactions peuvent être coûteuses et parfois les structures de frais ne sont pas claires pour bitcoineuh. Il est difficile de savoir combien vous coûtera une bonne confidentialité ou même si vous en tirerez un quelconque bénéfice. Certaines implémentations de CoinJoin permettent à une seule entrée d'acheter sa confidentialité auprès d'autres entrées qui ne participent que gratuitement pour augmenter leur propre ensemble d'anonymat. Être payé sur CoinJoin ? Avec patience, oui.

Certains modèles reposent sur des frais partagés où seuls certains UTXO paient des frais tandis que d'autres ne le font pas. D'autres modèles reposent sur l'invitation d'un nombre toujours croissant de nouvelles entrées claires (pas encore mélangées) pour financer les CoinJoins existants afin de remixer les entrées qui n'ont pas des niveaux d'anonymat suffisamment élevés. Certains modèles semblent insoutenables à long terme tandis que d'autres sont naïfs ou bien trop chers pour la plupart des utilisateurs.

Et de quels frais parle-t-on ? En général, les entrées participant à CoinJoins paient à la fois des frais de coordinateur ou des frais de preneur (les frais de service pour obtenir un certain niveau d'anonymat) et le bitcoin frais de réseau. Dans les modèles CoinJoin en particulier, ces frais sont supprimés dans certaines circonstances. L’économie de CoinJoins est un profond terrier de lapin qui nécessite une enquête plus approfondie pour une compréhension beaucoup plus approfondie.

Qui paie quoi dans un CoinJoin ? Quels sont tous les frais ? Quelles sont les incitations du coordinateur CoinJoin ? Tous les tours CoinJoin sont-ils payants ou existe-t-il un remix gratuit ?

Après avoir lu jusqu'à présent, j'espère que bitcoinLes utilisateurs qui recherchent CoinJoins n'auront pas nécessairement toutes les réponses, mais les bonnes questions à poser. Un modèle ou un cadre mental pour évaluer différentes implémentations de CoinJoin peut être très utile pour quiconque envisage d'utiliser CoinJoins pour récupérer sa confidentialité sur bitcoin. Sorting through the noise of social media requires intellectual honesty and the right evaluation system rigorously applied.

Ceci est un article invité de Thibaud Maréchal. Les opinions exprimées sont entièrement les leurs et ne reflètent pas nécessairement celles de BTC Inc ou Bitcoin Magazine

Source primaire: Bitcoin Magazine