Zephyrnet-Logo

Navigieren durch die verschiedenen CoinJoin-Implementierungen

Datum:

Dies ist ein Meinungsleitartikel von Thibaud Maréchal, einem Mitarbeiter des datenschutzorientierten Bitcoin-Wallet-Projekts Wasabi Wallet.

„Teile und herrsche“ ist eine kampferprobte militärische Strategie, um eine Gruppe von Menschen zu spalten, indem sie dazu gebracht werden, sich zu widersprechen und gegeneinander zu kämpfen, anstatt sich gegen einen gemeinsamen Feind zusammenzuschließen. Wasabi und Samourai, zwei beliebte Bitcoin-Geldbörsen mit unterschiedlichen CoinJoin-Implementierungen, kämpfen seit vielen Jahren. JoinMarket, eine dritte CoinJoin-Implementierung, war ebenfalls an bunten Debatten mit anderen Datenschutzentwicklern beteiligt.

Das Lernen über Bitcoin-Datenschutz und CoinJoins ist mit dem anhaltenden Drama ziemlich schwierig geworden. Wem vertrauen? Wie kann man sich selbst verifizieren? Es ist alles sehr unklar. Was bringt es Precoinern, Gelegenheits-Bitcoinern und Puristen gleichermaßen? Verwirrung, Angst, Ungewissheit und Zweifel (FUD). Der Zustand der Bitcoin-Privatsphäre ist peinlich mit all diesem ewigen Drama, das neue Benutzer abschreckt. Kostbare Zeit wird von Entwicklern, Pädagogen und normalen Benutzern verschwendet, die wahrscheinlich besser dran wären, alles andere zu tun, als zu versuchen, mit dem Drama Schritt zu halten.

Es ist offensichtlich, dass sich niemand darüber einig ist, „wie man CoinJoins richtig macht“, geschweige denn, wie CoinJoins implementiert werden sollte, um die Privatsphäre der Benutzer zu optimieren und die Speicherplatzeffizienz im Bitcoin-Netzwerk zu blockieren? Was sind die Kompromisse zwischen verschiedenen Implementierungen? Sind einige Implementierungen völlig fehlerhaft? Wie „überquert“ CoinJoins den Abgrund von Early Adopters zu Mainstream-Benutzern, wenn sich Milliarden von Menschen in den kommenden Jahren Bitcoin zuwenden werden?

Werfen wir nun einen Blick auf CoinJoins, indem wir grundlegende Fragen stellen und einige Annahmen aufstellen, um eine Art mentale Modelle zu erstellen, die bei der Bewertung verschiedener Implementierungen in zukünftigen Artikeln nützlich sein werden.

Nicht alle CoinJoins sind gleich

Die Blockspace-Effizienz sollte berücksichtigt werden, um sicherzustellen, dass CoinJoin-Transaktionen skalieren, wenn Bitcoin von mehr Menschen auf der ganzen Welt verwendet wird. Dies wird selten als oberste Priorität diskutiert. Jedes CoinJoin-Design, das Blockspace-Knappheit ignoriert, spammt unnötigerweise die Blockchain und häuft gleichzeitig technische Schulden an, die schwer zurückzuzahlen sein werden, da in Zukunft mehr Benutzer CoinJoin verwenden. Ein minimaler Fußabdruck in der Blockchain ist ein Ziel, das sehr vernünftig erscheint: Eine kleine Anzahl von Transaktionen, um ein akzeptables Maß an Anonymität zu erreichen, klingt ideal.

  • Was ist ein akzeptables Maß an Anonymität?
  • Was bedeutet Anonymität überhaupt im Kontext des Bitcoin-Datenschutzes?
  • Wie gehen bestimmte CoinJoin-Designs mit Blockspace-Knappheit um?

Fordern Sie Ihre Privatsphäre zurück

Anonymität bei Bitcoin würde bedeuten, dass es keine herausragenden oder ungewöhnlichen Merkmale gibt, die eine bestimmte Transaktion von anderen Transaktionen im Ledger unterscheiden würden. Das ist natürlich nicht beabsichtigt im Bitcoin-Netzwerk, bei dem es sich um ein pseudonymes System handelt, bei dem Münzen (UTXOs, was in technischer Hinsicht für Unspent Transaction Output steht) standardmäßig nicht fungibel sind, da sie einzigartige Transaktionsverläufe haben.

