Was ist Coin Mixing und CoinJoin?

· 5 min read

Bitcoin wird oft als digitales Bargeld bezeichnet, doch dieser Vergleich ist umstritten. Zahlt Alice an Bob 10 US-Dollar in bar, weiß Bob nicht, woher das Geld stammt. Gibt Bob den Schein später an Carol weiter, kann Carol nicht darauf schließen, dass er zuvor Alice gehörte.

Bei Bitcoin ist das wegen seiner offenen Struktur anders. Die Historie eines bestimmten Coins – also eines unverbrauchten Transaktionsausgangs, kurz UTXO – lässt sich von jedem mühelos nachvollziehen. Es ist eher so, als würde man bei jeder Verwendung eines Bitcoins den Betrag und den Namen des Empfängers auf einer Rechnung vermerken.

Da öffentliche Adressen keine Namen enthalten, lassen sich Identitäten allerdings nicht ohne Weiteres offenlegen. Wirklich privat ist Bitcoin deshalb trotzdem nicht. Die Blockchain-Analyse wird immer ausgefeilter und verknüpft Adressen und Identitäten zunehmend erfolgreich. Neben solchen Überwachungstechniken kann auch eine eigens dafür eingerichtete Stelle die Identität von Krypto-Nutzern aufdecken. Um dem vorzubeugen, sind über die Jahre Verfahren entstanden, die den Zusammenhang zwischen Transaktionen kappen.

Was ist Coin Mixing?

Allgemein gesprochen bezeichnet Coin Mixing Transaktionen, die Guthaben verschleiern, indem sie es gegen anderes Guthaben tauschen. In der Kryptowelt ist mit Coin Mixing jedoch meist ein Angebot von Drittanbietern gemeint. Die Dienstleister nehmen die Coins der Nutzer entgegen (plus eine geringe Gebühr) und schicken andere Coins zurück, die in keinerlei Verbindung zu den eingesendeten stehen. Solche Dienste sind auch als Tumbler oder Mixer bekannt.

Natürlich wirft ein derart zentralisierter Dienst Fragen zu Sicherheit und Privatsphäre auf. Es gibt keine Garantie, dass ein Mixer die Coins tatsächlich zurückzahlt oder dass die zurückgeschickten Coins keine problematische Transaktionshistorie mitbringen. Ein weiterer Punkt: IP-Adressen und Bitcoin-Adressen können von einem Dritten protokolliert werden. Letztlich vertrauen Nutzer ihr Guthaben jemand anderem an – in der Hoffnung, entkoppelte Coins zurückzuerhalten.

Interessanter ist der Ansatz der CoinJoin-Transaktionen, der ein erhebliches Maß an plausibler Abstreitbarkeit schafft. Nach einer CoinJoin-Transaktion lässt sich kein Beweis vorlegen, der eindeutig eine Verbindung zwischen einem Nutzer und dessen früheren Transaktionen herstellt. Viele CoinJoin-Lösungen sind damit eine dezentralere Alternative zu Mixern. Die Nutzer müssen die Kontrolle über ihr Guthaben nicht abgeben, auch wenn ein Koordinator am Prozess beteiligt sein kann.

Was ist CoinJoin?

CoinJoin-Transaktionen wurden 2013 erstmals von Bitcoin-Entwickler Gregory Maxwell vorgestellt. In seinem Beitrag skizzierte er kurz, wie solche Transaktionen aufgebaut sind und wie sich ohne eine Änderung des Protokolls ein großer Zugewinn an Privatsphäre erzielen lässt.

Im Kern bedeutet CoinJoin, die Inputs verschiedener Nutzer in einer einzigen Transaktion zusammenzuführen. Bevor wir erklären, wie (und warum) das funktioniert, ein kurzer Blick auf den grundlegenden Aufbau einer Transaktion.

Bitcoin-Transaktionen bestehen aus Inputs und Outputs. Will ein Nutzer eine Transaktion durchführen, verwendet er seine UTXOs als Inputs, legt die Outputs fest und signiert die Inputs. Wichtig dabei: Jeder Input wird unabhängig signiert, und Nutzer können mehrere Outputs erzeugen, also Beträge an verschiedene Adressen senden.

Betrachten wir eine Transaktion mit vier Inputs (je 0,2 BTC) und zwei Outputs (0,7 BTC und 0,09 BTC), lassen sich einige Vermutungen anstellen. Die erste: Es handelt sich um eine Zahlung – der Absender schickt einen der Outputs an eine andere Person und das Wechselgeld an sich selbst. Da vier Inputs verwendet werden, geht der größere Output vermutlich an den Empfänger. Fehlen in der Summe 0,01 BTC, ist das die Transaktionsgebühr für den Miner.