CoinJoins fügen dem Bitcoin-Netzwerk ein gewisses Maß an Anonymität hinzu, indem sie die Verknüpfungen zwischen Transaktionseingaben und -ausgaben aufheben und in erster Linie die resultierenden UTXOs voneinander ununterscheidbar machen. Es gibt andere Heuristiken, die Kettenanalyseunternehmen verwenden, um das Bitcoin-Netzwerk zu beobachten, wie z.

CoinJoins helfen Bitcoinern, ihre Privatsphäre zurückzugewinnen, sind aber nicht die Lösung für alles. Wenn Datenschutz als die Entscheidung verstanden wird, Informationen über sich selbst zu teilen, kann durch CoinJoins eine große Privatsphäre erreicht werden, aber die Auswahl der richtigen Implementierung ist entscheidend.

  • Was ist mein Datenschutzziel mit CoinJoins?
  • Vor welchen Heuristiken schützt mich eine CoinJoin-Implementierung?
  • Welche Risiken möchte ich vermeiden?

Zahl der Teilnehmer

Bestehende CoinJoin-Implementierungen haben sehr unterschiedliche Möglichkeiten, den Datenschutz zu verbessern. Unabhängig von jedem CoinJoin-Implementierungsdesign scheint das Anonymitätsset (ein Maß für den Grad der Anonymität) die traditionellste Methode zu sein, um zu bewerten, wie viel Privatsphäre man von einem CoinJoin erhält. Es gibt andere Möglichkeiten, die in anderen Artikeln besprochen werden. Die Annahmen sind, dass entweder ein hoher Anonymitätssatz mit einer großen CoinJoin-Transaktion erreicht wird oder dass er über mehrere kleinere CoinJoin-Transaktionen erreicht wird. Diese beiden Parameter sind beide wichtig, aber gibt es einen, der wichtiger ist als der andere?

In Bezug auf die Blockspace-Effizienz wäre die Annahme, dass das Erreichen eines großen Anonymitätssatzes mit einer einzigen sehr großen Transaktion mit vielen Teilnehmern besser ist als mehrere sehr kleine Transaktionen mit wenigen Teilnehmern.

  • Ist ein einzelner großer CoinJoin oder mehrere kleine CoinJoins besser für die Privatsphäre?
  • Wie kann das wahrheitsgemäß und streng überprüft werden? Wie klein ist zu klein für einen CoinJoin?
  • Was ist die richtige Metrik, um zu bewerten, wie viel Privatsphäre Sie von einem CoinJoin erhalten können?
  • Was ist der Blockspace-effizienteste, wenn es um die Größe und Anzahl der CoinJoins geht, um Ihre Privatsphäre zurückzugewinnen?
  • Ist es realistisch zu erwarten, dass Coins im Laufe der Zeit an mehreren CoinJoins teilnehmen, wenn immer mehr Menschen CoinJoins verwenden? Wie viele CoinJoin-Runden sind genug oder zu viel?

Einfach ausgedrückt, CoinJoins ermöglichen es Bitcoinern, ihre Privatsphäre zurückzufordern, indem sie ihnen eine plausible Leugnung geben. Plausibilität ist ein Maß für die Wahrscheinlichkeit. Wie wahrscheinlich ist es, dass Ihre Bitcoins ausgegeben oder einfach an eine andere Adresse verschoben wurden, die Sie noch kontrollieren? Wie wahrscheinlich ist es, dass ein Eingang mit einem bestimmten Ausgang verknüpft ist?

Je kleiner die Wahrscheinlichkeiten bei vielen Optionen sind, desto plausibler kann man als Hodler natürlich leugnen. Eine plausible Leugnung ist schwer zu bewahren, weil Fehler leicht gemacht werden können. Änderungsergebnisse sind für Bitcoiner, denen der Datenschutz am Herzen liegt, oft problematisch und oft eine Quelle kontroverser Diskussionen und Kritik. Warum ist die Änderungsausgabe in CoinJoins so ein kontroverses Thema?

Ausgabe ändern

Es geht um deterministische Verbindungen. Wenn Bitcoin-Transaktionen ein gewisses Maß an Privatsphäre hätten, wäre an einem Ende eine Transaktion mit absolut plausibler Leugnung, was bedeutet, dass die Chance von 0 % besteht, die Verbindung zwischen Ein- und Ausgängen zu kennen. Dies wird bei einem CoinJoin auch als Zufälligkeit oder Entropie bezeichnet. Die Annahme ist, dass je zufälliger oder höher die Entropie, desto besser. Am anderen Ende wäre eine Transaktion mit 100 % deterministischen Verbindungen zwischen ihrem einzigen Input und einem einzelnen Output.

Unintuitiv bedeutet eine hohe Entropie nicht unbedingt, dass eine Transaktion einen guten Datenschutz bietet. Eine Transaktion mit drei Inputs und drei Outputs gleicher Beträge hat technisch gesehen 100 % Entropie, was bedeutet, dass es keine Möglichkeit gibt, jeden Output voneinander zu unterscheiden; und doch besteht eine Wahrscheinlichkeit von 33.33 %, dass jeder Input mit einem bestimmten Output verknüpft ist. Hohe Entropie bedeutet nicht notwendigerweise gute Plausibilität.

Veränderung hat fast immer eine sehr hohe deterministische Verbindung zu ihrer vorherigen Transaktion. Mit anderen Worten, es gibt wenig Zweifel daran, dass eine Änderungsausgabe nicht an die vorherige Transaktion gebunden ist, die sie ausgegeben hat. Dies kann ein erhebliches Datenschutzproblem darstellen, wenn eine bestimmte Änderungsausgabe zusammen mit anderen anonymen Eingaben nach CoinJoins ausgegeben werden würde (obwohl in bestimmten Fällen Ausnahmen gelten können). Dies wird normalerweise als UTXO-Konsolidierung bezeichnet und kann bei naiver Vorgehensweise fatal für Ihre Privatsphäre sein.

Änderungsausgaben können Ausgaben de-anonymisieren, die von CoinJoins eine plausible Leugnung erhalten haben, wenn sie zusammen ausgegeben werden. Fehler sind für Bitcoiner an der Tagesordnung und manchmal kommt die Erkenntnis zu spät, wodurch Jahre sorgfältiger Datenschutzverbesserungen mit einer einzigen Ausgabe zunichte gemacht werden. Wie kann man dieses Änderungsausgabeproblem beseitigen?

Bestehende CoinJoin-Implementierungen haben drei Möglichkeiten, mit Änderungsausgaben umzugehen: Isolieren Sie die Änderung in einem anderen Wallet, das kein CoinJoining ist, schließen Sie die Änderungsausgabe in dasselbe Wallet ein, das CoinJoining ist, oder entfernen Sie die Änderungsausgabe, indem Sie überhaupt keine Änderungsausgaben haben. Letzteres scheint in Bezug auf Datenschutz und Blockspace-Effizienz am ratsamsten zu sein, aber es sind weitere Grabungen erforderlich, um diese Annahme zu validieren oder abzulehnen.

  • Reicht ein hoher Entropiewert aus, um einen CoinJoin als gut für Ihre Privatsphäre zu qualifizieren?
  • Ist es besser, Änderungsausgaben in einem anderen Wallet zu isolieren, oder sollte es vollständig entfernt werden?
  • Ist eine Änderungsausgabe immer schlecht für Ihre Privatsphäre?

Münzwerte

Um Wechselgeldausgaben in CoinJoins loszuwerden, müssen Münzwerte in einem CoinJoin variabel sein. Mit anderen Worten, die in einem bestimmten CoinJoin registrierten Eingaben können keine feste Größe wie 0.1 BTC haben, da es sonst unmöglich (oder zumindest sehr schwierig) wird, Eingaben zu konsumieren, ohne Änderungsausgaben zu erzeugen, da die meisten UTXOs keine runden Zahlen haben (dh 0.19572394 BTC, wobei 0.09572394 BTC die Änderung in einer 0.1 BTC festen Münznennung CoinJoin wäre).