Ebenso möglich ist, dass der Absender aus kleineren UTXOs einen großen erzeugen will und dafür die kleinen Inputs zusammenlegt, um auf die gewünschten 0,7 BTC zu kommen.

Eine weitere Annahme ergibt sich daraus, dass jeder Input unabhängig signiert wird. Die Transaktion könnte also auch so zustande gekommen sein, dass vier verschiedene Parteien je einen Input signiert haben. Genau dieses Prinzip macht CoinJoin wirksam.

Wie funktioniert CoinJoin?

Die Grundidee: Mehrere Parteien stimmen sich ab und erstellen gemeinsam eine Transaktion, indem sie ihre Inputs und die gewünschten Outputs offenlegen. Sind alle Inputs zusammengeführt, lässt sich nicht mehr mit Sicherheit sagen, welcher Output zu welchem Nutzer gehört. Das Schema unten zeigt den Ablauf:

Hier wollen vier Nutzer die Verbindung zwischen ihren Transaktionen kappen. Sie stimmen sich untereinander (oder über einen Koordinator) ab, um die Inputs und Outputs zu übermitteln, die sie einbringen möchten.

Der Koordinator sammelt alle Angaben, baut daraus eine Transaktion und lässt sie von jedem Teilnehmer signieren, bevor sie an das Netzwerk übertragen wird. Sobald die Nutzer signiert haben, lässt sich die Transaktion nicht mehr ändern, ohne sie ungültig zu machen. Damit ist das Risiko ausgeschlossen, dass der Koordinator das Guthaben stiehlt.

Die Transaktion wirkt wie eine Blackbox, in der die Coins vermischt werden. Um neue UTXOs zu erzeugen, müssen die alten zerstört werden. Die einzige Verbindung zwischen alten und neuen UTXOs ist die Transaktion selbst – doch an dieser Stelle lassen sich die Teilnehmer nicht mehr voneinander trennen. Bestenfalls lässt sich sagen, dass ein bestimmter Teilnehmer einen der Inputs beigesteuert hat und der neue Eigentümer eines der Outputs sein könnte.

Aber selbst das ist keine Gewissheit. Lässt sich aus der obigen Transaktion wirklich schließen, dass vier Teilnehmer beteiligt sind? Schickt vielleicht eine einzelne Person Guthaben an vier eigene Adressen? Tätigen zwei Personen zwei verschiedene Käufe und senden je 0,2 BTC an ihre eigene Adresse zurück? Oder senden vier Personen Guthaben an andere oder an sich selbst? Auf keine dieser Fragen gibt es eine eindeutige Antwort.

Privatsphäre durch Abstreitbarkeit

Schon die bloße Existenz von CoinJoin-Anwendungen genügt, um die gängigen Methoden der Transaktionsanalyse in Zweifel zu ziehen. Man kann feststellen, dass in vielen Transaktionen CoinJoin zum Einsatz kommt – wem die Outputs gehören, weiß man deshalb trotzdem nicht. Mit der wachsenden Popularität dieser Anwendungen ist die Annahme, alle Inputs gehörten demselben Nutzer, deutlich schwächer geworden. Für das gesamte Ökosystem ist das ein großer Schritt in Richtung Privatsphäre.

Im vorherigen Beispiel hat die Transaktion ein Anonymitätsset von 4: Der Eigentümer eines Outputs kann jeder der vier beteiligten Nutzer sein. Je größer das Anonymitätsset, desto schwerer lässt sich eine Transaktion ihrem ursprünglichen Eigentümer zuordnen. Dank der jüngsten CoinJoin-Implementierungen können Nutzer ihre Inputs ohne Vertrauensvorschuss mit Dutzenden anderer Nutzer zusammenlegen und erreichen so ein hohes Maß an Abstreitbarkeit. Erst kürzlich wurde eine Transaktion mit 100 Teilnehmern erfolgreich durchgeführt.

Fazit

Werkzeuge zum Mischen von Coins sind ein wichtiges Mittel für alle Nutzer, denen Privatsphäre am Herzen liegt. Anders als bei anderen Privatsphäre-Erweiterungen – etwa Confidential Transactions – lassen sie sich nutzen, ohne dass das Protokoll in seiner jetzigen Form angetastet werden muss.

Wer den Betreibern und Verfahren von Drittanbietern vertraut, findet in Mixing-Diensten eine bequeme Lösung. Wer überprüfbare Alternativen ohne Verwahrung durch Dritte bevorzugt, fährt mit CoinJoin klar besser. Technisch versierte Nutzer können diese Transaktionen manuell aufsetzen; Software-Tools nehmen einem den Umgang mit den komplexen Mechanismen ab. Einige solcher Werkzeuge gibt es bereits, und sie werden immer beliebter, je mehr Nutzer nach mehr Privatsphäre verlangen.