Änderungsausgaben können gefährlich für Ihre Privatsphäre sein, erinnern Sie sich? Mehrere Größen für Ein- und Ausgänge in einem CoinJoin zu haben, scheint eine schlechte Idee zu sein, da es uns deterministischen Verbindungen zwischen Ein- und Ausgängen näher bringt, oder? Nun, ja und nein. Es hängt davon ab, ob. Wenn ein CoinJoin eine kleine Anzahl von Teilnehmern hat (d.h. wenige Inputs und wenige Outputs), dann sind unterschiedliche Stückelungen eine schlechte Idee. Was aber, wenn eine große Anzahl von Ein- und Ausgängen in einem bestimmten CoinJoin enthalten sind?

In einem großen CoinJoin können mehrere Denominationen ein hohes Maß an plausibler Leugnung für jede resultierende Ausgabe bringen, ohne Änderungsausgaben zu erzeugen und zusätzliche Transaktionen zu erfordern, was eine hocheffiziente Nutzung von Blockspace ist. Es scheint, dass an dieser Stelle viele Kästchen angekreuzt werden könnten.

  • Ist es besser, feste oder variable Münzstückelungen in einem CoinJoin zu haben?
  • Wie groß sollte ein CoinJoin sein, damit variable Stückelungen sinnvoll sind?
  • Sind variable Münzwerte der beste Weg, um die Ausgabe von Wechselgeld in CoinJoins loszuwerden?

Es versteht sich von selbst, dass die Interkonnektivität der CoinJoin-Runden unter keinen Umständen tolerierbar sein sollte, unabhängig davon, ob es sich um unterschiedliche Münzstückelungen handelt oder ob es sich bei CoinJoin um eine große oder kleine Transaktion handelt, oder? Nun, auch hier gibt es wieder eine wichtige Nuance zu verstehen.

Coinjoin-Runden Interkonnektivität

Es wird behauptet, dass die Registrierung von Eingaben aus früheren gemeinsam genutzten CoinJoins in neue CoinJoins in allen Fällen nicht ratsam ist. Teilnehmer aus gemeinsam geteilten vergangenen CoinJoins scheinen nicht davon zu profitieren, sich in anderen CoinJoins zu vermischen. Es scheint der Privatsphäre zu schaden und wird oft kritisiert.

Was ist, wenn ein CoinJoin groß ist und einige registrierte Eingaben von mehreren anderen CoinJoins stammen, die jeweils auch mehreren anderen CoinJoins nachgelagert sind? In einem solchen Fall verbessern die Teilnehmer, die zusammen remixen, immer noch ihre Privatsphäre, obwohl sie aus einer gemeinsamen Vergangenheit von CoinJoin stammen. Wenn jeder CoinJoin groß genug ist, müssen die Teilnehmer nicht mehrmals remixen, können dies jedoch tun, wenn sie ihre Anonymitätssätze weiter erhöhen möchten.

Wenn viele große, miteinander verflochtene CoinJoins beteiligt sind, sollte der resultierende Anonymitätssatz eine Menge plausibler Leugnung bieten, obwohl frühere CoinJoins als Geldquelle geteilt werden.

  • Ist die Interkonnektivität von CoinJoin-Runden, die gemeinsame frühere CoinJoins teilt, an sich schon eine schlechte Sache?
  • Wie groß sollte ein CoinJoin sein, damit das Remixen mit anderen früheren Eingaben als sicher gilt?

Persönlicher vollständiger Knoten

Sollten Sie bei der Teilnahme an CoinJoins Ihren eigenen Bitcoin Full Node betreiben? An der Oberfläche scheint es eine großartige Idee zu sein, und das ist sie normalerweise auch. Einige CoinJoin-Implementierungen erlauben dies, während andere dies geradezu erfordern. Andere erlauben Ihnen nicht einmal, Ihren eigenen vollständigen Knoten zu verwenden. Ist das absolut zu verurteilen? Wenn Sie bis jetzt gelesen haben, sollten Sie wissen, dass die Antwort nuanciert ist und ein tiefes Kaninchenloch öffnet, das später erkundet werden muss.

Das Ausführen Ihres eigenen vollständigen Knotens ist mit Kompromissen bei der Benutzerfreundlichkeit verbunden und fügt möglicherweise nicht viel Datenschutz hinzu, wenn nicht alle Benutzer dies tun. Das Betreiben Ihres eigenen Knotens kann Ihnen sogar ein falsches Gefühl von Sicherheit und Privatsphäre vermitteln, wenn nur wenige CoinJoin-Teilnehmer dies tun, was zutiefst schädlich sein kann. Wenn Tor als anonymer Weg zu CoinJoin verwendet wird (und wir belassen es vorerst dabei), dann kann die Verwendung eines vertrauenswürdigen vollständigen Knotens zur Übertragung der CoinJoin-Transaktion als Standard in Ordnung sein. Viele Nuancen, und natürlich nicht vertrauen, verifizieren.

Es gibt einige grundlegende Fragen, die Sie sich stellen müssen, um nicht in die Falle der Signalisierung der Privatsphäre zu tappen.

  • Erlaubt die CoinJoin-Implementierung das Ausführen vollständiger Knoten, erfordert sie standardmäßig oder erlaubt sie nicht?
  • Wenn persönliche vollständige Knoten nicht obligatorisch sind, welche Datenschutzschilde bestehen? dh Tor, Blockfilter, etc…
  • Wenn ich meinen eigenen vollständigen Knoten betreibe, aber erwarte, dass die meisten Benutzer einen vertrauenswürdigen Standardknoten für CoinJoin verwenden, wie wirkt sich das auf meine Privatsphäre aus? Kann mich der Koordinator de-anonymisieren?

Bei Datenschutzbedenken ist es immer wichtig zu verstehen, was Sie zu schützen versuchen und vor wem. Das Ausführen eines vollständigen Knotens und die Verwendung mit Ihrer eigenen Brieftasche ist der richtige Weg, Bitcoin zu verwenden, da Sie damit Ihren Brieftaschensaldo überprüfen und Transaktionen an das Netzwerk senden können, ohne jemandem zu vertrauen. Aber wenn es um CoinJoins geht, gibt es normalerweise einen verantwortlichen Koordinator. Was macht der Koordinator und wie wird er ausgewählt? Weiter lesen.

Der Koordinator

Der CoinJoin-Koordinator ist dafür verantwortlich, dass jeder Teilnehmer seine Eingaben und Ausgaben registriert und die kollaborative Transaktion unterzeichnet, bevor er sie sendet. Die meisten CoinJoin-Implementierungen verwenden standardmäßig einen zentralen Koordinator, der eine einzelne Fehlerquelle darstellt. Bisher war dies ein akzeptierter Kompromiss in den meisten Bitcoin-Communities. Kann ein zentraler CoinJoin-Koordinator ausfallen? Absolut. Andere Implementierungen ermöglichen es jedem, ein Koordinator für jeden einzelnen CoinJoin zu sein, obwohl es hier andere Kompromisse gibt, die später besprochen werden.

Da Coinjoins nicht verwahrt sind, könnte kein Geldverlust eintreten, wenn ein Koordinator ausfallen würde. Der Koordinator sollte nie mehr wissen als das, was jeder öffentlich im Bitcoin-Netzwerk weiß. Wieso den? Wenn ein Koordinator mehr weiß, als öffentlich verfügbar ist, wird ein CoinJoin-Koordinator zu einem Honigtopf mit hochsensiblen Daten, die gegen Bitcoiner ausgenutzt werden können, die dem Dienst vertrauen.

Sie sollten niemals einem CoinJoin-Koordinator vertrauen. Wenn ein CoinJoin-Koordinator nicht böse sein kann, dann gut. Wenn es böse sein kann, wird es schließlich aus Fehlern, Auslassungen, Zwang oder offener Unehrlichkeit geschehen.

Ein Beispiel für sensible Benutzerdaten wären XPUBs, die unbestreitbar alle Informationen über eine Brieftasche, ihre Adressen, einschließlich vergangener, aktueller und zukünftiger Bitcoin-Transaktionen, preisgeben. Ein weiteres Beispiel wäre das Verhältnis zwischen Benutzern, die ihre eigenen vollständigen Knoten ausführen, und Benutzern, die dem vollständigen Knoten des Koordinators vertrauen, um CoinJoins zu senden, da dies Benutzer deanonymisieren könnte, die ihre eigenen Knoten ausführen, und daher die Verbindungen zwischen ihren Ein- und Ausgängen deterministisch kennen. Dies ist ein weiteres nuanciertes Thema, das weitere Untersuchungen und Diskussionen erfordern würde.

  • Weiß der Koordinator mehr als das, was im Bitcoin-Netzwerk öffentlich verfügbar ist?
  • Geben Benutzer vertrauliche Daten an den Koordinator weiter, z. B. ihren XPUB, oder ob sie ihre eigenen vollständigen Knoten betreiben oder nicht?
  • Behauptet der Koordinator, dass die Benutzer ihnen vertrauen sollten, indem sie rechtliche Verteidigungsmechanismen nutzen? (z. B. Warrant Canaries, Regulatory Arbitrage, etc…)

Honorare

Unterm Strich, wer bezahlt was bei CoinJoins? Diese Bitcoin-Transaktionen können teuer sein und manchmal sind die Gebührenstrukturen für Bitcoiner unklar. Es ist schwer zu wissen, wie viel gute Privatsphäre Sie kosten wird oder ob Sie überhaupt Privatsphäre daraus ziehen. Einige CoinJoin-Implementierungen ermöglichen es einer einzelnen Eingabe, ihre Privatsphäre von anderen Eingaben zu kaufen, die nur kostenlos teilnehmen, um ihre eigene Anonymitätsmenge zu erhöhen. Bei CoinJoin bezahlt werden? Mit Geduld, ja.

Einige Modelle setzen auf gemeinsame Gebühren, bei denen nur einige UTXOs Gebühren zahlen, andere nicht. Andere Modelle verlassen sich darauf, eine ständig wachsende Anzahl neuer klarer Eingaben (noch nicht gemischt) einzuladen, um die bestehenden CoinJoins für das Remixen von Eingaben zu finanzieren, die nicht ausreichend anonymisiert sind. Einige Modelle scheinen auf Dauer nicht tragbar, andere wiederum naiv oder für die meisten Nutzer viel zu teuer.

Und von welchen Gebühren reden wir? Nun, normalerweise zahlen Inputs, die an CoinJoins teilnehmen, sowohl eine Koordinatorgebühr oder Abnehmergebühr (die Servicegebühr, um ein gewisses Maß an Anonymität zu erreichen) als auch die Bitcoin-Netzwerkgebühren. Bei bestimmten CoinJoin-Modellen entfallen diese Gebühren unter bestimmten Umständen. Die Wirtschaftlichkeit von CoinJoins ist ein tiefer Kaninchenbau, der für ein viel tieferes Verständnis weiterer Untersuchungen bedarf.

  • Wer bezahlt was bei einem CoinJoin? Was sind alle Gebühren?
  • Was sind die Anreize des CoinJoin-Koordinators?
  • Werden alle CoinJoin-Runden bezahlt oder gibt es einen kostenlosen Remix?

Nachdem ich bisher gelesen habe, besteht die Hoffnung, dass Bitcoiner, die nach CoinJoins suchen, nicht unbedingt alle Antworten haben, aber die richtigen Fragen zu stellen. Ein mentales Modell oder Framework zur Bewertung verschiedener CoinJoin-Implementierungen kann für jeden sehr hilfreich sein, der erwägt, CoinJoins zu verwenden, um seine Privatsphäre auf Bitcoin zurückzugewinnen. Sich durch den Lärm der sozialen Medien zu sortieren, erfordert intellektuelle Ehrlichkeit und das richtige Bewertungssystem, das konsequent angewendet wird.

Dies ist ein Gastbeitrag von Thibaud Maréchal. Die geäußerten Meinungen sind ausschließlich ihre eigenen und spiegeln nicht unbedingt die von BTC Inc oder wider Bitcoin Magazin

spot_img

Neueste Intelligenz

spot_img