name: Datenschutz bei Bitcoin goal: Verstehen und Beherrschen der Grundsätze des Datenschutzes bei der Verwendung von Bitcoin objectives:


Schützen Sie Ihre Privatsphäre auf Bitcoin

In einer Welt, in der die Vertraulichkeit von Finanztransaktionen allmählich zum Luxus wird, ist das Verständnis und die Beherrschung der Grundsätze des Datenschutzes bei der Verwendung von Bitcoin unerlässlich. Dieser Kurs gibt Ihnen alle Schlüssel, sowohl theoretisch als auch praktisch, um dies selbstständig zu erreichen.

Auf Bitcoin haben sich heute Unternehmen auf die Blockchain-Analyse spezialisiert. Ihr Kerngeschäft besteht genau darin, in Ihre Privatsphäre einzudringen, um die Vertraulichkeit Ihrer Transaktionen zu gefährden. In Wirklichkeit gibt es so etwas wie ein "Recht auf Privatsphäre" in Bitcoin nicht. Es liegt also an Ihnen, dem Nutzer, Ihre natürlichen Rechte geltend zu machen und die Vertraulichkeit Ihrer Transaktionen zu schützen, denn niemand sonst wird das für Sie tun.

Der Kurs ist so konzipiert, dass er umfassend und allgemein ist. Jedes technische Konzept wird ausführlich behandelt und durch erklärende Diagramme unterstützt. Das Ziel ist es, das Wissen für alle zugänglich zu machen. BTC204 ist daher für Anfänger und fortgeschrittene Nutzer erschwinglich. Der Kurs bietet auch einen Mehrwert für erfahrenere Bitcoiner, da wir bestimmte technische Konzepte, die oft missverstanden werden, vertiefen.

Schließen Sie sich uns an, um Ihre Nutzung von Bitcoin zu verändern und ein informierter Nutzer zu werden, der in der Lage ist, die Probleme rund um die Vertraulichkeit und den Schutz Ihrer Privatsphäre zu verstehen.

Einführung

Kursübersicht

Willkommen im Kurs BTC204!

In einer Welt, in der die Vertraulichkeit von Finanztransaktionen allmählich zum Luxus wird, ist das Verständnis und die Beherrschung der Grundsätze des Datenschutzes bei der Verwendung von Bitcoin unerlässlich. Dieser Kurs gibt Ihnen alle Schlüssel, sowohl theoretisch als auch praktisch, um dies selbstständig zu erreichen.

Auf Bitcoin haben sich heute Unternehmen auf die Blockchain-Analyse spezialisiert. Ihr Kerngeschäft besteht genau darin, in Ihre Privatsphäre einzudringen, um die Vertraulichkeit Ihrer Transaktionen zu gefährden. In Wirklichkeit gibt es so etwas wie ein "Recht auf Privatsphäre" in Bitcoin nicht. Es liegt also an Ihnen, dem Nutzer, Ihre natürlichen Rechte geltend zu machen und die Vertraulichkeit Ihrer Transaktionen zu schützen, denn niemand sonst wird das für Sie tun.

Bei Bitcoin geht es nicht nur um "Number Go Up" und den Erhalt des Wertes von Ersparnissen. Mit seinen einzigartigen Eigenschaften und seiner Geschichte ist er in erster Linie ein Werkzeug der Gegenwirtschaft. Dank dieser großartigen Erfindung können Sie frei über Ihr Geld verfügen, es ausgeben und anhäufen, ohne dass Sie jemand daran hindern kann.

Bitcoin bietet einen friedlichen Ausweg aus dem Joch des Staates und ermöglicht es Ihnen, Ihre natürlichen Rechte, die nicht durch bestehende Gesetze in Frage gestellt werden können, in vollem Umfang zu genießen. Dank der Erfindung von Satoshi Nakamoto haben Sie die Macht, die Achtung Ihres Privateigentums durchzusetzen und die Vertragsfreiheit wiederzuerlangen.

Allerdings ist Bitcoin nicht standardmäßig anonym, was ein Risiko für Personen darstellen kann, die in der Gegenwirtschaft tätig sind, insbesondere in Regionen mit despotischer Herrschaft. Aber das ist nicht die einzige Gefahr. Da Bitcoin ein wertvoller und nicht zählbarer Vermögenswert ist, kann er ein Ziel für Diebe sein. Der Schutz Ihrer Privatsphäre ist also auch eine Frage der Sicherheit: Er kann Sie vor Hacking und physischen Angriffen schützen.

Wie wir noch sehen werden, bietet das Protokoll zwar an sich einen gewissen Schutz der Vertraulichkeit, doch ist der Einsatz zusätzlicher Tools zur Optimierung und zum Schutz dieser Vertraulichkeit unerlässlich.

Diese Schulung soll einen umfassenden, allgemeinen Überblick über die mit der Bitcoin-Vertraulichkeit verbundenen Fragen geben. Jedes technische Konzept wird im Detail behandelt und durch erklärende Diagramme unterstützt. Das Ziel ist es, dieses Wissen jedem zugänglich zu machen, auch Anfängern und fortgeschrittenen Nutzern. Für die erfahreneren Bitcoin-Benutzer behandeln wir im Laufe des Kurses auch sehr technische und manchmal wenig bekannte Konzepte, um das Verständnis für jedes Thema zu vertiefen.

Ziel dieses Kurses ist es nicht, Sie bei der Nutzung von Bitcoin völlig anonym zu machen, sondern Ihnen die wesentlichen Werkzeuge an die Hand zu geben, damit Sie wissen, wie Sie Ihre Vertraulichkeit entsprechend Ihren persönlichen Zielen schützen können. Sie werden die Freiheit haben, aus den vorgestellten Konzepten und Werkzeugen zu wählen, um Ihre eigenen Strategien zu entwickeln, die auf Ihre spezifischen Ziele und Bedürfnisse zugeschnitten sind.

Abschnitt 1: Definitionen und Schlüsselbegriffe

Zunächst werden wir uns mit den grundlegenden Prinzipien der Funktionsweise von Bitcoin befassen, damit wir uns in Ruhe mit den Begriffen der Vertraulichkeit befassen können. Es ist unerlässlich, einige grundlegende Konzepte wie UTXO, Empfangsadressen und Scripting zu beherrschen, bevor Sie die Konzepte, die wir in den folgenden Abschnitten behandeln werden, vollständig verstehen können. Wir werden auch das allgemeine Vertraulichkeitsmodell von Bitcoin einführen, wie es sich Satoshi Nakamoto vorgestellt hat, um die damit verbundenen Risiken und Gefahren zu verstehen.

BTC204

Abschnitt 2: Verständnis und Schutz vor Kettenanalysen

Im zweiten Abschnitt befassen wir uns mit den Techniken, die von Blockchain-Analyseunternehmen verwendet werden, um Ihre Aktivitäten auf Bitcoin zu verfolgen. Das Verständnis dieser Methoden ist entscheidend für die Stärkung des Schutzes Ihrer Privatsphäre. Das Ziel dieses Abschnitts ist es, die Strategien der Angreifer zu untersuchen, um die Risiken besser zu verstehen und den Boden für die Techniken zu bereiten, die wir in den folgenden Abschnitten untersuchen werden. Wir werden Transaktionsmuster, interne und externe Heuristiken und mögliche Interpretationen dieser Muster analysieren. Neben der Theorie werden wir anhand von praktischen Beispielen und Übungen lernen, wie man einen Block-Explorer für die Kettenanalyse verwendet.

BTC204

Abschnitt 3: Bewährte Praktiken zum Schutz Ihrer Privatsphäre beherrschen

Im dritten Teil unseres Trainingskurses geht es ans Eingemachte: die Praxis! Das Ziel ist es, alle wesentlichen Best Practices zu beherrschen, die für jeden Bitcoin-Nutzer zu natürlichen Reflexen werden sollten. Wir werden die Verwendung von leeren Adressen, Tagging, Konsolidierung, die Verwendung kompletter Nodes sowie KYC und Erwerbsmethoden behandeln. Ziel ist es, Ihnen einen umfassenden Überblick über die zu vermeidenden Fallstricke zu geben, um eine solide Grundlage für den Schutz der Privatsphäre zu schaffen. Für einige dieser Praktiken werden Sie zu einer speziellen Anleitung geführt, wie sie umzusetzen sind.

BTC204

Abschnitt 4: Verständnis von Coinjoin-Transaktionen

Wie können wir über Datenschutz bei Bitcoin sprechen, ohne Coinjoins zu erwähnen? In Abschnitt 4 erfahren Sie alles, was Sie über diese Mischmethode wissen müssen. Sie erfahren, was Coinjoins sind, ihre Geschichte und Ziele sowie die verschiedenen Arten von Coinjoin, die es gibt. Und schließlich erfahren Sie, was Anonsets und Entropie sind und wie man sie berechnet.

BTC204

Abschnitt 5: Verständnis der Herausforderungen anderer fortgeschrittener Vertraulichkeitstechniken

Im fünften Abschnitt werfen wir einen Blick auf all die anderen Techniken, die neben Coinjoin zur Verfügung stehen, um Ihre Privatsphäre auf Bitcoin zu schützen. Im Laufe der Jahre haben die Entwickler bemerkenswerte Kreativität bei der Entwicklung von Tools zum Schutz der Privatsphäre gezeigt. Wir werden uns all diese Methoden wie Payjoin, kollaborative Transaktionen, Coin Swap und Atomic Swap ansehen und detailliert beschreiben, wie sie funktionieren, welche Ziele sie verfolgen und welche Schwächen sie haben.

Wir werden auch die Privatsphäre auf der Ebene des Netzwerks der Knoten und der Transaktionsverbreitung betrachten. Wir werden auch die verschiedenen Protokolle diskutieren, die im Laufe der Jahre vorgeschlagen wurden, um die Privatsphäre der Nutzer von Bitcoin zu verbessern, einschließlich statischer Adressprotokolle.

BTC204 Bereit, die Tiefen der Privatsphäre bei Bitcoin zu erkunden? Los geht's!

Definitionen und Schlüsselbegriffe

Das UTXO-Modell von Bitcoin

Bitcoin ist in erster Linie eine Währung, aber wissen Sie eigentlich, wie BTC in dem Protokoll dargestellt werden?

UTXOs auf Bitcoin: Was sind sie?

Das Bitcoin-Protokoll basiert auf dem UTXO-Modell, das für "Unspent Transaction Output" steht.

Dieses Modell unterscheidet sich grundlegend von traditionellen Bankensystemen, die sich auf einen Mechanismus von Konten und Salden stützen, um Finanzströme zu verfolgen. Im Bankensystem werden die einzelnen Guthaben auf Konten geführt, die mit einer Identität verbunden sind. Wenn Sie beispielsweise ein Baguette beim Bäcker kaufen, bucht Ihre Bank den Kaufbetrag einfach von Ihrem Konto ab, wodurch sich Ihr Saldo verringert, während dem Konto des Bäckers der gleiche Betrag gutgeschrieben wird, wodurch sich sein Saldo erhöht. In diesem System gibt es keine Verbindung zwischen dem Geld, das auf Ihrem Konto eingeht, und dem Geld, das es verlässt, abgesehen von den Transaktionsaufzeichnungen.

BTC204

Bitcoin funktioniert anders. Das Konzept eines Kontos gibt es nicht, und die Geldeinheiten werden nicht über Guthaben, sondern über UTXOs verwaltet. Ein UTXO steht für eine bestimmte Menge an Bitcoins, die noch nicht ausgegeben wurde, und bildet somit ein "Stück Bitcoin", das groß oder klein sein kann. Ein UTXO kann zum Beispiel 500 BTC oder einfach 700 SATS wert sein.

**> Der Satoshi, oft abgekürzt als Sat, ist die kleinste Einheit von Bitcoin, vergleichbar mit dem Centime in Fiat-Währungen.

1 BTC = 100 000 000 SATS

Theoretisch kann ein UTXO einen beliebigen Wert in Bitcoins repräsentieren, der von einem Sat bis zu einem theoretischen Maximum von etwa 21 Millionen BTC reicht. Es ist jedoch logisch unmöglich, alle 21 Millionen Bitcoins zu besitzen, und es gibt eine untere wirtschaftliche Schwelle, die als "Staub" bezeichnet wird und unterhalb derer ein UTXO als wirtschaftlich unrentabel angesehen wird.

**> Das größte UTXO, das jemals auf Bitcoin erstellt wurde, hatte einen Wert von 500.000 BTC. Er wurde von der MtGox-Plattform während einer Konsolidierungsoperation im November 2011 erstellt: 29a3efd3ef04f9153d47a990bd7b048a4b2d213daaa5fb8ed670fb85f13bdbcf

UTXOs und Ausgabenbedingungen

UTXOs sind die Tauschmittel von Bitcoin. Jede Transaktion führt zum Verbrauch von UTXOs als Inputs und zur Erzeugung neuer UTXOs als Outputs. Wenn eine Transaktion abgeschlossen ist, werden die als Inputs verwendeten UTXOs als "verbraucht" betrachtet, und neue UTXOs werden erzeugt und den in den Transaktions-Outputs angegebenen Empfängern zugewiesen. Somit stellt ein UTXO einfach eine nicht ausgegebene Transaktionsausgabe dar und somit eine Menge an Bitcoins, die einem Nutzer zu einem bestimmten Zeitpunkt gehört.

BTC204

Alle UTXOs sind durch Skripte gesichert, die die Bedingungen festlegen, unter denen sie ausgegeben werden können. Um ein UTXO zu verbrauchen, muss ein Nutzer dem Netz nachweisen, dass er die Bedingungen erfüllt, die in dem Skript festgelegt sind, das dieses UTXO sichert. In der Regel sind UTXOs durch einen öffentlichen Schlüssel (oder eine Empfangsadresse, die diesen öffentlichen Schlüssel repräsentiert) geschützt. Um einen UTXO auszugeben, der mit diesem öffentlichen Schlüssel verknüpft ist, muss der Nutzer nachweisen, dass er den entsprechenden privaten Schlüssel besitzt, indem er eine mit diesem Schlüssel erstellte digitale Signatur vorlegt. Aus diesem Grund sagen wir, dass Ihre Bitcoin-Brieftasche eigentlich keine Bitcoins enthält, sondern Ihre privaten Schlüssel speichert, die Ihnen wiederum Zugang zu Ihren UTXOs und damit zu den Bitcoins geben, die sie repräsentieren.

BTC204

Da es in Bitcoin kein Konzept eines Kontos gibt, ist der Kontostand einer Wallet einfach die Summe der Werte aller UTXOs, die sie ausgeben kann. Wenn Ihr Bitcoin-Wallet zum Beispiel die folgenden 4 UTXOs ausgeben kann:

- 2 BTC
- 8 BTC
- 5 BTC
- 2 BTC

Das Gesamtguthaben Ihres Portfolios würde 17 BTC betragen.

BTC204

Die Struktur von Bitcoin-Transaktionen

Transaktionsein- und -ausgänge

Eine Bitcoin-Transaktion ist eine in der Blockchain aufgezeichnete Operation, die das Eigentum an Bitcoins von einer Person auf eine andere überträgt. Genauer gesagt, da wir uns in einem UTXO-Modell befinden und es keine Konten gibt, erfüllt die Transaktion die Ausgabenbedingungen, die einen oder mehrere UTXOs gesichert haben, verbraucht sie und schafft entsprechend neue UTXOs mit neuen Ausgabenbedingungen. Kurz gesagt, eine Transaktion verschiebt Bitcoins von einem erfüllten Skript zu einem neuen Skript, das sie sichern soll.

BTC204

Jede Bitcoin-Transaktion besteht daher aus einem oder mehreren Inputs und einem oder mehreren Outputs. Inputs sind UTXOs, die von der Transaktion verbraucht werden, um Outputs zu erzeugen. Outputs sind neue UTXOs, die als Inputs für zukünftige Transaktionen verwendet werden können.

BTC204

**> Theoretisch könnte eine Bitcoin-Transaktion eine unendliche Anzahl von Eingängen und Ausgängen haben. Die einzige Grenze ist die maximale Blockgröße.

Jede Eingabe in einer Bitcoin-Transaktion bezieht sich auf einen zuvor nicht ausgegebenen UTXO. Um einen UTXO als Eingabe zu verwenden, muss sein Inhaber nachweisen, dass er der rechtmäßige Eigentümer ist, indem er das zugehörige Skript validiert, d. h. die auferlegte Ausgabebedingung erfüllt. Im Allgemeinen bedeutet dies, dass eine digitale Signatur vorgelegt werden muss, die mit dem privaten Schlüssel erstellt wurde, der dem öffentlichen Schlüssel entspricht, mit dem dieser UTXO ursprünglich gesichert wurde. Das Skript besteht also darin, zu überprüfen, ob die Unterschrift mit dem öffentlichen Schlüssel übereinstimmt, der beim Erhalt der Mittel verwendet wurde.

BTC204

Jede Ausgabe gibt wiederum den Betrag der zu übertragenden Bitcoins sowie den Empfänger an. Letzterer wird durch ein neues Skript definiert, das in der Regel den neu erstellten UTXO mit einer Empfängeradresse oder einem neuen öffentlichen Schlüssel sperrt.

Damit eine Transaktion nach den Konsensregeln als gültig angesehen wird, muss die Summe der Outputs kleiner oder gleich der Summe der Inputs sein. Mit anderen Worten: Die Summe der durch die Transaktion erzeugten neuen UTXOs darf die Summe der als Inputs verbrauchten UTXOs nicht übersteigen. Dieses Prinzip ist logisch: Wenn Sie nur 500.000 SATS haben, können Sie keinen Kauf von 700.000 SATS tätigen.

Austausch und Zusammenführung in einer Bitcoin-Transaktion

Der Vorgang einer Bitcoin-Transaktion auf UTXO kann daher mit dem Umgießen einer Goldmünze verglichen werden. Ein UTXO ist in der Tat nicht teilbar, sondern nur schmelzbar. Das bedeutet, dass ein Nutzer einen UTXO, der einen bestimmten Betrag in Bitcoins darstellt, nicht einfach in mehrere kleinere UTXO aufteilen kann. Er muss den UTXO in einer Transaktion vollständig verbrauchen, um einen oder mehrere neue UTXO mit beliebigen Ausgangswerten zu erzeugen, die kleiner oder gleich dem Ausgangswert sein müssen.

Dieser Mechanismus ist ähnlich wie bei einer Goldmünze. Nehmen wir an, Sie besitzen eine 2-Unzen-Münze und möchten eine Zahlung von 1 Unze leisten, vorausgesetzt, der Verkäufer kann Ihnen kein Wechselgeld geben. Sie müssten Ihre Münze einschmelzen und 2 neue Münzen zu je 1 Unze gießen.

Bitcoin funktioniert auf ähnliche Weise. Stellen wir uns vor, Alice hat einen UTXO von 10.000 SATS und möchte ein Baguette kaufen, das 4.000 SATS kostet. Alice macht eine Transaktion mit einem UTXO von 10.000 SATS als Input, den sie vollständig verbraucht, und zwei UTXOs von 4.000 SATS und 6.000 SATS als Output. Der UTXO von 4.000 SATS wird an den Bäcker als Bezahlung für das Baguette geschickt, während der UTXO von 6.000 SATS in Form von Wechselgeld zu Alice zurückkehrt. Dieser UTXO, der zum ursprünglichen Emittenten der Transaktion zurückkehrt, wird im Bitcoin-Jargon als "Austausch" bezeichnet.

BTC204

Stellen wir uns nun vor, dass Alice nicht über einen einzigen UTXO mit 10.000 SATS verfügt, sondern über zwei UTXOs mit je 3.000 SATS. In diesem Fall reicht keiner der beiden UTXOs aus, um die "4.000 SATS" des Zauberstabs einzustellen. Alice muss daher gleichzeitig die beiden UTXOs von 3.000 SATS als Input für ihre Transaktion verwenden. Auf diese Weise erreicht die Gesamtsumme der Inputs 6.000 SATS und ermöglicht es ihr, die Zahlung von 4.000 SATS an den Bäcker zu erfüllen. Diese Methode, bei der mehrere UTXOs als Vorleistungen für eine Transaktion zusammengefasst werden, wird oft als "Zusammenlegung" bezeichnet.

BTC204

Transaktionsgebühren

Intuitiv könnte man meinen, dass die Transaktionskosten auch den Output einer Transaktion darstellen. In Wirklichkeit ist dies jedoch nicht der Fall. Die Transaktionskosten stellen die Differenz zwischen den gesamten Inputs und den gesamten Outputs dar. Das bedeutet, dass nach der Verwendung eines Teils des Wertes der Inputs zur Deckung der gewünschten Outputs in einer Transaktion eine bestimmte Summe der Inputs ungenutzt bleibt. Dieser Restbetrag stellt die Transaktionskosten dar.

Frais = total inputs - total outputs

Nehmen wir das Beispiel von Alice, die einen UTXO von "10.000 SATS" hat und ein Baguette für "4.000 SATS" kaufen möchte. Alice erstellt eine Transaktion mit ihrem UTXO von 10.000 SATS als Eingabe. Sie erzeugt dann eine Ausgabe von 4.000 SATS für den Bäcker, um das Baguette zu bezahlen. Um die Miner zu ermutigen, ihre Transaktion in einen Block zu integrieren, zahlt Alice 200 SATS an Gebühren. Dann erzeugt sie einen zweiten Output, den Austausch, der an sie zurückgegeben wird und sich auf 5.800 SATS beläuft.

BTC204

Wenn man die Gebührenformel anwendet, sieht man, dass tatsächlich 200 SATS für Minderjährige übrig sind:

Frais = total inputs - total outputs
Frais = 10 000 - (4 000 + 5 800)
Frais = 10 000 - 9 800
Frais = 200

Wenn es einem Miner gelingt, einen Block zu validieren, ist er berechtigt, diese Gebühren für alle in seinem Block enthaltenen Transaktionen über die so genannte "Coinbase"-Transaktion einzuziehen.

UTXOs auf Bitcoin erstellen

Wenn Sie die vorangegangenen Abschnitte aufmerksam verfolgt haben, wissen Sie jetzt, dass UTXOs nur durch den Verbrauch anderer UTXOs erzeugt werden können. Auf diese Weise bilden die Bitcoin-Münzen eine fortlaufende Kette. Vielleicht fragen Sie sich jedoch, wie die ersten UTXOs in dieser Kette zustande gekommen sind. Dies wirft ein Problem auf, das dem des Huhns und des Eies ähnelt: Woher kamen diese ursprünglichen UTXOs?

Die Antwort liegt in der Transaktion coinbase.

Die Coinbase ist eine spezielle Art von Bitcoin-Transaktion, die für jeden Block einzigartig ist und immer die erste ist. Sie ermöglicht es dem Miner, der einen gültigen Proof of Work gefunden hat, seine Blockbelohnung zu erhalten. Diese Belohnung setzt sich aus zwei Elementen zusammen: Block Grant und Transaktionsgebühr, die im vorherigen Abschnitt erläutert wurden.

Die Coinbase-Transaktion ist insofern einzigartig, als sie als einzige in der Lage ist, Bitcoins ex nihilo zu erzeugen, ohne dass Inputs verbraucht werden müssen, um Outputs zu erzeugen. Diese neu geschaffenen Bitcoins sind das, was wir als "ursprüngliche UTXOs" bezeichnen könnten.

BTC204

Blocksubventionierte Bitcoins sind neue BTC, die nach einem in den Konsensregeln festgelegten Zeitplan von Grund auf neu geschaffen werden. Die Blocksubvention wird alle 210.000 Blöcke, d. h. etwa alle vier Jahre, in einem als "Halving" bekannten Prozess halbiert. Ursprünglich wurden mit jeder Subvention 50 Bitcoins geschaffen, aber dieser Betrag ist allmählich gesunken; derzeit sind es 3,125 Bitcoins pro Block.

Die Transaktionsgebühren stellen zwar ebenfalls neu geschaffene BTC dar, dürfen aber die Differenz zwischen den gesamten Inputs und Outputs aller Transaktionen in einem Block nicht überschreiten. Wie wir bereits gesehen haben, stellen diese Gebühren den Teil der Inputs dar, der nicht für die Outputs der Transaktion verwendet wird. Dieser Anteil ist technisch gesehen während der Transaktion "verloren", und der Miner hat das Recht, diesen Wert in Form eines oder mehrerer neuer UTXOs wiederherzustellen. Dies ist ein Werttransfer zwischen dem Emittenten der Transaktion und dem Miner, der sie zur Blockchain hinzufügt.

**> Bitcoins, die durch eine Coinbase-Transaktion erzeugt werden, unterliegen einer Laufzeit von 100 Blöcken, während der sie vom Miner nicht ausgegeben werden können. Mit dieser Regel sollen Komplikationen vermieden werden, die mit der Verwendung von neu erzeugten Bitcoins auf einer Kette verbunden sind, die später veraltet sein könnte.

Die Auswirkungen des UTXO-Modells

Zunächst einmal hat das UTXO-Modell einen direkten Einfluss auf die Transaktionsgebühren von Bitcoin. Da die Kapazität jedes Blocks begrenzt ist, bevorzugen die Miner Transaktionen, die die besten Gebühren im Verhältnis zu dem Platz bieten, den sie im Block einnehmen. Je mehr UTXOs eine Transaktion in ihren Inputs und Outputs enthält, desto schwerer ist sie und erfordert daher höhere Gebühren. Dies ist einer der Gründe, warum wir oft versuchen, die Anzahl der UTXOs in unserem Portfolio zu reduzieren, was sich auch auf die Vertraulichkeit auswirken kann, ein Thema, das wir im dritten Teil dieses Kurses ausführlich behandeln werden.

Zweitens sind Bitcoin-Münzen, wie in den vorherigen Abschnitten erwähnt, im Wesentlichen eine Kette von UTXOs. Jede Transaktion schafft somit eine Verbindung zwischen einem vergangenen UTXO und einem zukünftigen UTXO. UTXOs ermöglichen es also, den Weg der Bitcoins von ihrer Entstehung bis zu ihrer aktuellen Ausgabe explizit zu verfolgen. Diese Transparenz ist positiv zu bewerten, da sie es jedem Nutzer ermöglicht, sich von der Echtheit der erhaltenen Bitcoins zu überzeugen. Auf diesem Prinzip der Rückverfolgbarkeit und Überprüfbarkeit basiert jedoch auch die Blockchain-Analyse, die Ihre Vertraulichkeit gefährden kann. Im zweiten Teil des Kurses werden wir uns mit dieser Praxis eingehend befassen.

Das Datenschutzmodell von Bitcoin

Geld: Authentizität, Integrität und doppelte Ausgaben

Eine der Funktionen des Geldes besteht darin, das Problem der doppelten Übereinstimmung von Bedürfnissen zu lösen. In einem auf Tauschhandel basierenden System ist es für den Abschluss eines Tausches nicht nur erforderlich, ein Individuum zu finden, das ein meinem Bedürfnis entsprechendes Gut abgibt, sondern auch, ihm ein gleichwertiges Gut zu geben, das sein eigenes Bedürfnis befriedigt. Dieses Gleichgewicht zu finden, ist eine komplexe Angelegenheit.

BTC204

Aus diesem Grund verwenden wir Geld, um Werte in Raum und Zeit zu bewegen.

BTC204

Damit Münzen dieses Problem lösen können, muss derjenige, der eine Ware oder eine Dienstleistung anbietet, davon überzeugt sein, dass er diese Summe zu einem späteren Zeitpunkt ausgeben kann. Jeder vernünftige Mensch, der eine Münze - ob digital oder physisch - akzeptieren möchte, wird daher sicherstellen, dass sie zwei grundlegende Kriterien erfüllt:

Wenn Sie physisches Bargeld verwenden, ist das erste Merkmal am schwierigsten zu überprüfen. Zu verschiedenen Zeiten in der Geschichte wurde die Unversehrtheit von Metallmünzen oft durch Praktiken wie Beschneiden oder Durchstechen beeinträchtigt. Im alten Rom war es beispielsweise üblich, dass die Bürger die Ränder von Goldmünzen ankratzten, um ein wenig Edelmetall zu sammeln und sie für zukünftige Transaktionen aufzubewahren. Auf diese Weise wurde der innere Wert der Münze verringert, ihr Nennwert blieb jedoch gleich. Dies ist einer der Gründe, warum der Rand der Münze später geriffelt wurde.

Auch die Echtheit eines physischen Geldes ist schwer zu überprüfen. Die heutigen Techniken zur Bekämpfung von Falschgeld werden immer komplexer, so dass Einzelhändler gezwungen sind, in kostspielige Prüfsysteme zu investieren.

Andererseits ist die doppelte Ausgabe bei physischen Währungen aufgrund ihrer Beschaffenheit kein Problem. Wenn ich Ihnen einen 10-Euro-Schein gebe, verlässt er unwiderruflich meinen Besitz und geht in Ihren über, was natürlich jede Möglichkeit der Mehrfachausgabe der darin enthaltenen Geldeinheiten ausschließt. Kurz gesagt, ich werde diesen 10-Euro-Schein nicht noch einmal ausgeben können.

BTC204

Bei digitalen Währungen ist die Schwierigkeit eine andere. Die Sicherstellung der Authentizität und Integrität einer Münze ist oft einfacher. Wie wir im vorigen Abschnitt gesehen haben, ermöglicht es das UTXO-Modell von Bitcoin, eine Münze bis zu ihrem Ursprung zurückzuverfolgen und so zu überprüfen, ob sie tatsächlich von einem Miner in Übereinstimmung mit den Konsensregeln erstellt wurde.

Andererseits ist die Sicherstellung, dass es nicht zu Doppelausgaben kommt, komplexer, da alle digitalen Güter im Wesentlichen Informationen sind. Im Gegensatz zu physischen Gütern werden Informationen beim Austausch nicht aufgeteilt, sondern durch Vervielfältigung verbreitet. Wenn ich Ihnen zum Beispiel ein Dokument per E-Mail schicke, wird es vervielfältigt. Sie können nicht sicher sein, dass ich das Originaldokument gelöscht habe.

BTC204

Vermeidung von Doppelausgaben bei Bitcoin

Die einzige Möglichkeit, diese Duplizierung eines digitalen Vermögenswerts zu vermeiden, besteht darin, alle Tauschvorgänge im System zu kennen. Auf diese Weise können wir wissen, wer was besitzt, und die Bestände jeder Person entsprechend den durchgeführten Transaktionen aktualisieren. Dies geschieht zum Beispiel mit dem Buchgeld im Bankensystem. Wenn Sie bei einem Händler 10 € per Kreditkarte bezahlen, registriert die Bank den Umtausch und aktualisiert das Kontobuch.

BTC204

Bei Bitcoin werden Doppelausgaben auf die gleiche Weise verhindert. Wir versuchen zu bestätigen, dass es keine Transaktion gibt, bei der die fraglichen Münzen bereits ausgegeben wurden. Wenn die Münzen noch nie verwendet wurden, können wir sicher sein, dass keine doppelten Ausgaben getätigt werden. Dieses Prinzip wurde von Satoshi Nakamoto im Weißbuch mit dem berühmten Satz beschrieben:

**Die einzige Möglichkeit, das Nichtvorhandensein einer Transaktion zu bestätigen, besteht darin, sich aller Transaktionen bewusst zu sein

Aber im Gegensatz zum Bankenmodell wollen wir bei Bitcoin nicht einer zentralen Stelle vertrauen müssen. Daher müssen alle Nutzer in der Lage sein, zu bestätigen, dass es keine doppelten Ausgaben gibt, ohne sich auf eine dritte Partei zu verlassen. Jeder muss also über alle Bitcoin-Transaktionen informiert sein. Aus diesem Grund werden Bitcoin-Transaktionen auf allen Netzwerkknoten öffentlich bekannt gegeben und im Klartext in der Blockchain aufgezeichnet.

Es ist genau diese öffentliche Verbreitung von Informationen, die den Schutz der Privatsphäre bei Bitcoin erschwert. Im traditionellen Bankensystem hat theoretisch nur das Finanzinstitut Kenntnis von den getätigten Transaktionen. Bei Bitcoin hingegen sind alle Nutzer über ihre jeweiligen Knotenpunkte über alle Transaktionen informiert.

Das Vertraulichkeitsmodell: Bankensystem vs. Bitcoin

Im traditionellen System ist Ihr Bankkonto mit Ihrer Identität verknüpft. Der Banker kann wissen, welches Konto welchem Kunden gehört und welche Transaktionen damit verbunden sind. Dieser Informationsfluss ist jedoch zwischen der Bank und dem öffentlichen Bereich unterbrochen. Mit anderen Worten: Es ist unmöglich, den Saldo und die Transaktionen eines Bankkontos zu kennen, das einer anderen Person gehört. Nur die Bank hat Zugang zu diesen Informationen.

BTC204

Ihr Bankier weiß zum Beispiel, dass Sie jeden Morgen Ihr Baguette beim örtlichen Bäcker kaufen, aber Ihr Nachbar hat keine Kenntnis von dieser Transaktion. Auf diese Weise ist der Informationsfluss für die betroffenen Parteien, insbesondere die Bank, zugänglich, bleibt aber für Außenstehende unzugänglich.

BTC204

Aufgrund der Einschränkung der öffentlichen Verbreitung von Transaktionen, die wir im vorherigen Abschnitt gesehen haben, kann das Vertraulichkeitsmodell von Bitcoin nicht dem Modell des Bankensystems folgen. Da im Fall von Bitcoin der Informationsfluss zwischen den Transaktionen und der Öffentlichkeit nicht unterbrochen werden kann, beruht das Datenschutzmodell auf der Trennung zwischen der Identität des Nutzers und den Transaktionen selbst.

BTC204

Wenn Sie zum Beispiel ein Baguette beim Bäcker kaufen und mit BTC bezahlen, kann Ihr Nachbar, der einen eigenen vollständigen Knoten hat, Ihre Transaktion sehen, genauso wie er alle anderen Transaktionen im System sehen kann. Wenn jedoch die Vertraulichkeitsgrundsätze eingehalten werden, sollte er nicht in der Lage sein, diese spezielle Transaktion mit Ihrer Identität zu verknüpfen.

BTC204

Da Bitcoin-Transaktionen jedoch öffentlich gemacht werden, ist es dennoch möglich, Verbindungen zwischen ihnen herzustellen, um Informationen über die beteiligten Parteien zu erhalten. Diese Tätigkeit stellt sogar ein eigenes Fachgebiet dar, das als "Blockchain-Analyse" bezeichnet wird. Im nächsten Teil des Kurses lade ich Sie ein, die Grundlagen der Blockchain-Analyse zu erforschen, damit Sie verstehen, wie Ihre Bitcoins zurückverfolgt werden, und sich besser gegen sie verteidigen können.

Verständnis und Schutz vor Kettenanalysen

Was ist die Bitcoin-Kettenanalyse?

Definition und Funktionsweise

Bei der Blockchain-Analyse geht es darum, den Fluss von Bitcoins in der Blockchain nachzuvollziehen. Im Allgemeinen basiert die Kettenanalyse auf der Beobachtung von Merkmalen in Stichproben früherer Transaktionen. Sie besteht dann darin, dieselben Merkmale bei einer Transaktion, die wir analysieren möchten, zu identifizieren und daraus plausible Interpretationen abzuleiten. Diese Problemlösungsmethode, die auf einem praktischen Ansatz basiert, um eine ausreichend gute Lösung zu finden, wird als "Heuristik" bezeichnet.

Laienhaft ausgedrückt, gibt es drei Hauptstufen der Kettenanalyse:

  1. Beobachtung der Blockchain ;

  2. Die Identifizierung von bekannten Merkmalen ;

  3. **Die Ableitung von Annahmen **

BTC204

Die Blockchain-Analyse kann von jedem durchgeführt werden. Alles, was Sie brauchen, ist der Zugang zu den öffentlichen Informationen der Blockchain über einen vollständigen Knoten, um die Bewegungen der Transaktionen zu beobachten und Hypothesen aufzustellen. Es gibt auch kostenlose Tools, die diese Analyse erleichtern, wie z. B. [OXT.me] (https://oxt.me/), auf das wir in den letzten beiden Kapiteln dieses Abschnitts näher eingehen werden. Das größte Risiko für die Vertraulichkeit geht jedoch von Unternehmen aus, die sich auf die String-Analyse spezialisiert haben. Diese Unternehmen haben die Blockchain-Analyse auf ein industrielles Niveau gebracht und verkaufen ihre Dienste an Finanzinstitute und Regierungen. Unter diesen Unternehmen ist Chainalysis sicherlich das bekannteste.

Ziele der Kettenanalyse

Eines der Ziele der Blockchain-Analyse besteht darin, verschiedene Aktivitäten auf Bitcoin zu gruppieren, um die Einzigartigkeit des Nutzers, der sie durchgeführt hat, zu bestimmen. Anschließend kann versucht werden, diese Gruppe von Aktivitäten mit einer echten Identität zu verknüpfen.

BTC204

Denken Sie an das vorherige Kapitel zurück. Ich habe erklärt, warum das Datenschutzmodell von Bitcoin ursprünglich auf der Trennung von Nutzeridentität und Transaktionen basierte. Es wäre daher verlockend zu denken, dass die Blockchain-Analyse nutzlos ist, denn selbst wenn es uns gelingt, Onchain-Aktivitäten zu aggregieren, können wir sie nicht mit einer echten Identität in Verbindung bringen.

Theoretisch ist diese Aussage richtig. Im ersten Teil dieses Kurses haben wir gesehen, dass kryptographische Schlüsselpaare verwendet werden, um Bedingungen für UTXO festzulegen. Im Wesentlichen geben diese Schlüsselpaare keine Informationen über die Identität ihrer Inhaber preis. Selbst wenn es uns also gelingt, die mit verschiedenen Schlüsselpaaren verbundenen Aktivitäten zu gruppieren, sagt dies nichts über die Entität hinter diesen Aktivitäten aus.

BTC204

Die praktische Realität ist jedoch weitaus komplexer. Es gibt eine Vielzahl von Verhaltensweisen, die eine echte Identität mit Onchain-Aktivitäten verbinden können. In der Analyse wird dies als Einstiegspunkt bezeichnet, und es gibt eine Vielzahl davon.

Die häufigste ist KYC (Know Your Customer). Wenn Sie Ihre Bitcoins von einer regulierten Plattform an eine Ihrer persönlichen Empfangsadressen abheben, sind einige Leute in der Lage, Ihre Identität mit dieser Adresse zu verknüpfen. Im weiteren Sinne kann ein Einstiegspunkt jede Form der Interaktion zwischen Ihrem realen Leben und einer Bitcoin-Transaktion sein. Wenn Sie zum Beispiel eine Empfängeradresse in Ihren sozialen Netzwerken veröffentlichen, könnte dies ein Einstiegspunkt für eine Analyse sein. Wenn Sie eine Zahlung in Bitcoins an Ihren Bäcker leisten, kann er Ihr Gesicht (einen Teil Ihrer Identität) mit einer Bitcoin-Adresse in Verbindung bringen.

Diese Einstiegspunkte sind bei der Verwendung von Bitcoin praktisch unvermeidlich. Auch wenn wir versuchen, ihren Umfang zu begrenzen, werden sie immer vorhanden sein. Deshalb ist es wichtig, Methoden zum Schutz Ihrer Privatsphäre zu kombinieren. Die Trennung zwischen Ihrer echten Identität und Ihren Transaktionen ist zwar ein interessanter Ansatz, reicht aber heute nicht mehr aus. Wenn nämlich alle Ihre Onchain-Aktivitäten in einer Gruppe zusammengefasst werden können, dann kann selbst der kleinste Einstiegspunkt die einzige Vertraulichkeitsschicht, die Sie eingerichtet haben, gefährden.

BTC204

Sich gegen die Kettenanalyse wehren

Wir müssen also auch in der Lage sein, die Blockchain-Analyse bei der Nutzung von Bitcoin zu bewältigen. Auf diese Weise können wir die Aggregation unserer Aktivitäten minimieren und die Auswirkungen eines Einstiegspunkts auf unsere Privatsphäre begrenzen.

BTC204

Wie kann man der Blockchain-Analyse besser begegnen, als wenn man die dabei verwendeten Methoden kennenlernt? Wenn Sie wissen wollen, wie Sie Ihre Privatsphäre auf Bitcoin verbessern können, müssen Sie diese Methoden verstehen. Dadurch können Sie Techniken wie Coinjoin oder Payjoin (Techniken, die wir in den letzten Teilen des Kurses betrachten) besser verstehen und die Fehler, die Sie machen könnten, reduzieren.

https://planb.network/tutorials/privacy/on-chain/coinjoin-samourai-wallet-e566803d-ab3f-4d98-9136-5462009262ef

https://planb.network/tutorials/privacy/on-chain/payjoin-848b6a23-deb2-4c5f-a27e-93e2f842140f

Hier können wir eine Analogie zur Kryptographie und Kryptoanalyse ziehen. Ein guter Kryptograph ist in erster Linie ein guter Kryptoanalytiker. Um einen neuen Verschlüsselungsalgorithmus zu entwickeln, muss man wissen, welchen Angriffen er ausgesetzt sein wird, und auch untersuchen, warum frühere Algorithmen gebrochen wurden. Das gleiche Prinzip gilt für die Bitcoin-Privatsphäre. Das Verständnis der Blockchain-Analysemethoden ist der Schlüssel zum Schutz vor ihnen. Deshalb habe ich einen ganzen Abschnitt über die Kettenanalyse in diesen Kurs aufgenommen.

Methoden der Kettenanalyse

Es ist wichtig zu verstehen, dass die String-Analyse keine exakte Wissenschaft ist. Sie stützt sich auf Heuristiken, die aus früheren Beobachtungen oder logischen Interpretationen abgeleitet sind. Diese Regeln ermöglichen es uns, recht zuverlässige Ergebnisse zu erzielen, aber niemals mit absoluter Präzision. Mit anderen Worten: Kettenanalyse beinhaltet immer eine gewisse Wahrscheinlichkeit für die erzielten Schlussfolgerungen. So kann man beispielsweise mit mehr oder weniger großer Sicherheit davon ausgehen, dass zwei Adressen zu ein und demselben Unternehmen gehören, aber eine absolute Gewissheit wird es nie geben.

Der Sinn der Kettenanalyse besteht gerade darin, verschiedene Heuristiken zusammenzufassen, um das Fehlerrisiko zu minimieren. In gewisser Weise ist es eine Anhäufung von Beweisen, die uns der Realität näher bringt.

Diese berühmten Heuristiken können in verschiedene Kategorien eingeteilt werden, die wir im Folgenden näher beschreiben:

Satoshi Nakamoto und Kettenanalyse

Die ersten beiden Kettenanalyse-Heuristiken wurden von Satoshi Nakamoto selbst entdeckt. Er spricht über sie in Teil 10 des Bitcoin-Weißbuchs. Sie sind:

BTC204

Quelle: S. Nakamoto, "Bitcoin: A Peer-to-Peer Electronic Cash System", https://bitcoin.org/bitcoin.pdf, 2009.

Welche das sind, werden wir in den folgenden Kapiteln sehen, aber es ist schon jetzt interessant festzustellen, dass diese beiden Heuristiken auch heute noch eine Vorrangstellung in der Kettenanalyse haben.

Transaktionsmuster

Ein Transaktionsmuster ist einfach ein Gesamtmodell oder eine Struktur einer typischen Transaktion, die in der Blockchain zu finden ist und deren wahrscheinliche Interpretation bekannt ist. Bei der Untersuchung von Mustern konzentrieren wir uns auf eine einzelne Transaktion und analysieren sie auf einer hohen Ebene.

Mit anderen Worten, wir betrachten nur die Anzahl der UTXO in den Eingängen und die Anzahl der UTXO in den Ausgängen, ohne uns mit den genaueren Details oder der Umgebung der Transaktion zu befassen. Anhand des beobachteten Musters können wir die Art der Transaktion interpretieren. Wir werden dann nach Merkmalen ihrer Struktur suchen und daraus eine Interpretation ableiten.

BTC204

In diesem Abschnitt werden wir gemeinsam die wichtigsten Transaktionsmodelle betrachten, die in der Kettenanalyse vorkommen, und für jedes Modell werde ich Ihnen die wahrscheinliche Interpretation dieser Struktur sowie ein konkretes Beispiel geben.

Einzelsendung (oder Einzelzahlung)

Beginnen wir mit einem sehr verbreiteten Muster, da es bei den meisten Bitcoin-Zahlungen vorkommt. Das einfache Zahlungsmodell ist gekennzeichnet durch den Verbrauch von einem oder mehreren UTXOs als Input und die Produktion von 2 UTXOs als Output. Dieses Modell sieht also wie folgt aus:

BTC204

Wenn wir diese Transaktionsstruktur in der Blockchain entdecken, können wir bereits eine Interpretation vornehmen. Wie der Name schon sagt, zeigt dieses Modell an, dass wir uns in einer Sende- oder Zahlungstransaktion befinden. Der Nutzer hat sein eigenes UTXO als Input verbraucht, um als Output ein Zahlungs-UTXO und ein Austausch-UTXO (Geld, das an denselben Nutzer zurückgegeben wird) zu erhalten.

Wir wissen also, dass der beobachtete Nutzer wahrscheinlich nicht mehr im Besitz einer der beiden Ausgangs-UTXOs (der Zahlungs-UTXO) ist, aber noch im Besitz der anderen UTXO (der Austausch-UTXO).

Im Moment können wir nicht angeben, welche Ausgabe für welches UTXO steht, da dies nicht der Zweck der Musterstudie ist. Dazu werden wir uns auf die Heuristiken stützen, die wir in den folgenden Abschnitten untersuchen werden. In diesem Stadium beschränkt sich unser Ziel darauf, die Art der fraglichen Transaktion zu identifizieren, die in diesem Fall ein einfaches Senden ist.

Hier ist zum Beispiel eine Bitcoin-Transaktion, die nach dem einfachen Sendemuster abläuft:

b6cc79f45fd2d7669ff94db5cb14c45f1f879ea0ba4c6e3d16ad53a18c34b769
BTC204

Source : Mempool.space

Nach diesem ersten Beispiel sollten Sie besser verstehen, was es bedeutet, ein "Transaktionsmodell" zu untersuchen. Wir untersuchen eine Transaktion, indem wir uns ausschließlich auf ihre Struktur konzentrieren, ohne ihr Umfeld oder die spezifischen Details der Transaktion zu berücksichtigen. In diesem ersten Schritt betrachten wir nur das große Ganze.

Da Sie nun wissen, was ein Muster ist, wollen wir uns nun den anderen bestehenden Modellen zuwenden.

Fegen

Dieses zweite Modell ist gekennzeichnet durch den Verbrauch eines einzigen UTXO als Input und die Produktion eines einzigen UTXO als Output.

BTC204

Die Interpretation dieses Modells ist, dass es sich um einen Selbsttransfer handelt. Der Nutzer hat seine Bitcoins an sich selbst übertragen, an eine andere Adresse, die ihm gehört. Da es bei der Transaktion keinen Austausch gibt, ist es höchst unwahrscheinlich, dass es sich um eine Zahlung handelt. Bei einer Zahlung ist es nämlich fast unmöglich, dass der Zahler über einen UTXO verfügt, der genau dem vom Verkäufer geforderten Betrag entspricht, zuzüglich der Transaktionsgebühr. Im Allgemeinen ist der Zahler daher verpflichtet, einen Tauschwert zu produzieren.

Wir wissen also, dass der beobachtete Nutzer wahrscheinlich noch im Besitz dieses UTXO ist. Wenn wir im Rahmen einer Kettenanalyse wissen, dass der UTXO, der als Input für die Transaktion verwendet wird, Alice gehört, können wir davon ausgehen, dass der UTXO, der als Output verwendet wird, ebenfalls ihr gehört. Später wird es interessant sein, transaktionsinterne Heuristiken zu finden, die diese Annahme bekräftigen könnten (wir werden uns diese Heuristiken in Kapitel 3.3 ansehen).

Hier ein Beispiel für eine Bitcoin-Transaktion, die nach dem Sweep-Muster abläuft:

35f1072a0fda5ae106efb4fda871ab40e1f8023c6c47f396441ad4b995ea693d
BTC204

Source : Mempool.space

Beachten Sie jedoch, dass diese Art von Muster auch eine Selbstüberweisung auf das Konto einer Kryptowährungsplattform offenbaren kann. Die Untersuchung bekannter Adressen und der Kontext der Transaktion werden uns zeigen, ob es sich um einen Abzug auf eine selbstverwahrte Geldbörse oder eine Abhebung auf eine Plattform handelt. Die Adressen von Tauschplattformen sind in der Tat oft leicht identifizierbar.

Nehmen wir noch einmal das Beispiel von Alice: Wenn der Scan zu einer Adresse führt, die einer Plattform bekannt ist (wie z. B. Binance), kann dies bedeuten, dass die Bitcoins aus Alices direktem Besitz transferiert wurden, wahrscheinlich mit der Absicht, sie zu verkaufen oder auf dieser Plattform zu speichern. Ist die Zieladresse hingegen unbekannt, liegt die Vermutung nahe, dass es sich einfach um eine andere Geldbörse handelt, die Alice noch gehört. Diese Art von Studie fällt jedoch eher in die Kategorie der Heuristik als der Muster.

Konsolidierung

Dieses Modell ist dadurch gekennzeichnet, dass am Eingang mehrere UTXOs verbraucht und am Ausgang ein einziges UTXO produziert wird.

BTC204

Die Interpretation dieses Musters ist, dass wir es mit einer Konsolidierung zu tun haben. Dies ist eine gängige Praxis unter Bitcoin-Nutzern, die darauf abzielt, mehrere UTXOs in Erwartung einer möglichen Erhöhung der Transaktionsgebühren zusammenzulegen. Indem man diese Operation in einer Zeit durchführt, in der die Gebühren niedrig sind, kann man bei zukünftigen Gebühren sparen. Wir werden mehr über diese Praxis in Kapitel 4.3 sprechen.

Daraus lässt sich ableiten, dass der Benutzer hinter diesem Transaktionsmodell wahrscheinlich im Besitz aller UTXOs in der Eingabe war und immer noch im Besitz des UTXOs in der Ausgabe ist. Es handelt sich also wahrscheinlich um eine automatische Übertragung.

Wie der Sweep kann auch diese Art von Muster auf eine Selbstüberweisung auf das Konto einer Börsenplattform hindeuten. Ob es sich um eine Konsolidierung in ein selbst verwahrtes Portfolio oder um eine Abhebung auf eine Plattform handelt, lässt sich nur durch die Untersuchung der bekannten Adressen und den Kontext der Transaktion feststellen.

Hier ist zum Beispiel eine Bitcoin-Transaktion, die dem Konsolidierungsmuster folgt:

77c16914211e237a9bd51a7ce0b1a7368631caed515fe51b081d220590589e94
BTC204

Source : Mempool.space

Bei einer Kettenanalyse kann dieses Modell eine Vielzahl von Informationen offenbaren. Wenn wir beispielsweise wissen, dass einer der Inputs zu Alice gehört, können wir davon ausgehen, dass alle anderen Inputs und der Output dieser Transaktion ebenfalls zu ihr gehören. Diese Annahme würde es dann ermöglichen, die Kette früherer Transaktionen zurückzuverfolgen, um andere Transaktionen zu entdecken und zu analysieren, die wahrscheinlich mit Alice in Verbindung stehen.

BTC204

Gruppierte Ausgaben

Dieses Modell ist gekennzeichnet durch den Verbrauch einiger weniger UTXOs als Inputs (oft nur eines) und die Produktion vieler UTXOs als Outputs.

BTC204

Die Interpretation dieses Modells ist, dass es sich um gruppierte Ausgaben handelt. Es handelt sich dabei um eine Praxis, die wahrscheinlich auf eine sehr große wirtschaftliche Aktivität hinweist, wie z. B. eine Börsenplattform. Durch gebündelte Ausgaben können diese Unternehmen Kosten sparen, indem sie ihre Ausgaben in einer einzigen Transaktion zusammenfassen.

Aus diesem Modell lässt sich ableiten, dass die UTXO im Input von einem Unternehmen mit hoher wirtschaftlicher Aktivität stammen und dass die UTXO im Output gestreut werden. Viele werden den Kunden des Unternehmens gehören, die Bitcoins von der Plattform abgezogen haben. Andere können an Partnerunternehmen gehen. Schließlich wird es sicherlich einen oder mehrere Umtauschvorgänge geben, die an das ausgebende Unternehmen zurückgehen.

Hier ein Beispiel für eine Bitcoin-Transaktion, die nach dem Muster der gebündelten Ausgaben abläuft (vermutlich handelt es sich um eine Transaktion, die von der Bybit-Plattform ausgegeben wurde):

8a7288758b6e5d550897beedd13c70bcbaba8709af01a7dbcc1f574b89176b43
BTC204

Source : Mempool.space

Protokollspezifische Transaktionen

Unter den Transaktionsmustern können wir auch solche identifizieren, die die Verwendung eines bestimmten Protokolls erkennen lassen. So haben beispielsweise Whirlpool-Coinjoins (siehe Teil 5) eine leicht erkennbare Struktur, die sie von anderen, konventionelleren Transaktionen unterscheidet.

BTC204

Die Analyse dieses Musters deutet darauf hin, dass wir es wahrscheinlich mit einer kollaborativen Transaktion zu tun haben. Es ist auch möglich, einen Coinjoin zu beobachten. Sollte sich die letztgenannte Hypothese als richtig erweisen, könnte die Anzahl der Ausstiege einen groben Anhaltspunkt für die Anzahl der Teilnehmer am Coinjoin liefern.

Hier ein Beispiel für eine Bitcoin-Transaktion, die nach dem Muster der Coinjoin-Kollaboration durchgeführt wird:

00601af905bede31086d9b1b79ee8399bd60c97e9c5bba197bdebeee028b9bea
BTC204

Source : Mempool.space

Es gibt viele andere Protokolle mit ihren eigenen spezifischen Strukturen. Zum Beispiel gibt es Wabisabi-Transaktionen, Briefmarken-Transaktionen und Runen-Transaktionen.

Dank dieser Transaktionsmuster können wir bereits eine gewisse Menge an Informationen über eine bestimmte Transaktion interpretieren. Die Transaktionsstruktur ist jedoch nicht die einzige Informationsquelle für die Analyse. Wir können auch ihre Details untersuchen. Diese internen Details bezeichne ich gerne als "interne Heuristiken", und wir werden sie im nächsten Kapitel untersuchen.

Interne Heuristiken

Eine interne Heuristik ist ein spezifisches Merkmal, das wir innerhalb einer Transaktion selbst identifizieren, ohne ihre Umgebung untersuchen zu müssen, und das uns ermöglicht, Schlussfolgerungen zu ziehen. Im Gegensatz zu Mustern, die sich auf die Gesamtstruktur der Transaktion auf einer hohen Ebene konzentrieren, basieren interne Heuristiken auf der Menge der extrahierbaren Daten. Dazu gehören:

Mit dieser Art von Heuristik können wir im Allgemeinen den Austausch in einer bestimmten Transaktion identifizieren. Auf diese Weise können wir die Verfolgung einer Entität über mehrere verschiedene Transaktionen hinweg fortsetzen. Wenn wir nämlich einen UTXO identifizieren, der einem Nutzer gehört, den wir verfolgen wollen, ist es von entscheidender Bedeutung, bei der Durchführung einer Transaktion festzustellen, welcher Output an einen anderen Nutzer übertragen wurde und welcher Output den Austausch darstellt, der somit in seinem Besitz bleibt.

BTC204

Ich möchte Sie noch einmal daran erinnern, dass diese Heuristiken nicht absolut präzise sind. Einzeln betrachtet, ermöglichen sie uns lediglich, wahrscheinliche Szenarien zu identifizieren. Es ist die Summe mehrerer Heuristiken, die dazu beiträgt, die Unsicherheit zu verringern, ohne sie jemals vollständig ausschalten zu können.

Interne Ähnlichkeiten

Bei dieser Heuristik werden die Ähnlichkeiten zwischen den Inputs und den Outputs ein und desselben Vorgangs untersucht. Wird bei den Inputs und nur bei einem der Outputs der Transaktion dasselbe Merkmal beobachtet, so ist es wahrscheinlich, dass dieser Output den Austausch darstellt.

Das offensichtlichste Merkmal ist die Wiederverwendung einer Empfangsadresse in ein und derselben Transaktion.

BTC204

Diese Heuristik lässt wenig Raum für Zweifel. Sofern sein privater Schlüssel nicht gehackt wurde, zeigt dieselbe Empfangsadresse zwangsläufig die Aktivität eines einzigen Nutzers. Daraus ergibt sich die Interpretation, dass der Transaktionsaustausch die Ausgabe mit derselben Adresse wie die Eingabe ist. Von diesem Austausch aus können wir die Person weiter verfolgen.

Hier ein Beispiel für eine Transaktion, auf die diese Heuristik wahrscheinlich angewendet werden kann:

54364146665bfc453a55eae4bfb8fdf7c721d02cb96aadc480c8b16bdeb8d6d0
BTC204

Source : Mempool.space

Diese Ähnlichkeiten zwischen Eingaben und Ausgaben beschränken sich nicht auf die Wiederverwendung von Adressen. Jede Ähnlichkeit bei der Verwendung von Skripten kann zur Anwendung einer Heuristik genutzt werden. Zum Beispiel können wir manchmal die gleiche Versionierung zwischen der Eingabe und einer der Transaktionsausgaben beobachten.

BTC204

In diesem Diagramm ist zu erkennen, dass die Eingabe Nr. 0 ein P2WPKH-Skript (SegWit V0, beginnend mit "bc1q") freigibt. Ausgang Nr. 0 verwendet die gleiche Art von Skript. Ausgang Nr. 1 hingegen verwendet ein P2TR-Skript (SegWit V1, beginnend mit "bc1p"). Die Interpretation dieses Merkmals ist, dass die Adresse mit der gleichen Versionierung wie die Eingabe wahrscheinlich die Austauschadresse ist. Sie würde also immer demselben Benutzer gehören.

Hier ist eine Transaktion, auf die diese Heuristik wahrscheinlich angewendet werden kann:

db07516288771ce5d0a06b275962ec4af1b74500739f168e5800cbcb0e9dd578
BTC204

Source : Mempool.space

Auf letzterem ist zu sehen, dass Eingang Nr. 0 und Ausgang Nr. 1 P2WPKH-Skripte (SegWit V0) verwenden, während Ausgang Nr. 0 ein anderes P2PKH-Skript (Legacy) verwendet.

In den frühen 2010er Jahren war diese Heuristik, die auf der Skriptversionierung basierte, aufgrund der begrenzten Anzahl der verfügbaren Skripttypen relativ wenig hilfreich. Im Laufe der Zeit und mit aufeinanderfolgenden Bitcoin-Updates wurde jedoch eine zunehmende Vielfalt an Skripttypen eingeführt. Diese Heuristik wird daher immer relevanter, da sich die Nutzer mit einer größeren Bandbreite an Skripttypen in kleinere Gruppen aufteilen, was die Chancen erhöht, diese interne Heuristik zur Wiederverwendung von Versionen anzuwenden. Aus diesem Grund ist es allein schon aus Gründen der Vertraulichkeit ratsam, sich für den am häufigsten verwendeten Skripttyp zu entscheiden. Während ich diese Zeilen schreibe, werden beispielsweise Taproot-Skripte (bc1p) weniger häufig verwendet als SegWit V0-Skripte (bc1q). Obwohl erstere in bestimmten Kontexten wirtschaftliche und Vertraulichkeitsvorteile bieten, kann es für traditionellere Anwendungen mit nur einer Unterschrift sinnvoll sein, aus Vertraulichkeitsgründen bei einem älteren Standard zu bleiben, bis sich der neue Standard weiter durchgesetzt hat.

Zahlungen mit runden Zahlen

Eine weitere interne Heuristik, die uns helfen kann, den Austausch zu identifizieren, ist die Rundungsheuristik. Im Allgemeinen gilt bei einem einfachen Zahlungsmuster (1 Eingabe und 2 Ausgaben), dass wenn eine der Ausgaben einen runden Betrag ausgibt, dies die Zahlung darstellt.

BTC204

Wenn eine Ausgabe eine Zahlung darstellt, steht die andere für einen Tausch. Es kann also davon ausgegangen werden, dass der Input-Nutzer immer im Besitz des Outputs ist, der als Tauschmittel identifiziert wurde.

Es ist zu betonen, dass diese Heuristik nicht immer anwendbar ist, da die meisten Zahlungen nach wie vor in fiduziarischen Rechnungseinheiten getätigt werden. Wenn ein Einzelhändler in Frankreich Bitcoin annimmt, wird er in der Regel keine stabilen Preise in Sats angeben. Stattdessen wird er sich für eine Umrechnung zwischen dem Preis in Euro und dem zu zahlenden Betrag in Bitcoins entscheiden. Daher sollte es am Ende der Transaktion keine runden Zahlen geben.

Dennoch könnte ein Analytiker versuchen, diese Umrechnung unter Berücksichtigung des Wechselkurses vorzunehmen, der zum Zeitpunkt der Übertragung der Transaktion im Netz galt. Nehmen wir das Beispiel einer Transaktion mit einem Input von 97.552 Sats und zwei Outputs, einem von 31.085 Sats und einem von 64.152 Sats. Auf den ersten Blick scheint es sich bei dieser Transaktion nicht um runde Beträge zu handeln. Wendet man jedoch den Wechselkurs von 64,339 € zum Zeitpunkt der Transaktion an, so ergibt sich folgende Umrechnung in Euro:

Nach der Umrechnung in Fiat-Währung kann diese Transaktion zur Anwendung der Heuristik für runde Beträge verwendet werden. Die Ausgabe von 20 € ging wahrscheinlich an einen Händler oder wechselte zumindest den Besitzer. Daraus lässt sich ableiten, dass die Ausgabe von 41,27 € wahrscheinlich im Besitz des ursprünglichen Nutzers geblieben ist.

BTC204

Wenn der Bitcoin eines Tages die bevorzugte Rechnungseinheit an unseren Börsen wird, könnte diese Heuristik für die Analyse noch nützlicher werden.

Hier ein Beispiel für eine Transaktion, auf die diese Heuristik wahrscheinlich angewendet werden kann:

2bcb42fab7fba17ac1b176060e7d7d7730a7b807d470815f5034d52e96d2828a
BTC204

Source : Mempool.space

Die größte Leistung

Wenn wir bei einem einfachen Zahlungsmodell eine ausreichend große Lücke zwischen zwei Transaktionsoutputs feststellen, können wir davon ausgehen, dass der größte Output wahrscheinlich der Devisenhandel ist.

BTC204

Diese Heuristik der größten Leistung ist sicherlich die ungenaueste von allen. Für sich allein genommen ist sie ziemlich schwach. Dieses Merkmal kann jedoch mit anderen Heuristiken kombiniert werden, um die Unsicherheit unserer Interpretation zu verringern.

Wenn wir beispielsweise eine Transaktion mit einer runden Zahlung und einer größeren Zahlung betrachten, verringert die gemeinsame Anwendung der Heuristik für die runde Zahlung und der Heuristik für die größere Zahlung unser Unsicherheitsniveau.

Hier ein Beispiel für eine Transaktion, auf die diese Heuristik wahrscheinlich angewendet werden kann:

b79d8f8e4756d34bbb26c659ab88314c220834c7a8b781c047a3916b56d14dcf
BTC204

Source : Mempool.space

Externe Heuristiken

Die Untersuchung externer Heuristiken bedeutet die Analyse der Ähnlichkeiten, Muster und Merkmale bestimmter Elemente, die nicht spezifisch für die Transaktion selbst sind. Mit anderen Worten: Während wir uns früher mit den internen Heuristiken auf die Ausnutzung von Elementen beschränkt haben, die der Transaktion innewohnen, erweitern wir nun dank der externen Heuristiken unser Analysefeld auf das Umfeld der Transaktion.

Adresse Wiederverwendung

Dies ist eine der bekanntesten Heuristiken von Bitcoinern. Die Wiederverwendung von Adressen ermöglicht es, eine Verbindung zwischen verschiedenen Transaktionen und verschiedenen UTXOs herzustellen. Sie tritt auf, wenn eine Bitcoin-Empfangsadresse mehrmals verwendet wird.

So ist es möglich, die Wiederverwendung von Adressen innerhalb derselben Transaktion als interne Heuristik zur Identifizierung des Austauschs zu nutzen (wie wir im vorigen Kapitel gesehen haben). Die Adresswiederverwendung kann aber auch als externe Heuristik verwendet werden, um die Einzigartigkeit einer Einheit hinter mehreren Transaktionen zu erkennen.

Die Wiederverwendung einer Adresse wird so interpretiert, dass alle an dieser Adresse gesperrten UTXOs zu derselben Einrichtung gehören (oder gehört haben). Diese Heuristik lässt wenig Raum für Unsicherheit. Einmal erkannt, entspricht die resultierende Interpretation wahrscheinlich der Realität. Sie ermöglicht daher die Gruppierung verschiedener Onchain-Aktivitäten.

BTC204

Wie in der Einleitung zu Teil 3 erläutert, wurde diese Heuristik von Satoshi Nakamoto selbst entdeckt. Im Weißbuch erwähnt er eine Lösung, die den Nutzern helfen soll, die Generierung dieser Heuristik zu vermeiden, nämlich die Verwendung einer leeren Adresse für jede neue Transaktion:

"Als zusätzliche Firewall könnte für jede Transaktion ein neues Schlüsselpaar verwendet werden, damit sie nicht mit einem gemeinsamen Eigentümer verknüpft sind."

BTC204

Quelle: S. Nakamoto, "Bitcoin: A Peer-to-Peer Electronic Cash System", https://bitcoin.org/bitcoin.pdf, 2009.

Hier ist zum Beispiel eine Adresse, die in mehreren Transaktionen wiederverwendet wird:

bc1qqtmeu0eyvem9a85l3sghuhral8tk0ar7m4a0a0
BTC204

Quelle: Mempool.space

Schriftähnlichkeit und Brieftaschenaufdrucke

Neben der Wiederverwendung von Adressen gibt es noch viele andere Heuristiken, die es Ihnen ermöglichen, Aktionen mit demselben Portfolio oder Adresscluster zu verknüpfen.

Erstens kann ein Analytiker nach Ähnlichkeiten in der Skriptverwendung suchen. Bestimmte Minderheitsskripte wie Multisig sind zum Beispiel leichter zu erkennen als SegWit-V0-Skripte. Je größer die Gruppe ist, in der wir uns verstecken, desto schwieriger ist es, uns zu entdecken. Dies ist einer der Gründe, warum bei guten Coinjoin-Protokollen alle Teilnehmer genau dieselbe Art von Skript verwenden.

Ganz allgemein kann sich ein Analyst auch auf die charakteristischen Fingerabdrücke eines Portfolios konzentrieren. Dabei handelt es sich um nutzungsspezifische Prozesse, die identifiziert werden können, um sie als Heuristiken zur Rückverfolgung zu nutzen. Mit anderen Worten: Wenn wir eine Häufung derselben internen Merkmale bei Transaktionen beobachten, die der ermittelten Einheit zugeordnet werden, können wir versuchen, dieselben Merkmale bei anderen Transaktionen zu identifizieren.

So können wir zum Beispiel feststellen, dass der verfolgte Benutzer seine Änderungen systematisch an P2TR-Adressen sendet (bc1p...). Wenn sich dieser Prozess wiederholt, können wir ihn als Heuristik für den Rest unserer Analyse verwenden. Wir können auch andere Fingerabdrücke verwenden, wie die Reihenfolge der UTXOs, die Stelle der Änderung in den Ausgaben, die RBF-Signalisierung (Replace-by-Fee) oder die Versionsnummer, das Feld nSequence und das Feld nLockTime.

BTC204

Wie @LaurentMT in Space Kek #19 (einem französischsprachigen Podcast) darlegt, nimmt der Nutzen von Portfolio-Fingerprints bei der Kettenanalyse im Laufe der Zeit erheblich zu. Die wachsende Zahl von Skripttypen und die immer weiter fortschreitende Einführung dieser neuen Funktionen durch Portfoliosoftware verstärken die Unterschiede in der Tat. In einigen Fällen ist es sogar möglich, die genaue Software zu identifizieren, die von dem zu verfolgenden Unternehmen verwendet wird. Es ist daher wichtig zu verstehen, dass die Untersuchung von Portfolio-Footprints vor allem für neuere Transaktionen relevant ist und nicht für solche, die in den frühen 2010er Jahren initiiert wurden.

Zusammenfassend lässt sich sagen, dass ein Fußabdruck jede spezifische Praxis sein kann, die automatisch von der Brieftasche oder manuell vom Benutzer durchgeführt wird und die wir bei anderen Transaktionen finden können, um uns bei unserer Analyse zu helfen.

Die Common-Input-Ownership-Heuristik (CIOH)

Die Common Input Ownership Heuristic (CIOH) ist eine Heuristik, die besagt, dass bei einer Transaktion mit mehreren Inputs die Wahrscheinlichkeit besteht, dass sie alle von einem einzigen Unternehmen stammen. Folglich ist ihr Eigentum gemeinsam.

BTC204

Um die CIOH anzuwenden, beobachten wir zunächst eine Transaktion mit mehreren Eingängen. Das können 2 Eingaben oder 30 Eingaben sein. Sobald dieses Merkmal identifiziert wurde, prüfen wir, ob die Transaktion in ein bekanntes Transaktionsmodell passt. Wenn es beispielsweise 5 Eingänge mit ungefähr demselben Betrag und 5 Ausgänge mit genau demselben Betrag gibt, wissen wir, dass dies die Struktur eines Coinjoin ist. Dann können wir das CIOH nicht anwenden.

BTC204

Passt die Transaktion hingegen in kein bekanntes kollaboratives Transaktionsmodell, können wir davon ausgehen, dass alle Eingaben wahrscheinlich von der gleichen Entität stammen. Dies kann für die Erweiterung eines bereits bekannten Clusters oder die Fortsetzung einer Spur sehr nützlich sein.

BTC204

CIOH wurde von Satoshi Nakamoto entdeckt. Er spricht darüber in Teil 10 des Weißbuchs:

"[...] Verknüpfungen sind unvermeidlich bei Transaktionen mit mehreren Einträgen, die zwangsläufig zeigen, dass ihre Einträge vom selben Eigentümer gehalten wurden. Das Risiko besteht darin, dass, wenn der Eigentümer eines Schlüssels aufgedeckt wird, die Verknüpfungen andere Transaktionen aufdecken können, die demselben Eigentümer gehörten."

BTC204

Besonders faszinierend ist, dass Satoshi Nakamoto bereits vor dem offiziellen Start von Bitcoin die beiden wichtigsten Schwachstellen für die Privatsphäre der Nutzer identifiziert hatte, nämlich CIOH und die Wiederverwendung von Adressen. Diese Weitsicht ist bemerkenswert, denn diese beiden Heuristiken sind auch heute noch die nützlichsten bei der Blockchain-Analyse.

Um Ihnen ein Beispiel zu geben, hier ist eine Transaktion, auf die wir wahrscheinlich CIOH anwenden können:

20618e63b6eed056263fa52a2282c8897ab2ee71604c7faccfe748e1a202d712
BTC204

Source : Mempool.space

Off-Chain-Daten

Natürlich ist die Kettenanalyse nicht ausschließlich auf Onchain-Daten beschränkt. Alle Daten, die aus einer früheren Analyse stammen oder im Internet verfügbar sind, können ebenfalls zur Verfeinerung einer Analyse verwendet werden.

Wenn wir beispielsweise beobachten, dass verfolgte Transaktionen systematisch von ein und demselben Bitcoin-Knoten gesendet werden, und es uns gelingt, dessen IP-Adresse zu ermitteln, können wir möglicherweise andere Transaktionen von derselben Einheit identifizieren und einen Teil der Identität des Emittenten feststellen. Obwohl dieses Verfahren nicht ohne Weiteres durchführbar ist, da es den Betrieb zahlreicher Knotenpunkte erfordert, kann es von einigen auf die Blockchain-Analyse spezialisierten Unternehmen eingesetzt werden.

Der Analytiker hat auch die Möglichkeit, sich auf Analysen zu stützen, die zuvor als Open Source veröffentlicht wurden, oder auf seine eigenen früheren Analysen. Vielleicht finden wir eine Ausgabe, die auf eine Gruppe von Adressen hinweist, die wir bereits identifiziert haben. Manchmal ist es auch möglich, sich auf Ergebnisse zu stützen, die auf eine Tauschbörse hinweisen, da die Adressen dieser Unternehmen allgemein bekannt sind.

Auf dieselbe Weise können Sie eine Analyse durch Eliminierung durchführen. Wenn z. B. bei der Analyse einer Transaktion mit zwei Ausgängen einer sich auf ein bereits bekanntes Adresscluster bezieht, das sich jedoch von der Entität, die wir verfolgen, unterscheidet, dann können wir interpretieren, dass der andere Ausgang wahrscheinlich den Austausch darstellt.

Die Kanalanalyse umfasst auch eine etwas allgemeinere OSINT-Komponente (Open Source Intelligence), die Internetrecherchen umfasst. Aus diesem Grund raten wir davon ab, Adressen direkt in sozialen Netzwerken oder auf einer Website zu veröffentlichen, egal ob pseudonym oder nicht.

BTC204

Zeitliche Modelle

Wir denken weniger darüber nach, aber bestimmte menschliche Verhaltensweisen sind auf der Kette zu erkennen. Das vielleicht nützlichste in einer Analyse ist Ihr Schlafverhalten! Ja, wenn Sie schlafen, senden Sie keine Bitcoin-Transaktionen. Aber Sie schlafen im Allgemeinen ungefähr zur gleichen Zeit. Aus diesem Grund ist es üblich, bei der Blockchain-Analyse eine zeitliche Analyse durchzuführen. Einfach ausgedrückt handelt es sich dabei um eine Zählung der Zeiten, zu denen die Transaktionen einer bestimmten Einheit an das Bitcoin-Netzwerk übermittelt werden. Durch die Analyse dieser zeitlichen Muster können wir eine Fülle von Informationen ableiten.

Zunächst einmal kann eine zeitliche Analyse manchmal die Art des verfolgten Unternehmens identifizieren. Wenn wir feststellen, dass die Transaktionen durchgängig über einen Zeitraum von 24 Stunden übertragen werden, deutet dies auf ein hohes Maß an wirtschaftlicher Aktivität hin. Die hinter diesen Transaktionen stehende Einheit ist wahrscheinlich ein Unternehmen, möglicherweise international und vielleicht mit automatisierten internen Verfahren.

Zum Beispiel erkannte ich dieses Muster vor einigen Monaten, als ich die Transaktion, bei der fälschlicherweise 19 Bitcoins an Gebühren zugewiesen wurden analysierte. Eine einfache zeitliche Analyse ermöglichte es mir, die Hypothese aufzustellen, dass wir es mit einem automatisierten Dienst zu tun hatten, und daher wahrscheinlich mit einer großen Einrichtung wie einer Börsenplattform.

Einige Tage später stellte sich heraus, dass die Gelder über die Paxos-Austauschplattform zu PayPal gehörten.

Wenn wir hingegen feststellen, dass sich das zeitliche Muster eher über 16 Stunden erstreckt, können wir davon ausgehen, dass es sich um einen einzelnen Nutzer oder vielleicht um ein lokales Unternehmen handelt, je nachdem, welche Mengen ausgetauscht werden.

Neben der Art der beobachteten Entität kann uns das zeitliche Muster dank der Zeitzonen auch den ungefähren Aufenthaltsort des Nutzers verraten. Auf diese Weise können wir andere Transaktionen abgleichen und ihre Zeitstempel als zusätzliche Heuristik für unsere Analyse verwenden.

Bei der bereits erwähnten mehrfach genutzten Adresse können wir beispielsweise feststellen, dass sich die eingehenden und ausgehenden Transaktionen auf ein 13-Stunden-Intervall konzentrieren.

bc1qqtmeu0eyvem9a85l3sghuhral8tk0ar7m4a0a0
BTC204

Quelle: OXT.me

Dieser Bereich entspricht wahrscheinlich Europa, Afrika oder dem Nahen Osten. Wir können daher davon ausgehen, dass der Nutzer hinter diesen Transaktionen in diesen Gebieten lebt.

Eine Zeitanalyse dieser Art führte auch zu der Hypothese, dass Satoshi Nakamoto nicht von Japan, sondern von den USA aus operierte: Die Zeitzonen von Satoshi Nakamoto

Umsetzung in die Praxis mit einem Block-Explorer

In diesem letzten Kapitel werden wir die Konzepte, die wir bis jetzt studiert haben, in die Praxis umsetzen. Ich werde Ihnen Beispiele für echte Bitcoin-Transaktionen zeigen, und Sie müssen die Informationen extrahieren, nach denen ich Sie frage.

Idealerweise sollte für diese Übungen ein professionelles Kettenanalyse-Tool verwendet werden. Seit der Verhaftung der Macher von Samourai Wallet ist das einzige kostenlose Analysetool OXT.me jedoch nicht mehr verfügbar. Wir werden uns daher für einen klassischen Block-Explorer für diese Übungen entscheiden. Ich empfehle die Verwendung von Mempool.space wegen seiner vielen Funktionen und der Bandbreite an Kettenanalyse-Tools, aber Sie können sich auch für einen anderen Explorer wie Bitcoin Explorer entscheiden.

Zu Beginn stelle ich Ihnen die Übungen vor. Benutzen Sie Ihren Block-Explorer, um sie auszufüllen, und notieren Sie Ihre Antworten auf einem Blatt Papier. Am Ende dieses Kapitels gebe ich Ihnen dann die Antworten, damit Sie Ihre Ergebnisse überprüfen und korrigieren können.

*Die Transaktionen, die für diese Übungen ausgewählt wurden, sind rein zufällig aufgrund ihrer Merkmale ausgewählt worden. Dieses Kapitel ist ausschließlich zu Bildungs- und Informationszwecken gedacht. Ich möchte klarstellen, dass ich die Verwendung dieser Tools für böswillige Zwecke weder unterstütze noch ermutige. Ziel ist es, Ihnen beizubringen, wie Sie sich vor der Analyse von Zeichenketten schützen können, und nicht, Analysen durchzuführen, um die privaten Informationen anderer Leute zu enthüllen

Übung 1

Kennung der zu analysierenden Transaktion :

3769d3b124e47ef4ffb5b52d11df64b0a3f0b82bb10fd6b98c0fd5111789bef7

Wie heißt das Modell dieser Transaktion, und welche plausiblen Interpretationen lassen sich ziehen, wenn man nur das Modell, d.h. die Struktur der Transaktion, betrachtet?

Übung 2

Kennung der zu analysierenden Transaktion :

baa228f6859ca63e6b8eea24ffad7e871713749d693ebd85343859173b8d5c20

Wie heißt das Modell dieser Transaktion, und welche plausiblen Interpretationen lassen sich ziehen, wenn man nur das Modell, d.h. die Struktur der Transaktion, betrachtet?

Übung 3

Kennung der zu analysierenden Transaktion :

3a9eb9ccc3517cc25d1860924c66109262a4b68f4ed2d847f079b084da0cd32b

Was ist das Modell für diese Transaktion?

Welchen Output wird die Börse nach der Identifizierung ihres Modells und unter Verwendung der internen Heuristiken der Transaktion wahrscheinlich darstellen?

Übung 4

Kennung der zu analysierenden Transaktion :

35f0b31c05503ebfdf7311df47f68a048e992e5cf4c97ec34aa2833cc0122a12

Was ist das Modell für diese Transaktion?

Welchen Output wird die Börse nach der Identifizierung ihres Modells und unter Verwendung der internen Heuristiken der Transaktion wahrscheinlich darstellen?

Übung 5

Stellen wir uns vor, dass Loïc eine seiner Bitcoin-Empfangsadressen im sozialen Netzwerk Twitter veröffentlicht hat:

BTC204
bc1qja0hycrv7g9ww00jcqanhfpqmzx7luqalum3vu

Welche Bitcoin-Transaktionen können auf der Grundlage dieser Informationen und unter Verwendung nur der Heuristik der Adresswiederverwendung mit Loïcs Identität in Verbindung gebracht werden?

Natürlich bin ich nicht der wirkliche Besitzer dieser Empfangsadresse und ich habe sie auch nicht in sozialen Netzwerken gepostet. Es ist eine Adresse, die ich zufällig aus der Blockchain entnommen habe

Übung 6

Nach Übung 5 konnten Sie dank der Heuristik der Adresswiederverwendung mehrere Bitcoin-Transaktionen identifizieren, an denen Loïc beteiligt zu sein scheint. Normalerweise hätten Sie unter den identifizierten Transaktionen diese entdecken müssen:

2d9575553c99578268ffba49a1b2adc3b85a29926728bd0280703a04d051eace

Diese Transaktion ist die allererste, bei der Geld an die Adresse von Loïc gesendet wurde. Was glauben Sie, woher die Bitcoins stammen, die Loïc durch diese Transaktion erhalten hat?

Übung 7

Nach Übung 5 konnten Sie dank der Heuristik der Adresswiederverwendung mehrere Bitcoin-Transaktionen identifizieren, an denen Loïc beteiligt zu sein scheint. Nun möchten Sie herausfinden, woher Loïc kommt. Führen Sie auf der Grundlage der gefundenen Transaktionen eine Zeitanalyse durch, um die Zeitzone zu ermitteln, die Loïc höchstwahrscheinlich benutzt. Bestimmen Sie anhand dieser Zeitzone den Ort, an dem Loïc zu leben scheint (Land, Staat/Region, Stadt...).

BTC204

Übung 8

Hier ist die Bitcoin-Transaktion zu sehen:

bb346dae645d09d32ed6eca1391d2ee97c57e11b4c31ae4325bcffdec40afd4f

Welche Informationen können wir allein aus dieser Transaktion ableiten?

Lösungen üben

Übung 1:

Das Modell für diese Transaktion ist das einfache Zahlungsmodell. Wenn wir nur seine Struktur untersuchen, können wir interpretieren, dass ein Output den Austausch und der andere Output eine tatsächliche Zahlung darstellt. Wir wissen also, dass der beobachtete Nutzer wahrscheinlich nicht mehr im Besitz eines der beiden UTXOs im Output (dem der Zahlung) ist, aber immer noch im Besitz des anderen UTXOs (dem des Austauschs) ist.

Übung 2:

Das Modell für diese Transaktion ist das der gebündelten Ausgaben. Dieses Modell lässt wahrscheinlich auf eine groß angelegte Wirtschaftstätigkeit schließen, wie z. B. eine Tauschbörse. Daraus lässt sich ableiten, dass die Eingangs-UTXO von einem Unternehmen mit hoher wirtschaftlicher Aktivität stammen und dass die Ausgangs-UTXO verstreut sein werden. Einige werden Kunden des Unternehmens gehören, die ihre Bitcoins in selbstverwahrte Wallets eingezahlt haben. Andere können an Partnerunternehmen gehen. Und schließlich wird es zweifellos einen Teil des Austauschs geben, der an das ausgebende Unternehmen zurückfließt.

Übung 3:

Das Modell für diese Transaktion ist eine einfache Zahlung. Wir können daher interne Heuristiken auf die Transaktion anwenden, um zu versuchen, den Austausch zu identifizieren.

Ich persönlich habe mindestens zwei interne Heuristiken identifiziert, die die gleiche Hypothese unterstützen:

Die offensichtlichste Heuristik ist die Wiederverwendung des gleichen Skripttyps. In der Tat ist die Ausgabe 0 ein P2SH, erkennbar an der mit 3 beginnenden Empfangsadresse:

3Lcdauq6eqCWwQ3UzgNb4cu9bs88sz3mKD

Der Ausgang 1 ist ein P2WPKH, erkennbar an seiner Adresse, die mit bc1q beginnt:

bc1qya6sw6sta0mfr698n9jpd3j3nrkltdtwvelywa

Das UTXO, das als Eingabe für diese Transaktion verwendet wird, verwendet auch ein "P2WPKH"-Skript:

bc1qyfuytw8pcvg5vx37kkgwjspg73rpt56l5mx89k

Wir können also davon ausgehen, dass der Ausgang "0" einer Zahlung entspricht und der Ausgang "1" der Transaktionsaustausch ist, was bedeuten würde, dass der Eingangsnutzer immer Eigentümer des Ausgangs "1" ist.

Um diese Hypothese zu stützen oder zu widerlegen, können wir nach anderen Heuristiken suchen, die entweder unser Denken bestätigen oder die Wahrscheinlichkeit verringern, dass unsere Hypothese richtig ist.

Ich habe mindestens eine weitere Heuristik identifiziert. Es ist die größte Output-Heuristik. Output 0 misst 123.689 sats, während Output 1 505.839 sats misst. Es besteht also ein erheblicher Unterschied zwischen diesen beiden Ausgaben. Die Heuristik des größten Outputs legt nahe, dass der größte Output wahrscheinlich der Devisenmarkt ist. Diese Heuristik stärkt unsere ursprüngliche Hypothese weiter.

Es scheint daher wahrscheinlich, dass der Nutzer, der den UTXO als Input geliefert hat, immer noch im Besitz des Outputs "1" ist, der den Austausch der Transaktion zu verkörpern scheint.

Übung 4:

Das Modell für diese Transaktion ist eine einfache Zahlung. Wir können daher interne Heuristiken auf die Transaktion anwenden, um zu versuchen, den Austausch zu identifizieren.

Ich persönlich habe mindestens zwei interne Heuristiken identifiziert, die die gleiche Hypothese unterstützen:

Die offensichtlichste Heuristik ist die Wiederverwendung des gleichen Skripttyps. In der Tat ist die Ausgabe 0 ein P2SH, erkennbar an der mit 3 beginnenden Empfangsadresse:

3FSH5Mnq6S5FyQoKR9Yjakk3X4KCGxeaD4

Der Ausgang 1 ist ein P2WPKH, erkennbar an seiner Adresse, die mit bc1q beginnt:

bc1qvdywdcfsyavt4v8uxmmrdt6meu4vgeg439n7sg

Das UTXO, das als Eingabe für diese Transaktion verwendet wird, verwendet auch ein "P2WPKH"-Skript:

bc1qku3f2y294h3ks5eusv63dslcua2xnlzxx0k6kp

Wir können also davon ausgehen, dass der Ausgang "0" einer Zahlung entspricht und der Ausgang "1" der Transaktionsaustausch ist, was bedeuten würde, dass der Eingangsnutzer immer Eigentümer des Ausgangs "1" ist.

Um diese Hypothese zu stützen oder zu widerlegen, können wir nach anderen Heuristiken suchen, die entweder unser Denken bestätigen oder die Wahrscheinlichkeit verringern, dass unsere Hypothese richtig ist.

Ich habe mindestens eine weitere Heuristik identifiziert. Es ist die Ausgabe der runden Beträge. Ausgang 0 misst 70.000 sats, während Ausgang 1 22.962 sats misst. Wir haben also eine vollkommen runde Ausgabe in der Rechnungseinheit BTC. Die Heuristik der runden Ausgabe deutet darauf hin, dass die UTXO mit einem runden Betrag höchstwahrscheinlich die Zahlung ist und dass die andere den Austausch darstellt. Diese Heuristik stärkt unsere ursprüngliche Hypothese weiter.

In diesem Beispiel könnte jedoch eine andere Heuristik unsere ursprüngliche Hypothese in Frage stellen. In der Tat ist der Output "0" größer als der Output "1". Ausgehend von der Heuristik, dass die größte Ausgabe im Allgemeinen Devisen sind, könnten wir ableiten, dass die Ausgabe "0" Devisen sind. Diese Gegenhypothese erscheint jedoch unplausibel, da die beiden anderen Heuristiken wesentlich überzeugender erscheinen als die Heuristik des größten Outputs. Daher erscheint es vernünftig, trotz dieses scheinbaren Widerspruchs an unserer ursprünglichen Hypothese festzuhalten.

Es scheint daher wahrscheinlich, dass der Nutzer, der den UTXO als Input geliefert hat, immer noch im Besitz des Outputs "1" ist, der den Austausch der Transaktion zu verkörpern scheint.

Übung 5:

Wir sehen, dass 8 Transaktionen mit der Identität von Loïc in Verbindung gebracht werden können. Davon betreffen 4 den Erhalt von Bitcoins:

2d9575553c99578268ffba49a1b2adc3b85a29926728bd0280703a04d051eace
8b70bd322e6118b8a002dbdb731d16b59c4a729c2379af376ae230cf8cdde0dd
d5864ea93e7a8db9d3fb113651d2131567e284e868021e114a67c3f5fb616ac4
bc4dcf2200c88ac1f976b8c9018ce70f9007e949435841fc5681fd33308dd762

Die anderen 4 betreffen den Versand von Bitcoin:

8b52fe3c2cf8bef60828399d1c776c0e9e99e7aaeeff721fff70f4b68145d540
c12499e9a865b9e920012e39b4b9867ea821e44c047d022ebb5c9113f2910ed6
a6dbebebca119af3d05c0196b76f80fdbf78f20368ebef1b7fd3476d0814517d
3aeb7ce02c35eaecccc0a97a771d92c3e65e86bedff42a8185edd12ce89d89cc

Übung 6:

Wenn wir uns das Modell dieser Transaktion ansehen, wird deutlich, dass es sich um eine gebündelte Ausgabe handelt. Tatsächlich hat die Transaktion einen einzigen Input und 51 Outputs, was auf ein hohes Maß an wirtschaftlicher Aktivität hindeutet. Wir können daher vermuten, dass Loïc Bitcoins von einer Tauschplattform abgehoben hat.

Mehrere Faktoren stützen diese Hypothese. Erstens handelt es sich bei dem Skript, das zur Sicherung der UTXO-Eingabe verwendet wird, um ein P2SH 2/3 Multisig-Skript, was auf ein fortgeschrittenes Sicherheitsniveau hinweist, das für Börsenplattformen typisch ist:

OP_PUSHNUM_2
OP_PUSHBYTES_33 03eae02975918af86577e1d8a257773118fd6ceaf43f1a543a4a04a410e9af4a59
OP_PUSHBYTES_33 03ba37b6c04aaf7099edc389e22eeb5eae643ce0ab89ac5afa4fb934f575f24b4e
OP_PUSHBYTES_33 03d95ef2dc0749859929f3ed4aa5668c7a95baa47133d3abec25896411321d2d2d
OP_PUSHNUM_3
OP_CHECKMULTISIG

Darüber hinaus wird die untersuchte Adresse "3PUv9tQMSDCEPSMsYSopA5wDW86pwRFbNF" in über 220.000 verschiedenen Transaktionen wiederverwendet, was für Tauschbörsen typisch ist, die sich im Allgemeinen nicht um ihre Vertraulichkeit kümmern.

Die zeitliche Heuristik, die auf diese Adresse angewandt wird, zeigt ebenfalls eine regelmäßige Übertragung von Transaktionen fast täglich über einen Zeitraum von drei Monaten, mit ausgedehnten Stunden über 24 Stunden, was auf die kontinuierliche Aktivität einer Tauschplattform hindeutet.

Schließlich sind die von diesem Unternehmen abgewickelten Volumina kolossal. Die Adresse hat zwischen Dezember 2022 und März 2023 in 222.262 Transaktionen 44 BTC empfangen und versendet. Diese großen Volumina bestätigen die wahrscheinliche Natur der Aktivität einer Austauschplattform.

Übung 7:

Durch die Analyse der Transaktionsbestätigungszeiten lassen sich die folgenden UTC-Zeiten ermitteln:

05:43
20:51
18:12
17:16
04:28
23:38
07:45
21:55

Eine Analyse dieser Zeitpläne zeigt, dass UTC-7 und UTC-8 für die meisten Zeitpläne mit dem Bereich der aktuellen menschlichen Aktivität (zwischen 08:00 und 23:00 Uhr) übereinstimmen:

05:43 UTC > 22:43 UTC-7
20:51 UTC > 13:51 UTC-7
18:12 UTC > 11:12 UTC-7
17:16 UTC > 10:16 UTC-7
04:28 UTC > 21:28 UTC-7
23:38 UTC > 16:38 UTC-7
07:45 UTC > 00:45 UTC-7
21:55 UTC > 14:55 UTC-7
05:43 UTC > 21:43 UTC-8
20:51 UTC > 12:51 UTC-8
18:12 UTC > 10:12 UTC-8
17:16 UTC > 09:16 UTC-8
04:28 UTC > 20:28 UTC-8
23:38 UTC > 15:38 UTC-8
07:45 UTC > 23:45 UTC-8
21:55 UTC > 13:55 UTC-8
BTC204

Die Zeitzone UTC-7 ist besonders im Sommer von Bedeutung, da sie Staaten und Regionen wie :

Diese Informationen legen nahe, dass Loïc wahrscheinlich an der Westküste der Vereinigten Staaten oder in Kanada wohnt.

Übung 8:

Die Analyse dieser Transaktion zeigt 5 Eingänge und einen einzigen Ausgang, was auf eine Konsolidierung hindeutet. Unter Anwendung der CIOH-Heuristik können wir davon ausgehen, dass alle Eingangs-UTXOs einer einzigen Entität gehören und dass der Ausgangs-UTXO ebenfalls zu dieser Entität gehört. Es scheint, dass der Benutzer sich entschieden hat, mehrere UTXOs, die ihm gehören, zu einem einzigen UTXO im Output zusammenzufassen, um seine Teile zu konsolidieren. Wahrscheinlich wollte er damit die niedrigen Transaktionskosten der damaligen Zeit nutzen, um künftige Kosten zu senken.


Für die Abfassung dieses Teils 3 über die Kettenanalyse habe ich folgende Quellen herangezogen:

Ich möchte mich bei den Autoren, Entwicklern und Produzenten bedanken. Mein Dank gilt auch den Korrekturlesern, die den Artikel, auf dem dieser Teil 3 basiert, akribisch korrigiert haben und mir ihren fachkundigen Rat gaben :

Bewährte Praktiken zum Schutz Ihrer Privatsphäre beherrschen

Adresse Wiederverwendung

Nachdem wir uns mit den Techniken befasst haben, die Ihre Vertraulichkeit bei Bitcoin brechen können, werden wir in diesem dritten Teil nun die besten Praktiken betrachten, die Sie anwenden können, um sich zu schützen. Das Ziel dieses Teils ist es nicht, Methoden zur Verbesserung der Vertraulichkeit zu erforschen, ein Thema, das später behandelt wird, sondern zu verstehen, wie man richtig mit Bitcoin interagiert, um die Vertraulichkeit zu bewahren, die es von Natur aus bietet, ohne auf zusätzliche Techniken zurückzugreifen.

Zu Beginn dieses dritten Teils werden wir natürlich über die Wiederverwendung von Adressen sprechen. Dieses Phänomen ist die größte Bedrohung für die Vertraulichkeit der Benutzer. Dieses Kapitel ist sicherlich das wichtigste des gesamten Kurses.

Was ist eine Empfangsadresse?

Eine Bitcoin-Empfangsadresse ist eine Zeichenkette oder eine Kennung, die zum Empfang von Bitcoins auf einer Wallet verwendet wird.

Technisch gesehen "empfängt" eine Bitcoin-Empfangsadresse keine Bitcoins im wörtlichen Sinne, sondern dient vielmehr dazu, die Bedingungen festzulegen, unter denen Bitcoins ausgegeben werden können. Konkret: Wenn eine Zahlung an Sie gesendet wird, erzeugt die Transaktion des Absenders einen neuen UTXO für Sie als Output aus den UTXOs, die er als Input verbraucht hat. An diesen Output wird ein Skript angehängt, das festlegt, wie dieser UTXO zu einem späteren Zeitpunkt ausgegeben werden kann. Dieses Skript wird als "ScriptPubKey" oder "Locking Script" bezeichnet. Ihre Empfangsadresse, genauer gesagt deren Nutzlast, ist in dieses Skript integriert. Laienhaft ausgedrückt, besagt dieses Skript im Wesentlichen:

"*Um diese neue UTXO auszugeben, müssen Sie eine digitale Signatur mit dem privaten Schlüssel, der mit dieser Empfangsadresse verknüpft ist, leisten." BTC204

Bitcoin-Adressen gibt es in verschiedenen Ausführungen, je nach verwendetem Skripting-Modell. Die ersten Modelle, bekannt als "Legacy*", beinhalten die "P2PKH" (Pay-to-PubKey-Hash) und "P2SH" (Pay-to-Script-Hash) Adressen. P2PKH-Adressen beginnen immer mit "1", und P2SH mit "3". Obwohl diese Formate immer noch sicher sind, sind sie inzwischen überholt, da sie höhere Transaktionskosten verursachen und weniger vertraulich sind als die neuen Standards.

SegWit V0 (P2WPKH und P2WSH) und Taproot / SegWit V1 (P2TR) Adressen sind moderne Formate. SegWit-Adressen beginnen mit "bc1q" und Taproot-Adressen, die 2021 eingeführt wurden, beginnen mit "bc1p".

Hier ist zum Beispiel eine Taproot-Empfangsadresse:

bc1ps5gd2ys8kllz9alpmcwxqegn7kl3elrpnnlegwkm3xpq2h8da07spxwtf5

Wie der ScriptPubKey aufgebaut ist, hängt von dem von Ihnen verwendeten Standard ab:

| ScriptPubKey | Skriptvorlage

| ---------------- | ----------------------------------------------------------- |

| P2PKH | OP_DUP OP_HASH160 <pubKeyHash> OP_EQUALVERIFY OP_CHECKSIG |

| P2SH | OP_HASH160 <scriptHash> OP_EQUAL |

| P2WPKH | 0 <pubKeyHash> |

| P2WSH | 0 <witnessScriptHash> |

| P2SH - P2WPKH | OP_HASH160 <redeemScriptHash> OP_EQUAL |

| P2SH - P2WSH | OP_HASH160 <redeemScriptHash> OP_EQUAL |

| P2TR | 1 <pubKey> |

Der Aufbau der Empfangsadressen hängt auch vom gewählten Skriptmodell ab:

BTC204

Die in Ihrer Portfoliosoftware angezeigten Adressen enthalten auch einen HRP (Human-Readable Part), in der Regel bc für Post-SegWit-Adressen, ein 1-Trennzeichen und eine Versionsnummer q für SegWit V0 und p für Taproot/SegWit V1. Außerdem wird eine Prüfsumme hinzugefügt, um die Integrität und Gültigkeit der Adresse während der Übertragung zu gewährleisten.

Schließlich werden die Adressen in ein Standardformat gebracht:

Hier ist die Additionsmatrix für die Formate bech32 und bech32m (SegWit und Taproot) zur Basis 10:

| + | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |

| --- | --- | --- | --- | --- | --- | --- | --- | --- |

| 0 | q | p | z | r | y | 9 | x | 8 |

| 8 | g | f | 2 | t | v | d | w | 0 |

| 16 | s | 3 | j | n | 5 | 4 | k | h |

| 24 | c | e | 6 | m | u | a | 7 | l |

Was bedeutet Adresswiederverwendung?

Unter Adresswiederverwendung versteht man die Verwendung derselben Empfangsadresse zum Blockieren mehrerer verschiedener UTXOs.

Wie wir im vorigen Abschnitt gesehen haben, hat jedes UTXO seinen eigenen ScriptPubKey, der es sperrt und der erfüllt sein muss, damit das UTXO als Eingabe in einer neuen Transaktion verwendet werden kann. In diesen ScriptPubKey werden die Nutzlastadressen integriert.

Wenn verschiedene ScriptPubKeys dieselbe Empfangsadresse enthalten, wird dies als Adresswiederverwendung bezeichnet. In der Praxis bedeutet dies, dass ein Nutzer wiederholt dieselbe Adresse an Absender weitergegeben hat, um über mehrere Zahlungen Bitcoins zu erhalten. Und genau diese Praxis ist katastrophal für Ihre Privatsphäre.

Warum ist die Wiederverwendung von Adressen ein Problem?

Da die Blockchain öffentlich ist, ist es einfach zu sehen, welche Adressen welche UTXO und wie viele Bitcoins sperren. Wenn dieselbe Adresse für mehrere Transaktionen verwendet wird, kann man daraus schließen, dass alle Bitcoins, die mit dieser Adresse verbunden sind, ein und derselben Person gehören. Diese Praxis gefährdet die Privatsphäre der Nutzer, da sie es ermöglicht, deterministische Verbindungen zwischen verschiedenen Transaktionen herzustellen und Bitcoins in der Blockchain zurückzuverfolgen. Satoshi Nakamoto selbst hat bereits im Weißbuch von Bitcoin auf dieses Problem hingewiesen:

Als zusätzliche Firewall könnte für jede Transaktion ein neues Schlüsselpaar verwendet werden, damit sie nicht mit einem gemeinsamen Eigentümer verknüpft sind BTC204

Quelle: S. Nakamoto, "Bitcoin: A Peer-to-Peer Electronic Cash System", https://bitcoin.org/bitcoin.pdf, 2009.

Satoshi wollte mit diesem Satz eine zusätzliche Firewall für den Fall schaffen, dass die Identität eines Nutzers mit einem Bitcoin-Schlüsselpaar in Verbindung gebracht wird, um zu verhindern, dass seine gesamte Aktivität öffentlich mit seiner Identität verknüpft wird. Heute, mit der Verbreitung von Blockchain-Analyseunternehmen und KYC-Vorschriften, ist die Verwendung eindeutiger Adressen keine "zusätzliche Firewall" mehr, sondern eine unverzichtbare Praxis für jeden, der ein Mindestmaß an Privatsphäre wahren möchte.

Wenn Sie eine Adresse wiederverwenden, stellen Sie eine fast unbestreitbare Verbindung zwischen allen Transaktionen her, die mit dieser Adresse verbunden sind. Dies gefährdet zwar nicht direkt Ihre Gelder, da die elliptische Kurvenkryptographie die Sicherheit Ihrer privaten Schlüssel garantiert, aber es erleichtert die Überwachung Ihrer Aktivitäten. Jeder, der über einen Node verfügt, kann die Transaktionen und den Kontostand der Adressen beobachten, wodurch Ihre Anonymität völlig gefährdet wird.

BTC204

Um dies zu veranschaulichen, nehmen wir das Beispiel von Bob, einem Nutzer, der regelmäßig Bitcoins in kleinen Beträgen in DCA kauft und sie immer an dieselbe Adresse schickt. Nach zwei Jahren enthält diese Adresse eine beträchtliche Menge an Bitcoins. Verwendet Bob diese Adresse, um eine Zahlung an einen lokalen Händler zu tätigen, kann dieser alle damit verbundenen Beträge einsehen und auf Bobs Vermögen schließen. Dies kann zu Risiken für die persönliche Sicherheit führen, z. B. zu versuchtem Diebstahl oder Erpressung. Hätte Bob für jeden regelmäßigen Einkauf eine leere Adresse verwendet, hätte er seinem Händler unendlich viel weniger Informationen preisgegeben.

Bei der String-Analyse gibt es 2 Arten der Adresswiederverwendung:

Die erste ist, wenn eine Adresse in mehreren verschiedenen Bitcoin-Transaktionen wiederverwendet wird. Darüber haben wir bereits gesprochen: Diese Heuristik schließt daraus, dass alle UTXOs, die über diese Adresse laufen, zu einer einzigen Entität gehören.

Interne Adresswiederverwendung liegt nicht vor, wenn die Wiederverwendung über mehrere Transaktionen erfolgt, sondern wenn sie innerhalb einer einzigen Transaktion erfolgt. Wenn nämlich dieselbe Adresse, die zum Sperren einer Eingabe verwendet wurde, als Ausgabe einer Transaktion verwendet wird, können wir ableiten, dass diese Ausgabe immer noch demselben Benutzer (Börse) gehört und dass die zweite Ausgabe die eigentliche Zahlung darstellt. Diese andere Heuristik ermöglicht es, eine Geldspur über mehrere Transaktionen hinweg zu verfolgen.

BTC204

Die Wiederverwendung von Adressen ist eine echte Geißel für Bitcoin. Laut der OXT.me-Website (die derzeit nicht zugänglich ist) lag die Gesamtrate der Adresswiederverwendung bei Bitcoin im Jahr 2022 bei 52 %:

BTC204

Dieser Anteil ist enorm, aber er stammt überwiegend von Tauschbörsen und nicht von einzelnen Nutzern.

Wie lässt sich die Wiederverwendung von Adressen vermeiden?

Die Vermeidung der Wiederverwendung von Adressen ist ganz einfach: Verwenden Sie einfach eine neue, leere Adresse für alle neuen Zahlungen an Ihre Brieftasche.

Dank BIP32 sind moderne Portfolios jetzt deterministisch und hierarchisch. Das bedeutet, dass ein Benutzer eine große Anzahl von Adressen aus einer einzigen Ausgangsinformation generieren kann: dem Seed. Durch die Speicherung dieser einzigen Information ist es möglich, alle privaten Schlüssel des Portfolios wiederherzustellen, was den Zugriff auf die durch die entsprechenden Adressen gesicherten Mittel ermöglicht.

BTC204

Deshalb wird jedes Mal, wenn Sie die Schaltfläche "Empfangen" in Ihrer Wallet-Software drücken, eine unbenutzte Empfangsadresse vorgeschlagen. Nachdem Sie Bitcoins an dieser Adresse erhalten haben, schlägt die Software automatisch eine neue vor.

PS: Kürzlich haben einige Softwareprogramme für Geldbörsen angekündigt, keine leeren Adressen mehr zu generieren, da sie befürchten, dass dies von den Behörden als eine Form der Geldwäsche angesehen werden könnte. Wenn Ihre Software zu diesen Programmen gehört, rate ich Ihnen dringend, sie sofort zu ersetzen, da dies für den Nutzer nicht akzeptabel ist. Wenn Sie eine statische Kennung benötigen, um Zahlungen zu erhalten, wie z. B. Spenden, ist es nicht ratsam, eine klassische Bitcoin-Adresse zu verwenden, da das Risiko der Wiederverwendung besteht. Verwenden Sie stattdessen eine Lightning-Adresse oder entscheiden Sie sich für eine statische Onchain-Zahlungskennung, wie BIP47 oder Silent Payments. Diese Protokolle werden in Teil 6 dieses Trainingskurses im Detail erklärt.

Beschriftung und Kontrolle der Teile

Wie wir im Abschnitt über die Analyse von Zeichenketten festgestellt haben, gibt es eine Vielzahl von Heuristiken und Mustern, die verwendet werden können, um Informationen über eine Transaktion abzuleiten. Als Benutzer ist es wichtig, sich dieser Techniken bewusst zu sein, um sich besser vor ihnen zu schützen.

Das bedeutet, dass Sie die Herkunft Ihrer UTXOs kennen und sorgfältig auswählen, welche UTXOs Sie bei Zahlungen verbrauchen. Dieses effiziente Wallet-Management beruht auf zwei wichtigen Merkmalen guter Bitcoin-Wallets: Tagging und Coin-Kontrolle.

In diesem Kapitel werden wir uns diese Funktionen ansehen und sehen, wie Sie sie intelligent und ohne zu viel Arbeitsaufwand nutzen können, um Ihre Privatsphäre auf Bitcoin zu optimieren.

Was ist Etikettierung?

Labeling ist die Praxis, einem bestimmten UTXO in einer Bitcoin-Wallet einen Vermerk oder ein Label zuzuweisen. Diese Annotationen werden lokal von der Wallet-Software gespeichert und werden niemals über das Bitcoin-Netzwerk übertragen. Labelling ist daher ein persönliches Verwaltungsinstrument.

Wenn ich zum Beispiel einen UTXO aus einem P2P-Kauf auf Bisq mit Charles habe, könnte ich ihn als "Non-KYC Bisq Charles" bezeichnen.

Tagging ist eine gute Praxis, die dabei hilft, sich an den Ursprung oder das vorgesehene Ziel eines UTXO zu erinnern, was die Verwaltung von Geldern und die Optimierung der Privatsphäre erleichtert. Ihre Bitcoin-Brieftasche sichert sicherlich mehrere UTXOs. Wenn die Quellen dieser UTXOs unterschiedlich sind, möchten Sie diese UTXOs in Zukunft vielleicht nicht zusammenführen, da Sie sonst ihren gemeinsamen Besitz preisgeben könnten. Wenn Sie alle Ihre Teile ordnungsgemäß beschriften, können Sie sicher sein, dass Sie sich daran erinnern, woher sie stammen, wenn Sie sie brauchen, auch wenn das erst in Jahren der Fall sein wird.

Was ist Eckenkontrolle?

Die aktive Nutzung von Etiketten wird noch interessanter, wenn sie mit einer Münzkontrolloption in Ihrer Portfoliosoftware gekoppelt ist.

Die Münzkontrolle ist eine Funktion, die in guter Bitcoin-Wallet-Software zu finden ist und Ihnen die Möglichkeit gibt, manuell bestimmte UTXOs auszuwählen, die Sie als Input für eine Transaktion verwenden können. Um eine Ausgangszahlung zu erfüllen, müssen Sie im Gegenzug einen Eingangs-UTXO verbrauchen. Aus einer Reihe von Gründen, auf die wir später noch eingehen werden, möchten Sie vielleicht genau auswählen, welche Teile Sie als Inputs verwenden möchten, um eine bestimmte Zahlung zu erfüllen. Genau das können Sie mit der Münzkontrolle tun. Diese Funktion ist vergleichbar mit der Auswahl einer bestimmten Münze aus Ihrer Brieftasche, wenn Sie Ihr Baguette bezahlen.

BTC204

Die Verwendung einer Portfoliosoftware mit Münzkontrolle in Verbindung mit einer UTXO-Kennzeichnung ermöglicht es den Benutzern, UTXOs für ihre Transaktionen zu unterscheiden und genau auszuwählen.

Wie kennzeichnen Sie Ihre UTXOs?

Es gibt keine Einheitsmethode für die Kennzeichnung von UTXOs. Es liegt an Ihnen, ein Kennzeichnungssystem zu definieren, das für Ihr Portfolio leicht verständlich ist. In jedem Fall sollten Sie bedenken, dass eine gute Kennzeichnung eine Kennzeichnung ist, die Sie verstehen können, wenn Sie sie brauchen. Wenn Ihre Bitcoin-Brieftasche in erster Linie zum Sparen gedacht ist, werden Ihnen die Beschriftungen möglicherweise noch jahrzehntelang nicht von Nutzen sein. Stellen Sie also sicher, dass sie klar, präzise und umfassend sind.

Es ist wichtig, dass Ihre Angehörigen die Herkunft der Gelder leicht identifizieren können, falls sie eines Tages Zugang zu Ihrem Portfolio benötigen. Dies hilft ihnen sowohl aus Gründen der Vertraulichkeit als auch aus rechtlichen Gründen, falls sie die Herkunft der Gelder gegenüber einer Behörde begründen müssen.

Das Wichtigste, was Sie auf dem Etikett vermerken sollten, ist die Herkunft des UTXO. Sie sollten einfach angeben, wie die Münze in Ihr Portemonnaie gelangt ist. Ist er das Ergebnis eines Kaufs auf einer Börsenplattform? Eine Rechnungszahlung von einem Kunden? Ein Peer-to-Peer-Tausch? Oder handelt es sich um den Austausch einer Ausgabe? Sie könnten zum Beispiel angeben:

BTC204

Um Ihre UTXO-Verwaltung zu verfeinern und Ihre Strategien zur Fondstrennung innerhalb Ihres Portfolios einzuhalten, können Sie Ihre Etiketten mit einem zusätzlichen Indikator anreichern, der diese Trennungen widerspiegelt. Wenn Ihr Portfolio zwei UTXO-Kategorien enthält, die Sie nicht mischen möchten, könnten Sie eine Markierung in Ihre Etiketten einbauen, um diese Gruppen klar zu unterscheiden. Diese Unterscheidungsmerkmale hängen von Ihren eigenen Kriterien ab, wie z.B. die Unterscheidung zwischen UTXOs, die aus einem Akquisitionsprozess resultieren, der KYC beinhaltet, oder zwischen professionellen und privaten Fonds. In Anlehnung an die oben erwähnten Etikettenbeispiele könnte dies folgendermaßen aussehen:

BTC204

Es ist auch ratsam, die Kennzeichnung eines Teils über den Verlauf der Transaktionen hinweg beizubehalten. Wenn Sie z. B. UTXO no-KYC konsolidieren, sollten Sie die resultierenden UTXO nicht nur als "Konsolidierung", sondern speziell als "Konsolidierung no-KYC" kennzeichnen, um einen klaren Nachweis darüber zu führen, woher die Münzen stammen.

Schließlich ist es nicht zwingend erforderlich, ein Datum auf einem Etikett anzugeben. Die meisten Wallet-Programme zeigen das Transaktionsdatum bereits an, und dank der TXID ist es immer möglich, diese Information in einem Block-Explorer zu finden.

Wie wählt man die richtigen Teile aus?

Wenn Sie eine Transaktion durchführen, können Sie mit der Münzsteuerung gezielt auswählen, welche UTXOs als Inputs verbraucht werden sollen, um die Zahlungsausgabe zu erfüllen. Bei dieser Auswahl gibt es zwei Aspekte:

Um den ersten Punkt zu veranschaulichen, nehmen wir ein konkretes Beispiel. Angenommen, Sie kaufen ein Baguette in Bitcoins bei Ihrem Bäcker. Sie verwenden einen oder mehrere UTXOs, die Sie als Inputs besitzen, um zumindest den Preis des Baguettes in Outputs sowie die Transaktionsgebühren zu begleichen. Ihr Bäcker könnte dann möglicherweise Ihr Gesicht oder einen anderen Teil Ihrer Identität, den er kennt, mit den als Inputs verwendeten Münzen in Verbindung bringen. Da Sie um diese Verbindung wissen, könnten Sie beim Bezahlen lieber einen bestimmten UTXO als einen anderen wählen.

BTC204

Wenn zum Beispiel einer Ihrer UTXOs von einer Tauschplattform stammt und Sie möchten, dass der Bäcker nichts von Ihrem Konto auf dieser Plattform weiß, werden Sie diesen UTXO nicht als Zahlungsmittel verwenden. Wenn Sie einen UTXO mit einem hohen Wert haben, der eine beträchtliche Menge an Bitcoins offenbart, könnten Sie sich auch dafür entscheiden, ihn nicht zu verwenden, damit der Bäcker nicht von Ihrem BTC-Vermögen erfährt.

Die Wahl der UTXOs, die Sie für diesen ersten Punkt verwenden, ist daher eine persönliche Entscheidung, die davon beeinflusst wird, was Sie bereit sind, preiszugeben oder nicht. Die Kennzeichnungen, die Sie Ihren UTXOs zuweisen, wenn Sie sie erhalten, werden Ihnen helfen, diejenigen auszuwählen, die, sobald sie ausgegeben wurden, nur Informationen preisgeben, die Sie dem Empfänger gegenüber offenlegen möchten.

Abgesehen von den Informationen, die dem Empfänger möglicherweise offenbart werden, beeinflusst die Wahl der Eingaben auch, was Sie allen Beobachtern der Blockchain offenbaren. Wenn Sie nämlich mehrere UTXOs als Inputs für Ihre Transaktion verwenden, geben Sie gemäß der CIOH-Heuristik (Common Input Ownership Heuristic) zu erkennen, dass sie demselben Unternehmen gehören.

BTC204

Bei der Auswahl Ihrer Teile müssen Sie sich daher bewusst sein, dass die Transaktion, die Sie senden wollen, eine Verbindung zwischen allen verwendeten UTXOs herstellt. Diese Verknüpfung kann für Ihre Privatsphäre problematisch sein, insbesondere wenn die UTXOs aus verschiedenen Quellen stammen.

BTC204

Nehmen wir das Beispiel meines No-KYC UTXO von Bisq; ich möchte vermeiden, ihn mit einem UTXO von einer regulierten Börsenplattform zu kombinieren, die meine Identität kennt. Wenn ich nämlich diese beiden UTXOs als Inputs für dieselbe Transaktion verwende, kann die regulierte Plattform meine Identität mit dem UTXO verknüpfen, den ich auf Bisq gekauft habe und der zuvor nicht mit meiner Identität verknüpft war.

BTC204

Bei der Auswahl der UTXOs, die als Input für eine Transaktion verwendet werden sollen, ist es am wichtigsten, dass Sie nicht mehrere UTXOs verwenden. Wenn Sie können, wählen Sie höchstens eine einzige Münze, die groß genug ist, um Ihre Zahlung zu leisten. Auf diese Weise vermeiden Sie die mit CIOH verbundenen Risiken vollständig. Wenn jedoch kein einziger UTXO für die Zahlung ausreicht und Sie mehrere verbrauchen müssen, achten Sie darauf, dass sie aus ähnlichen Quellen stammen, um das Risiko unerwünschter Verbindungen zu minimieren. Denken Sie auch daran, dass der Empfänger die Informationen, die er über Sie besitzt, mit der Historie der für die Eingaben verwendeten Münzen in Verbindung bringen könnte.

Die automatische Teileauswahl verstehen

In den vorherigen Abschnitten haben wir die manuelle Auswahl von UTXOs für eine Transaktion besprochen. Aber was passiert, wenn die Wallet-Software diese Auswahl automatisch vornimmt? Es gibt mehrere Methoden, um zu bestimmen, welche Münzen verbraucht werden sollen, und die Auswahl von UTXOs ist ein wahres Forschungsgebiet für Bitcoin. Das Hauptziel dieses automatischen Prozesses besteht oft darin, die Transaktionskosten für den Nutzer zu minimieren.

UTXO-Auswahlmethoden wie FIFO (First In First Out) und LIFO (Last In First Out) gehören zu den einfachsten, aber auch zu den am wenigsten effizienten Methoden. Bei FIFO werden die ältesten Teile des Portfolios zuerst verwendet. Dieser Ansatz ist im Allgemeinen ineffizient, sowohl im Hinblick auf die Minimierung der Transaktionskosten als auch auf die Wahrung der Vertraulichkeit, es sei denn, es werden relative Zeitstempel verwendet, die regelmäßig erneuert werden müssen. Im Gegensatz dazu werden bei LIFO vorrangig die neuesten UTXOs verwendet. Beide Methoden sind zwar einfach, erweisen sich aber oft als unwirksam.

Eine fortgeschrittenere Methode ist der Knapsack Solver. Dieser wurde in der Bitcoin Core Wallet bis Version 0.17 verwendet. Sie besteht darin, iterativ und zufällig UTXOs aus der Wallet auszuwählen, sie in Teilmengen zu addieren und die Lösung zu behalten, die das Transaktionsgewicht so weit wie möglich reduziert, um die Kosten für den Nutzer zu senken.

Der Branch-and-Bound (BNB), der nach seinem Erfinder oft als "Murch-Algorithmus" bezeichnet wird, hat den Knapsack Solver in Bitcoin Core ab Version 0.17 ersetzt. Diese fortschrittlichere Methode zielt darauf ab, eine Menge von UTXOs zu finden, die genau dem Betrag entspricht, der benötigt wird, um die Ausgaben einer Transaktion zu befriedigen. Das Ziel von BNB ist es, sowohl den Tauschbetrag als auch die Gebühren zu minimieren, indem das so genannte Abfallkriterium reduziert wird, das sowohl die unmittelbaren Kosten als auch die erwarteten zukünftigen Kosten des Tauschs einbezieht. Diese Methode ist von dem ursprünglichen Konzept des Branch-and-Bound abgeleitet, das 1960 von Ailsa Land und Alison Harcourt entwickelt wurde, und bietet eine präzisere Optimierung der Gebühren als der Knapsack Solver.

All diese automatischen UTXO-Auswahlmethoden mögen zwar die Transaktionskosten senken, sind aber oft unwirksam, wenn es um die Wahrung der Vertraulichkeit geht. Diese Algorithmen können nämlich mehrere UTXOs zu Eingaben zusammenfassen und so eine gemeinsame Eigenschaft dieser UTXOs aufgrund von CIOH aufdecken. Natürlich können diese Methoden die an den UTXOs angebrachten Kennzeichnungen nicht berücksichtigen, die jedoch für die bewusste Auswahl der Teile, die dem Transaktionsempfänger offengelegt werden sollen, entscheidend sind. Die einzige Möglichkeit, die Vertraulichkeit bei der Auswahl von Münzen zu optimieren, besteht derzeit darin, dies manuell zu tun.

Tutorial zur UTXO-Beschriftung

Wenn Sie herausfinden möchten, wie Sie Ihre UTXOs taggen können, haben wir ein umfassendes Tutorial für die wichtigsten Bitcoin-Wallet-Software auf dem Markt erstellt:

https://planb.network/tutorials/privacy/on-chain/utxo-labelling-d997f80f-8a96-45b5-8a4e-a3e1b7788c52

KYC und Schlüsselidentifikation

KYC steht für "Kenne deinen Kunden". Es handelt sich dabei um ein regulatorisches Verfahren, das von bestimmten im Bitcoin-Sektor tätigen Unternehmen angewendet wird. Das Ziel dieses Verfahrens ist es, die Identität ihrer Kunden zu überprüfen und zu registrieren, mit dem erklärten Ziel, Geldwäsche und Terrorismusfinanzierung zu bekämpfen.

In der Praxis bedeutet KYC die Erfassung verschiedener persönlicher Daten des Kunden, die je nach Land variieren können, aber im Allgemeinen Ausweis, Foto und Adressnachweis umfassen. Diese Informationen werden dann überprüft und für die zukünftige Verwendung gespeichert.

Dieses Verfahren ist für alle regulierten Tauschplattformen in den meisten westlichen Ländern obligatorisch geworden. Das bedeutet, dass jeder, der über diese Plattformen staatliche Währungen gegen Bitcoin tauschen möchte, die KYC-Anforderungen erfüllen muss.

Dieses Verfahren ist nicht ohne Risiken für die Privatsphäre und Sicherheit der Nutzer. In diesem Kapitel werden wir diese Risiken im Detail untersuchen und die spezifischen Auswirkungen der KYC- und Identifizierungsprozesse auf die Privatsphäre der Bitcoin-Nutzer analysieren.

Erleichterung der Rückverfolgung in der Kette

Das erste Risiko im Zusammenhang mit KYC besteht darin, dass es einen privilegierten Einstiegspunkt für die Blockchain-Analyse bietet. Wie wir im vorherigen Abschnitt gesehen haben, können Analysten die Aktivitäten auf der Blockchain mithilfe von Transaktionsmustern und Heuristiken clustern und verfolgen. Sobald es ihnen gelungen ist, die Onchain-Aktivitäten eines Nutzers zu clustern, müssen sie nur noch einen einzigen Einstiegspunkt unter all seinen Transaktionen und Schlüsseln finden, um seine Vertraulichkeit vollständig zu gefährden.

BTC204

Wenn Sie eine KYC durchführen, bieten Sie einen hochwertigen Einstiegspunkt für die Blockchain-Analyse, da Sie Ihre Empfangsadressen, die Sie beim Abheben Ihrer Bitcoins von einer Börsenplattform verwenden, mit Ihrer vollständigen, verifizierten Identität verknüpfen. Theoretisch sind diese Informationen nur dem Unternehmen bekannt, dem Sie sie zur Verfügung gestellt haben, aber wie wir weiter unten sehen werden, ist das Risiko eines Datenverlusts real. Darüber hinaus kann die bloße Tatsache, dass ein Unternehmen über diese Informationen verfügt, problematisch sein, selbst wenn es sie nicht weitergibt.

Wenn Sie also keine anderen Maßnahmen ergreifen, um die Aggregation Ihrer Aktivitäten auf der Blockchain zu begrenzen, kann jeder, der diesen KYC-Einstiegspunkt kennt, potenziell alle Ihre Aktivitäten mit Bitcoin mit Ihrer Identität verknüpfen. Aus der Sicht dieses Unternehmens verliert Ihre Nutzung von Bitcoin jegliche Vertraulichkeit.

BTC204

Um dies mit einem Vergleich zu veranschaulichen, wäre es so, als ob Ihr Bankangestellter bei Bank X nicht nur Zugang zu all Ihren Transaktionen mit Bank X hätte, sondern auch Ihre Transaktionen mit Bank Y und alle Ihre Bargeldtransaktionen beobachten könnte.

Erinnern Sie sich an den ersten Teil dieses Kurses: Das Vertraulichkeitsmodell von Bitcoin, wie es von Satoshi Nakamoto konzipiert wurde, basiert auf der Trennung zwischen der Identität des Nutzers und seinen Schlüsselpaaren. Obwohl diese Vertraulichkeitsebene heute nicht mehr ausreicht, ist es immer noch ratsam, ihre Verschlechterung so weit wie möglich zu begrenzen.

Gefährdung durch staatliche Überwachung

Das zweite große Problem bei der KYC ist, dass sie dem Staat offenbart, dass Sie irgendwann einmal Bitcoin besessen haben. Wenn Sie Bitcoins über einen regulierten Akteur kaufen, ist es für den Staat möglich, von diesem Besitz zu erfahren. Im Moment mag dies trivial erscheinen, aber es ist wichtig, daran zu denken, dass die politische und wirtschaftliche Zukunft Ihres Landes nicht in Ihren Händen liegt.

Erstens kann der Staat schnell eine autoritäre Haltung einnehmen. Die Geschichte ist voll von Beispielen, in denen sich die Politik abrupt geändert hat. Heute können Bitcoiner in Europa Artikel über Bitcoin schreiben, an Konferenzen teilnehmen und ihre Wallets in Eigenregie verwalten. Aber wer kann schon sagen, was die Zukunft bringt? Wenn Bitcoin plötzlich zum Staatsfeind Nummer eins wird, könnte es sich als problematisch erweisen, in Regierungsakten damit in Verbindung gebracht zu werden.

Dann könnte der Staat angesichts schwerer Wirtschaftskrisen in Erwägung ziehen, Bitcoins im Besitz der Bürger zu beschlagnahmen. Vielleicht werden Bitcoin-Besitzer morgen als Krisenprofiteure angesehen und ihre Kapitalgewinne angesichts der Abwertung von Fiat-Währungen übermäßig hoch besteuert.

Man könnte meinen, dies sei kein Problem, da Ihre Bitcoins gemischt sind und daher nicht zurückverfolgt werden können. Die Rückverfolgung ist hier jedoch nicht das Problem. Das eigentliche Problem ist, dass der Staat weiß, dass Sie Bitcoin besessen haben. Diese Information allein könnte ausreichen, um Sie zu belasten oder zur Rechenschaft zu ziehen. Sie könnten versuchen zu behaupten, dass Sie Ihre Bitcoins ausgegeben haben, aber das müsste in Ihrer Steuererklärung angegeben werden, und Sie würden erwischt werden. Sie könnten auch sagen, dass Sie Ihre Schlüssel bei einem Bootsunfall verloren haben, aber glauben Sie wirklich, dass dies - abgesehen von einem Twitter-Witz - ausreichen würde, um Sie zu entlasten?

Es ist also wichtig, das Risiko zu berücksichtigen, dass der Staat erfährt, dass Sie BTC besitzen, auch wenn dieses Risiko heute noch so gering erscheint.

Ein weiteres Problem, das KYC in Bezug auf die staatliche Aufsicht aufwirft, ist die Meldepflicht der regulierten Plattformen. Ich bin zwar nicht mit den Vorschriften in anderen Ländern vertraut, aber in Frankreich sind die Prestataires de Services sur Actifs Numériques (PSAN) verpflichtet, den Finanzaufsichtsbehörden alle Geldbewegungen zu melden, die sie für verdächtig halten.

Im Jahr 2023 wurden in Frankreich 1.449 verdächtige Handlungen von PSANs gemeldet. Vorerst sind die meisten dieser Handlungen kriminalitätsbezogen. Die Behörden fordern jedoch auch regulierte Plattformen auf, verdächtige Bitcoin-Transaktionen allein auf der Grundlage ihrer Struktur zu melden. Wenn Sie eine kollaborative Transaktion oder auch nur eine Transaktion mit einem leicht untypischen Muster durchführen und diese Transaktion nicht weit von der Abhebung Ihrer Bitcoins von diesen Plattformen entfernt stattfindet, könnten Sie sich einer Meldung an die Behörden ausgesetzt sehen. Selbst wenn kein Fehlverhalten vorliegt und Sie Ihre Rechte rechtmäßig wahrgenommen haben, könnte eine solche Meldung zu verstärkten Kontrollen und Überwachungen führen, Unannehmlichkeiten, die Sie ohne KYC vermieden hätten.

Das Risiko der Weitergabe personenbezogener Daten

Ein weiteres Problem mit KYC ist, dass alle Ihre persönlichen Daten auf den Servern eines privaten Unternehmens gespeichert werden müssen.

Die jüngsten Ereignisse haben uns daran erinnert, dass niemand vor finanziellen oder IT-Pannen gefeit ist. Im Jahr 2022 hatten die Kunden von Celsius unter den Folgen zu leiden. Nach dem Konkurs des Unternehmens wurden die Namen der Gläubiger und die Höhe ihrer Vermögenswerte von den amerikanischen Gerichten im Rahmen des Verwaltungsverfahrens veröffentlicht.

Vor etwas mehr als zwei Jahren wurde ein Flaggschiff der Cybersicherheit bei Kryptowährungen Opfer des Diebstahls persönlicher Daten seiner Kunden. Obwohl dieser Vorfall nicht direkt mit dem Kauf von Bitcoins zusammenhing, besteht ein solches Risiko auch für Börsenplattformen. Es besteht also ein eindeutiges Risiko im Zusammenhang mit persönlichen Daten.

Es stimmt, dass wir bereits viele unserer persönlichen Daten privaten Unternehmen anvertrauen. Allerdings besteht hier ein doppeltes Risiko, da diese Daten Sie nicht nur identifizieren, sondern auch mit Aktivitäten auf Bitcoin verknüpft sind. Wenn sich ein Hacker nämlich Zugang zu den Kundendaten einer Börsenplattform verschafft, kann er davon ausgehen, dass diese Kunden Bitcoins besitzen. Dieses Risiko wird durch die Tatsache verstärkt, dass Bitcoin, wie jeder andere wertvolle Vermögenswert, die Aufmerksamkeit von Dieben auf sich zieht.

Im Falle eines Datenlecks könnten Sie bestenfalls das Ziel gezielter Phishing-Versuche sein. Im schlimmsten Fall könnten Sie sich im Zentrum einer physischen Bedrohung für Ihr Haus wiederfinden.

Neben den spezifischen Risiken, die mit Bitcoin verbunden sind, gibt es auch die Gefahren, die mit der Übermittlung von Identitätsdokumenten verbunden sind. Im Falle eines Datenlecks ist es nämlich möglich, Opfer eines Identitätsdiebstahls zu werden. Es geht also nicht nur um den Schutz der Vertraulichkeit von Transaktionen, sondern auch um die persönliche Sicherheit jedes Einzelnen.

Einige vorgefasste Meinungen über KYC

Es ist wichtig, einige der vorgefassten Meinungen über KYC zu dekonstruieren, auf die wir häufig auf Twitter oder in unserem Austausch zwischen Bitcoinern stoßen.

Zunächst einmal ist es falsch zu denken, dass der Schutz Ihrer Privatsphäre für Bitcoins, die Sie über KYC erworben haben, sinnlos ist. Die Tools und Methoden zum Schutz der Privatsphäre bei Bitcoin sind vielfältig und dienen unterschiedlichen Zwecken. Die Verwendung von Coinjoin-Transaktionen für Bitcoins, die über KYC erworben wurden, ist zum Beispiel keine schlechte Idee. Natürlich muss man bei regulierten Tauschplattformen vorsichtig sein, um zu vermeiden, dass das eigene Konto eingefroren oder gesperrt wird, aber aus rein technischer Sicht sind diese Praktiken nicht unvereinbar. Coinjoin unterbricht die Historie einer Münze und hilft Ihnen so, bestimmte Risiken der Kettenanalyse im Zusammenhang mit KYC zu umgehen. Auch wenn dadurch nicht alle Risiken beseitigt werden, stellt es doch einen erheblichen Vorteil dar.

BTC204

Die Vertraulichkeit von Bitcoin sollte nicht binär betrachtet werden, als eine Unterscheidung zwischen "anonymen" Bitcoins und anderen, die nicht anonym sind. Der Besitz von Bitcoins, die über KYC erworben wurden, bedeutet nicht, dass alles verloren ist; im Gegenteil, der Einsatz von Vertraulichkeitswerkzeugen kann sich sogar als vorteilhaft erweisen.

Umgekehrt garantiert der Erwerb von Bitcoin über eine Nicht-KYC-Methode keine vollkommene Vertraulichkeit und entbindet Sie auch nicht von der Notwendigkeit, andere Schutzmaßnahmen zu ergreifen. Wenn Sie nicht-KYC-Bitcoin besitzen, aber die Empfängeradressen mehrmals verwenden, können Ihre Transaktionen zurückverfolgt und zusammengefasst werden. Die kleinste Verbindung zur Welt außerhalb von Bitcoin könnte die einzige Ebene der Vertraulichkeit, die Sie haben, gefährden. Daher ist es wichtig, alle Tools und Methoden zur Verbesserung der Privatsphäre auf Bitcoin als komplementär zu betrachten. Jede Technik befasst sich mit einem bestimmten Risiko und kann eine zusätzliche Schutzschicht hinzufügen. Der Besitz von Bitcoin ohne KYC bedeutet also nicht, dass Sie keine anderen Vorsichtsmaßnahmen ergreifen müssen.

Kann KYC abgebrochen werden?

Ich werde manchmal gefragt, ob es möglich ist, nach der Durchführung einer KYC "zurückzugehen", und wie Sie sich aus den vorangegangenen Absätzen vorstellen können, ist die Antwort nuanciert. Der einfachste Weg, die mit der KYC verbundenen Risiken zu vermeiden, ist, sie beim Erwerb von Bitcoins nicht zu verwenden. Wir werden uns mit diesem Thema im nächsten Kapitel eingehender beschäftigen. Wenn die KYC jedoch bereits durchgeführt und Bitcoins erworben wurden, gibt es dann Möglichkeiten, die damit verbundenen Risiken zu mindern?

Wenn es um das Risiko der Rückverfolgung Ihrer Transaktionen geht, ist die Verwendung von coinjoin eine Lösung. Wir werden uns diese Methode später im Kurs im Detail ansehen, aber Sie sollten wissen, dass coinjoin es Ihnen ermöglicht, die Historie eines Coins zu unterbrechen und zu verhindern, dass er von der Vergangenheit zur Gegenwart und von der Gegenwart zur Vergangenheit zurückverfolgt werden kann. Selbst für BTC, die über eine regulierte Plattform erworben wurden, kann diese Technik die Rückverfolgbarkeit verhindern.

Coinjoin beseitigt jedoch nicht das zweite mit KYC verbundene Risiko: die Tatsache, dass der Staat über Ihren Besitz von Bitcoins informiert sein könnte. Selbst wenn Ihre Münzen nicht mehr zurückverfolgt werden können, kann der Staat je nach Rechtsprechung Zugang zu Ihren Erklärungen über den Transfer von Krypto-Vermögenswerten haben. Da dieses Risiko nicht technischer, sondern administrativer Natur ist, gibt es keine Bitcoin-spezifischen Lösungen, um es auszuschalten, abgesehen davon, dass Sie sich gar nicht erst der KYC aussetzen. Der einzige legale Ansatz zur Minderung dieses Risikos ist der Verkauf Ihrer über regulierte Plattformen erworbenen Bitcoins auf regulierten Plattformen und der anschließende Rückkauf über KYC-freie Mittel. Durch den Verkauf und die Deklaration des Transfers sollten die Behörden sehen, dass Sie die Bitcoins nicht mehr besitzen.

Was das Risiko betrifft, dass Ihre persönlichen Daten und Identitätsdokumente nach außen dringen, so besteht diese Gefahr außerhalb von Bitcoin, und es gibt keine technische Lösung, um sie zu vermeiden. Wenn Ihre Daten einmal offengelegt wurden, ist es schwierig, den Vorgang rückgängig zu machen. Sie können versuchen, Ihr Konto auf der Plattform zu schließen, aber das garantiert nicht die Löschung Ihrer KYC-Daten, insbesondere wenn die Identitätsprüfung ausgelagert ist. Eine Überprüfung der vollständigen Löschung Ihrer Daten ist unmöglich. Es gibt daher keine Lösung, um dieses Risiko vollständig zu verhindern und sicherzustellen, dass es nicht mehr besteht.

Der Unterschied zwischen KYC und Schlüsselidentifikation

Manchmal neigen einige Bitcoiner dazu, den Begriff "KYC" auf jeden BTC-Austausch auszudehnen, der eine Überweisung oder eine Kreditkartenzahlung beinhaltet, da diese Mittel ebenfalls die Herkunft der Zahlung offenlegen können, genau wie ein KYC. KYC sollte jedoch nicht mit der Schlüsselidentifikation verwechselt werden. Persönlich muss ich zugeben, dass sich meine Sichtweise zu diesem Thema im Laufe der Zeit verändert hat.

KYC bezieht sich speziell auf ein regulatorisches Verfahren, das von bestimmten Unternehmen eingesetzt wird, um die Identität ihrer Kunden zu überprüfen und zu registrieren. Es ist eine binäre Sache: Wenn Sie Ihre Bitcoins erwerben, müssen Sie entweder KYC durchführen oder nicht. Die Schlüsselidentifikation, die die Verbindung zwischen einer Facette der Identität eines Nutzers und der Onchain-Aktivität betrifft, ist jedoch nicht so binär, sondern stellt eher ein Kontinuum dar. Im Zusammenhang mit dem Erwerb oder der Übertragung von Bitcoins ist eine solche Identifizierung immer in unterschiedlichem Maße möglich.

Wenn Sie zum Beispiel Bitcoins auf einer regulierten Plattform in der Schweiz kaufen, ist keine KYC erforderlich. Ihre Schlüssel können jedoch identifiziert werden, da der Kauf über Ihr Bankkonto getätigt wurde. Hier können sich die ersten beiden mit KYC verbundenen Risiken - Erleichterung der Rückverfolgung auf der Kette und Anfälligkeit für staatliche Überwachung - auch bei einer Börse ohne KYC manifestieren. Wenn das Schweizer Unternehmen verdächtige Transaktionen an die Behörden in Ihrem Land meldet, können diese einfach das für den Kauf verwendete Bankkonto überprüfen, um Ihre Identität festzustellen. Der Kauf ohne KYC auf regulierten Plattformen steht also auf der Risikoskala für die Schlüsselidentifikation ziemlich weit oben.

BTC204

Die Vermeidung regulierter Plattformen und die Entscheidung für P2P-Erwerbsmethoden beseitigt das Risiko der Schlüsselidentifizierung jedoch nicht vollständig, sondern verringert es lediglich. Nehmen wir das Beispiel eines Kaufs auf Bisq oder einer anderen P2P-Plattform. Um Ihre Gegenpartei zu bezahlen, werden Sie wahrscheinlich Ihr Bankkonto benutzen. Wenn die Behörden die Person, mit der Sie gehandelt haben, befragen und nach Ihrem Namen fragen, sind wir wieder bei den Risiken 1 und 2. Obwohl diese Risiken viel geringer sind als beim Kauf auf einer Plattform ohne KYC und sogar geringer als beim Kauf mit KYC, sind sie dennoch in einem geringeren Ausmaß vorhanden.

BTC204

Selbst wenn Sie Ihre Bitcoins über einen physischen Tausch gegen Bargeld erwerben, sind Sie nicht völlig anonym. Die Person, mit der Sie getauscht haben, hat Ihr Gesicht gesehen, das Teil Ihrer Identität ist. Obwohl in diesem Beispiel minimal, besteht immer noch die Möglichkeit einer Schlüsselidentifikation.

BTC204

Zusammenfassend lässt sich sagen, dass beim Umtausch von Bitcoins in andere Vermögenswerte, sei es ein Kauf in staatlicher Währung oder ein Verkauf gegen ein reales Gut, immer eine Form der Schlüsselidentifikation stattfindet. Je nach gewählter Tauschmethode kann diese Identifizierung unterschiedlich intensiv sein. Es ist wichtig, diese Identifizierung nicht mit der KYC zu verwechseln, bei der es sich um ein genau definiertes regulatorisches Verfahren handelt. Es besteht jedoch eine Verbindung zwischen KYC und dem Identifizierungsspektrum, da KYC am oberen Ende des Spektrums liegt, da es die Identifizierung von Benutzerschlüsseln durch die Behörden systematisch erleichtert.

Verkaufs- und Akquisitionsmethoden

Nachdem Sie das vorherige Kapitel gelesen haben, fragen Sie sich vielleicht, wie Sie Bitcoin kaufen oder verkaufen können, ohne sich einer Identitätsprüfung unterziehen zu müssen, um die mit der KYC verbundenen Risiken zu vermeiden. Es gibt mehrere Möglichkeiten, mit Bitcoin zu handeln.

P2P-Bargeldbörsen

Wie wir gesehen haben, ist die beste Methode in Bezug auf die Vertraulichkeit nach wie vor der P2P-Austausch (von Person zu Person) mit Barausgleich. Mit dieser Methode können Sie die Spuren, die Sie hinterlassen, minimieren und die Möglichkeit der Identifizierung von Schlüsseln erheblich reduzieren, egal ob Sie kaufen oder verkaufen.

BTC204

Dennoch gibt es Risiken für die persönliche Sicherheit. Die größte Gefahr besteht darin, dass die Gegenpartei während des Umtauschs erfährt, dass Sie einen hohen Geldbetrag entweder in bar oder in Bitcoins besitzen. Diese Information kann die Aufmerksamkeit von böswilligen Personen auf sich ziehen. In der Tat ist es im Allgemeinen ratsam, über Ihre Bitcoin-Bestände diskret zu sein. Dieser Ratschlag kann auch auf Bargeld angewendet werden. Bei einem persönlichen Austausch ist es jedoch unvermeidlich, den Besitz von Bitcoins preiszugeben, was unerwünschte Aufmerksamkeit erregen kann.

BTC204

Um dieses Risiko zu begrenzen, würde ich Ihnen raten, Bargeldtransaktionen mit vertrauenswürdigen Personen, wie Familienmitgliedern oder engen Freunden, zu bevorzugen. Alternativ könnten Sie auch in Erwägung ziehen, bei [lokalen Bitcoin-Treffen] (https://btcmap.org/communities/map) zu handeln, nachdem Sie ein paar Mal daran teilgenommen haben. So können Sie die anderen Teilnehmer besser kennenlernen und sind beim physischen Tausch nicht allein. Es ist jedoch wichtig, sich darüber im Klaren zu sein, dass P2P-Bargeldbörsen von Natur aus Risiken für Ihre persönliche Sicherheit bergen, die beim Kauf über eine regulierte Plattform und Ihr Bankkonto nicht bestehen.

Je nachdem, wo Sie leben, kann der Transport und die Lagerung großer Geldsummen riskant sein, egal ob es sich um Bitcoin oder Bargeld handelt.

Der Umtausch von Bargeld kann im Falle einer polizeilichen oder sonstigen Kontrolle auch rechtliche Risiken bergen. Obwohl es in den meisten Ländern keine Beschränkungen für die Menge an Bargeld gibt, die Sie mit sich führen dürfen, können zu hohe Beträge Verdacht erregen. Seien Sie also vorsichtig, vor allem wenn Sie weite Strecken zurücklegen müssen, und vermeiden Sie zu viele große Transaktionen auf einmal, um sich nicht für den Besitz großer Summen rechtfertigen zu müssen.

Ein weiterer Nachteil von P2P-Käufen ist, dass der Preis oft höher ist als auf regulierten Plattformen. Die Verkäufer verlangen oft einen Aufschlag von 1 % bis manchmal mehr als 10 %. Für diesen Preisunterschied gibt es mehrere Gründe. Erstens ist dies eine gängige Praxis unter P2P-Verkäufern, die sich im Laufe der Zeit etabliert hat. Zweitens fallen für die Verkäufer Gebühren für die Überweisung des Geldes an den Käufer an. Außerdem besteht bei P2P-Verkäufen im Vergleich zu Plattformtransaktionen ein höheres Diebstahlsrisiko, was eine Entschädigung für das eingegangene Risiko rechtfertigt. Schließlich können die zusätzlichen Kosten auch mit der Nachfrage und der Qualität des Austauschs in Bezug auf die Vertraulichkeit zusammenhängen. Für den Käufer hat der Gewinn an Vertraulichkeit einen Preis, der sich im Aufschlag des Verkäufers widerspiegelt. Einige Bitcoiner sind auch der Meinung, dass der Preisaufschlag für auf P2P gekaufte BTC den wahren Preis widerspiegelt, und argumentieren, dass die niedrigeren Preise auf regulierten Plattformen das Ergebnis eines Kompromisses bei der Vertraulichkeit Ihrer persönlichen Daten sind.

BTC204

P2P-Börsen über eine Matchmaking-Plattform

Eine weniger risikoreiche Alternative in Bezug auf die persönliche Sicherheit ist es, P2P-Tauschgeschäfte ausschließlich online über elektronische Zahlungsmittel wie PayPal, Banküberweisungen oder Revolut abzuwickeln.

BTC204

Bei diesem Ansatz werden viele der mit Bargeldtransaktionen verbundenen Risiken vermieden. Allerdings ist das Risiko, dass die Gegenpartei bei einem Online-Tausch ausfällt, größer. Wenn Sie nämlich bei einem physischen Tausch dem Verkäufer Geld übergeben und dieser Ihnen die Bitcoins nicht zurückschickt, können Sie ihn sofort zur Rechenschaft ziehen, da er direkt vor Ihnen steht. Online hingegen ist es oft unmöglich, jemanden ausfindig zu machen, der Sie bestohlen hat.

BTC204

Um dieses Risiko zu mindern, können spezialisierte Plattformen für P2P-Tauschbörsen genutzt werden. Diese Plattformen nutzen Konfliktlösungsmechanismen, um geschädigte Nutzer zu schützen. In der Regel bieten sie ein Treuhandsystem an, bei dem Bitcoins aufbewahrt werden, bis die Zahlung in Fiat-Währung vom Verkäufer bestätigt wird.

BTC204

In Bezug auf die persönliche Sicherheit ist diese Methode des Kaufs wesentlich sicherer als ein physischer Bargeldtausch. Wie bereits erwähnt, hinterlassen Online-P2P-Tauschbörsen jedoch mehr Spuren als ein physischer Tausch, was der Privatsphäre bei Bitcoin abträglich sein kann. Wenn Sie eine Online-Zahlungsmethode wie eine Bank verwenden, geben Sie mehr Informationen preis, die eine Schlüsselidentifizierung erleichtern könnten.

BTC204

Auch hier würde ich nicht empfehlen, zu viele große Geschäfte in einer einzigen Transaktion auf diesen Plattformen zu tätigen. Indem Sie Ihre Transaktionen aufteilen, streuen Sie das Risiko eines Kontrahentendiebstahls.

Ein weiterer Nachteil von P2P-Käufen besteht darin, dass der Preis oft höher ist als auf regulierten Plattformen. Die Verkäufer verlangen oft einen Aufschlag von 1 % bis manchmal mehr als 10 %. Für diesen Preisunterschied gibt es mehrere Gründe. Erstens ist dies eine gängige Praxis unter P2P-Verkäufern, die sich im Laufe der Zeit etabliert hat. Zweitens fallen für die Verkäufer Gebühren für die Überweisung des Geldes an den Käufer an. Außerdem besteht bei P2P-Verkäufen im Vergleich zu Plattformtransaktionen ein höheres Diebstahlsrisiko, was eine Entschädigung für das eingegangene Risiko rechtfertigt. Schließlich können die zusätzlichen Kosten auch mit der Nachfrage und der Qualität des Austauschs in Bezug auf die Vertraulichkeit zusammenhängen. Für den Käufer hat der Gewinn an Vertraulichkeit einen Preis, der sich im Aufschlag des Verkäufers widerspiegelt. Einige Bitcoiner sind auch der Meinung, dass der Preisaufschlag für auf P2P gekaufte BTC den wahren Preis widerspiegelt, und argumentieren, dass die niedrigeren Preise auf regulierten Plattformen das Ergebnis eines Kompromisses bei der Vertraulichkeit Ihrer persönlichen Daten sind.

BTC204

Was die Lösungen betrifft, so habe ich persönlich immer [Bisq] (https://bisq.network/) verwendet und bin sehr zufrieden damit. Ihr System ist erprobt und scheint zuverlässig zu sein. Allerdings ist Bisq nur für den PC verfügbar und die Benutzeroberfläche könnte für Anfänger zu komplex sein. Ein weiterer Nachteil ist, dass Bisq nur mit Onchain-Transaktionen arbeitet, was in Zeiten hoher Bitcoin-Transaktionsgebühren kostspielig werden kann.

-> Siehe unser Bisq-Tutorial.

https://planb.network/tutorials/exchange/peer-to-peer/bisq-fe244bfa-dcc4-4522-8ec7-92223373ed04

Eine einfachere Option ist [Peach] (https://peachbitcoin.com/), eine mobile App, die Käufer und Verkäufer mit einem integrierten Konfliktlösungssystem zusammenbringt. Das Verfahren ist intuitiver als das von Bisq.

-> Siehe unser Peach-Tutorial.

https://planb.network/tutorials/exchange/peer-to-peer/peach-c6143241-d900-4047-9b73-1caba5e1f874

Eine weitere Online-Option ist HodlHodl, eine gut etablierte Plattform, die eine gute Liquidität bietet, obwohl ich sie nicht persönlich getestet habe.

-> Siehe unser HodlHodl-Tutorial.

https://planb.network/tutorials/exchange/peer-to-peer/hodlhodl-d7344cd5-6b18-40f5-8e78-2574a93a3879

Für Lightning Network-basierte Lösungen probieren Sie [RoboSats] (https://learn.robosats.com/) und [LNP2PBot] (https://lnp2pbot.com/). RoboSats ist über eine Website zugänglich und relativ einfach zu bedienen. LNP2PBot ist eher untypisch, da es über ein Austauschsystem in der Telegram-Messaging-Anwendung funktioniert.

-> Siehe unser RoboSats-Tutorial.

-> Siehe unser LNP2PBot-Tutorial.

https://planb.network/tutorials/exchange/peer-to-peer/robosats-b60e4f7c-533a-4295-9f6d-5368152e8c06

https://planb.network/tutorials/exchange/peer-to-peer/lnp2pbot-v2-e6bcb210-610b-487d-970c-7cce85273e3c

BTC204

Regulierte Plattformen ohne KYC

Je nachdem, in welchem Land Sie leben, haben Sie möglicherweise Zugang zu regulierten Plattformen, die keine KYC-Verfahren zum Kauf oder Verkauf von Bitcoins erfordern. In der Schweiz können Sie zum Beispiel Plattformen wie Relai und MtPelerin nutzen.

-> Siehe unser Tutorial zu Relai.

https://planb.network/tutorials/exchange/centralized/relai-v2-30a9671d-e407-459d-9203-4c3eae15b30e

Wie wir im vorherigen Kapitel gesehen haben, erspart Ihnen diese Art von Plattform die mit KYC-Verfahren verbundenen Risiken, aber sie stellen ein höheres Risiko für die Schlüsselidentifikation dar. In Bezug auf die Bitcoin-Vertraulichkeit bieten diese Plattformen also einen besseren Schutz als Kaufmethoden mit KYC, aber sie bleiben weniger attraktiv als P2P-Börsen.

In Bezug auf die persönliche Sicherheit ist die Nutzung dieser Plattformen jedoch weit weniger riskant als P2P-Börsen. Außerdem sind sie oft einfacher zu bedienen als P2P-Plattformen.

Geldautomaten

Eine weitere Möglichkeit, Bitcoins ohne KYC zu kaufen oder zu verkaufen, sind Kryptowährungs-Geldautomaten. Ich persönlich hatte noch nie die Gelegenheit, diese Lösung zu testen, da es in meinem Land keine gibt. Aber diese Methode kann sehr interessant sein, je nachdem, wo Sie leben.

BTC204

Das Problem mit Geldautomaten ist, dass sie entweder in einigen Ländern verboten oder in anderen stark reguliert sind. Wenn ein Geldautomat eine Identitätsüberprüfung erfordert, dann ist er den gleichen Risiken ausgesetzt wie die KYC-regulierten Plattformen. Erlaubt der Geldautomat hingegen Transaktionen ohne Identitätsüberprüfung für kleine Beträge, dann kann seine Nutzung einen Grad an Vertraulichkeit bieten, der mit dem einer P2P-Bargeldbörse vergleichbar ist, während die meisten Risiken, die mit dieser Art von Börse verbunden sind, vermieden werden.

Der größte Nachteil der Geldautomaten sind die oft hohen Umtauschgebühren, die zwischen einigen Prozent und manchmal 15 % des umgetauschten Betrags liegen.

Geschenkkarten

Zum Schluss möchte ich Ihnen noch eine Lösung vorstellen, die sich gut für diejenigen eignet, die ihre Bitcoins täglich für Einkäufe verwenden möchten, anstatt sie gegen Fiat-Währungen zu verkaufen.

Der beste Weg, BTC auszugeben, ist natürlich, Bitcoin oder das Lightning Network direkt für den Kauf einer Ware oder Dienstleistung zu verwenden. In vielen Ländern ist die Zahl der Händler, die Bitcoin akzeptieren, jedoch noch begrenzt. Eine praktische Alternative ist die Verwendung von Geschenkkarten.

Mehrere Plattformen, die keine KYC-Verfahren erfordern, bieten die Möglichkeit, Bitcoins in Geschenkkarten umzutauschen, die bei großen Einzelhändlern verwendet werden können. Dazu gehören CoinsBee, The Bitcoin Company und Bitrefill. Diese Plattformen erleichtern die tägliche Verwendung Ihrer Bitcoins und ermöglichen Ihnen den Zugang zu einer breiten Palette von Produkten und Dienstleistungen, ohne dass Sie sie in Fiat-Währung umtauschen müssen.

https://planb.network/tutorials/exchange/centralized/bitrefill-8c588412-1bfc-465b-9bca-e647a647fbc1

BTC204

Andere Erfassungsmethoden

Eine weitere Möglichkeit, Bitcoins zu erwerben und gleichzeitig Ihre Privatsphäre zu schützen, ist natürlich das Mining. Um mit dem Mining von Sats zu beginnen, müssen Sie Ihre Identität nicht preisgeben; suchen Sie einfach einen gültigen Arbeitsnachweis und senden Sie ihn an das Netzwerk. Wenn Sie sich für das Pool-Mining entscheiden, verlangen einige Pools eine Form der Identifizierung, wie z. B. einen KYC, während andere dies nicht tun.

Eine andere Methode ist die Arbeit im Tausch gegen Bitcoins. Diese Art des Erwerbs kann interessant sein, aber der Grad der Identifizierung, der erforderlich ist, variiert je nach den Umständen erheblich.

*Um dieses Kapitel zu schreiben, habe ich den BTC205-Schulungskurs von @pivi___ im Plan ₿ Network benutzt (derzeit nur auf Französisch verfügbar)

Konsolidierung, UTXO-Management und CIOH

Einer der kompliziertesten Aspekte bei der Verwaltung eines selbstverwalteten Portfolios ist die Konsolidierung. Sollten Sie konsolidieren? Wo liegt der Sinn? Welche Größe von UTXO sollte beachtet werden? Welche Kompromisse gibt es in Bezug auf die Vertraulichkeit? Mit diesen Fragen werden wir uns in diesem Abschnitt befassen.

Was ist Konsolidierung?

Bitcoin funktioniert wie ein Auktionsmarkt, wobei die Miner Transaktionen mit den niedrigsten Gebühren den Vorzug geben. Allerdings hat jeder Block ein maximales Gewicht, das die Anzahl der Transaktionen, die aufgenommen werden können, begrenzt. Da im Durchschnitt alle 10 Minuten ein Block erstellt wird, ist der in jedem Block verfügbare Platz eine knappe Ressource.

Bergbauunternehmen, deren Aktivitäten erhebliche Kosten in Form von Strom, Anlagevermögen und Wartung verursachen, sind natürlich bestrebt, ihre Rentabilität zu maximieren. Sie neigen daher dazu, Transaktionen zu bevorzugen, die im Verhältnis zu ihrem Gewicht die höchsten Gebühren einbringen.

Nicht alle Bitcoin-Transaktionen haben das gleiche Gewicht. Diejenigen, die mehr Inputs und Outputs haben, wiegen mehr. Stellen wir uns zum Beispiel 2 Transaktionen vor:

BTC204

Obwohl in diesem Beispiel Transaktion B eine höhere Gesamtgebühr bietet, werden die Miner Transaktion A vorziehen, da sie ein besseres Verhältnis zwischen Gebühr und Gewicht bietet. Hier ist die Berechnung für jede Transaktion, ausgedrückt in Sats pro virtuellem Byte (sat/vB):

TXA : 1994 / 141 = 14 sats/vB
TXB : 2640 / 220 = 12 sats / vB

Das bedeutet, dass für jede Gewichtseinheit das Geschäft A mehr Kosten verursacht als das Geschäft B, auch wenn das Geschäft B absolut gesehen mehr Kosten verursacht.

BTC204

Daher ist es für den Nutzer immer interessanter, bei seinen Transaktionen so wenig Input wie möglich zu verbrauchen. Sie müssen jedoch ausreichende Mengen verbrauchen, um die Output-Zahlung erfüllen zu können. Wenn Sie Ihr Portfolio verwalten, müssen Sie über ausreichend große UTXOs verfügen.

Das Prinzip der Konsolidierung besteht genau darin, Zeiten mit niedrigen Bitcoin-Gebühren zu nutzen, um die kleineren UTXOs zu einem einzigen größeren zusammenzufassen. Auf diese Weise können Sie, wenn die Bitcoin-Gebühren steigen, Transaktionen mit einem Minimum an Input durchführen und somit absolut gesehen weniger für Gebühren ausgeben. Ziel ist es also, die obligatorischen Transaktionen vorwegzunehmen, die in Zeiten hoher Gebühren durchgeführt werden müssen.

BTC204

Neben der Einsparung von Transaktionskosten trägt die Konsolidierung von UTXOs dazu bei, die Entstehung von "Staub" zu verhindern. Staub" bezieht sich auf UTXOs, deren Wert in Sats so niedrig ist, dass er nicht ausreicht, um die Transaktionskosten zu decken, die für ihre Ausgabe erforderlich sind. Daher ist es wirtschaftlich unvernünftig, diese UTXOs zu verwenden, solange die Transaktionskosten hoch bleiben. Indem Sie Ihre UTXOs proaktiv zusammenlegen, verhindern Sie, dass sie zu Staub werden, und stellen sicher, dass alle Ihre Mittel nutzbar bleiben.

Was ist die Mindestgröße für Ihre UTXOs?

Ich werde manchmal gefragt, was der empfohlene Mindestwert für einen UTXO ist. Leider gibt es darauf keine allgemeingültige Antwort, da dies von Ihren Präferenzen und den Bedingungen auf dem Gebührenmarkt abhängt. Hier ist jedoch eine Formel, die Ihnen helfen kann, einen für Ihre Bedürfnisse geeigneten Schwellenwert zu ermitteln:

\frac {P \times F}T = M

Wo:

Nehmen wir an, Sie planen, die Gebühren für eine Standard-SegWit-Transaktion mit 1 Eingang und 2 Ausgängen und einem Gewicht von 141 vB zu decken. Wenn Sie bis zu 800 sats/vB absichern und bereit sind, maximal 12 % des UTXO-Wertes an Gebühren auszugeben, dann würde die Berechnung lauten:

\frac{141 \times 800}{0.12} = 940\ 000

In diesem Beispiel wäre es daher ratsam, einen Mindestwert von 940.000 Sats für UTXOs in Ihrem Portfolio zu halten.

Konsolidierung und CIOH

Eine der am weitesten verbreiteten Heuristiken in der Blockchain-Analyse ist die CIOH (Common Input Ownership Heuristic), die davon ausgeht, dass alle Inputs einer Bitcoin-Transaktion der gleichen Entität gehören. Das eigentliche Prinzip der Konsolidierung besteht darin, mehrere UTXOs als Inputs zu verbrauchen und einen einzigen UTXO als Output zu erzeugen. Die Konsolidierung ermöglicht somit die Anwendung des ICOH.

BTC204

In der Praxis bedeutet dies, dass ein außenstehender Beobachter ableiten kann, dass alle konsolidierten UTXOs wahrscheinlich zu derselben Person gehören und dass die erzeugte eindeutige Ausgabe ebenfalls zu dieser Person gehört. Diese Situation kann Ihre Vertraulichkeit gefährden, da verschiedene Transaktionshistorien miteinander verknüpft werden. Nehmen wir zum Beispiel an, ich konsolidiere 3 UTXOs, die ich über P2P erworben habe, mit einem UTXO, den ich über eine Plattform erworben habe, die KYC verlangt:

BTC204

Auf diese Weise kann jede Einrichtung, die Zugang zu den Daten der Börsenplattform hat, möglicherweise auch staatliche Stellen, feststellen, dass ich andere BTC-Beträge besitze. Zuvor waren diese UTXOs nicht direkt mit meiner Identität verknüpft; jetzt sind sie es. Außerdem wird dadurch für alle Quellen ersichtlich, dass ich im Besitz einer bestimmten Menge an Bitcoins bin.

Bei der Verwaltung von UTXOs geraten wirtschaftliche Erwägungen, die eine Konsolidierung zur Kostensenkung vorantreiben, in Konflikt mit einer guten Datenschutzpraxis, die empfiehlt, UTXOs niemals zusammenzulegen. Die Entscheidung zwischen Wirtschaftlichkeit und Vertraulichkeit hängt daher von den Prioritäten der einzelnen Nutzer ab.

Ideal ist es, wenn Sie eine Konsolidierung vermeiden und gleichzeitig hohe UTXOs beibehalten können. Optimieren Sie zu diesem Zweck Ihre Erwerbsmethoden. Wenn Sie Ihre Bitcoins in DCA kaufen, versuchen Sie, Ihre einmaligen Käufe so weit wie möglich zu strecken, um den Wert über weniger UTXOs zu konsolidieren. Es ist einfacher, einen einmaligen Kauf von 1.000 € alle 2 Monate zu tätigen als einen Kauf von 120 € jede Woche. Auf diese Weise wird die Anzahl der generierten UTXOs minimiert und die Verwaltung Ihres Portfolios vereinfacht, während gleichzeitig Ihre Vertraulichkeit gewahrt bleibt.

Wenn Sie gezwungen sind, Ihre Bitcoins zu konsolidieren, sollten Sie zunächst UTXOs aus derselben Quelle konsolidieren. Wenn Sie beispielsweise 10 UTXOs von einer einzigen Plattform zusammenführen, wird Ihre Vertraulichkeit weniger beeinträchtigt als wenn Sie 5 UTXOs von Plattform A mit 5 UTXOs von Plattform B mischen. Fassen Sie zum Beispiel UTXOs, die Sie über KYC erworben haben, in einer Transaktion zusammen und solche, die Sie über P2P erhalten haben, in einer anderen.

Vergessen Sie auf keinen Fall, dass jede Konsolidierung unweigerlich einen Verlust an Vertraulichkeit mit sich bringt. Prüfen Sie also sorgfältig die Notwendigkeit dieses Vorgangs und die möglichen Auswirkungen auf Ihre Privatsphäre, wobei Sie die CIOH berücksichtigen sollten.

Andere bewährte Praktiken

Werfen wir einen Blick auf ein paar andere bewährte Praktiken zur Optimierung Ihrer Privatsphäre auf Bitcoin.

Der vollständige Knoten

Der Besitz Ihrer Bitcoins in Selbstverwahrung ist großartig, aber die Verwendung Ihres eigenen kompletten Knotens ist noch besser! Hier erfahren Sie, warum ein eigener Node für die souveräne Nutzung von Bitcoin entscheidend ist:

Zusätzlich zu diesen Vorteilen verbessert die Verwendung eines vollständigen Knotens auch die Vertraulichkeit bei der Übermittlung Ihrer Transaktionen. Wenn Sie eine Transaktion ausstellen, wird diese zunächst über Ihre Wallet erstellt und signiert. Um sie im Bitcoin-Netzwerk zu verbreiten, muss sie mindestens einem Knoten bekannt sein. Durch die Verwendung Ihres eigenen Knotens haben Sie die direkte Kontrolle über diese Verteilung, wodurch Ihre Vertraulichkeit gestärkt und das Risiko von Datenlecks begrenzt wird.

BTC204

Wenn Sie keinen eigenen Bitcoin-Knoten haben, sind Sie gezwungen, einen Knoten eines Drittanbieters zu verwenden, z. B. den, den Ihr Wallet-Softwareanbieter anbietet. Neben der Übertragung von Transaktionen benötigt Ihre Wallet Zugang zu verschiedenen Informationen wie ausstehende Transaktionen, mit Ihren Adressen verbundene Guthaben und die Anzahl der Bestätigungen für Ihre Transaktionen. Um auf all diese Daten zuzugreifen, müssen Sie einen Knoten abfragen.

BTC204

Das Hauptrisiko, wenn Sie nicht Ihren eigenen Bitcoin-Knoten verwenden, besteht darin, dass der Betreiber des fremden Knotens Ihre Aktivitäten auf der Blockchain beobachten oder diese Informationen sogar mit anderen Unternehmen teilen könnte. Eine Zwischenlösung zur Begrenzung dieses Risikos ist die Verwendung einer Wallet-Software, die Ihre Verbindungen über Tor maskiert. Dadurch können Sie die Offenlegung Ihrer Daten verringern. Die optimale Lösung ist jedoch ein eigener Bitcoin-Knoten, über den Sie Ihre Transaktionen verbreiten. Natürlich müssen Sie auch darauf achten, dass Sie keine Informationen über Ihren Knotenpunkt weitergeben, aber das ist ein anderes Thema, das wir in späteren Abschnitten behandeln werden.

Abgesehen von den offensichtlichen Vorteilen für Ihre Privatsphäre garantiert Ihnen ein eigener kompletter Knoten auch die Richtigkeit der Daten auf der Blockchain, schützt Sie vor Zensur und ermöglicht Ihnen eine aktive Teilnahme an der Bitcoin-Governance. Durch die Verwendung eines eigenen Knotens tragen Sie Ihr wirtschaftliches Gewicht zu der Kette Ihrer Wahl bei, was bei Konflikten innerhalb der Gemeinschaft wichtig ist, wie zum Beispiel während des Blocksize War von 2015 bis 2017. Im Falle einer Abspaltung könnte die Verwendung eines fremden Knotens dazu führen, dass Sie eine Kette unterstützen, die Sie nicht bevorzugen wollen, da der Knotenbetreiber die Wahl für Sie trifft.

Wie Sie sehen, ist es im Interesse der Vertraulichkeit und der individuellen Souveränität unerlässlich, einen eigenen vollständigen Knoten zu betreiben und zu verwenden!

Täuschende Analyseheuristiken

Ganz allgemein ist es wichtig, die Heuristiken, über die wir im vorigen Abschnitt gesprochen haben, zu verstehen, um sie besser vermeiden oder täuschen zu können. Die Übernahme einer Reihe von Best Practices kann von Vorteil sein, auch wenn sie nicht unbedingt notwendig sind. Sie bieten eine zusätzliche Schutzebene, die für die Wahrung der Vertraulichkeit bei der Verwendung von Bitcoin wichtig sein kann.

Der erste Ratschlag, den ich geben kann, ist, sich in die dichteste Menge einzufügen. Bei Bitcoin bedeutet dies, die am weitesten verbreiteten Skriptvorlagen zu verwenden. Zum Beispiel sind P2WSH-Skripte, die oft für SegWit V0 Multisig-Konfigurationen verwendet werden, sehr unüblich. Sie erlauben es nicht, sich in einem großen Anonymitätsset zu verstecken. Das Gleiche gilt für ältere Modelle wie P2PKH oder P2SH. Obwohl sie im UTXO-Set weit verbreitet sind, werden sie immer seltener für neue Transaktionen verwendet.

Im Allgemeinen ist es klüger, sich für den neuesten Skripting-Standard zu entscheiden, vorausgesetzt, er wurde ausreichend angenommen. Wenn ich also im Jahr 2022 von der Verwendung von P2TR (Taproot) aufgrund der geringen Akzeptanz abgeraten hätte, würde ich im Jahr 2024 stattdessen diese Art von Skript oder andernfalls ein SegWit V0-Skript empfehlen, da die Anzahl der Transaktionen, die P2TR verwenden, allmählich einen sehr großen Anteil ausmacht.

BTC204

Quelle : txstats.com

Ein weiterer Tipp zur Wahrung der Vertraulichkeit besteht darin, interne Transaktionsheuristiken zu umgehen. Wenn Sie zum Beispiel eine Zahlung vornehmen, können Sie versuchen, eine Ausgabe mit einem runden Betrag zu vermeiden, da dies signalisieren könnte, dass die andere Ausgabe Devisen darstellt. Wenn Sie einem Freund 100 000 Sats schicken müssen, sollten Sie einen etwas höheren Betrag überweisen, um diese Heuristik zu umgehen. Versuchen Sie auch, keine Devisenausgaben zu erstellen, die im Verhältnis zur geleisteten Zahlung unverhältnismäßig hoch sind, da dies ebenfalls verraten könnte, welche der Ausgaben Devisen darstellen.

BTC204

Wenn Sie regelmäßig Bitcoin-Transaktionen durchführen, stellen Sie sicher, dass Sie diese nicht immer zu denselben Zeiten übertragen. Indem Sie Ihre Transaktionen über den Tag und die Woche verteilen, vermeiden Sie, dass außenstehende Beobachter die Möglichkeit haben, ein zeitzonenbasiertes zeitliches Muster zu erkennen, das ihre Analyse untermauern könnte.

Zusätzlich zu all diesen bewährten Praktiken, die Sie täglich anwenden sollten, gibt es noch effektivere Methoden, um die Rückverfolgbarkeit Ihrer Bitcoins vollständig zu unterbrechen. Dazu gehören natürlich Coinjoin-Transaktionen, die wir im nächsten Abschnitt näher betrachten werden.

Verständnis von Coinjoin-Transaktionen

Was ist eine Coinjoin-Transaktion?

Nachdem wir uns mit den Grundlagen des Schutzes der Privatsphäre beschäftigt haben, werden wir uns nun anspruchsvollere Techniken ansehen, die darauf abzielen, Ihre Vertraulichkeit aktiv zu schützen, insbesondere durch die Entflechtung Ihrer Bitcoin-Historie. Im nächsten Teil werden wir uns eine ganze Reihe von kleinen Techniken ansehen, aber zuerst möchte ich Ihnen etwas über coinjoin erzählen.

Coinjoin wird oft als die effektivste Methode zum Schutz der Privatsphäre von Bitcoin-Nutzern angesehen. Aber was genau ist eine Coinjoin-Transaktion? Finden wir es heraus.

Die Grundprinzipien des Coinjoin

Coinjoin ist eine Technik zum Aufbrechen der Bitcoin-Verfolgung auf der Blockchain. Sie basiert auf einer kollaborativen Transaktion mit einer spezifischen Struktur gleichen Namens: der Coinjoin-Transaktion.

Wie wir in den ersten Teilen dieses Kurses gesehen haben, sind Bitcoin-Transaktionen allen Nutzern über ihren Node bekannt. Es ist daher einfach, die elektronische Signaturkette jeder Münze zu überprüfen und ihre Geschichte zu beobachten. Dies bedeutet, dass alle Nutzer versuchen können, die Transaktionen anderer Nutzer zu analysieren. Anonymität auf Transaktionsebene ist daher unmöglich. Auf der Ebene der individuellen Identifizierung bleibt die Anonymität jedoch gewahrt. Im Gegensatz zum herkömmlichen Bankensystem, bei dem jedes Konto mit einer persönlichen Identität verknüpft ist, sind bei Bitcoin die Gelder mit kryptografischen Schlüsselpaaren (oder Skripten) verbunden, die den Nutzern eine Form der Pseudonymität hinter kryptografischen Identifikatoren bieten.

BTC204

Die Vertraulichkeit von Bitcoin wird untergraben, wenn außenstehende Beobachter in der Lage sind, bestimmte UTXOs mit identifizierten Nutzern in Verbindung zu bringen. Sobald diese Verbindung hergestellt ist, ist es möglich, ihre Transaktionen zu verfolgen und ihre Bitcoin-Historie zu analysieren. Coinjoin ist eine Technik, die entwickelt wurde, um die Rückverfolgbarkeit von UTXOs zu umgehen und Bitcoin-Nutzern eine gewisse Vertraulichkeit auf Transaktionsebene zu bieten.

Coinjoins verstärken die Vertraulichkeit der Bitcoin-Nutzer, indem sie die Kettenanalyse für externe Beobachter komplexer machen. Ihre Struktur ermöglicht es, mehrere Coins von verschiedenen Nutzern in einer einzigen Transaktion zusammenzufassen, wodurch die Grenzen verwischt werden und es schwierig wird, die Verbindungen zwischen Eingabe- und Ausgabeadressen zu bestimmen.

Es ist wichtig zu verstehen, dass das Ziel einer Coinjoin-Transaktion darin besteht, die Geschichte einer Münze zu unterbrechen. Diese Technik verleiht keine dauerhafte Anonymität und verhindert auch nicht endgültig die Rückverfolgung von Bitcoins, anders als Sie vielleicht denken. Coinjoin zielt nur darauf ab, die Historie an dem Punkt zu brechen, an dem die Coinjoin-Transaktion durchgeführt wird. Vor und nach diesem Vorgang unterliegt die Münze jedoch weiterhin denselben Risiken in Bezug auf die Vertraulichkeit.

BTC204

Wie funktionieren Coinjoins?

Das Coinjoin-Prinzip basiert auf einem kollaborativen Ansatz: Mehrere Nutzer, die ihre Bitcoins mischen möchten, zahlen identische Beträge als Inputs in dieselbe Transaktion ein. Diese Beträge werden dann in gleichwertige Ausgaben für jeden Nutzer umverteilt.

BTC204

Am Ende der Transaktion ist es nicht mehr möglich, einen bestimmten Output mit einem als Input bekannten Benutzer zu verbinden. Es gibt keine direkte Verbindung zwischen Eingängen und Ausgängen, wodurch die Verbindung zwischen Benutzern und ihren UTXOs sowie die Historie der einzelnen Teile unterbrochen wird.

BTC204

Nehmen wir das Beispiel von Alice. Sie möchte ihrer Schwester Eve etwa 100.000 Sats zum Geburtstag schicken. Alice möchte jedoch nicht, dass Eve ihren Transaktionsverlauf zurückverfolgen kann, da sie nicht preisgeben möchte, wie viele Bitcoins sie besitzt oder wie sie sie bekommen hat. Zu diesem Zweck beschließt Alice, ihre UTXO-Historie mit einer Coinjoin-Transaktion zu brechen. Sie verabredet sich mit Bob, Charles, David und Frank, um eine gemeinschaftliche Transaktion durchzuführen:

BTC204 BTC204 BTC204 BTC204

In diesem Fall hat Alice die Coinjoin-Technik verwendet, um die Vertraulichkeit im Hinblick auf eine rückwirkende Analyse zu erhöhen. Alice schützt sich damit vor einer möglichen Analyse durch Eve, die von einer bestimmten Transaktion ausgehen und sich rückwärts durch die Geschichte des UTXO arbeiten würde. Dieser Schutz vor einer Analyse von der Gegenwart in die Vergangenheit wird als retrospektive Anonymisierung bezeichnet. Wir werden dieses Konzept in den letzten Kapiteln dieses Abschnitts ausführlicher behandeln.

Coinjoin bietet jedoch auch die Möglichkeit, die Vertraulichkeit angesichts einer Analyse von der Vergangenheit in die Gegenwart zu verstärken, was als prospektiver Anonset bezeichnet wird. Kehren wir zu unserem Beispiel zurück, in dem Alice Eva 98.000 Sats zu ihrem Geburtstag geschickt hat, aber mit umgekehrten Rollen. Stellen wir uns nun vor, dass es Eve ist, die sich Sorgen um ihre Privatsphäre macht. Alice könnte in der Tat versucht sein, die Münze, die sie Eve geschickt hat, zurückzuverfolgen, um daraus Informationen zu gewinnen. Eve könnte diesen UTXO, den sie gerade erhalten hat, mit all ihren anderen UTXOs konsolidieren, was Alice die Menge an Bitcoins verraten könnte, die sie in ihrer Brieftasche hat. Um dies zu vermeiden, kann Eve auch die Historie der Münze, die sie gerade erhalten hat, unterbrechen:

BTC204 BTC204 BTC204

Im ersten Beispiel haben wir gesehen, wie der Coinjoin die Privatsphäre eines Raums in Bezug auf seine Vergangenheit schützen kann, und im zweiten Beispiel, wie er auch die Geschichte eines Raums in Bezug auf seine Zukunft sichern kann. Deshalb habe ich erwähnt, dass der Coinjoin als einmaliges Ereignis betrachtet werden sollte, das einen Teil der Geschichte in beide Richtungen segmentiert:

BTC204

Mixer, Coinjoin, Mixer... Was ist der Unterschied?

Coinjoin wird manchmal als "Mixer" bezeichnet, ein Begriff, den einige Bitcoiner ablehnen, weil sie befürchten, dass er mit dem "custodial mixer" verwechselt werden könnte. Ich glaube jedoch, dass diese Befürchtung unbegründet ist, denn in einem mathematischen Kontext verkörpert der Coinjoin genau das Konzept des Mischens.

Im allgemeinen Bereich der Mathematik bezeichnet Mischen die Eigenschaft eines dynamischen Systems, bei der sich nach einer bestimmten Zeit alle Teile des Ausgangsraums theoretisch mit jedem anderen Teil vermischen können. Vermischung bedeutet, dass sich die Position eines Teilchens oder der Zustand eines Systems so entwickelt, dass seine zukünftige Verteilung unabhängig von seiner anfänglichen Verteilung ist, so dass ein Zustand erreicht wird, in dem die Merkmale des anfänglichen Zustands gleichmäßig im Raum des Systems verteilt sind. Genau das passiert bei einem Coinjoin mit Bitcoins. Meiner Meinung nach ist Coinjoin also wirklich eine Methode zum Mischen von Münzen.

BTC204

Auf der anderen Seite ist es wichtig, coinjoin von Shufflern zu unterscheiden. Ein Shuffler ist ein Dienst, bei dem Nutzer ihre Bitcoins zum Shufflen einsenden. Diese Dienste waren in den 2010er Jahren sehr beliebt, aber ihre Nutzung ist aufgrund von zwei großen Nachteilen im Vergleich zu coinjoin zurückgegangen:

BTC204

Die heutigen Nutzer bevorzugen daher Coinjoin, da sie während des gesamten Prozesses die volle Kontrolle über ihre Gelder behalten können. Coinjoin-Teilnehmer laufen nicht Gefahr, dass ihre Bitcoins von den anderen beteiligten Parteien gestohlen werden. Wie das alles möglich ist, sehen wir uns im nächsten Kapitel an.

Zerolink und chaumianische Coinjoins

Die Privatsphäre, die ein Coinjoin bietet, hängt von der Größe der Gruppe ab, in der unsere Figur versteckt ist. Das heißt, wir müssen so viele Teilnehmer wie möglich finden. Es ist durchaus möglich, einen Coinjoin manuell zu erstellen, mit Nutzern, die wir selbst gefunden haben, aber das ist ein komplizierter Prozess, mit dem man keine großen Anonsets gewinnen kann.

Aus diesem Grund haben sich auf Bitcoin Coinjoin-Koordinatoren entwickelt. Ihre Aufgabe ist es, die verschiedenen Nutzer miteinander in Kontakt zu bringen und die Informationen zu übermitteln, die zur Durchführung der gemeinsamen Transaktion benötigt werden.

BTC204

Aber wie können wir sicherstellen, dass der Koordinator niemals die Bitcoins der Nutzer in die Hände bekommt, und wie können wir trotz der Tatsache, dass er derjenige ist, der die Coinjoin-Transaktion aufbaut, sicherstellen, dass er die Ein- und Ausgaben der Nutzer nicht verknüpfen kann, was ein Vertraulichkeitsleck darstellen könnte?

Chaums blinde Unterschriften

Moderne Coinjoin-Implementierungen verwenden die Blindsignaturen von David Chaum, um die Weitergabe von Informationen zu vermeiden. Werfen wir einen kurzen Blick darauf, wie diese Blindsignaturen funktionieren.

Die Blindsignatur nach Chaum ist eine Form der digitalen Signatur, bei der der Aussteller einer Signatur den Inhalt der Nachricht, die er signiert, nicht kennt. Die Signatur kann jedoch anhand der Originalnachricht überprüft werden. Diese Technik wurde 1983 von dem Kryptographen David Chaum entwickelt.

BTC204

Nehmen wir das Beispiel eines Unternehmens, das ein vertrauliches Dokument, z. B. einen Vertrag, authentifizieren möchte, ohne dessen Inhalt preiszugeben. Das Unternehmen wendet ein Maskierungsverfahren an, das das Originaldokument kryptografisch umwandelt, so dass es umkehrbar ist. Dieses geänderte Dokument wird an eine Zertifizierungsstelle gesandt, die eine Blindsignatur anbringt, ohne den zugrunde liegenden Inhalt zu kennen. Nachdem das Unternehmen das signierte Dokument erhalten hat, entlarvt es die Signatur. Das Ergebnis ist ein Originaldokument, das durch die Unterschrift der Behörde beglaubigt ist, ohne dass die Behörde jemals den ursprünglichen Inhalt gesehen hat.

Die Blindsignaturen von Chaum können also die Authentizität eines Dokuments bescheinigen, ohne dessen Inhalt zu kennen, und garantieren so sowohl die Vertraulichkeit der Daten des Benutzers als auch die Integrität des signierten Dokuments.

Chaumianische Münzprägung

Sogenannte "Chaumian" Coinjoins kombinieren die Verwendung von Tor und David Chaums Blindsignaturen, um sicherzustellen, dass der Koordinator nicht wissen kann, welche Ausgabe zu welchem Nutzer gehört.

Der Aufbau einer Coinjoin-Transaktion umfasst drei Hauptphasen: Registrierung der Eingaben, Registrierung der Ausgaben und Signatur der Transaktion. Betrachten wir diesen Prozess anhand des Beispiels von Alice, einer der Coinjoin-Teilnehmer. Alle anderen Teilnehmer befolgen die gleichen Schritte wie Alice, jeder für sich.

**Schritt 1: Eingabe der Registrierung

BTC204 BTC204

Schritt 2: Registrierung der Ausgänge

BTC204 BTC204

Schritt 3: Unterzeichnung der Transaktion

BTC204 BTC204

In diesem System ist der Koordinator nicht in der Lage, eine Eingabe mit einer bestimmten Ausgabe zu verknüpfen. Außerdem kann er sich die Gelder der Teilnehmer nicht aneignen, da er nie Zugang zu den privaten Schlüsseln hat, die zum Entsperren ihrer UTXOs benötigt werden. Während des gesamten Prozesses, bis zum Ende von Schritt 3, hat er auch keinen Zugriff auf die Unterschriften. Wenn Alice und die anderen Teilnehmer die globale Transaktion signieren, nachdem sie überprüft haben, dass alles korrekt ist, kann der Koordinator die Transaktion, einschließlich der Ausgaben, nicht mehr ändern, ohne sie ungültig zu machen. Dadurch wird verhindert, dass der Koordinator Bitcoins stiehlt.

Schließlich möchte der Coinjoin-Nutzer bei der Registrierung seines Outputs in der Transaktion ähnliche Garantien haben wie ein Bürger, der an einer Wahl teilnimmt. Es gibt eine Dualität zwischen den öffentlichen und privaten Aspekten dieser Aktionen. Der Wähler möchte nicht, dass sein Stimmzettel mit seiner Identität in Verbindung gebracht wird; der Coinjoin-Benutzer möchte nicht, dass sein Output mit seinem Input in Verbindung gebracht wird. Wenn es dem Koordinator oder einer anderen Partei gelingt, eine Verbindung zwischen einer Eingabe und einer Ausgabe herzustellen, verliert das Coinjoin jedes Interesse. Wie oben erläutert, muss der Coinjoin als Unterbrechung in der Geschichte einer Münze funktionieren. Diese Unterbrechung erfolgt genau deshalb, weil es unmöglich ist, eine bestimmte Eingabe mit einer bestimmten Ausgabe in der Coinjoin-Transaktion zu verbinden (prospektive Anonset) und umgekehrt (retrospektive Anonset).

Andererseits gibt es den öffentlichen Aspekt: Der Wähler möchte sicher sein, dass sein Stimmzettel in der Wahlurne enthalten ist; ebenso möchte der Coinjoin-Nutzer sicher sein, dass seine Ausgabe in der Coinjoin-Transaktion enthalten ist. In der Tat müssen die Coinjoin-Teilnehmer unbedingt in der Lage sein, das Vorhandensein ihres Outputs zu überprüfen, bevor sie die Transaktion unterzeichnen, da der Koordinator sonst das Geld stehlen könnte.

Genau diese beiden öffentlichen und privaten Aspekte, die durch die Verwendung von David Chaums Blindsignaturen ermöglicht werden, garantieren den Teilnehmern an Chaumian Coinjoins, dass ihre Bitcoins nicht gestohlen werden und dass ihr Geld nicht zurückverfolgt werden kann.

Wer hat das Coinjoin-Konzept erfunden?

Es ist schwer zu sagen, wer die Coinjoin-Idee zuerst in Bitcoin eingeführt hat und wer auf die Idee kam, David Chaums Blindsignaturen in diesem Zusammenhang zu verwenden. Es wird oft angenommen, dass es Gregory Maxwell war, der es zum ersten Mal in einer Nachricht auf BitcoinTalk im Jahr 2013 erwähnte:

*"Verwendung von Chaums Blindsignaturen: Die Benutzer melden sich an und geben Eingaben (und tauschen Adressen aus) sowie eine kryptografisch verblendete Version der Adresse, an die sie ihre privaten Teile senden wollen; der Server signiert die Token und sendet sie zurück. Der Server signiert die Token und sendet sie zurück. Die Benutzer stellen die Verbindung anonym wieder her, demaskieren ihre Ausgangsadressen und senden sie zurück an den Server. Der Server kann sehen, dass alle Ausgaben von ihm signiert wurden und dass folglich alle Ausgaben von gültigen Teilnehmern stammen. Später verbinden sich die Teilnehmer erneut und melden sich an Maxwell, G. (2013, 22. August). CoinJoin: Bitcoin-Privatsphäre für die reale Welt. BitcoinTalk Forum. https://bitcointalk.org/index.php?topic=279249.0

BTC204

Es gibt jedoch weitere frühere Erwähnungen, sowohl für Chaum-Signaturen als Teil des Mixens, als auch für Coinjoins. Im Juni 2011 präsentierte Duncan Townsend auf BitcoinTalk einen Mixer, der Chaum-Signaturen in einer Weise verwendet, die modernen Chaumian Coinjoins sehr ähnlich ist.

Im gleichen Thread finden wir [eine Nachricht von hashcoin als Antwort auf Duncan Townsend] (https://bitcointalk.org/index.php?topic=12751.msg315793#msg315793), um seinen Mixer zu verbessern. Der in dieser Nachricht beschriebene Prozess ist genau das, worum es bei Coinjoins geht. Ein ähnliches System wird auch in einer Nachricht von Alex Mizrahi aus dem Jahr 2012 erwähnt, als er die Schöpfer von Tenebrix beriet, einem der ersten Altcoins, der später als Grundlage für die Schaffung von Litecoin diente. Auch der Begriff "Coinjoin" selbst soll nicht von Greg Maxwell geprägt worden sein, sondern auf eine Idee von Peter Todd zurückgehen.

BTC204

Zerolink

Zerolink ist ein umfassendes Mischprotokoll, das Chaumian-Coinjoins und verschiedene Strategien zum Schutz der Anonymität der Nutzer vor verschiedenen Formen der Kettenanalyse umfasst, insbesondere durch die Minimierung von Fehlern im Zusammenhang mit der Portfolioverwaltung. Dieses Protokoll [wurde von nopara73 und TDevD im Jahr 2017 vorgestellt] (https://github.com/nopara73/ZeroLink/blob/master/README.md).

BTC204

Wie der Name schon sagt, besteht das Prinzip von Zerolink darin, Coinjoin-Transaktionen zu schaffen, die sicherstellen, dass die Verbindungen zwischen Inputs und Outputs nicht zurückverfolgt werden können. Dies wird erreicht, indem sichergestellt wird, dass alle Outputs vollkommen identische Beträge haben.

BTC204

Eine wichtige Präventivmaßnahme von Zerolink besteht darin, unvermischte UTXOs vollständig von gemischten UTXOs zu trennen, indem getrennte kryptographische Schlüsselsätze oder sogar getrennte Portfolios verwendet werden. Dadurch wird die "pre-mix"-Brieftasche, die für Teile vor dem Mischen bestimmt ist, von der "post-mix"-Brieftasche unterschieden, die für Teile reserviert ist, die gemischt wurden.

BTC204

Diese strikte Trennung der UTXOs dient vor allem dazu, versehentliche Verbindungen zwischen einem gemischten UTXO und einem nicht gemischten UTXO zu verhindern. Kommt es nämlich zu solchen Verknüpfungen, wird die Wirksamkeit des Coinjoin auf dem gemischten UTXO aufgehoben, ohne dass der Nutzer dies bemerkt, und damit die Vertraulichkeit eines UTXO gefährdet, von dem er dachte, er habe es gebrochen. Diese Verknüpfungen können entweder durch die Wiederverwendung von Adressen bei der Sicherung eines gemischten UTXO mit einem unvermischten UTXO oder durch die Anwendung von CIOH (Common-Input-Ownership Heuristic) erfolgen, wenn der Nutzer gemischte und unvermischte UTXOs als Inputs für dieselbe Transaktion verwendet. Durch die Trennung von Pre-Mix- und Post-Mix-Portfolio vermeiden wir solche unbeabsichtigten Assoziationen und schützen den Nutzer vor unbeabsichtigten Fehlern.

BTC204

Diese Trennung bietet auch die Möglichkeit, auf der Ebene der Portfoliosoftware unterschiedliche Regeln für Pre-Mix- und Post-Mix-Portfolios anzuwenden. Im Post-Mixing-Portfolio kann die Software beispielsweise die Zusammenführung von UTXOs in Inputs verbieten, um die Anwendung von CIOH zu verhindern, die den Anonset des Nutzers gefährden würde. Es ist auch möglich, die Verwendung von Skripten und Transaktionsoptionen (wie z. B. RBF-Meldungen) zu standardisieren, um eine Identifizierung durch Fingerabdrücke der Brieftasche zu verhindern.

Derzeit ist Whirlpool die einzige Coinjoin-Implementierung, die das Zerolink-Protokoll konsequent anwendet. Im nächsten Kapitel werden wir einen Blick auf die verschiedenen Coinjoin-Implementierungen werfen, die es gibt, sowie auf die Vor- und Nachteile der einzelnen Implementierungen.

Coinjoin-Implementierungen

*Im Jahr 2024 werden wir Zeuge großer Veränderungen bei den Tools, die Nutzern zur Verfügung stehen, die Coinjoins auf Bitcoin durchführen möchten. Wir befinden uns derzeit an einem Wendepunkt, und der Coinjoin-Markt erfährt eine große Umstrukturierung. Dieses Kapitel wird sicherlich im Laufe der Zeit aktualisiert werden

Im Moment gibt es hauptsächlich 3 verschiedene Coinjoin-Implementierungen auf Bitcoin:

Jede dieser Implementierungen zielt darauf ab, die Geschichte der UTXOs durch Coinjoin-Transaktionen zu durchbrechen. Ihre Mechanismen unterscheiden sich jedoch erheblich. Es ist daher wichtig zu verstehen, wie sie funktionieren, damit Sie die für Ihre Bedürfnisse am besten geeignete Option wählen können.

JoinMarket

JoinMarket, 2015 von Adam Gibson und Chris Belcher gegründet, hebt sich durch sein einzigartiges Modell zur Verbindung von Nutzern deutlich von anderen Coinjoin-Implementierungen ab. Das System basiert auf einem P2P-Tauschmarkt, bei dem einige Nutzer, die "Maker", ihre Bitcoins zum Mischen zur Verfügung stellen, während andere, die "Taker", dieses Geld nutzen, um gegen eine Gebühr Coinjoins zu machen.

BTC204

Bei diesem Modell stellen die "Maker" ihre Bitcoins den "Takern" zur Verfügung und erhalten dafür eine Gebühr. Die Taker wiederum zahlen dafür, dass sie die Bitcoins der Maker nutzen, um ihre eigenen Coinjoin-Transaktionen durchzuführen. Die Gebühren für die Dienstleistungen variieren je nach der eingenommenen Rolle: die "Maker" kassieren Gebühren für das Anbieten von Liquidität, während die "Taker" die Gebühren bezahlen. Der Markt funktioniert frei und ohne Nutzungsauflagen.

Einer der Hauptnachteile von JoinMarket ist seine Komplexität, die ein gewisses Maß an Vertrautheit mit Terminals erfordert, um es effektiv zu nutzen. Während diese Komplexität für den erfahrenen Benutzer kein Hindernis darstellt, kann sie den Zugang für die breite Öffentlichkeit einschränken. Mit der kürzlichen Einführung einer Webschnittstelle namens JAM ist die Nutzung jedoch etwas einfacher geworden.

BTC204

Quelle: JAM

Die technische Barriere bleibt jedoch ein großes Hindernis. Im Coinjoin-Ökosystem, in dem die Vertraulichkeit durch die Anzahl der Teilnehmer verstärkt wird, wirkt sich jede Einschränkung der Zugänglichkeit direkt auf die verfügbare Liquidität aus, die ein entscheidender Faktor für die Effizienz der Mischung ist. Da Bitcoin bereits eine Nische im Bereich der Finanztransaktionen darstellt, wird die Verwendung von Coinjoin als eine Unternische betrachtet, und JoinMarket stellt einen noch spezielleren Teil davon dar, was daher sein Potenzial zur Erhöhung der Anonsets seiner Nutzer einschränkt.

Trotz seines innovativen P2P-Verknüpfungsmodells für Coinjoiners weist JoinMarket einige erhebliche Nachteile auf, insbesondere im Hinblick auf die Transaktionsstruktur. Im Gegensatz zu anderen Implementierungen wie Whirlpool garantiert JoinMarket keine perfekte Gleichheit zwischen den Outputs, und es ist möglich, deterministische Verbindungen zwischen Inputs und Outputs zu verfolgen. Außerdem gibt es keine Instrumente, die verhindern, dass bereits gemischte Teile erneut gemischt werden, was die von den Nutzern gewünschte Vertraulichkeit beeinträchtigen könnte.

Schließlich ist das JoinMarket-Konzept zwar interessant, insbesondere für diejenigen, die an einem dynamischen Liquiditätsmarkt interessiert sind, aber seine strukturellen Schwächen und seine technische Komplexität machen es meiner Meinung nach sowohl für Anfänger als auch für Experten, die eine Coinjoin-Implementierung suchen, weniger interessant.

Wabisabi

Wabisabi ist eine weitere Coinjoin-Implementierung mit einem Ansatz, der die Koordination von Transaktionen zentralisiert. Dieses Modell wurde von Ádám Ficsór (nopara73), Yuval Kogman, Lucas Ontivero und István András Seres im Jahr 2021 entwickelt und im darauffolgenden Jahr in die Software Wasabi 2.0 integriert. Wabisabi ist genau genommen eine Weiterentwicklung des 2018 eingeführten Wasabi-Software-Coinjoin-Modells.

BTC204

Gegen Ende der 2010er Jahre verwendete Wasabi eine völlig andere Coinjoin-Transaktionsstruktur als Whirlpool. Wasabi verwendete sehr große Coinjoin-Transaktionen mit Dutzenden von Teilnehmern, um die Anonsets seiner Teilnehmer zu erhöhen. Im Gegensatz dazu entschied sich Whirlpool für mehrere kleine Transaktionen, wodurch die Anonsets mit jedem Zyklus exponentiell ansteigen konnten.

Auch die Methoden der Devisenverwaltung unterschieden die beiden Implementierungen. Bei Whirlpool wurden die Devisen vor den Coinjoin-Zyklen dank TX0 von den UTXOs ausgeschlossen und isoliert, ein Konzept, das ich im nächsten Kapitel näher erläutern werde. Bei Wasabi hingegen bildeten die Devisen einen der Ausgänge der Coinjoin-Transaktion, wobei deterministische Verbindungen zwischen bestimmten Eingängen und Ausgängen aufrechterhalten wurden.

BTC204

Mit Wabisabi hat Wasabi Version 2.0 seinen Ansatz für Coinjoin-Transaktionen an den von Whirlpool angepasst. Obwohl die Coinjoin-Transaktionen nach wie vor sehr groß sind, ist es nun möglich, mehrere aufeinanderfolgende Zyklen nach dem Vorbild von Whirlpool zu verketten. Besonderes Augenmerk wurde auch auf die Verwaltung des Wechselkurses gelegt: Im Gegensatz zu Wasabi 1.0, bei dem der Wechselkurs direkt an die Eingaben des Benutzers gekoppelt war, versucht Wabisabi, den Wechselkurs in mehrere kleine Beträge aufzuteilen, die für alle Teilnehmer in gleicher Höhe gelten.

Veranschaulichen wir dies anhand eines vereinfachten Beispiels mit nur 2 Benutzern: Alice möchte 115.000 Sats mischen und Bob 210.000 Sats. Ohne Berücksichtigung der Gebühren hätte eine Coinjoin-Transaktion mit Wasabi 1.0 drei Ausgaben von 100.000 Sats erzeugt, plus einen Austausch von 15.000 Sats für Alice und einen Austausch von 10.000 Sats für Bob. Die Tausch-Outputs wären nach wie vor mit den Inputs verknüpft:

BTC204

Unter Wabisabi hätte dieselbe Transaktion zu 3 Outputs von 100.000 Sats und 5 Outputs von 5.000 Sats geführt, so dass der Austausch nicht direkt mit einem bestimmten Input verbunden werden konnte:

BTC204

Ich persönlich bin der Meinung, dass die Devisenverwaltung von Wabisabi mehrere Risiken birgt, die ihre Wirksamkeit in Bezug auf die Vertraulichkeit beeinträchtigen könnten:

Im Gegensatz zu Whirlpool, das das ZeroLink-Protokoll einsetzt, das eine strikte Trennung zwischen vorgemischten und nachgemischten UTXOs gewährleistet, hält Wabisabi diese strikte Trennung nicht ein. Außerdem gab es Probleme mit der Wiederverwendung von Adressen durch einige Wasabi-Kunden, was für den Nutzer natürlich sehr nachteilig ist.

In Wasabi Version 2.0 wurde eine neue Coinjoin-Gebührenpolitik eingeführt. Von nun an werden die Koordinationsgebühren für UTXOs über 0,01 Bitcoin auf 0,3 % festgelegt, während für kleinere UTXOs diese Gebühren in voller Höhe angeboten werden. Darüber hinaus sind Remixes für diese kleineren UTXOs kostenlos, obwohl die Mining-Gebühren für alle Transaktionen, einschließlich Remixes, weiterhin vom Nutzer zu zahlen sind.

Dies steht im Gegensatz zur Politik von Whirlpool, wo die Gebühren unabhängig von der Größe der erzielten Anonsets fest bleiben. Bei Wasabi 2.0 entfallen zwar die Koordinationsgebühren für kleine UTXOs, aber der Nutzer muss weiterhin Mining-Gebühren für alle Transaktionen, einschließlich Remixes, zahlen.

Während ich diese Zeilen schreibe, ist die Nutzung von Wabisabi aufgrund der jüngsten Ereignisse deutlich komplexer geworden. Nach der Verhaftung der Gründer von Samourai Wallet kündigte zkSNACKs, das Unternehmen, das die Entwicklung von Wasabi finanziert und verwaltet, an, dass sein Coinjoin-Koordinator-Service am 1. Juni 2024 eingestellt wird. Dieser Koordinator, der standardmäßig auf Wasabi eingerichtet war, war für den größten Teil der Liquidität verantwortlich.

Mit dem Wegfall dieses Hauptkoordinators müssen sich die Nutzer nun mit neuen, unabhängigen Koordinatoren verbinden. Diese Änderung wirft eine Reihe von Bedenken auf: Einerseits verfügen die neuen Koordinatoren möglicherweise nicht über ausreichende Liquidität, was die Wirksamkeit von Coinjoins im Hinblick auf die Vertraulichkeit verringert. Andererseits besteht das Risiko, auf einen böswilligen Koordinator zu stoßen. Diese Situation birgt erhebliche neue Risiken für diejenigen, die Wabisabi nutzen wollen.

Abgesehen von den technischen Problemen wirft die Entscheidung von zkSNACKs, dem Unternehmen hinter Wasabi, die Dienste eines String-Analyseunternehmens in Anspruch zu nehmen, um Coinjoin-Teilnehmer zu filtern, ernsthafte ethische und strategische Fragen auf. Der ursprüngliche Gedanke war, die Nutzung von Coinjoin auf Wasabi durch Kriminelle zu verhindern, ein Schritt, der legitim erscheinen mag. Es ist jedoch paradox: Man zahlt Gebühren an einen Koordinator, dessen Hauptaufgabe darin besteht, die Vertraulichkeit der Nutzer zu wahren, und finanziert dann ein Unternehmen, dessen Ziel es ist, eben diese Vertraulichkeit zu gefährden.

Noch besorgniserregender ist das Prinzip der Filterung, das im krassen Gegensatz zur Philosophie von Bitcoin steht, ein offenes, unzensiertes Finanzsystem anzubieten. Es mag zwar gerechtfertigt erscheinen, kriminelle Aktivitäten ausschließen zu wollen, aber diese Filterung könnte auch Personen betreffen, deren Handlungen, obwohl sie in bestimmten Kontexten als illegal eingestuft werden, moralisch vertretbar oder gesellschaftlich nützlich sein könnten. Das Beispiel von Edward Snowden veranschaulicht diese Dichotomie perfekt: Von einigen Regierungen wird er wegen seiner Enthüllungen als Krimineller angesehen, von anderen als Whistleblower, der im öffentlichen Interesse gehandelt hat. Diese Komplexität unterstreicht die potenzielle Gefahr der Filterung, die, auch wenn sie gut gemeint ist, letztlich die Rechte und die Sicherheit der rechtmäßigen Nutzer untergraben kann. Ich hätte auch Aktivisten und Journalisten erwähnen können, die unter bestimmten autoritären Regimen verfolgt werden.

Wie Sie inzwischen wissen, bevorzuge ich definitiv das Whirlpool-Modell für Coinjoins auf Bitcoin. Dieses System zeichnet sich durch seine Strenge aus und bietet hervorragende Garantien für die Vertraulichkeit. Es ist auch das einzige, das eine Mischung bietet, die in einem mathematischen Kontext als perfekt gilt. Meiner Meinung nach stellt dieses Modell die Zukunft von Coinjoins auf Bitcoin dar. Ich lade Sie ein, dieses Modell im nächsten Kapitel näher zu erkunden.

So funktioniert Whirlpool

Was Whirlpool von anderen Coinjoin-Methoden unterscheidet, ist die Verwendung von "ZeroLink"-Transaktionen, die sicherstellen, dass es absolut keine mögliche technische Verbindung zwischen allen Inputs und Outputs gibt. Diese perfekte Mischung wird durch eine Struktur erreicht, bei der jeder Teilnehmer eine identische Menge an Input (mit Ausnahme der Mining-Gebühren) beisteuert und Outputs in vollkommen gleicher Höhe erzeugt.

Dieser restriktive Ansatz bei den Inputs verleiht den Coinjoin-Transaktionen von Whirlpool ein einzigartiges Merkmal: das völlige Fehlen deterministischer Verknüpfungen zwischen Inputs und Outputs. Mit anderen Worten: Jeder Output hat die gleiche Wahrscheinlichkeit, einem beliebigen Teilnehmer zugeordnet zu werden, bezogen auf alle anderen Outputs in der Transaktion.

BTC204

So funktioniert Whirlpool

Ursprünglich war die Anzahl der Teilnehmer an jedem Whirlpool Coinjoin auf 5 begrenzt, mit 2 neuen Teilnehmern und 3 Remixern (wir werden diese Konzepte später erklären). Der im Jahr 2023 beobachtete Anstieg der On-Chain-Transaktionsgebühren veranlasste die Teams von Samourai jedoch, ihr Modell zu überdenken, um die Vertraulichkeit zu verbessern und gleichzeitig die Kosten zu senken. So kann der Koordinator unter Berücksichtigung der Gebührenmarktsituation und der Anzahl der Teilnehmer nun Coinjoins mit 6, 7 oder 8 Teilnehmern organisieren. Diese erweiterten Sitzungen werden als "Surge Cycles" bezeichnet. Es ist wichtig zu wissen, dass unabhängig von der Konfiguration immer nur 2 neue Teilnehmer an Whirlpool Coinjoins teilnehmen.

So sind Whirlpool-Transaktionen durch eine identische Anzahl von Eingängen und Ausgängen gekennzeichnet, die sein können:

BTC204 BTC204 BTC204 BTC204

Das Modell von Whirlpool basiert auf kleinen Coinjoin-Transaktionen. Im Gegensatz zu Wabisabi und JoinMarket, bei denen die Robustheit von Anonsets auf dem Volumen der Teilnehmer in einem einzigen Zyklus (oder auf einigen wenigen Zyklen) basiert, stützt sich Whirlpool auf die Abfolge mehrerer kleiner Zyklen.

Bei diesem Modell zahlen die Nutzer nur dann Gebühren, wenn sie zum ersten Mal einem Pool beitreten, so dass sie ohne zusätzliche Kosten an einer Vielzahl von Remixen teilnehmen können. Neueinsteiger zahlen die Mining-Gebühren für Remixer.

Mit jedem weiteren Coinjoin, an dem ein Stück teilnimmt, sowie mit den in der Vergangenheit angetroffenen Peers wachsen die Anonsets exponentiell. Das Ziel ist es, diese kostenlosen Remixe zu nutzen, die jedes Mal dazu beitragen, die Dichte der Anonsets, die mit jedem gemischten Stück verbunden sind, zu verstärken.

BTC204

Bei der Entwicklung des Whirlpools wurden zwei wichtige Anforderungen berücksichtigt:

Die Entwickler von Samourai Wallet haben sich bei der Entwicklung von Whirlpool von diesen Vorgaben leiten lassen und eine begrenzte Anzahl von Teilnehmern pro Zyklus festgelegt. Eine zu geringe Anzahl hätte die Effizienz des Coinjoin beeinträchtigt und die pro Zyklus generierten Anonsets drastisch reduziert, während eine zu hohe Anzahl zu Verwaltungsproblemen bei mobilen Anwendungen geführt und den Zyklusfluss behindert hätte.

Schließlich ist es bei Whirlpool nicht notwendig, eine hohe Anzahl von Teilnehmern pro Coinjoin zu haben, da die Anonsets auf der Akkumulation mehrerer Coinjoin-Zyklen beruhen. Das wichtigste Prinzip dabei ist die Homogenität der UTXOs aller Teilnehmer, da dies eine perfekte Durchmischung und damit den vollen Nutzen aus den Misch- und Remixing-Zyklen gewährleistet.

Coinjoin-Pools und Gebühren

Damit diese Mehrfachzyklen die Anonsets der gemischten Teile erhöhen, ist ein bestimmter Rahmen erforderlich, um die Menge der verwendeten UTXOs zu begrenzen. Whirlpool definiert verschiedene Pools.

Ein Pool stellt eine Gruppe von Nutzern dar, die sich zusammenschließen möchten und sich auf eine bestimmte Menge an UTXOs einigen, um den Coinjoin-Prozess zu optimieren und gleichzeitig eine perfekte Homogenität der Teile zu gewährleisten. Jeder Pool legt eine feste UTXO-Menge fest, an die sich der Nutzer halten muss, um teilnehmen zu können. Um also Coinjoin mit Whirlpool durchzuführen, müssen Sie einen Pool auswählen. Die folgenden Pools sind derzeit verfügbar:

Wenn Sie einem Pool mit Ihren Bitcoins beitreten, werden diese aufgeteilt, um UTXOs zu erzeugen, die mit denen der anderen Teilnehmer des Pools vollkommen homogen sind. Jeder Pool hat ein maximales Limit, so dass Sie bei Beträgen, die dieses Limit überschreiten, entweder zwei separate Einträge in denselben Pool vornehmen oder zu einem anderen Pool mit einem höheren Betrag wechseln müssen:

| Pool (Bitcoin) | Maximaler Betrag pro Eintrag (Bitcoin) |

|----------------|--------------------------------------|

| 0,5 | 35 |

| 0,05 | 3,5 |

| 0,01 | 0,7 |

| 0,001 | 0,025 |

Ein UTXO wird als zu einem Pool gehörig betrachtet, wenn er bereit ist, in einen Coinjoin integriert zu werden. Dies bedeutet jedoch nicht, dass der Nutzer den Besitz daran verliert. Wie wir in den ersten Kapiteln dieses Abschnitts gesehen haben, behalten Sie während der verschiedenen Mischungszyklen die volle Kontrolle über Ihre Schlüssel und folglich auch über Ihre Bitcoins. Darin unterscheidet sich die Coinjoin-Technik von anderen zentralisierten Mischtechniken.

Um einem Coinjoin-Pool beizutreten, müssen Sie eine Servicegebühr und eine Mining-Gebühr zahlen. Die Servicegebühren sind für jeden Pool festgelegt und sollen die Teams entlohnen, die für die Entwicklung und Wartung von Whirlpool verantwortlich sind.

Die Servicegebühr für die Nutzung des Whirlpools ist nur einmal beim Beitritt zum Pool zu entrichten. Sobald Sie beigetreten sind, können Sie an einer unbegrenzten Anzahl von Remixen teilnehmen, ohne dass zusätzliche Kosten anfallen. Hier finden Sie die aktuellen Festpreise für die einzelnen Pools:

| Pool (bitcoin) | Teilnahmegebühr (bitcoin) |

|----------------|---------------------------------|

| 0,5 | 0,0175 |

| 0,05 | 0,00175 |

| 0,01 | 0,0005 (50.000 Sats) |

| 0,001 | 0,00005 (5.000 Sats) |

Diese Gebühren fungieren im Wesentlichen als Eintrittskarte für den gewählten Pool, unabhängig davon, wie viel Sie in coinjoin eingezahlt haben. Ob Sie also mit genau 0,01 BTC oder 0,5 BTC in den 0,01-Pool einsteigen, die Gebühren bleiben in absoluten Zahlen die gleichen.

Bevor der Benutzer mit Whirlpool-Coinjoins fortfährt, kann er zwischen 2 Strategien wählen:

Es ist im Allgemeinen nicht ratsam, mehrere gemischte UTXOs nach Coinjoin-Zyklen zusammenzuführen, da dies die erworbene Vertraulichkeit gefährden könnte, insbesondere aufgrund der Common-Input-Ownership-Heuristik (CIOH: Common-Input-Ownership-Heuristic). Folglich kann es sinnvoll sein, einen größeren Pool zu wählen, auch wenn dies bedeutet, mehr zu bezahlen, um zu vermeiden, dass zu viele UTXOs mit geringem Wert ausgegeben werden. Der Benutzer muss diese Kompromisse abwägen, um den von ihm bevorzugten Pool zu wählen.

Neben der Servicegebühr muss auch die Mining-Gebühr für jede Bitcoin-Transaktion berücksichtigt werden. Als Whirlpool-Nutzer müssen Sie die Mining-Gebühr für die Vorbereitungstransaktion (Tx0) sowie für den ersten Coinjoin zahlen. Alle nachfolgenden Remixes werden dank des Modells von Whirlpool, das auf der Bezahlung von Neueinsteigern basiert, kostenlos sein.

In der Tat sind bei jedem Whirlpool-Coinjoin 2 Nutzer unter den Inputs neue Marktteilnehmer. Die anderen Inputs stammen von Remixern. Infolgedessen werden die Mining-Kosten für alle Teilnehmer der Transaktion von diesen 2 neuen Teilnehmern getragen, die dann auch von kostenlosen Remixen profitieren können:

BTC204

Dank dieses Gebührensystems hebt sich Whirlpool deutlich von anderen Coinjoin-Implementierungen ab, da die Anonymität der UTXOs nicht proportional zum Preis ist, den der Nutzer zahlt. Infolgedessen ist es möglich, ein wesentlich höheres Maß an Anonymität zu erreichen, indem man nur die Pool-Eintrittsgebühr und die Mining-Gebühr für 2 Transaktionen (die "Tx0" und den anfänglichen Mix) bezahlt.

Es ist wichtig zu beachten, dass der Nutzer auch die Mining-Gebühren zahlen muss, um seine UTXOs aus dem Pool abzuziehen, nachdem er seine mehreren Coinjoin-Vorgänge abgeschlossen hat, es sei denn, er hat die Option "Mix to" gewählt, die eine externe Adresse angibt, die die Gelder direkt aus dem Coinjoin erhält, ohne zusätzliche Transaktion.

HD-Portfolio-Konten

Um einen Coinjoin über Whirlpool zu erstellen, muss die Wallet mehrere separate Konten erstellen. Dies ist das Prinzip hinter dem ZeroLink-Protokoll. Im Rahmen eines HD-Portfolios (Hierarchical Deterministic) stellt ein Konto einen von den anderen vollständig isolierten Bereich dar, wobei diese Trennung auf der Ebene der dritten Tiefe der Portfoliohierarchie, d. h. auf der Ebene "xpub", erfolgt.

BTC204

Eine HD-Wallet kann theoretisch bis zu 2^(31) verschiedene Konten ableiten. Das erste Konto, das standardmäßig bei allen Bitcoin-Wallets verwendet wird, entspricht dem Index "0".

Für Portfolios, die an Whirlpool angepasst sind, werden 4 Konten verwendet, um den Anforderungen des ZeroLink-Prozesses gerecht zu werden:

Jedes dieser Konten erfüllt eine bestimmte Funktion im Coinjoin-Prozess, die wir in den folgenden Abschnitten untersuchen werden.

Alle diese Konten sind mit einem einzigen Seed verknüpft, so dass der Nutzer mit seiner Recovery-Phrase und gegebenenfalls seiner Passphrase wieder Zugriff auf alle seine Bitcoins erhält. Während des Wiederherstellungsvorgangs muss die Software jedoch über die verschiedenen verwendeten Kontoindizes informiert werden.

Werfen wir einen Blick auf die verschiedenen Stadien eines Whirlpool-Coinjoin innerhalb dieser Konten.

Der TX0

Der Ausgangspunkt eines jeden Whirlpool Coinjoin ist das Einzahlungskonto. Dies ist das Konto, das Sie automatisch verwenden, wenn Sie eine neue Bitcoin-Brieftasche erstellen. Diesem Konto müssen die Bitcoins, die Sie mischen möchten, gutgeschrieben werden.

Tx0" ist der erste Schritt im Mischprozess von Whirlpool. Er dient dazu, die UTXOs für das Coinjoin vorzubereiten und auszugleichen, indem sie in Einheiten unterteilt werden, die der Menge des ausgewählten Pools entsprechen, um eine homogene Mischung zu gewährleisten. Die so ausgeglichenen UTXOs werden dann auf das Premix-Konto geschickt. Die Differenz, die nicht in den Pool einfließen kann, wird auf ein spezielles Konto überwiesen: die schlechte Bank (oder "doxic change").

Diese erste "Tx0"-Transaktion wird auch zur Zahlung der Servicegebühr an den Coinjoin-Koordinator verwendet. Im Gegensatz zu den folgenden Schritten ist diese Transaktion nicht gemeinschaftlich, so dass der Nutzer die vollen Kosten des Minings tragen muss:

BTC204

In diesem Beispiel einer "Tx0"-Transaktion wird eine Eingabe von "372.000 sats" von unserem Einzahlungskonto in mehrere Ausgabe-UTXOs aufgeteilt, die sich wie folgt aufteilen:

Hier ist zum Beispiel ein echter Whirlpool Tx0 (nicht meiner): edef60744f539483d868caff49d4848e5cc6e805d6cdc8d0f9bdbbaedcb5fc46

BTC204

Die doxischen Veränderungen

Der Überschuss, der nicht in den Pool integriert werden konnte, was in diesem Fall 40.000 Sats entspricht, wird auf das Bad Bank-Konto umgeleitet, das auch als "doxischer Tausch" bezeichnet wird, um eine strikte Trennung von den anderen UTXOs im Portfolio zu gewährleisten.

Dieser UTXO ist für die Vertraulichkeit des Nutzers gefährlich, da er nicht nur noch an seine Vergangenheit und damit möglicherweise an die Identität seines Besitzers gebunden ist, sondern auch als Eigentum eines Nutzers vermerkt ist, der einen Coinjoin durchgeführt hat.

BTC204

Wenn dieser UTXO mit gemischten Ausgaben zusammengeführt wird, verlieren letztere die gesamte Vertraulichkeit, die sie während der Coinjoin-Zyklen erlangt haben, insbesondere aufgrund der CIOH (Common-Input-Ownership-Heuristik). Wird sie mit anderen doxischen Änderungen zusammengeführt, riskiert der Benutzer den Verlust der Vertraulichkeit, da sie die verschiedenen Coinjoin-Zyklus-Einträge miteinander verbindet. Sie sollte daher mit Vorsicht behandelt werden. Wir werden im letzten Abschnitt dieses Kapitels näher auf die Verwaltung dieser UTXOs doxxic eingehen.

Die ursprüngliche Mischung

Nach Tx0 werden die ausgeglichenen UTXOs an das Premix-Konto unseres Portfolios gesendet, bereit, in ihren ersten Coinjoin-Zyklus, auch bekannt als "Initial Mix", eingeführt zu werden. Wenn, wie in unserem Beispiel, der Tx0 mehrere UTXOs zum Mischen erzeugt, wird jeder von ihnen in einen separaten Anfangsmix integriert.

Am Ende dieses ersten Mixes wird das Premix-Konto leer sein, während unsere Coins, nachdem wir die Mining-Gebühren für diesen ersten Coinjoin bezahlt haben, genau an den vom gewählten Pool festgelegten Betrag angepasst werden. In unserem Beispiel werden unsere anfänglichen UTXOs von 108.000 sats auf genau 100.000 sats reduziert.

BTC204

Remixe

Nach der ersten Mischung werden die UTXOs auf das Postmix-Konto übertragen. Dieses Konto sammelt bereits gemischte UTXOs und solche, die zum Remixen anstehen. Wenn der Whirlpool-Kunde aktiv ist, stehen die UTXOs auf dem Postmix-Konto automatisch für Remixe zur Verfügung und werden nach dem Zufallsprinzip für die Teilnahme an diesen neuen Zyklen ausgewählt.

Zur Erinnerung: Remixe sind dann zu 100 % kostenlos: Es fallen keine zusätzlichen Servicegebühren oder Mining-Gebühren an. Der Verbleib von UTXOs auf dem Postmix-Konto erhält daher ihren Wert und verbessert gleichzeitig ihre Anonsets. Deshalb ist es wichtig, diese Münzen an mehreren Coinjoin-Zyklen teilnehmen zu lassen. Es kostet Sie absolut nichts und erhöht ihre Anonymität.

Wenn Sie sich entscheiden, gemischte UTXOs auszugeben, können Sie dies direkt von diesem Postmix-Konto aus tun. Wir raten Ihnen, gemischte UTXOs auf diesem Konto aufzubewahren, um von kostenlosen Remixen zu profitieren und um zu verhindern, dass sie den Whirlpool-Kreislauf verlassen, was ihre Vertraulichkeit beeinträchtigen könnte.

Wie verwalten Sie Ihre Postmixe?

Nach der Durchführung von Coinjoin-Zyklen ist es am besten, die UTXOs auf dem Postmix-Konto aufzubewahren und auf eine spätere Verwendung zu warten. Es ist sogar ratsam, sie auf unbestimmte Zeit remixen zu lassen, bis Sie sie ausgeben müssen.

Einige Nutzer könnten in Erwägung ziehen, ihre gemischten Bitcoins in ein durch eine Hardware-Wallet gesichertes Wallet zu transferieren. Dies ist möglich, aber es ist wichtig, die Empfehlungen von Samourai Wallet gewissenhaft zu befolgen, um die erworbene Vertraulichkeit nicht zu gefährden.

Das Mischen von UTXOs ist der häufigste Fehler. Um CIOH (Common-Input-Ownership-Heuristik) zu vermeiden, müssen Sie vermeiden, gemischte UTXOs mit nicht gemischten UTXOs in derselben Transaktion zu kombinieren. Dies erfordert eine sorgfältige Verwaltung Ihrer UTXOs innerhalb Ihres Portfolios, insbesondere im Hinblick auf die Kennzeichnung.

BTC204

Auch bei der Konsolidierung gemischter UTXOs ist Vorsicht geboten. Eine mäßige Konsolidierung ist möglich, wenn Ihre gemischten UTXOs signifikante Anonsets aufweisen, aber dies wird unweigerlich die Vertraulichkeit Ihrer Teile verringern. Achten Sie darauf, dass die Konsolidierungen weder zu umfangreich sind, noch nach einer unzureichenden Anzahl von Remixes durchgeführt werden, da sonst die Gefahr besteht, dass zwischen Ihren UTXOs vor und nach den Coinjoin-Zyklen ableitbare Verbindungen hergestellt werden. Im Zweifelsfall ist es am besten, die UTXOs nach dem Remix nicht zu konsolidieren, sondern sie einzeln in Ihre Hardware-Wallet zu übertragen und jedes Mal eine neue leere Adresse zu erzeugen. Denken Sie auch hier daran, jeden UTXO, den Sie erhalten, zu kennzeichnen.

Es ist auch nicht ratsam, Ihre Postmix-UTXOs auf eine Geldbörse zu übertragen, die Skripte verwendet, die nicht weit verbreitet sind. Wenn Sie beispielsweise Whirlpool von einer Multisig-Brieftasche aus betreten, die P2WSH-Skripte verwendet, ist die Wahrscheinlichkeit gering, dass Sie mit anderen Nutzern gemischt werden, die ursprünglich dieselbe Art von Brieftasche hatten. Wenn Sie Ihre Postmixes wieder in dieselbe Multisig-Wallet mischen, wird der Grad der Vertraulichkeit Ihrer gemischten Bitcoins stark reduziert. Abgesehen von Skripten gibt es viele andere Wallet-Fingerprints, die Ihnen Streiche spielen können.

Wie bei jeder Bitcoin-Transaktion ist es auch hier wichtig, die Empfängeradresse nicht wieder zu verwenden. Jede neue Transaktion muss über eine neue, leere Adresse empfangen werden.

Die einfachste und sicherste Lösung besteht darin, Ihre gemischten UTXOs in ihrem Postmix-Konto ruhen zu lassen, sie neu zu mischen und sie nur zum Ausgeben anzufassen. Samurai- und Sparrow-Geldbörsen bieten zusätzlichen Schutz gegen all diese Risiken der Kettenanalyse. Diese Schutzmaßnahmen helfen Ihnen, Fehler zu vermeiden.

Wie bewältigen Sie den Austausch von Giftstoffen?

Als Nächstes müssen Sie den doxxic exchange, also den exchange, der es nicht in den coinjoin-Pool geschafft hat, sorgfältig verwalten. Diese toxischen UTXOs, die aus der Verwendung von Whirlpool resultieren, stellen ein Risiko für Ihre Privatsphäre dar, da sie eine Verbindung zwischen Ihnen und dem coinjoin-Nutzer herstellen. Es ist daher unerlässlich, sie mit Sorgfalt zu verwalten und sie nicht mit anderen UTXOs zu kombinieren, insbesondere nicht mit gemischten UTXOs.

Hier finden Sie einige Strategien, wie Sie diese nutzen können:

Wie verwende ich Whirlpool?

Nach der Verhaftung der Gründer von Samourai Wallet und der Beschlagnahmung ihrer Server am 24. April 2024 funktioniert das Whirlpool-Tool nicht mehr, auch nicht für diejenigen, die ihr eigenes Dojo haben. Zuvor war es auf Samourai Wallet und Sparrow Wallet verfügbar.

BTC204

Es bleibt jedoch möglich, dass dieses Tool in den kommenden Wochen je nach Ausgang der Versuche reaktiviert oder in anderer Form wieder eingeführt wird. In jedem Fall glaube ich nicht, dass der Bitcoin-Coinjoin-Markt lange ohne Angebot sein wird, denn die Nachfrage ist vorhanden. Und da das Modell von Whirlpool in Bezug auf die Vertraulichkeit am fortschrittlichsten ist, wird es in Zukunft sicherlich das Modell der Wahl für andere Implementierungen sein.

Wir verfolgen diesen Fall und die Entwicklungen bei den entsprechenden Instrumenten genau. Seien Sie versichert, dass wir diesen Lehrgang aktualisieren werden, sobald neue Informationen vorliegen.

Im nächsten Kapitel werden wir herausfinden, was "Anonsets" sind, wie diese Indikatoren berechnet werden und wie sie uns helfen können, die Effizienz von Coinjoin-Zyklen einzuschätzen.

https://planb.network/tutorials/privacy/on-chain/coinjoin-sparrow-wallet-84def86d-faf5-4589-807a-83be60720c8b

https://planb.network/tutorials/privacy/on-chain/coinjoin-samourai-wallet-e566803d-ab3f-4d98-9136-5462009262ef

https://planb.network/tutorials/privacy/on-chain/coinjoin-dojo-c4b20263-5b30-4c74-ae59-dc8d0f8715c2

Anonymitätssets

Nachdem wir untersucht haben, wie Coinjoins funktionieren und welche Probleme mit einer effektiven Vermischung verbunden sind, wollen wir nun herausfinden, wie man ihre Wirksamkeit messen kann. Wie kann man feststellen, ob ein Coinjoining-Prozess effektiv war und welchen Grad an Anonymität ein Teil erlangt hat? Das werden wir in diesem Kapitel mit Anonymitätssets herausfinden.

Eine Erinnerung an die Nützlichkeit von coinjoin

Die Nützlichkeit des Coinjoin liegt in seiner Fähigkeit, eine plausible Bestreitbarkeit herzustellen, indem man seinen Teil in eine Gruppe ununterscheidbarer Teile einbettet. Ziel dieser Aktion ist es, die Verbindungen der Rückverfolgbarkeit zu unterbrechen, sowohl von der Vergangenheit zur Gegenwart als auch von der Gegenwart zur Vergangenheit.

Mit anderen Worten: Ein Analyst, der Ihre Anfangstransaktion (Tx0) beim Eintritt in den Coinjoin-Zyklus kennt, sollte nicht in der Lage sein, mit Sicherheit Ihr UTXO beim Austritt aus dem Remix-Zyklus zu identifizieren (Analyse des Eintritts in den Zyklus und des Austritts aus dem Zyklus).

BTC204

Umgekehrt muss ein Analyst, der Ihren UTXO am Ende der Coinjoin-Zyklen kennt, nicht in der Lage sein, die ursprüngliche Transaktion am Anfang der Zyklen zu bestimmen (Analyse von Zyklusende zu Zyklusanfang).

BTC204

Um zu beurteilen, wie schwierig es für einen Analytiker ist, die Vergangenheit mit der Gegenwart zu verknüpfen und umgekehrt, müssen wir die Größe der Gruppen homogener Teile quantifizieren, in denen Ihr Teil verborgen ist. Dieses Maß sagt uns, wie viele Analysen die gleiche Wahrscheinlichkeit haben. Wenn also die richtige Analyse unter 3 anderen Analysen mit gleicher Wahrscheinlichkeit untergeht, ist der Grad der Verschleierung sehr gering. Wird die richtige Analyse hingegen in einer Gruppe von 20.000 gleich wahrscheinlichen Analysen gefunden, ist Ihr Teil sehr gut versteckt. Die Größe dieser Gruppen stellt Indikatoren dar, die als "Anonsets" bekannt sind.

Verstehen von Anonsets

Anonsets werden als Indikatoren verwendet, um den Grad der Vertraulichkeit eines bestimmten UTXO zu bewerten. Genauer gesagt messen sie die Anzahl der ununterscheidbaren UTXOs innerhalb der Menge, die den untersuchten Teil enthält. Das Erfordernis einer homogenen Menge von UTXOs bedeutet, dass Anonsets normalerweise auf Coinjoin-Zyklen berechnet werden. Die Verwendung dieser Indikatoren ist aufgrund ihrer Homogenität besonders für Whirlpool-Coinjoints relevant.

Gegebenenfalls können Anonsets verwendet werden, um die Qualität von Coinjoins zu beurteilen. Ein großes Anonset bedeutet ein hohes Maß an Anonymität, da es schwierig wird, ein bestimmtes UTXO innerhalb der homogenen Menge zu unterscheiden.

es gibt 2 Arten von Anonsets:

Der voraussichtliche Anonset

Der vorausschauende Anonset gibt an, wie groß die Gruppe ist, in der der untersuchte UTXO am Ende des Zyklus verborgen ist, wenn man den UTXO am Anfang betrachtet, d. h. die Anzahl der nicht unterscheidbaren Teile innerhalb dieser Gruppe. Der Name dieses Indikators lautet "vorausschauende Metrik".

Dieser Indikator misst den Widerstand der Vertraulichkeit des Raums gegenüber einer Analyse der Vergangenheit und der Gegenwart (Input-Output).

BTC204

Diese Kennzahl wird verwendet, um abzuschätzen, inwieweit Ihr UTXO vor Versuchen geschützt ist, seine Geschichte von seinem Eintrittspunkt bis zu seinem Austrittspunkt im Coinjoin-Prozess zu rekonstruieren.

Wenn Ihre Transaktion beispielsweise an ihrem ersten Coinjoin-Zyklus teilgenommen hat und zwei weitere absteigende Zyklen abgeschlossen wurden, wäre der voraussichtliche Anonset Ihrer Münze 13:

BTC204

Stellen wir uns zum Beispiel vor, dass unsere Münze zu Beginn des Coinjoin-Zyklus einen voraussichtlichen Anonset von "86.871" hat. In der Praxis bedeutet dies, dass sie zwischen 86.871` ununterscheidbaren Teilen versteckt ist. Ein außenstehender Beobachter, der diese Münze zu Beginn des Coinjoin-Zyklus kennt und versucht, ihren Ausgang zu verfolgen, wird mit "86.871" möglichen UTXOs konfrontiert, die alle die gleiche Wahrscheinlichkeit haben, die gesuchte Münze zu sein.

BTC204

Der retrospektive Anonsatz

Der retrospektive Anonset zeigt die Anzahl der möglichen Quellen für ein bestimmtes Teil an, wenn man den UTXO am Ende des Zyklus kennt. Dieser Indikator misst den Widerstand der Vertraulichkeit des Teils gegenüber einer Gegenwart-zu-Vergangenheit-Analyse (Output-zu-Input), d. h. wie schwierig es für einen Analysten ist, Ihr Teil bis zu seinem Ursprung zurückzuverfolgen, bevor die Coinjoin-Zyklen stattfinden. Der Name dieses Indikators ist "backward anonset" oder "backward-looking metrics".

BTC204

Durch die Kenntnis Ihres UTXO beim Verlassen der Zyklen bestimmt die retrospektive Anonset die Anzahl der potenziellen Tx0-Transaktionen, die Ihren Eintritt in die Coinjoin-Zyklen ausmachen könnten. Im nachstehenden Diagramm entspricht dies der Summe aller orangefarbenen Blasen.

BTC204

Nehmen wir zum Beispiel an, dass unser Coinjoin-Teil einen retrospektiven Anonset von "42,185" hat. In der Praxis bedeutet dies, dass es 42.185" potenzielle Quellen für diesen UTXO gibt. Wenn ein externer Beobachter diese Münze am Ende der Zyklen identifiziert und versucht, ihren Ursprung zurückzuverfolgen, wird er oder sie mit "42.185" möglichen Quellen konfrontiert, die alle die gleiche Wahrscheinlichkeit haben, der gesuchte Ursprung zu sein.

BTC204

Wie berechnet man Anonsets?

Bei kleinen Ensembles kann man die Anonsets manuell mit einem Block-Explorer berechnen. Für größere Anonsets ist jedoch der Einsatz eines spezialisierten Tools unumgänglich. Soweit ich weiß, ist die einzige Software, die diese Aufgabe erfüllen kann, Whirlpool Stats Tool, ein Python-Tool, das von den Teams Samourai und OXT entwickelt wurde. Leider ist dieses Tool nach der Verhaftung der Samourai-Gründer und der Unterbrechung von OXT, das zur Extraktion von Daten aus der Blockchain verwendet wurde, derzeit nicht mehr in Betrieb.

BTC204

Wie wir in diesem Kapitel gesehen haben, können Anonsets nur berechnet werden, wenn eine gewisse Homogenität in der Coinjoin-Struktur vorhanden ist. Im nächsten Kapitel werden wir herausfinden, wie man diese Homogenität bei einer Bitcoin-Transaktion quantifizieren kann, egal ob es sich um einen Coinjoin oder eine herkömmliche Transaktion handelt.

https://planb.network/tutorials/privacy/analysis/wst-anonsets-0354b793-c301-48af-af75-f87569756375

Entropie

Wie wir in diesem Abschnitt über Coinjoins gesehen haben, spielt die Homogenität von UTXOs in Input und Output eine wichtige Rolle bei der Verbesserung der Vertraulichkeit einer Bitcoin-Transaktion. Dieser Parameter schafft eine plausible Bestreitbarkeit gegenüber der Blockchain-Analyse. Es gibt mehrere Methoden, um diese Homogenität zu messen, aber eine der effektivsten ist meiner Meinung nach die Verwendung der Indikatoren des Boltzmann-Tools, das von den OXT- und Samourai-Wallet-Teams entwickelt wurde, und insbesondere die Entropie der Transaktion. Dies werden wir in diesem Kapitel im Detail betrachten.

Im Gegensatz zu den Anonsets, die für eine Reihe von Transaktionen berechnet werden, konzentrieren sich die hier vorgestellten Indikatoren auf eine einzige Transaktion, sei es ein Coinjoin oder eine herkömmliche Transaktion.

Die Anzahl der Interpretationen

Der erste Indikator, der bei einer Bitcoin-Transaktion beobachtet werden kann, ist die Gesamtzahl der möglichen Interpretationen, die bei einer Analyse durch einen außenstehenden Beobachter möglich sind. Unter Berücksichtigung der Werte der an der Transaktion beteiligten UTXOs zeigt dieser Indikator die Anzahl der Möglichkeiten an, wie Inputs mit Outputs in Verbindung gebracht werden können. Mit anderen Worten, er bestimmt die Anzahl der möglichen Interpretationen, die eine Transaktion in den Bitcoin-Strömen aus der Sicht eines außenstehenden Beobachters, der sie analysiert, hervorrufen kann.

Für einen einfachen Zahlungsvorgang mit 1 Input und 2 Outputs gibt es beispielsweise nur eine Interpretation, nämlich dass Input #0 Output #0 und Output #1 finanziert hat. Es gibt keine andere mögliche Interpretation:

BTC204

Andererseits hat eine Whirlpool 5x5 Ecke 1\.496 mögliche Kombinationen:

BTC204

Ein Whirlpool Surge Cycle 8x8 Coinjoin hat 9\,934\,563 mögliche Interpretationen:

BTC204

Entropie

Aus der Anzahl der Interpretationen einer Bitcoin-Transaktion können wir ihre Entropie berechnen.

Im allgemeinen Kontext der Kryptographie und der Information ist die Entropie ein quantitatives Maß für die Unsicherheit oder Unvorhersehbarkeit einer Datenquelle oder eines Zufallsprozesses. Mit anderen Worten: Die Entropie ist ein Maß dafür, wie schwierig es ist, eine Information vorherzusagen oder zu erraten.

Im spezifischen Kontext der Blockchain-Analyse ist Entropie auch der Name eines Indikators, der von Shannons Entropie abgeleitet ist und [von LaurentMT] (https://gist.github.com/LaurentMT/e758767ca4038ac40aaf) erfunden wurde, und der für eine Bitcoin-Transaktion berechnet werden kann.

Wenn eine Transaktion eine große Anzahl möglicher Interpretationen aufweist, ist es oft sinnvoller, sich auf ihre Entropie zu beziehen. Dieser Indikator misst den Mangel an Wissen der Analysten über die genaue Konfiguration der Transaktion. Mit anderen Worten: Je höher die Entropie, desto schwieriger ist es für die Analysten, den Fluss der Bitcoins zwischen den Ein- und Ausgängen zu erkennen.

In der Praxis gibt die Entropie Aufschluss darüber, ob eine Transaktion aus der Sicht eines externen Beobachters mehrere mögliche Interpretationen aufweist, die allein auf den Beträgen der Ein- und Ausgänge beruhen, ohne andere externe oder interne Muster und Heuristiken zu berücksichtigen. Eine hohe Entropie ist daher gleichbedeutend mit einer größeren Vertraulichkeit der Transaktion.

Die Entropie ist definiert als der binäre Logarithmus der Anzahl der möglichen Kombinationen. Hier ist die verwendete Formel mit E die Entropie der Transaktion und C die Anzahl der möglichen Interpretationen:

E = \log_2(C)

In der Mathematik ist der binäre Logarithmus (Logarithmus zur Basis 2) die Umkehroperation der Potenzierung von 2. Mit anderen Worten: Der binäre Logarithmus von x ist der Exponent, auf den 2 erhöht werden muss, um x zu erhalten. Dieser Indikator wird also in Bits ausgedrückt.

Nehmen wir das Beispiel der Entropieberechnung für eine Coinjoin-Transaktion, die nach dem Whirlpool 5x5-Modell strukturiert ist, das, wie im vorherigen Abschnitt erwähnt, eine Anzahl möglicher Interpretationen von 1\.496 hat:

\begin{align*}
C &= 1\,496 \\
E &= \log_2(1\,496) \\
E &= 10.5469 \text{ bits}
\end{align*}

Somit hat diese Coinjoin-Transaktion eine Entropie von 10,5469 Bit, was als sehr zufriedenstellend angesehen wird. Je höher dieser Wert ist, desto mehr unterschiedliche Interpretationen lässt die Transaktion zu, was ihre Vertraulichkeit erhöht.

Für eine Coinjoin 8x8 Transaktion mit 9\,934\,563 Interpretationen wäre die Entropie :

\begin{align*}
C &= 9\,934\,563 \\
E &= \log_2(9\,934\,563) \\
E &= 23.244 \text{ bits}
\end{align*}

Nehmen wir ein weiteres Beispiel mit einer klassischen Zahlungstransaktion, mit 1 Eingang und 2 Ausgängen: 1b1b0c3f0883a99f1161c64da19471841ed12a1f78e77fab128c69a5f578ccce

BTC204

Im Falle dieser Transaktion ist die einzig mögliche Interpretation: (In.0) > (Out.0 ; Out.1). Folglich ist die Entropie 0:

\begin{align*}
C &= 1 \\
E &= \log_2(1) \\
E &= 0 \text{ bits}
\end{align*}

Effizienz

Anhand der Entropie der Transaktion lässt sich auch ihre Effizienz in Bezug auf die Vertraulichkeit berechnen. Dieser Indikator bewertet die Effizienz der Transaktion, indem er sie mit der optimalen Transaktion vergleicht, die in einer identischen Konfiguration in Betracht gezogen werden könnte.

Dies führt uns zum Konzept der maximalen Entropie, die der höchsten Entropie entspricht, die eine bestimmte Transaktionsstruktur theoretisch erreichen kann. Die Effizienz einer Transaktion wird dann durch den Vergleich dieser maximalen Entropie mit der tatsächlichen Entropie der untersuchten Transaktion berechnet.

Die verwendete Formel lautet wie folgt: :

Ef = E_R - E_M

Zum Beispiel beträgt die maximale Entropie für eine Whirlpool 5x5 coinjoin Struktur 10.5469 :

\begin{align*}
E_R &= 10.5469 \\
E_M &= 10.5469 \\
Ef &= E_R - E_M \\
Ef &= 10.5469 - 10.5469 \\
Ef &= 0 \text{ bits}
\end{align*}

Dieser Indikator wird ebenfalls in Prozent ausgedrückt. Die verwendete Formel lautet wie folgt: :

\begin{align*}
E_f &= \frac{C_R}{C_M} \\
E_f &= \frac{1\,496}{1\,496} \\
E_f &= 100 \%
\end{align*}

Eine Effizienz von 100 $ bedeutet, dass die Transaktion je nach ihrer Struktur ihr Vertraulichkeitspotenzial voll ausschöpft.

Entropiedichte

Die Entropie ist ein guter Indikator für die Messung der Vertraulichkeit einer Transaktion, hängt aber zum Teil von der Anzahl der Ein- und Ausgänge in der Transaktion ab. Um die Entropie von zwei verschiedenen Transaktionen mit einer unterschiedlichen Anzahl von Eingängen und Ausgängen zu vergleichen, können wir die Entropiedichte berechnen. Dieser Indikator gibt Aufschluss über die Entropie im Verhältnis zu jedem Input oder Output der Transaktion. Die Dichte ist nützlich, um die Effizienz von Transaktionen unterschiedlicher Größe zu bewerten und zu vergleichen.

Zur Berechnung wird einfach die Gesamtentropie der Transaktion durch die Gesamtzahl der an der Transaktion beteiligten Ein- und Ausgänge geteilt:

E_D = \frac{E}{T}

Nehmen wir das Beispiel eines Whirlpool 5x5 Coinjoin:

\begin{align*}
T &= 5 + 5 = 10 \\
E &= 10.5469 \\
E_D &= \frac{E}{T} \\
E_D &= \frac{10.5469}{10} \\
E_D &= 1.054 \text{ bits}
\end{align*}

Berechnen wir auch die Entropiedichte eines 8x8 Whirlpool-Coinjoin:

\begin{align*}
T &= 8 + 8 = 16 \\
E &= 23.244 \\
E_D &= \frac{E}{T} \\
E_D &= \frac{23.244}{16} \\
E_D &= 1.453 \text{ bits}
\end{align*}

Bei der Analyse der Entropiedichte dieser beiden Arten von Coinjoin wird deutlich, dass der "Surge Cycle 8x8"-Coinjoin selbst bei einer Normalisierung der Entropie nach der Anzahl der Elemente mehr Unsicherheit für die Analyse erzeugt.

Die Boltzmann-Note

Eine weitere Information, die in einer Transaktion analysiert wird, ist der Boltzmann-Score der einzelnen Elemente im Verhältnis zu den anderen. Dies ist die Tabelle der Übereinstimmungswahrscheinlichkeiten zwischen Inputs und Outputs. Diese Tabelle gibt über den Boltzmann-Score die bedingte Wahrscheinlichkeit an, dass ein bestimmter Input mit einem bestimmten Output verknüpft ist. Es handelt sich also um ein quantitatives Maß für die bedingte Wahrscheinlichkeit, dass eine Assoziation zwischen einem Input und einem Output in einer Transaktion eintritt, basierend auf dem Verhältnis zwischen der Anzahl der günstigen Vorkommnisse dieses Ereignisses und der Gesamtzahl der möglichen Vorkommnisse in einer Reihe von Interpretationen.

Am Beispiel eines Whirlpool-Coinjoin würde die Tabelle der bedingten Wahrscheinlichkeiten die Chancen einer Verbindung zwischen jeder Eingabe und Ausgabe aufzeigen und ein quantitatives Maß für die Mehrdeutigkeit der Assoziationen in der Transaktion bieten:

| % | Ausgang 0 | Ausgang 1 | Ausgang 2 | Ausgang 3 | Ausgang 4 |

| ------- | -------- | -------- | -------- | -------- | -------- |

eingabe 0 | 34% | 34% | 34% | 34% | 34% | 34% |

| Eingabe 1 | 34% | 34% | 34% | 34% | 34% | 34% | Eingabe 1

| Eingabe 2 | 34% | 34% | 34% | 34% | 34% | 34% | 34% | 34% | 34% | 34% | 34% | 34% | 34% | 34% | 34% | 34

| Eingabe 3 | 34% | 34% | 34% | 34% | 34% | 34% | Eingabe 3

| Eingabe 4 | 34% | 34% | 34% | 34% | 34% | 34% | 34% | 34% | 34% | 34% | 34% | 34% | 34% | 34% | 34% | 34

Es ist klar, dass jede Eingabe die gleiche Chance hat, mit jeder Ausgabe in Verbindung gebracht zu werden, was die Vertraulichkeit der Transaktion stärkt.

Der Boltzmann-Score wird berechnet, indem die Anzahl der Interpretationen, in denen ein bestimmtes Ereignis auftritt, durch die Gesamtzahl der verfügbaren Interpretationen geteilt wird. Um also die Punktzahl zu bestimmen, die die Eingabe #0 mit der Ausgabe #3 (Ereignis in 512 Interpretationen) verbindet, gehen wir wie folgt vor:

\begin{align*}
\text{Interpretations (IN.0 > OUT.3)} &= 512 \\
\text{Interpretations totales} &= 1496 \\
\text{Score} &= \frac{512}{1496} \\
\text{Score} &= 34 \%
\end{align*}

Nehmen wir das Beispiel eines Whirlpool 8x8 Surge Cycle coinjoin, würde die Boltzmann-Tabelle wie folgt aussehen:

| OUT.0 | OUT.1 | OUT.2 | OUT.3 | OUT.4 | OUT.5 | OUT.6 | OUT.7 |

|-------|-------|-------|-------|-------|-------|-------|-------|-------|

| IN.0 | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% |

| IN.1 | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% |

| IN.2 | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% |

| IN.3 | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% |

| IN.4 | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% |

| IN.5 | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% |

| IN.6 | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% |

| IN.7 | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% | 23% |

Im Falle einer einfachen Transaktion mit einem Eingang und 2 Ausgängen ist die Situation jedoch anders:

| Ausgabe 0 | Ausgabe 1 |

|---------|----------|----------|

| Eingabe 0 | 100% | 100% |

Hier sehen wir, dass die Wahrscheinlichkeit, dass jede Ausgabe von Eingabe Nr. 0 stammt, 100 % beträgt. Eine geringere Wahrscheinlichkeit spiegelt also eine größere Vertraulichkeit wider und verwässert die direkten Verbindungen zwischen Inputs und Outputs.

Deterministische Links

Wir können auch die Anzahl der deterministischen Verbindungen in einer Transaktion berechnen. Dieser Indikator gibt an, wie viele der Verbindungen zwischen Eingängen und Ausgängen in der analysierten Transaktion mit einer Wahrscheinlichkeit von 100 % unbestreitbar sind. Dieser Indikator kann dann durch die Berechnung des Verhältnisses der deterministischen Verbindungen vervollständigt werden. Das Verhältnis gibt Aufschluss über das Gewicht dieser deterministischen Verbindungen innerhalb der gesamten Verbindungen der Transaktion.

Bei einer Coinjoin-Transaktion von Whirlpool gibt es beispielsweise keine deterministischen Verbindungen zwischen Ein- und Ausgängen, so dass der Indikator 0 Verbindungen und ein Verhältnis von 0 % anzeigt. Bei der zweiten untersuchten einfachen Zahlungstransaktion (mit einem Eingang und zwei Ausgängen) hingegen zeigt der Indikator an, dass es zwei deterministische Verbindungen gibt, und das Verhältnis erreicht 100 %. Mit anderen Worten: Ein Indikator von Null weist auf eine ausgezeichnete Vertraulichkeit hin, da es keine direkten und unbestreitbaren Verbindungen zwischen Inputs und Outputs gibt.

Wie berechnen Sie diese Indikatoren?

Die manuelle Berechnung dieser Indikatoren anhand der von mir angegebenen Gleichungen ist relativ einfach. Die Schwierigkeit besteht vor allem darin, die Anzahl der möglichen Interpretationen einer Transaktion zu bestimmen. Für eine klassische Transaktion kann diese Berechnung von Hand durchgeführt werden. Bei einem Coinjoin ist die Aufgabe jedoch weitaus komplexer.

Zuvor gab es ein Python-Tool namens Boltzmann Calculator, das von den Teams von OXT und Samourai entwickelt wurde und alle diese Indikatoren für eine Bitcoin-Transaktion automatisch berechnete:

BTC204

Für diese Analysen konnte auch die Website KYCP.org genutzt werden:

BTC204

Leider sind diese Instrumente nach der Verhaftung der Gründer von Samourai nicht mehr einsatzfähig.

Nachdem wir nun Coinjoins im Detail behandelt haben, werden wir uns im letzten Abschnitt unseres Kurses mit den anderen Techniken zur Wahrung der Privatsphäre bei Bitcoin beschäftigen. Wir werden uns Payjoins, spezielle Pseudo-Coinjoin-Transaktionstypen, statische Adressprotokolle sowie Maßnahmen zur Stärkung der Vertraulichkeit nicht auf der Ebene der Transaktionen selbst, sondern auf der Ebene des Netzwerks der Knotenpunkte ansehen.

https://planb.network/tutorials/privacy/analysis/boltzmann-entropy-738e45af-18a6-4ce6-af1a-1bf58e15f1fe

Verständnis für die Herausforderungen anderer fortgeschrittener Vertraulichkeitstechniken

Payjoin-Transaktionen

Coinjoin ist derzeit die effektivste Methode, um Unsicherheit in die Verfolgung von Teilen in einer Kettenanalyse einzubringen. Wie wir in den vorangegangenen Kapiteln gesehen haben, müssen die Inputs und Outputs so homogen wie möglich sein, um einen leistungsstarken Mix zu erhalten. Darüber hinaus ist es wichtig, dass die Teile in eine möglichst große Gruppe integriert werden, um die Anonsets zu maximieren. Damit Coinjoins effektiv sind, müssen sie also eine große Anzahl einheitlicher Teile umfassen. Diese Vielzahl von Anforderungen bedeutet, dass Coinjoin-Transaktionen eine sehr starre Struktur haben: Die Beträge werden im Voraus festgelegt, und alle Teilnehmer müssen sich daran halten, um die Einheitlichkeit des Prozesses zu gewährleisten. Darüber hinaus erfordern Coinjoin-Transaktionen eine Synchronisation zwischen allen Teilnehmern und dem Koordinator während der Transaktionserstellung.

Diese Anforderungen machen Coinjoin für direkte Zahlungen ungeeignet. Wenn Sie zum Beispiel eine 1-Millionen-Sats-Münze in einem Coinjoin-Pool haben, wäre es kompliziert, diese direkt als Zahlung zu verwenden. Es würde eine Synchronisierung mit den anderen Teilnehmern und dem Koordinator erfordern, um die gemeinsame Transaktion genau in dem Moment zu erstellen, in dem Sie eine Zahlung leisten müssen, und der Kaufbetrag müsste genau dem Wert Ihrer Münze entsprechen, was praktisch nicht machbar ist. Die Coinjoin-Transaktion ist daher von Natur aus eine kollaborative Sweep-Transaktion, d.h. es sind in der Regel die gleichen Eigentümer der Inputs, die wir auch in den Outputs wiederfinden.

Es wäre jedoch interessant, über Transaktionsstrukturen zu verfügen, die es ermöglichen, Zahlungen auf praktische Weise vorzunehmen und gleichzeitig Zweifel in die Kettenanalyse einzubringen. Genau damit werden wir uns in diesem und im nächsten Kapitel befassen.

Was ist eine Payjoin-Transaktion?

Payjoin ist eine spezielle Bitcoin-Transaktionsstruktur, die die Privatsphäre des Nutzers beim Ausgeben von Geld erhöht, indem sie mit dem Zahlungsempfänger zusammenarbeitet.

Im Jahr 2015 sprach LaurentMT erstmals über diese Methode unter dem Begriff "steganographic transactions", wie in einem Dokument hier einsehbar. Diese Technik wurde später von der Wallet Samourai übernommen, die 2018 als erster Client das Verfahren mit dem Tool Stowaway implementierte. Das Konzept von Payjoin findet sich auch im BIP79, BIP78 und BIP77. Für Payjoin werden mehrere Begriffe verwendet:

Die Besonderheit von payjoin liegt in der Fähigkeit, eine auf den ersten Blick gewöhnliche Transaktion zu generieren, die in Wirklichkeit ein Mini-Coinjoin zwischen zwei Personen ist. Um dies zu erreichen, wird bei der Transaktionsstruktur neben dem eigentlichen Sender auch der Zahlungsempfänger in die Eingaben einbezogen. Der Empfänger fügt also in der Mitte der Transaktion eine Zahlung an sich selbst ein, die es ihm ermöglicht, selbst bezahlt zu werden.

Nehmen wir ein Beispiel, um diesen Prozess besser zu verstehen. Alice kauft ein Baguette für 4.000 Sats mit einem UTXO von 10.000 Sats und entscheidet sich für einen Payjoin. Ihr Bäcker, Bob, fügt als Input einen ihm gehörenden UTXO von 15.000 Sats hinzu, den er als Output zusätzlich zu den 4.000 Sats von Alice in voller Höhe zurückerhält.

BTC204

In diesem Beispiel gibt Bob, der Bäcker, 15.000 Sats ein und erhält 19.000 Sats, was genau 4.000 Sats entspricht, d. h. dem Preis des Baguettes. Alice gibt 10.000 Sats ein und erhält 6.000 Sats als Output, was einem Saldo von -4.000 Sats entspricht, d. h. dem Preis des Baguettes. Um das Beispiel zu vereinfachen, habe ich die Abbaukosten bei dieser Transaktion bewusst weggelassen.

Wozu ist der Payjoin da?

Die payjoin-Transaktion erfüllt zwei Ziele und ermöglicht es den Nutzern, die Vertraulichkeit ihrer Zahlung zu erhöhen.

Erstens zielt payjoin darauf ab, einen außenstehenden Beobachter in die Irre zu führen, indem es in der Kettenanalyse einen Köder auslegt. Dies wird durch die CIOH-Heuristik (Common Input Ownership Heuristic) ermöglicht. Wie wir in Teil 3 gesehen haben, wird normalerweise, wenn eine Transaktion auf der Blockchain mehrere Eingaben hat, davon ausgegangen, dass alle diese Eingaben der gleichen Entität oder dem gleichen Nutzer gehören.

Wenn ein Analyst also eine Payjoin-Transaktion untersucht, wird er oder sie zu der Annahme verleitet, dass alle Eingaben von derselben Person stammen. Diese Annahme ist jedoch falsch, denn neben dem eigentlichen Zahler trägt auch der Zahlungsempfänger zu den Eingaben bei. Die Kettenanalyse wird also auf eine Interpretation gelenkt, die sich als falsch herausstellt.

Nehmen wir unser Beispiel einer Payjoin-Transaktion für die Bezahlung eines Baguettes:

BTC204

Wenn ein außenstehender Beobachter diese Transaktion auf der Blockchain sieht, würde er nach den üblichen Heuristiken der Blockchain-Analyse die folgende Interpretation vornehmen: "Alice hat 2 UTXOs als Input für die Transaktion zusammengeführt, um Bob 19.000 Sats zu zahlen".

BTC204

Diese Interpretation ist natürlich falsch, denn wie Sie bereits wissen, gehören die beiden UTXOs in den Eingängen nicht zu ein und derselben Person. Einer stammt von Alice, der Baguette-Käuferin, der andere von Bob, dem Bäcker.

BTC204

Auf diese Weise wird die Analyse des externen Beobachters auf eine falsche Schlussfolgerung gelenkt, wobei die Vertraulichkeit der Beteiligten gewahrt bleibt.

Die steganografische Transaktion

Der zweite Zweck von Payjoin besteht darin, einen außenstehenden Beobachter über den tatsächlichen Betrag der geleisteten Zahlung in die Irre zu führen. Wenn der Analyst die Struktur der Transaktion untersucht, könnte er glauben, dass die Zahlung dem Betrag einer der Ausgaben entspricht.

Wenn wir auf unser Beispiel des Kaufs eines Baguettes zurückkommen, wird der Analyst denken, dass der Zahlungsbetrag entweder dem UTXO von 6.000 Sats oder dem UTXO von 19.000 Sats entspricht. In diesem Fall wird der Analyst eher davon ausgehen, dass der Zahlungsbetrag 19.000 Sats beträgt, weil es zwei UTXOs in den Ausgaben gibt, von denen mindestens einer größer als 6.000 Sats ist (es gibt keinen logischen Grund, zwei UTXOs für die Zahlung von 6.000 Sats zu verwenden, wenn ein einziger UTXO ausgereicht hätte, um diese Zahlung zu leisten).

BTC204

In Wirklichkeit ist diese Analyse jedoch fehlerhaft. Der Zahlungsbetrag entspricht keinem der Outputs. Vielmehr handelt es sich um die Differenz zwischen den UTXO des Empfängers im Output und den UTXO des Empfängers im Input.

BTC204

In dieser Hinsicht fällt die Payjoin-Transaktion in den Bereich der Steganografie. Sie ermöglicht es, den tatsächlichen Betrag einer Transaktion in einer gefälschten Transaktion zu verstecken, die als Täuschung dient.

Steganografie ist eine Technik, mit der Informationen in anderen Daten oder Objekten versteckt werden, so dass das Vorhandensein der versteckten Informationen nicht wahrnehmbar ist. So kann beispielsweise eine geheime Nachricht in einem Punkt in einem nicht verwandten Text versteckt werden, so dass sie mit bloßem Auge nicht zu erkennen ist (dies ist die microdot-Technik).

Im Gegensatz zur Verschlüsselung, bei der die Informationen ohne den Entschlüsselungscode unverständlich werden, werden bei der Steganografie die Informationen nicht verändert. Sie wird weiterhin im Klartext angezeigt. Sie zielt vielmehr darauf ab, die Existenz der geheimen Nachricht selbst zu verbergen, während die Verschlüsselung das Vorhandensein der versteckten Informationen deutlich erkennen lässt, auch wenn sie ohne den Schlüssel nicht zugänglich sind. Aus diesem Grund lautete der ursprüngliche Name von Payjoin "steganographische Transaktionen".

Es kann eine Analogie zwischen Kryptographie und Coinjoin sowie zwischen Steganographie und Payjoin gezogen werden. Coinjoin hat ähnliche Eigenschaften wie die Verschlüsselung: die Methode ist erkennbar, aber die Information ist nicht entzifferbar. Umgekehrt ähnelt Payjoin der Steganografie: Die Information ist theoretisch zugänglich, aber da die Methode der Verschleierung nicht erkennbar ist, wird sie unzugänglich.

Wie verwende ich payjoin?

Zu den bekannten Softwareprogrammen, die payjoin unterstützen, gehören Sparrow Wallet, Wasabi Wallet, Mutiny, BitMask, BlueWallet und JoinMarket sowie der Zahlungsanbieter BTCPay.

BTC204

Die am weitesten fortgeschrittene Payjoin-Implementierung war nur Stowaway auf Samourai Wallet. Seit der Verhaftung der Gründer der Software ist dieses Tool jedoch nur noch teilweise funktionsfähig. Der Vorteil von Stowaway ist, dass es sich um ein umfassendes, einfach zu verwendendes Protokoll handelt, das sowohl den Empfang als auch das Senden von Payjoin unterstützt. Teilweise signierte Transaktionen können manuell durch Scannen mehrerer QR-Codes oder automatisch über Tor via Soroban ausgetauscht werden. Die letztgenannte Kommunikationsoption ist derzeit nicht in Betrieb.

BTC204

Die Schwierigkeit bei der Nutzung von payjoin liegt in der Abhängigkeit von der Beteiligung des Händlers. Als Kunde können Sie kein Payjoin nutzen, wenn der Händler es nicht unterstützt. Dies erschwert den Kaufprozess zusätzlich: Es ist nicht nur schwierig, Händler zu finden, die Bitcoin akzeptieren, sondern wenn man auch noch nach solchen sucht, die Payjoin unterstützen, wird es noch komplizierter.

Eine Lösung wäre die Verwendung von Transaktionsstrukturen, die Mehrdeutigkeit in die Kettenanalyse bringen, ohne dass der Empfänger mitarbeiten muss. Auf diese Weise könnten wir die Vertraulichkeit unserer Zahlungen verbessern, ohne auf die aktive Beteiligung der Händler angewiesen zu sein. Genau damit werden wir uns im nächsten Kapitel befassen.

https://planb.network/tutorials/privacy/on-chain/payjoin-sparrow-wallet-087a0e49-61cd-41f5-8440-ac7b157bdd62

https://planb.network/tutorials/privacy/on-chain/payjoin-samourai-wallet-48a5c711-ee3d-44db-b812-c55913080eab

Zahlung mini-coinjoin

Wenn Sie eine Zahlungstransaktion unter Wahrung eines gewissen Maßes an Vertraulichkeit durchführen wollen, ist payjoin eine gute Option. Aber wie wir gerade gesehen haben, erfordert payjoin die Beteiligung des Empfängers. Was tun Sie also, wenn der Empfänger sich weigert, an einem Payjoin teilzunehmen, oder wenn Sie es einfach vorziehen, ihn nicht einzubeziehen? Eine Alternative ist die Verwendung einer Stonewall- oder Stonewall x2-Transaktion. Schauen wir uns diese beiden Transaktionsarten einmal genauer an.

Die Stonewall-Transaktion

Stonewall ist eine spezielle Form der Bitcoin-Transaktion, die entwickelt wurde, um die Vertraulichkeit der Nutzer beim Ausgeben zu erhöhen, indem ein Pseudo-Coinjoin zwischen zwei Personen imitiert wird, ohne tatsächlich einer zu sein. In der Tat ist diese Transaktion nicht gemeinschaftlich. Ein Benutzer kann sie selbst erstellen, indem er nur die UTXOs, die er besitzt, als Input verwendet. Sie können also eine Stonewall-Transaktion für jede Gelegenheit erstellen, ohne sich mit einem anderen Benutzer oder dem Empfänger absprechen zu müssen.

Die Stonewall-Transaktion funktioniert folgendermaßen: Als Input für die Transaktion verwendet der Emittent 2 UTXOs, die ihm gehören. Am Ausgang produziert die Transaktion 4 UTXOs, von denen 2 genau den gleichen Betrag haben. Die anderen 2 UTXOs stellen Devisen dar. Von den 2 Outputs mit gleichem Betrag geht nur einer tatsächlich an den Zahlungsempfänger.

Es gibt also nur 2 Rollen bei einer Stonewall-Transaktion:

Nehmen wir ein Beispiel, um diese Transaktionsstruktur zu verstehen. Alice geht zu Bob, dem Bäcker, um ihr Baguette zu kaufen, das 4.000 Sats kostet. Sie möchte in Bitcoins bezahlen und gleichzeitig eine gewisse Form der Vertraulichkeit bezüglich ihrer Zahlung wahren. Also beschließt sie, eine Stonewall-Transaktion für die Zahlung zu erstellen.

BTC204

Die Analyse dieser Transaktion zeigt, dass Bob, der Bäcker, tatsächlich 4.000 Sats als Bezahlung für das Baguette erhalten hat. Alice hat 2 UTXOs als Eingaben verwendet: eine für 10.000 Sats und eine für 15.000 Sats. Als Outputs hat sie 3 UTXOs zurückerhalten: einen für 4.000 Sats, einen für 6.000 Sats und einen für 11.000 Sats. Alice hat also einen Nettosaldo von -4.000 Sats bei dieser Transaktion, was dem Preis des Baguettes entspricht.

In diesem Beispiel habe ich die Mining-Gebühren absichtlich vernachlässigt, um es leichter verständlich zu machen. In Wirklichkeit werden die Transaktionskosten vollständig vom Emittenten getragen.

Was sind die Ziele einer Stonewall-Transaktion?

Die Stonewall-Struktur fügt der Transaktion eine enorme Menge an Entropie hinzu und verwischt die Grenzen der Kettenanalyse. Von außen betrachtet, könnte eine solche Transaktion als Mini-Münzverknüpfung zwischen zwei Personen interpretiert werden. In Wirklichkeit handelt es sich aber um eine Zahlung. Diese Methode führt daher zu Unsicherheiten bei der Kettenanalyse oder sogar zu falschen Hinweisen.

Nehmen wir das Beispiel von Alice bei Bob, dem Bäcker. Die Transaktion auf der Blockchain würde wie folgt aussehen:

BTC204

Ein außenstehender Beobachter, der sich auf die übliche Heuristik der Kettenanalyse verlässt, könnte fälschlicherweise zu dem Schluss kommen, dass "zwei Personen einen kleinen Coinjoin mit je einem UTXO als Input und zwei UTXOs als Output durchgeführt haben". Eine Analyse dieser Transaktion von außen führt nicht zur Anwendung der CIOH, da das Vorhandensein von zwei gleich hohen Outputs auf ein Coinjoin-Muster schließen lässt. Aus externer Sicht ist die CIOH in diesem speziellen Fall also nicht anwendbar.

BTC204

Diese Interpretation ist ungenau, denn wie Sie wissen, wurde ein UTXO an Bob, den Bäcker, gesendet, die 2 UTXO-Eingänge kamen von Alice, und sie erhielt 3 Austauschausgänge zurück.

BTC204

Besonders interessant an der Struktur der Stonewall-Transaktion ist, dass sie aus der Sicht eines außenstehenden Beobachters in jeder Hinsicht einer Stonewall-x2-Transaktion ähnelt.

Die Stonewall-Transaktion x2

Stonewall x2 ist eine weitere spezielle Form der Bitcoin-Transaktion, die ebenfalls darauf abzielt, die Vertraulichkeit der Nutzer beim Ausgeben zu erhöhen, aber dieses Mal durch die Zusammenarbeit mit einer dritten Person, die nicht an der Ausgabe beteiligt ist. Diese Methode funktioniert wie ein Pseudo-Coinjoin zwischen zwei Teilnehmern, wobei gleichzeitig eine Zahlung an eine dritte Person erfolgt.

Der Ablauf der Stonewall x2-Transaktion ist relativ einfach: Wir verwenden einen UTXO in unserem Besitz, um die Zahlung vorzunehmen, und nehmen die Hilfe eines Dritten in Anspruch, der ebenfalls mit einem UTXO in seinem Besitz beiträgt. Am Ende der Transaktion gibt es vier Ausgaben: zwei davon in gleicher Höhe, eine für die Adresse des Zahlungsempfängers, die andere für eine Adresse, die dem Mitarbeiter gehört. Ein drittes UTXO wird an eine andere Adresse des Mitarbeiters zurückgeschickt, so dass er den ursprünglichen Betrag zurückerhalten kann (eine für ihn neutrale Aktion, abzüglich der Mining-Kosten), und ein letztes UTXO geht an eine Adresse zurück, die uns gehört, was den Zahlungsaustausch darstellt.

Bei Stonewall x2-Transaktionen werden also drei verschiedene Rollen definiert:

Gehen wir zurück zu unserem Beispiel mit Alice, die bei Bob, dem Bäcker, ihr Baguette kaufen will, das 4.000 Sats kostet. Sie möchte mit Bitcoins bezahlen, wobei sie ein gewisses Maß an Vertraulichkeit über ihre Zahlung wahren möchte. Also wendet sie sich an ihren Freund Charles, der ihr bei diesem Vorgang helfen wird.

BTC204

Analysiert man diese Transaktion, so stellt man fest, dass Bob, der Bäcker, tatsächlich 4.000 Sats als Bezahlung für das Baguette erhalten hat. Alice verbrauchte 10.000 Sats als Input und erhielt 6.000 Sats als Output, d. h. einen Nettosaldo von -4.000 Sats, was dem Preis des Baguettes entspricht. Charles gab 15.000 Sats als Input und erhielt zwei Outputs: einen von 4.000 Sats und den anderen von 11.000 Sats, was einen Saldo von 0 ergibt.

In diesem Beispiel habe ich die Gebühren absichtlich weggelassen, um es leichter verständlich zu machen. In der Realität werden die Mining-Gebühren in der Regel zu gleichen Teilen zwischen dem Emittenten der Zahlung und dem Beitragszahler aufgeteilt.

Was sind die Ziele einer Stonewall x2-Transaktion?

Wie die Stonewall-Struktur fügt auch die Stonewall-x2-Struktur der Transaktion eine große Entropie hinzu und verwirrt die Kettenanalyse. Von außen betrachtet, kann eine solche Transaktion als eine kleine Münzverknüpfung zwischen zwei Personen interpretiert werden. In Wirklichkeit handelt es sich aber um eine Zahlung. Diese Methode führt daher zu Unsicherheiten in der Kettenanalyse oder sogar zu falschen Hinweisen.

Nehmen wir das Beispiel von Alice, Bob dem Bäcker und Charles. Die Transaktion auf der Blockchain würde wie folgt aussehen:

BTC204

Ein außenstehender Beobachter, der sich auf die üblichen Heuristiken der Kettenanalyse verlässt, könnte fälschlicherweise zu dem Schluss kommen: "Alice und Charles haben einen kleinen Coinjoin durchgeführt, mit je einem UTXO als Input und zwei UTXOs als Output". Auch hier führt eine Analyse dieser Transaktion von außen nicht zur Anwendung des ICOH, da das Vorhandensein von zwei Ausgaben in gleicher Höhe auf ein Coinjoin-Muster schließen lässt. Aus externer Sicht ist das CIOH daher in diesem speziellen Fall nicht anwendbar.

BTC204

Diese Interpretation ist falsch, denn wie Sie wissen, wurde ein UTXO an Bob, den Bäcker, gesendet, Alice hat nur einen Austauschausgang und Charles hat zwei.

BTC204

Besonders interessant an der Struktur der Stonewall x2-Transaktion ist wiederum, dass sie aus der Sicht eines außenstehenden Beobachters in jeder Hinsicht einer Stonewall-Transaktion ähnelt.

Was ist der Unterschied zwischen Stonewall und Stonewall x2?

Eine StonewallX2-Transaktion funktioniert genau wie eine Stonewall-Transaktion, mit dem Unterschied, dass erstere kollaborativ ist, während letztere nicht kollaborativ ist. Wie wir gesehen haben, ist an einer StonewallX2-Transaktion eine dritte Partei (Charles) beteiligt, die nicht an der Zahlung beteiligt ist und die ihre Bitcoins zur Verfügung stellt, um die Vertraulichkeit der Transaktion zu erhöhen. Bei einer klassischen Stonewall-Transaktion wird die Rolle des Kollaborateurs vom Absender übernommen.

BTC204

Von außen betrachtet, ist das Transaktionsmuster genau dasselbe.

BTC204

Die Tatsache, dass diese beiden Transaktionsstrukturen genau das gleiche Muster aufweisen, bedeutet, dass ein außenstehender Beobachter, selbst wenn es ihm gelingt, ein "Stonewall(x2)-Muster" zu erkennen, nicht über alle Informationen verfügen wird. Er wird nicht in der Lage sein zu bestimmen, welche der beiden UTXOs mit den gleichen Beträgen der Zahlung entspricht. Außerdem kann er nicht feststellen, ob die beiden UTXOs mit Eingaben von zwei verschiedenen Personen stammen (Stonewall x2) oder ob sie zu einer einzigen Person gehören, die sie zusammengelegt hat (Stonewall).

Dieser letzte Punkt ist darauf zurückzuführen, dass Stonewall x2-Transaktionen genau demselben Muster folgen wie Stonewall-Transaktionen. Von außen betrachtet und ohne zusätzliche Kontextinformationen ist es unmöglich, eine Stonewall-Transaktion von einer Stonewall x2-Transaktion zu unterscheiden. Bei ersteren handelt es sich nicht um kollaborative Transaktionen, bei letzteren hingegen schon. Dies lässt noch mehr Zweifel an der Analyse einer dieser Transaktionen aufkommen.

Wann sollten Stonewall und Stonewall x2 Transaktionen verwendet werden?

Die Logik sollte wie folgt aussehen, wenn Sie ein Vertraulichkeitswerkzeug für eine Ausgabe verwenden möchten:

Wie verwende ich Stonewall und Stonewall x2 Transaktionen?

Stonewall- und Stonewall x2-Transaktionen sind sowohl in der Samourai Wallet-Anwendung als auch in der Sparrow Wallet-Software verfügbar.

BTC204

Nach der Verhaftung der Samourai-Gründer funktionieren Stonewall x2-Transaktionen jedoch nur noch durch den manuellen Austausch von PSBTs zwischen den beteiligten Parteien, ebenso wie Payjoins. Der automatische Austausch über Soroban ist leider nicht mehr möglich.

Es ist auch möglich, diese Art von Transaktion manuell von jeder Bitcoin-Wallet-Software aus durchzuführen.

Im nächsten Kapitel werden wir uns mit einer anderen, relativ unbekannten Vertraulichkeitstechnik befassen, die jedoch als Ergänzung zu dem, was wir bereits gelernt haben, sehr nützlich ist.

https://planb.network/tutorials/privacy/on-chain/stonewall-033daa45-d42c-40e1-9511-cea89751c3d4

https://planb.network/tutorials/privacy/on-chain/stonewall-x2-05120280-f6f9-4e14-9fb8-c9e603f73e5b

Die Querschläger

Die Verwendung von Bitcoin-Transaktionsstrukturen, die die Analyse der Kette mehrdeutig machen, wie z. B. Coinjoin, ist besonders vorteilhaft für den Schutz der Privatsphäre. Wie wir jedoch im Kapitel über Payjoins besprochen haben, sind Coinjoin-Transaktionen natürlich auf der Kette identifizierbar. Erinnern Sie sich an die Analogie, die wir zwischen Verschlüsselung und Coinjoin gezogen haben: Wenn eine Datei verschlüsselt ist, kann ein Dritter, der die verschlüsselte Datei entdeckt, nicht auf ihren Inhalt zugreifen, aber er kann eindeutig erkennen, dass die Datei verändert wurde, um ihren Inhalt zu verbergen. Dasselbe gilt für Coinjoin: Wenn ein Analytiker eine Coinjoin-Transaktion untersucht, kann er zwar keine direkten Verbindungen zwischen Inputs und Outputs (und umgekehrt) herstellen, aber er kann dennoch erkennen, dass es sich bei der beobachteten Transaktion um ein Coinjoin handelt.

Je nachdem, wie Sie Ihren Teil nach den Coinjoin-Zyklen verwenden wollen, kann die Tatsache, dass er diesen Prozess durchlaufen hat, problematisch sein. Wenn Sie beispielsweise planen, Ihren Coin auf einer regulierten Börsenplattform zu verkaufen, er aber vor kurzem einen Coinjoin durchlaufen hat, wird das Kettenanalysetool der Plattform diese Tatsache feststellen. Die Plattform kann sich dann weigern, Ihren coinjoined UTXO zu akzeptieren, oder sogar eine Erklärung von Ihnen verlangen, mit dem Risiko, dass Ihr Konto gesperrt oder Ihr Geld eingefroren wird. In einigen Fällen kann die Plattform Ihr Verhalten auch den staatlichen Behörden melden (dies ist beispielsweise das, was TRACFIN von PSANs in Frankreich verlangt).

BTC204

Was wir brauchen, um dies zu vermeiden, ist ein Werkzeug, das die Spuren der Vergangenheit einer Bitcoin-Münze verwischt, um eine Form der Fungibilität wiederherzustellen. Genau das ist der Zweck des Querschlägers.

BTC204

Was ist ein Querschläger?

Der Querschläger ist eine Technik, die darin besteht, mehrere fiktive Transaktionen an sich selbst durchzuführen (Sweep), um eine Übertragung von Bitcoin-Eigentum zu simulieren. Dieses Werkzeug unterscheidet sich von den anderen Transaktionsstrukturen, die wir besprochen haben, da es keine prospektive Anonymität, sondern eher eine Form der retrospektiven Anonymität bietet. In der Tat verwischt Ricochet die Besonderheiten, die die Fungibilität einer Bitcoin-Münze aufgrund ihrer Vergangenheit beeinträchtigen können.

Um den Abdruck eines vergangenen Ereignisses auf einer Münze zu glätten, wie z. B. Coinjoin-Zyklen, führt Ricochet vier aufeinanderfolgende Transaktionen durch, bei denen der Nutzer sich selbst Geld an verschiedene Adressen überweist.

BTC204

Nach dieser Abfolge von Transaktionen leitet das Ricochet-Tool die Bitcoins schließlich an ihren endgültigen Bestimmungsort weiter, z. B. an eine Tauschplattform.

BTC204

Ziel ist es, einen Abstand zu schaffen, der die Fungibilität der Münze beeinflusst, wie z. B. eine Coinjoin-Transaktion, und den endgültigen Ausgabeakt, der diese Münze aufgrund ihrer Vergangenheit ablehnen könnte. So könnten Kettenanalysetools zu dem Schluss kommen, dass es wahrscheinlich einen nachträglichen Eigentümerwechsel gegeben hat, und diese Münze als fungibel einstufen. Im Falle eines Coinjoin könnten Blockchain-Analysetools dann davon ausgehen, dass es nicht dieselbe Person war, die die Bitcoins verschickt und den Coinjoin durchgeführt hat, und dass es daher keinen Sinn macht, gegen den Absender vorzugehen.

BTC204

Warum funktioniert es?

Angesichts dieser Querschläger-Methode könnte man annehmen, dass eine Software zur Kettenanalyse ihre Untersuchung über vier Abpraller hinaus vertiefen würde. Allerdings stehen diese Plattformen bei der Optimierung der Erkennungsschwelle vor einem Dilemma. Sie müssen eine Grenze für die Anzahl der Sprünge festlegen, nach der sie akzeptieren, dass wahrscheinlich eine Eigenschaftsänderung stattgefunden hat und dass die Verbindung zu einem früheren Ereignis (z. B. einem Coinjoin) ignoriert werden sollte.

BTC204

Die Festlegung dieses Schwellenwerts ist jedoch riskant: Mit jeder Erhöhung der Zahl der beobachteten Sprünge steigt die Zahl der Falschmeldungen exponentiell an, d. h. Personen, die fälschlicherweise als Teilnehmer eines Ereignisses markiert werden, obwohl der Vorgang in Wirklichkeit von jemand anderem durchgeführt wurde. Dieses Szenario stellt für diese Unternehmen ein großes Risiko dar, da falsch positive Ergebnisse zu Unzufriedenheit führen, die die betroffenen Kunden zur Konkurrenz treiben kann. Langfristig führt eine zu hohe Aufdeckungsschwelle dazu, dass eine Plattform mehr Kunden verliert als ihre Konkurrenten, was ihre Existenz bedrohen könnte. Für diese Plattformen ist es daher kompliziert, die Zahl der festgestellten Bounces zu erhöhen, und 4 ist oft eine ausreichende Zahl, um ihre Analysen zu widerlegen.

Das hier beobachtete Phänomen ist in gewisser Weise mit der Theorie der sechs Trennungsgrade vergleichbar.

Die Theorie von den sechs Graden der Trennung besagt, dass jeder Mensch auf der Erde mit jedem anderen durch eine Beziehungskette verbunden ist, die höchstens sechs Zwischenpersonen umfasst. Es würde also genügen, eine Reihe von sechs Personen zu durchlaufen, von denen jede die nächste persönlich kennt, um jeden Menschen auf der Welt zu erreichen.

Im Falle von Bitcoin-Transaktionen ist ein ähnliches Phänomen zu beobachten. Wenn wir eine ausreichende Anzahl von Bitcoin-Transaktionen verfolgen, stoßen wir unweigerlich auf einen Coinjoin. Die Ricochet-Methode macht sich dieses Prinzip zunutze, indem sie eine größere Anzahl von Hops verwendet, als die Börsenplattformen vernünftigerweise verfolgen können. Wenn die Plattformen beschließen, mehr Transaktionen zu verfolgen, ist es möglich, einfach einen zusätzlichen Hop hinzuzufügen, um diese Maßnahme zu umgehen.

Wann und wie wird der Querschläger eingesetzt?

Der häufigste Anwendungsfall für Querschläger ist die Notwendigkeit, eine frühere Teilnahme an einem Coinjoin auf einem UTXO, den Sie besitzen, zu verbergen. Idealerweise sollte man es vermeiden, Bitcoins, die einem Coinjoin unterzogen wurden, an regulierte Einrichtungen zu übertragen. Sollten Sie jedoch keine andere Möglichkeit haben, insbesondere wenn Sie dringend Bitcoins in staatlicher Währung liquidieren müssen, bietet Ricochet eine effektive Lösung.

Diese Methode eignet sich nicht nur für Coinjoins, sondern auch für alle anderen Markierungen, die die Fungibilität eines Teils beeinträchtigen könnten.

Die Idee für diese Abprallmethode stammt ursprünglich von den Samourai-Wallet-Teams, die sie in ihre Anwendung integriert haben, um den Prozess zu automatisieren. Der Service ist auf Samourai nicht kostenlos, da ein Ricochet eine Servicegebühr von 100.000 Sats plus Mining-Kosten beinhaltet. Seine Nutzung wird daher für Überweisungen von größeren Beträgen empfohlen.

BTC204

Die Samurai-Anwendung bietet zwei Abprallvarianten:

BTC204 BTC204

Abprallen bedeutet einfach, Bitcoins an sich selbst zu senden. Es ist durchaus möglich, Bitcoins manuell mit einer beliebigen Wallet-Software zu übertragen, ohne ein spezielles Tool zu verwenden. Alles, was Sie tun müssen, ist, nacheinander dieselbe Münze an sich selbst zu übertragen, wobei Sie jedes Mal eine neue, leere Adresse verwenden.

Im nächsten Kapitel befassen wir uns mit verschiedenen Techniken für geheime Eigentumsübertragungen. Diese Methoden unterscheiden sich sowohl in ihrer Funktionsweise als auch in ihren Ergebnissen grundlegend von den bisher untersuchten.

https://planb.network/tutorials/privacy/on-chain/ricochet-e0bb1afe-becd-44a6-a940-88a463756589

Heimliche Eigentumsübertragungen

Eine weitere Geheimhaltungstechnik von Bitcoin ist die geheime Eigentumsübertragung. Diese Methode zielt darauf ab, das Eigentum an Bitcoins von einer Person auf eine andere zu übertragen und umgekehrt, ohne dass die Transaktion explizit in der Blockchain sichtbar ist. Werfen wir einen Blick auf die verschiedenen verfügbaren Techniken und ihre Vor- und Nachteile.

Der Münztausch

Coinwap basiert auf einem relativ einfachen Konzept: Es verwendet intelligente Verträge, um eine Übertragung von Bitcoin-Eigentum zwischen zwei Nutzern zu ermöglichen, ohne dass Vertrauen erforderlich ist und ohne dass diese Übertragung ausdrücklich auf der Blockchain sichtbar ist.

BTC204

Stellen wir uns ein naives Beispiel mit Alice und Bob vor. Alice besitzt 1 BTC, das mit dem privaten Schlüssel A gesichert ist, und Bob besitzt ebenfalls 1 BTC, das mit dem privaten Schlüssel B gesichert ist. Sie könnten theoretisch ihre privaten Schlüssel über einen externen Kommunikationskanal austauschen, um eine geheime Übertragung durchzuführen.

BTC204

Diese naive Methode birgt jedoch ein hohes Risiko in Bezug auf das Vertrauen. Nichts hindert Alice daran, nach dem Austausch eine Kopie des privaten Schlüssels A aufzubewahren und sie später zu verwenden, um die Bitcoins zu stehlen, sobald der Schlüssel in Bobs Händen ist.

BTC204

Außerdem gibt es keine Garantie, dass Alice nicht Bobs privaten Schlüssel B erhält und im Gegenzug niemals ihren privaten Schlüssel A weitergibt. Dieser Austausch beruht daher auf übermäßigem Vertrauen zwischen den Parteien und ist nicht geeignet, eine sichere geheime Übertragung des Eigentums zu gewährleisten.

BTC204

Um diese Probleme zu lösen und den Austausch zwischen Parteien zu ermöglichen, die sich gegenseitig nicht vertrauen, werden wir stattdessen intelligente Vertragssysteme verwenden. Ein intelligenter Vertrag ist ein Programm, das automatisch ausgeführt wird, wenn vordefinierte Bedingungen erfüllt sind. In unserem Fall wird dadurch sichergestellt, dass der Austausch von Eigentum automatisch erfolgt, ohne dass gegenseitiges Vertrauen erforderlich ist.

Dies kann mit HTLC (Hash Time-Locked Contracts) oder PTLC (Point Time-Locked Contracts) erreicht werden. Diese beiden Protokolle funktionieren auf ähnliche Weise und verwenden ein Time-Locking-System, das sicherstellt, dass der Austausch entweder erfolgreich abgeschlossen oder vollständig abgebrochen wird, wodurch die Integrität der Gelder beider Parteien geschützt wird. Der Hauptunterschied zwischen HTLC und PTLC besteht darin, dass HTLC Hashes und Preimages zur Sicherung der Transaktion verwendet, während PTLC Adaptor Signatures einsetzt.

In einem Coinswap-Szenario mit HTLC oder PTLC zwischen Alice und Bob findet der Austausch auf sichere Weise statt: Entweder ist er erfolgreich und jeder erhält die BTC des anderen, oder er schlägt fehl und jeder behält seine eigenen BTC. Dadurch ist es für beide Parteien unmöglich, zu betrügen oder die BTC der anderen Partei zu stehlen.

HTLC ist auch der Mechanismus, der verwendet wird, um Zahlungen sicher durch die bidirektionalen Kanäle des Lightning Network zu leiten Die Verwendung von Adaptor Signatures ist in diesem Zusammenhang besonders interessant, da sie den Verzicht auf traditionelle Skripte ermöglicht (ein Mechanismus, der manchmal als "scriptless scripts" bezeichnet wird). Diese Eigenschaft reduziert die mit dem Austausch verbundenen Kosten. Ein weiterer großer Vorteil von Adaptor Signatures ist, dass sie nicht die Verwendung eines gemeinsamen Hashes für beide Transaktionsparteien erfordern, so dass bei bestimmten Arten des Austauschs keine direkte Verbindung zwischen ihnen offengelegt werden muss.

Adapter Unterschriften

Adaptorsignaturen sind eine kryptografische Methode, die eine gültige Signatur mit einer zusätzlichen Signatur, der so genannten "Adaptorsignatur", verbindet, um geheime Daten zu offenbaren. Dieser Mechanismus ist so konzipiert, dass die Kenntnis von 2 der 3 folgenden Elemente: die gültige Signatur, die Anpassungssignatur und das Geheimnis, uns erlaubt, das fehlende dritte Element abzuleiten. Eine interessante Eigenschaft dieser Methode ist, dass wir, wenn wir die Adapter-Signatur unseres Peers und den spezifischen Punkt auf der elliptischen Kurve kennen, der mit dem Geheimnis verbunden ist, das zur Berechnung dieser Adapter-Signatur verwendet wurde, unsere eigene Adapter-Signatur ableiten können, die mit demselben Geheimnis kompatibel ist, ohne jemals direkten Zugang zum Geheimnis selbst zu haben.

Bei einem Coinswap ermöglicht die Verwendung von Adaptor Signatures die gleichzeitige Offenlegung von zwei sensiblen Informationen zwischen den Teilnehmern, so dass kein gegenseitiges Vertrauen erforderlich ist. Nehmen wir ein Beispiel zur Veranschaulichung dieses Prozesses mit Alice und Bob, die den Besitz von jeweils 1 BTC tauschen möchten, sich aber nicht vertrauen. Sie verwenden Adaptor Signatures, um die Notwendigkeit des gegenseitigen Vertrauens bei diesem Austausch zu eliminieren. So machen sie es:

s_A = n_A + t + H(N_A + T \parallel P_A \parallel m_A) \cdot p_A

s_A' = s_A - t

s_A' \cdot G = N_A + H(N_A + T \parallel P_A \parallel m_A) \cdot P_A

s_B' = n_B + H(N_B + T \parallel P_B \parallel m_B) \cdot p_B

s_B = s_B' + t

(s_B' + t) \cdot G = N_B + T + H(N_B + T \parallel P_B \parallel m_B) \cdot P_B

t = (s_B' + t) - s_B' = s_B - s_B'

s_A = s_A' + t

(s_A' + t) \cdot G = N_A + T + H(N_A + T \parallel P_A \parallel m_A) \cdot P_A

Fassen wir zusammen, wie eine Adaptor-Signatur bei einem Coinswap funktioniert. Zunächst schickt Alice Bob eine unsignierte Transaktion zusammen mit einem Adapter, mit dem Bob überprüfen kann, ob das später enthüllte Geheimnis ihm Zugang zu Bitcoins verschafft. Im Gegenzug schickt Bob Alice seine eigene unsignierte Transaktion und den Adapter. Alice kann dann Bobs Transaktion abschließen und die Bitcoins abrufen, indem sie dank des Geheimnisses eine gültige Transaktion sendet. Wenn diese Transaktion auf der Blockchain veröffentlicht wird, hat Bob die Möglichkeit, das Geheimnis zu extrahieren und damit die Transaktion von Alice zu entsperren. Wenn Alice also eine Überweisung von Bobs Bitcoin veranlasst, kann Bob seinerseits auf Alices Bitcoin zugreifen, ohne dass ein gegenseitiges Vertrauen erforderlich ist.

Beachten Sie, dass Coinswaps erstmals von [Gregory Maxwell im Oktober 2013 auf BitcoinTalk] (https://bitcointalk.org/index.php?topic=321228.0) vorgeschlagen wurden.

Atomare Tauschgeschäfte

Ähnlich wie beim Coinswap und unter Verwendung derselben Arten von intelligenten Verträgen ist es auch möglich, atomare Swaps durchzuführen. Ein atomarer Swap ermöglicht den direkten Austausch verschiedener Kryptowährungen wie BTC und XMR zwischen zwei Nutzern, ohne dass Vertrauen oder die Einschaltung eines Vermittlers erforderlich sind. Diese Tauschgeschäfte werden als "atomar" bezeichnet, weil es nur zwei mögliche Ergebnisse gibt: Entweder ist der Tausch erfolgreich und beide Parteien sind zufrieden, oder er scheitert und beide behalten ihre ursprünglichen Kryptowährungen, so dass kein Vertrauen in die andere Partei erforderlich ist.

BTC204

Atomic Swap und Coinswap haben eine ähnliche Funktionsweise und bieten die gleichen Vor- und Nachteile in Bezug auf die Vertraulichkeit. Aus der Sicht von Bitcoin ist ein Atomic Swap in der Tat mit einem Coinswap vergleichbar, der in zwei Schritten durchgeführt wird. Zuerst tauschen wir unsere BTC gegen eine andere Kryptowährung, dann kann diese Kryptowährung gegen andere BTC getauscht werden. Am Ende erhalten wir die BTC eines anderen Nutzers zurück. Aus diesem Grund fasse ich diese beiden Protokolle bei der Analyse der Vertraulichkeitsprobleme unter der Kategorie der proprietären geheimen Tauschgeschäfte zusammen.

BTC204

Beachten Sie jedoch, dass es beim Atomic Swap im Gegensatz zum Coinswap zu Ungleichgewichten in Bezug auf die verfügbare Liquidität kommen kann, insbesondere bei BTC/XMR-Börsen. Im Allgemeinen ist es einfacher, Bitcoins in Altcoins zu tauschen, da es eine starke Nachfrage nach Bitcoins gibt, die die Prämien für diese Umtauschrichtung niedrig hält. Der Umtausch von Altcoins in BTC kann jedoch aufgrund der geringeren Nachfrage komplexer sein, was oft zu sehr hohen Prämien führt.

Wenn ein atomarer Swap schließlich Onchain-Bitcoins und Bitcoins im Lightning-Netzwerk umfasst, spricht man von einem "U-Boot-Swap".

Ist sie wirklich nützlich?

Geheime Eigentumsübertragungen wie Coinswaps und Atomic Swaps haben den Vorteil, dass sie die Heuristik der Kettenanalyse täuschen. Diese Methoden können den Eindruck erwecken, dass es sich bei den Transaktionen um denselben Nutzer handelt, während der tatsächliche Eigentümer den Besitzer gewechselt hat. Der größte Nachteil dieser Methoden ist jedoch, dass sie ohne den Einsatz einer zusätzlichen Technik zum Aufbrechen der Münzgeschichte sehr riskant sind.

Wenn Alice nämlich einen Coinswap oder Atomic Swap mit Bob durchführt, tauscht sie den Besitz ihrer Bitcoins mit denen von Bob. Im Falle eines atomaren Swaps umfasst der Tausch auch einen Altcoin, aber das Prinzip bleibt dasselbe. Am Ende besitzt Alice also die B-Münze und Bob die A-Münze. Dadurch wird die Kettenanalyse in Frage gestellt, aber die Geschichte der Münzen bleibt nachvollziehbar. Wenn ein Analyst Teil A untersucht, kann er Alices frühere Aktivitäten zurückverfolgen, und umgekehrt für Teil B.

BTC204

Aus Sicht von Alice besteht das Risiko darin, dass die Geschichte der B-Münze von bestimmten Stellen als verdächtig angesehen werden könnte. Wenn Bob die B-Münze beispielsweise durch eine kriminelle Handlung wie Hacking erworben hat, würde die Münze mit seinen illegalen Aktivitäten in Verbindung gebracht werden. Alice könnte dann in den Besitz eines Coins gelangen, den sie nicht auf regulierte Börsenplattformen transferieren kann, ohne zu riskieren, dass ihre Gelder eingefroren werden oder sie sogar der Verbrechen von Bob beschuldigt wird, obwohl sie nichts damit zu tun hat.

BTC204

Es ist unvermeidlich, dass vertrauliche Methoden wie Coinswap oder Atomic Swap von Kriminellen bevorzugt werden, deren Gelder von den Behörden überwacht werden. Diese Protokolle ermöglichen es ihnen, ihre überwachten Bitcoins im Austausch gegen vollkommen fungible Bitcoins zu veräußern. Außerdem können sie damit ein Ablenkungsmanöver starten, indem sie die Behörden auf andere Nutzer lenken. Für diese Leute gibt es also einen doppelten Zweck.

Bei Coinjoin ist die Historie des Coins gebrochen, selbst wenn Ihr Coin mit überwachten Bitcoins gemischt wird, was eine Form der plausiblen Bestreitbarkeit bietet, die bei geheimen Eigentumsübertragungsprotokollen wie Coinswap oder Atomic Swap nicht gegeben ist.

BTC204

Wenn Alice jegliches Risiko vermeiden will, muss sie notwendigerweise eine Methode anwenden, um die Geschichte der B-Münze zu brechen, wie z. B. die Weitergabe durch Coinjoin. Dies wirft die Frage auf, ob es sinnvoll ist, die geheime Eigentumsübertragung und den Coinjoin zu kombinieren. Der Coinjoin, der die Historie einer Münze bricht, bietet bereits ein ausreichendes Maß an Vertraulichkeit für Alice. Daher bin ich der Meinung, dass es für Alice, die ihre Privatsphäre schützen will, klüger wäre, direkt zu einem Coinjoin überzugehen, als einen Coinswap mit anschließendem Coinjoin durchzuführen.

Damit geheime Eigentumsübertragungsmethoden wirklich effektiv sind und das Risiko vermeiden, die Geschichte eines A-Benutzers mit der eines B-Benutzers zu verknüpfen, wäre es paradoxerweise notwendig, dass ihre Verwendung weithin bekannt ist. Wenn Coinswap massenhaft genutzt wird und die Behörden von dieser gängigen Praxis wissen, könnte eine plausible Form der Verweigerung etabliert werden. Solange diese Transfers jedoch nur in geringem Umfang genutzt werden, bleiben diese Methoden meiner Meinung nach für die Nutzer zu riskant.

Bisher haben wir uns hauptsächlich mit Vertraulichkeitsmethoden auf der Ebene der Transaktionen selbst beschäftigt. Im nächsten Kapitel werden wir uns mit Fragen auf der Netzwerkebene und der Verbreitung von Transaktionen befassen.

Datenschutz im P2P-Netz

In Teil 4 haben wir besprochen, wie wichtig es ist, einen vollständigen Knoten zu verwenden, um die Vertraulichkeit Ihrer Transaktionen zu schützen. Es ist jedoch wichtig zu verstehen, dass Ihr Knoten selbst Angriffen ausgesetzt sein kann, die darauf abzielen, Informationen über Ihre Aktivitäten zu erhalten. In diesem Kapitel befassen wir uns daher mit den verschiedenen Maßnahmen, die Sie zum Schutz Ihrer Privatsphäre ergreifen können, und zwar nicht auf der Ebene der Transaktionen selbst oder der Bitcoin-Ströme, sondern auf der Ebene des Netzwerks.

Löwenzahn

Eine Möglichkeit, die verschiedenen Anonymisierungsangriffe zu vermeiden, ist die Verwendung des Dandelion-Vorschlags. Dieses Broadcast-Protokoll wurde in BIP156 formalisiert, wurde aber nie auf Bitcoin implementiert.

Die Idee hinter Dandelion ist es, die Vertraulichkeit des Transaktionsroutings im Bitcoin-Netzwerk zu verbessern, um verschiedenen Formen von Angriffen zu begegnen. Sein Hauptziel ist es, den Quellknoten zu verbergen, der eine Transaktion ursprünglich im Netzwerk verbreitet hat. Die Offenlegung dieses Knotens könnte es ermöglichen, eine Bitcoin-Transaktion mit einer bestimmten IP-Adresse zu verknüpfen (wenn der Knoten im Clearnetz arbeitet), was einen Einstiegspunkt für eine Kettenanalyse bieten könnte.

Diese Verbindung zwischen Aktivitäten auf Bitcoin und einer IP-Adresse stellt ein erhebliches Risiko für die Vertraulichkeit der Nutzer dar. In der Tat sind viele Einrichtungen in der Lage, eine IP-Adresse leicht mit einer persönlichen Identität zu verknüpfen. Dazu gehören Regierungen und Internetdienstleister. Darüber hinaus können diese Informationen öffentlich zugänglich werden, wenn beispielsweise Ihre IP-Adresse und Ihre persönlichen Daten durch einen Hack der Datenbank einer Website bekannt werden.

Im klassischen Bitcoin-Betrieb werden Transaktionen, die ein Nutzer in seiner Wallet-Software erstellt, an seinen persönlichen Knoten übermittelt. Dieser Knoten wird die neue Transaktion sofort an alle Peers, mit denen er verbunden ist, weiterleiten.

BTC204

Diese Peers prüfen dann die Transaktion, um sicherzustellen, dass sie mit den Konsens- und lokalen Standardisierungsregeln übereinstimmt. Nach der Prüfung leitet jeder Peer die Transaktion wiederum an seine Peers weiter usw.

BTC204

Diese Verteilung der Transaktionen, die auf die Integration in einen Block warten, ist ziemlich ausgewogen und statistisch vorhersehbar. Diese Schwäche kann von mitschuldigen Spionageknoten ausgenutzt werden, die zusammenarbeiten, um das Netzwerk zu überwachen und zu analysieren, um den ersten Knoten zu identifizieren, der eine Transaktion gesendet hat. Gelingt es einem Beobachter, den Quellknoten ausfindig zu machen, kann er davon ausgehen, dass die Transaktion vom Betreiber dieses Knotens ausgeht. Diese Art der Beobachtung kann genutzt werden, um normalerweise anonyme Transaktionen mit bestimmten IP-Adressen zu verbinden.

BTC204

Das Ziel von BIP156 ist es, dieses Problem zu lösen. Zu diesem Zweck führt es eine zusätzliche Phase bei der Verbreitung einer neuen Transaktion ein, um die Anonymität vor einer breiten öffentlichen Verbreitung zu wahren. Dandelion verwendet zunächst eine "Stamm"-Phase, in der die Transaktion durch einen zufälligen Pfad von Knoten gesendet wird.

BTC204

Die Transaktion wird anschließend im „Fluff“-Stadium an das gesamte Netzwerk gesendet.

BTC204

Der Stiel und die „Fluff“-Phase beziehen sich auf das Verhalten der Transaktionsverbreitung im Netzwerk, das an die Form und Entwicklung eines Löwenzahns („Dandelion“ auf Englisch) erinnert.

Spionage-Knoten können die Transaktion möglicherweise bis zu dem Knoten zurückverfolgen, der die „Fluff“-Phase (die Massenverbreitung) gestartet hat, aber dieser Knoten ist nicht der ursprüngliche Sender der Transaktion, da er sie vom letzten Knoten des Stiels empfangen hat. Wenn die Spionage-Knoten den Stiel nicht zurückverfolgen können, können sie auch den Ursprungsknoten nicht identifizieren.

BTC204

Selbst bei Anwesenheit von Spionageknoten während der Stammesphase bleibt immer ein Zweifel, denn sobald sie auf einen ehrlichen Knoten im Diffusionsgraphen stoßen, können die Spione nicht feststellen, ob dieser Knoten die ursprüngliche Quelle oder nur ein Vermittler ist.

BTC204

Diese Routing-Methode verwischt die Spur, die zum Ursprungsknoten zurückführt, und erschwert die Rückverfolgung einer Transaktion durch das Netz zu ihrem Ursprung. Dandelion verbessert somit die Vertraulichkeit, indem es die Möglichkeiten von Angreifern einschränkt, das Netzwerk zu de-anonymisieren. Diese Methode ist umso effektiver, wenn die Transaktion während der "Stemming"-Phase einen Knoten durchquert, der seine Netzwerkkommunikation verschlüsselt, wie bei Tor oder P2P Transport V2.

BIP156 wurde nicht in Bitcoin Core integriert und wird derzeit als "abgelehnt" eingestuft. Eines der Hauptprobleme dieses Protokolls besteht darin, dass die Transaktionen während der Stem-Phase über Zwischenknoten weitergeleitet werden müssen, bevor sie verifiziert werden. Wie wir gesehen haben, verifiziert im normalen Bitcoin-Modell jeder Knoten die Transaktion zuerst, bevor er sie an seine Kollegen weiterleitet. Wenn eine Transaktion nicht mit den Konsensregeln des Knotens oder den lokalen Standardisierungsregeln übereinstimmt, ignoriert der Knoten sie und verteilt sie nicht. Dieser Prozess ist wichtig, um DoS-Angriffe abzuwehren, da nur gültige Transaktionen an das gesamte Netzwerk gesendet werden. Ungültige Transaktionen, die möglicherweise massenhaft generiert werden, um das Netzwerk zu überlasten, werden am ersten Knoten, auf den sie treffen, gestoppt und verbreiten sich nicht. Das Hauptrisiko bei Dandelion besteht darin, dass dieses neue Protokoll neue Vektoren für DoS-Angriffe einführen könnte, da ungültige Transaktionen über einen Teil des Netzes verbreitet werden können.

P2P-Transport V2

P2P Transport V2 ist ein weiteres Netzwerkprotokoll, das in BIP324 vorgestellt wurde. Es ist eine neue Version des Bitcoin P2P-Transportprotokolls, das opportunistische Verschlüsselung beinhaltet, um die Vertraulichkeit und Sicherheit der Kommunikation zwischen den Knotenpunkten zu verbessern.

Mit dieser Erweiterung sollen mehrere Probleme der Basisversion des P2P-Protokolls gelöst werden. Zum einen macht sie die ausgetauschten Daten für einen passiven Beobachter ununterscheidbar von anderen im Internet zirkulierenden Datentypen. Damit soll vor allem verhindert werden, dass Regierungen, Internetanbieter und VPN-Provider Bitcoin-Nutzer massiv überwachen können. Dadurch wird es für diese Stellen auch schwieriger festzustellen, ob ein Internetnutzer auch ein Bitcoin-Nutzer ist, d. h. ob er oder sie einen kompletten Knoten betreibt.

P2P V2 trägt auch dazu bei, das Risiko von Zensur und Angriffen zu verringern, indem bestimmte Muster in Datenpaketen erkannt werden. Es erschwert und verteuert die Durchführung verschiedener Arten von Sybil-Angriffen auf Netzwerkebene. Ein Sybil-Angriff liegt vor, wenn ein Akteur mehrere falsche Identitäten erstellt, um sich einen unlauteren Vorteil zu verschaffen. Im Kontext des Bitcoin-Netzwerks äußert sich dies oft dadurch, dass ein Akteur eine große Anzahl vollständiger Knoten kontrolliert und diese aggressiv zur Vervielfachung von Verbindungen nutzt. Sybil-Angriffe können passiv sein, um Informationen zu sammeln und die Vertraulichkeit der Nutzer zu gefährden, oder aktiv, in Form von Eclipse-Angriffen. Letztere isolieren einen bestimmten Knoten vom Rest des Netzes und zensieren entweder den Benutzer oder verändern die Daten, die er erhält. Schließlich macht P2P V2 auch Man-In-The-Middle (MITM)-Angriffe kostspieliger und leichter zu entdecken.

Die von P2P V2 implementierte Verschlüsselung beinhaltet keine Authentifizierung, um keine unnötige Komplexität hinzuzufügen oder die Tatsache zu gefährden, dass die Verbindung zum Netz erlaubnisfrei bleibt. Dennoch bietet dieses neue P2P-Transportprotokoll eine bessere Sicherheit gegen passive Angriffe und macht aktive Angriffe wesentlich kostspieliger und aufspürbarer. Die Einführung eines pseudozufälligen Datenstroms in den Netzwerknachrichten macht es Angreifern schwerer, die Kommunikation zu zensieren oder zu manipulieren.

Der P2P-V2-Transport wurde als Option (standardmäßig deaktiviert) in Bitcoin Core Version 26.0 aufgenommen, die im Dezember 2023 bereitgestellt wurde. Er wurde dann in Version 27.0 vom April 2024 standardmäßig aktiviert. Er kann mit der Option v2transport= in der Konfigurationsdatei geändert werden.

Tor

Eine andere einfache Lösung, um das Risiko eines Vertraulichkeitsverlustes für einen Netzwerkknoten zu vermeiden, ist, ihn vollständig unter Tor zu betreiben.

Tor ist ein Netzwerk von Relay-Servern (Knoten), die den Ursprung von TCP-Verbindungen im Internet anonymisieren. Es funktioniert, indem es Daten in mehrere Verschlüsselungsebenen einkapselt. Jeder Relaisknoten entfernt eine Schicht, um die Adresse des nächsten Knotens zu enthüllen, bis das endgültige Ziel erreicht ist. Das Tor-Netzwerk gewährleistet Anonymität, indem es verhindert, dass zwischengeschaltete Knoten sowohl den Ursprung als auch das Ziel der Daten kennen, was es für einen Beobachter sehr schwierig macht, die Aktivitäten eines Nutzers nachzuvollziehen.

BTC204

Tor verschlüsselt nicht nur Daten, sondern verschleiert auch den Ursprung und das Ziel der Kommunikation. Indem Sie Tor für die Kommunikation von Ihrem persönlichen Knotenpunkt aus nutzen, verstärken Sie die Vertraulichkeit Ihrer Transaktionen: Ihr ISP kann die Kommunikation nicht entschlüsseln und andere Knotenpunkte im Bitcoin-Netzwerk können die IP-Adresse des Quellknotens nicht identifizieren. Darüber hinaus verbirgt Tor auch Ihre Nutzung von Bitcoin vor Ihrem Internetdienstanbieter.

Das Hauptrisiko bei dieser Methode ist, dass Tor ein von Bitcoin unabhängiges Protokoll ist. Wenn du einen Bitcoin-Knoten unter Tor laufen hast und Tor nicht mehr funktioniert, dann wird dein Bitcoin-Knoten nicht mehr kommunizieren können.

Es ist auch wichtig zu wissen, dass die Kommunikation auf Tor langsamer ist. Diese Latenz ist besonders ärgerlich während des ersten Starts eines Knotens, da IBD (Initial Block Download) eine Menge Kommunikation erfordert. Daher kann die erste Synchronisation mit dem Bitcoin-Netzwerk über Tor deutlich länger dauern. Es ist auch möglich, IBD im Clearnetz durchzuführen und dann Tor in einem zweiten Schritt zu aktivieren. Obwohl diese Methode die Existenz deines Bitcoin-Knotens deinem ISP offenbart, schützt sie deine persönlichen Transaktionsinformationen, sobald du zu Tor wechselst.

Nachdem ich die verschiedenen Methoden der Vertraulichkeit auf Netzebene untersucht habe, möchte ich Ihnen in den nächsten Kapiteln auch zwei elegante Lösungen zur Vermeidung der Wiederverwendung von Adressen vorstellen: BIP47 und Silent Payments.

BIP47 und wiederverwendbare Zahlungscodes

Wie wir in Teil 3 gesehen haben, ist die Wiederverwendung von Adressen ein ernsthaftes Hindernis für die Vertraulichkeit der Nutzer des Bitcoin-Protokolls. Um diese Risiken zu vermindern, wird dringend empfohlen, für jede neue Zahlung, die in einer Wallet eingeht, eine leere Empfängeradresse zu generieren. Obwohl die Generierung einer neuen Adresse durch den Einsatz moderner Software und hierarchischer, deterministischer Wallets vereinfacht wird, mag diese Praxis kontraintuitiv erscheinen.

BTC204

Im traditionellen Bankensystem sind wir zum Beispiel daran gewöhnt, unsere IBAN mitzuteilen, die immer dieselbe bleibt. Sobald wir sie jemandem mitgeteilt haben, kann er uns mehrere Zahlungen schicken, ohne erneut mit uns in Kontakt treten zu müssen. Neo-Banken bieten auch modernere Möglichkeiten, wie die Verwendung eindeutiger E-Mail-Adressen bei PayPal oder RevTags bei Revolut. Auch außerhalb des Finanzbereichs sind unsere alltäglichen Identifikatoren wie unsere Postanschrift, Telefonnummer und E-Mail-Adresse eindeutig und dauerhaft. Wir müssen sie nicht für jede neue Interaktion erneuern.

BTC204

Bitcoin funktioniert jedoch anders: Für jede eingehende Transaktion muss eine neue Empfängeradresse generiert werden. Dieser Kompromiss zwischen Benutzerfreundlichkeit und Vertraulichkeit geht auf die Ursprünge des Weißbuchs von Bitcoin zurück. Bereits bei der Veröffentlichung der ersten Version seines Dokuments Ende 2008 warnte Satoshi Nakamoto vor diesem Risiko:

**Als zusätzliche Firewall könnte für jede Transaktion ein neues Schlüsselpaar verwendet werden, damit sie nicht mit einem gemeinsamen Eigentümer verknüpft sind

Es gibt viele Möglichkeiten, mehrere Zahlungen für eine einzige Kennung zu erhalten, ohne eine Adresse erneut verwenden zu müssen. Jede hat ihre eigenen Vor- und Nachteile. Zu diesen Methoden gehört BIP47, ein von Justus Ranvier entwickelter und 2015 veröffentlichter Vorschlag. Dieser Vorschlag zielt darauf ab, wiederverwendbare Zahlungscodes zu schaffen, die es ermöglichen, mehrere Transaktionen mit ein und derselben Person durchzuführen und dabei die Wiederverwendung von Adressen zu vermeiden. Kurz gesagt, BIP47 zielt darauf ab, ein Zahlungssystem anzubieten, das so intuitiv wie eine eindeutige Kennung ist und gleichzeitig die Vertraulichkeit von Transaktionen wahrt.

BTC204

BIP47 verbessert nicht direkt die Vertraulichkeit der Nutzer, da eine BIP47-Zahlung das gleiche Maß an Vertraulichkeit bietet wie eine klassische Bitcoin-Transaktion mit leeren Adressen. Allerdings macht es die Nutzung von Bitcoin bequemer und intuitiver, eine Bequemlichkeit, die normalerweise die Vertraulichkeit beeinträchtigen würde. Dank BIP47 erreicht diese Benutzerfreundlichkeit das gleiche Maß an Vertraulichkeit wie eine klassische Transaktion. Aus diesem Grund ist BIP47 ein so wertvolles Instrument zur Wahrung der Privatsphäre.

Ursprünglich wurde BIP47 zur Integration in Bitcoin Core vorgeschlagen, aber nie wirklich implementiert. Einige Softwareanwendungen haben sich jedoch entschieden, es selbst zu implementieren. Zum Beispiel haben die Samourai Wallet Teams ihre eigene Implementierung von BIP47 namens "PayNym" entwickelt.

Allgemeines Prinzip von BIP47 und PayNym

Das Ziel von BIP47 ist es, den Empfang einer großen Anzahl von Zahlungen zu ermöglichen, ohne Adressen wiederzuverwenden. Es basiert auf der Verwendung eines wiederverwendbaren Zahlungscodes, der es verschiedenen Emittenten ermöglicht, mehrere Zahlungen an einen einzigen Code zu senden, der einem anderen Nutzer gehört. So muss der Empfänger nicht für jede Transaktion eine neue, leere Adresse angeben, was den Austausch erheblich erleichtert und gleichzeitig die Vertraulichkeit wahrt.

BTC204

Ein Nutzer kann also seinen Zahlungscode völlig frei weitergeben, sei es in sozialen Netzwerken oder auf seiner Website, ohne einen Verlust der Vertraulichkeit zu riskieren, anders als bei einer herkömmlichen Empfängeradresse oder einem öffentlichen Schlüssel.

Um eine Transaktion durchzuführen, benötigen beide Parteien eine Bitcoin-Wallet mit einer BIP47-Implementierung, wie z. B. PayNym auf Samurai Wallet oder Sparrow Wallet. Die gemeinsame Nutzung ihrer Zahlungscodes schafft einen geheimen Kanal zwischen ihnen. Um diesen Kanal effektiv zu etablieren, muss der Emittent eine bestimmte Transaktion auf der Bitcoin-Blockchain durchführen, die als "Benachrichtigungstransaktion" bezeichnet wird (mehr dazu später).

Die Kombination der Zahlungscodes der beiden Nutzer erzeugt gemeinsame Geheimnisse, die wiederum eine große Anzahl einzigartiger Bitcoin-Empfangsadressen erzeugen (genau 2^32, also etwa 4 Milliarden). Auf diese Weise werden die über BIP47 getätigten Zahlungen nicht an den Zahlungscode selbst adressiert, sondern an klassische Empfangsadressen, die aus den Zahlungscodes der beteiligten Nutzer abgeleitet werden.

Der Zahlungscode dient somit als virtuelle Kennung, die aus dem Portfolio-Seed abgeleitet wird. In der hierarchischen Ableitungsstruktur des Portfolios befindet sich der Zahlungscode auf Ebene 3, d. h. auf Kontoebene.

BTC204

Das Ableitungsziel für BIP47 wird durch den Index 47' (0x8000002F') identifiziert, der sich auf BIP47 bezieht. Ein Beispiel für einen Ableitungspfad für einen wiederverwendbaren Zahlungscode wäre wie folgt:

m/47'/0'/0'/

Um Ihnen eine Vorstellung davon zu geben, wie ein Zahlungscode aussieht, hier ist meiner:

PM8TJSBiQmNQDwTogMAbyqJe2PE2kQXjtgh88MRTxsrnHC8zpEtJ8j7Aj628oUFk8X6P5rJ7P5qDudE4Hwq9JXSRzGcZJbdJAjM9oVQ1UKU5j2nr7VR5

Dieser Code kann auch als QR-Code kodiert werden, um die Kommunikation zu erleichtern, genau wie eine herkömmliche Empfangsadresse.

Bei den PayNym Bots, den Robotern, die man manchmal auf Twitter sieht, handelt es sich um visuelle Darstellungen des Zahlungscodes, die von Samourai Wallet erstellt wurden. Sie werden mit einer Hash-Funktion generiert, wodurch sie nahezu eindeutig sind. Sie haben die Form einer kleinen Zeichenkette, die mit "+" beginnt:

+throbbingpond8B1
+twilightresonance487
+billowingfire340

Diese Avatare können auch als Bilder dargestellt werden:

BTC204

Obwohl diese Roboter im Rahmen von BIP47 keine spezifischen technischen Funktionen haben, spielen sie eine Rolle bei der Erleichterung der Benutzerinteraktion, indem sie eine leicht erkennbare visuelle Identität bieten.


In den folgenden Abschnitten dieses Kapitels, die BIP47 gewidmet sind, werden wir einen detaillierten Blick auf dessen Funktionsweise werfen, wobei der Schwerpunkt auf den verwendeten kryptografischen Methoden liegt. Um diese etwas technischen Erklärungen vollständig zu verstehen, ist es wichtig, zunächst die Struktur von HD-Wallets, die Verfahren zur Schlüsselableitung und die Grundlagen der Kryptographie mit elliptischen Kurven zu verstehen. Wenn Sie tiefer in diese Konzepte einsteigen möchten, steht Ihnen ein weiterer kostenloser Schulungskurs im Plan ₿ Network zur Verfügung :

https://planb.network/courses/46b0ced2-9028-4a61-8fbc-3b005ee8d70f

Ich empfehle Ihnen trotzdem, sie zu befolgen, denn wenn Sie die technische Funktionsweise des BIP47 verstehen, wird es Ihnen viel leichter fallen, andere, ähnliche Vorschläge zu verstehen, die wir in den folgenden Kapiteln besprechen werden


Der wiederverwendbare Zahlungscode

Wie bereits erwähnt, befindet sich der wiederverwendbare Zahlungscode in der Tiefe 3 der HD-Wallet und ist damit sowohl hinsichtlich seiner Position in der Wallet-Struktur als auch hinsichtlich seiner Rolle mit einer "xpub" vergleichbar.

Der 80-Byte-Zahlungscode setzt sich wie folgt zusammen:

Hier ist die hexadezimale Darstellung meines wiederverwendbaren Zahlungscodes, der bereits im vorherigen Abschnitt vorgestellt wurde:

0x010002a0716529bae6b36c5c9aa518a52f9c828b46ad8d907747f0d09dcd4d9a39e97c3c5f37c470c390d842f364086362f6122f412e2b0c7e7fc6e32287e364a7a36a00000000000000000000000000
BTC204

Als nächstes muss das Präfixbyte "P" am Anfang hinzugefügt werden, um deutlich zu machen, dass es sich um einen Zahlungscode handelt. Dieses Byte wird durch "0x47" dargestellt:

0x47010002a0716529bae6b36c5c9aa518a52f9c828b46ad8d907747f0d09dcd4d9a39e97c3c5f37c470c390d842f364086362f6122f412e2b0c7e7fc6e32287e364a7a36a00000000000000000000000000

Um die Integrität des Zahlungscodes zu gewährleisten, wird schließlich eine Prüfsummenberechnung mit HASH256 durchgeführt, die aus einem doppelten Hash unter Verwendung der Funktion SHA256 besteht. Die ersten vier Bytes dieses Hashwerts werden dann am Ende des Zahlungscodes aneinandergereiht:

0x47010002a0716529bae6b36c5c9aa518a52f9c828b46ad8d907747f0d09dcd4d9a39e97c3c5f37c470c390d842f364086362f6122f412e2b0c7e7fc6e32287e364a7a36a00000000000000000000000000567080c4
BTC204

Sobald diese Schritte abgeschlossen sind, ist der Zahlungscode fertig. Nun muss er nur noch in die Basis 58 umgewandelt werden, um die endgültige Version zu erhalten:

PM8TJSBiQmNQDwTogMAbyqJe2PE2kQXjtgh88MRTxsrnHC8zpEtJ8j7Aj628oUFk8X6P5rJ7P5qDudE4Hwq9JXSRzGcZJbdJAjM9oVQ1UKU5j2nr7VR5

Bei der Erstellung des Zahlungscodes verwenden wir einen komprimierten öffentlichen Schlüssel und einen String-Code. Beide werden deterministisch und hierarchisch aus dem Wallet-Seed abgeleitet. Der hierfür verwendete Ableitungspfad lautet :

m/47'/0'/0'/

Um den komprimierten öffentlichen Schlüssel und den mit dem wiederverwendbaren Zahlungscode verknüpften Stringcode zu generieren, berechnen wir zunächst den privaten Hauptschlüssel aus dem Wallet-Seed. Dann wird ein Paar von Tochterschlüsseln mit dem Index "47 + 2^31" abgeleitet (verstärkte Ableitung). Danach folgen zwei weitere Ableitungen von Tochterschlüsselpaaren, jeweils mit dem Index "2^31" (verstärkte Ableitung).

BTC204

Diffie-Hellman-Schlüsselaustausch auf elliptischen Kurven (ECDH)

Das kryptografische Protokoll, das BIP47 zugrunde liegt, ist unter dem Akronym ECDH bekannt, das für Elliptic-Curve Diffie-Hellman steht. Diese Methode ist eine Variante des ursprünglichen Diffie-Hellman-Schlüsselaustauschs.

Das 1976 eingeführte Diffie-Hellman-Protokoll ist ein Schlüsselvereinbarungsprotokoll, das es zwei Parteien, die jeweils über ein Schlüsselpaar (öffentlich und privat) verfügen, ermöglicht, sich auf ein gemeinsames Geheimnis zu einigen, selbst wenn die Kommunikation nur über einen öffentlichen, ungesicherten Kanal erfolgt.

BTC204

Dieses gemeinsame Geheimnis (in diesem Fall der blaue Schlüssel) kann dann für andere Operationen verwendet werden. In der Regel kann dieses gemeinsame Geheimnis zum Ver- und Entschlüsseln einer Kommunikation in einem ungesicherten Netz verwendet werden:

BTC204

Um dies zu erreichen, verwendet Diffie-Hellman die modulare Arithmetik zur Berechnung des gemeinsamen Geheimnisses. So funktioniert es in einfachen Worten:

BTC204

In dieser Popularisierung steht die Farbe Braun für das von Alice und Bob geteilte Geheimnis. Stellen Sie sich vor, dass es in der Realität für den Angreifer unmöglich ist, die Farben Orange und Grün zu trennen, um die geheimen Farben von Alice oder Bob zu finden.

Schauen wir uns nun an, wie dieses Protokoll tatsächlich funktioniert, nicht mit Farbanalogien, sondern mit reellen Zahlen und modularer Arithmetik!

Bevor wir uns mit den Diffie-Hellman-Mechanismen befassen, möchte ich Sie kurz an zwei grundlegende mathematische Konzepte erinnern, die wir benötigen:

Der Diffie-Hellman-Schlüsselaustausch zwischen Alice und Bob findet wie folgt statt:

A ist gleich g erhöht mit der Potenz a modulo p :

A = g^a \bmod p

B ist gleich g erhöht mit der Potenz b modulo p :

B = g^b \bmod p

z ist gleich B erhöht mit der Potenz a modulo p :

z = B^a \bmod p

Zur Erinnerung:

B = g^b \bmod p

Das Ergebnis ist:

z = B^a \bmod p
z = (g^b)^a \bmod p

Durch die Anwendung der Leistungsregeln :

(x^n)^m = x^{nm}

Das Ergebnis ist:

z = g^{ba} \bmod p

z ist gleich A erhöht mit der Potenz b modulo p :

z = A^b \bmod p

Das Ergebnis ist:

z = (g^a)^b \bmod p
z = g^{ab} \bmod p
z = g^{ba} \bmod p

Dank der Distributivität des Modulo-Operators erhalten Alice und Bob genau denselben Wert z. Diese Zahl stellt ihr gemeinsames Geheimnis dar und entspricht der Farbe Braun in der früheren Popularisierung mit Farbdosen. Dieses gemeinsame Geheimnis können sie nun verwenden, um ihre Kommunikation über ein ungesichertes Netz symmetrisch zu verschlüsseln.

BTC204

Selbst wenn ein Angreifer im Besitz von p, g, A und B (den öffentlichen Werten) wäre, könnte er a, b oder z (die privaten Werte) nicht berechnen. Um dies zu erreichen, müsste man die Potenzierung umkehren, was unmöglich ist, ohne alle Möglichkeiten einzeln auszuprobieren, da es auf die Berechnung des diskreten Logarithmus hinausläuft, d. h. des Kehrwerts der Exponentialfunktion in einer endlichen zyklischen Gruppe.

Solange also die Werte von a, b und p groß genug sind, ist das Diffie-Hellman-Protokoll sicher. Bei Parametern von 2048 Bit (eine 600-stellige Dezimalzahl) wäre es in der Regel unpraktisch, alle Möglichkeiten für a und b zu testen. Bislang gilt dieser Algorithmus bei solchen Zahlen als sicher.

Hierin liegt der größte Nachteil des Diffie-Hellman-Protokolls. Um sicher zu sein, muss der Algorithmus mit großen Zahlen arbeiten. Deshalb verwenden wir heutzutage lieber den ECDH-Algorithmus (Elliptic Curve Diffie-Hellman), eine Variante des Diffie-Hellman-Algorithmus, die auf einer algebraischen Kurve, genauer gesagt einer elliptischen Kurve, basiert. Dieser Ansatz ermöglicht es, bei gleicher Sicherheit mit viel kleineren Zahlen zu arbeiten und so die für die Berechnung und Speicherung erforderlichen Ressourcen zu reduzieren.

Das allgemeine Prinzip des Algorithmus bleibt das gleiche. Anstelle einer Zufallszahl a und einer aus a durch modulare Potenzierung berechneten Zahl A verwenden wir jedoch ein auf einer elliptischen Kurve festgelegtes Schlüsselpaar. Anstatt sich auf die Distributivität des Modulo-Operators zu verlassen, verwenden wir das Gruppengesetz auf elliptischen Kurven, genauer gesagt die Assoziativität dieses Gesetzes.

Um das Prinzip der Kryptographie auf elliptischen Kurven kurz zu erklären, wird ein privater Schlüssel durch eine Zufallszahl zwischen 1 und n-1 dargestellt, wobei n die Ordnung der Kurve darstellt. Der öffentliche Schlüssel hingegen ist ein bestimmter Punkt auf dieser Kurve, der aus dem privaten Schlüssel durch Addition und Verdopplung von Punkten des Erzeugungspunktes gemäß der Gleichung gewonnen wird:

K = k \cdot G

In dieser Formel bezeichnet K den öffentlichen Schlüssel, k den privaten Schlüssel und G den Generatorpunkt.

Ein wesentliches Merkmal dieser Schlüssel ist die Leichtigkeit, mit der K aus k und G berechnet werden kann, während es praktisch unmöglich ist, k aus K und G zu ermitteln. Diese Asymmetrie schafft eine Einwegfunktion. Mit anderen Worten: Es ist einfach, den öffentlichen Schlüssel zu berechnen, wenn man den privaten Schlüssel kennt, aber es ist unmöglich, den privaten Schlüssel anhand des öffentlichen Schlüssels zu ermitteln. Diese Sicherheit wird durch die Schwierigkeit der Berechnung des diskreten Logarithmus noch weiter untermauert.

Wir werden diese Eigenschaft nutzen, um unseren Diffie-Hellman-Algorithmus anzupassen. Das Funktionsprinzip von ECDH ist wie folgt:

K_a = k_a \cdot G
K_b = k_b \cdot G
(x,y) = k_a \cdot K_b
(x,y) = k_b \cdot K_a

Sie erhalten das gleiche gemeinsame Geheimnis, weil :

(x,y) = k_a \cdot K_b = k_a \cdot (k_b \cdot G) = (k_a \cdot k_b) \cdot G = (k_b \cdot k_a) \cdot G = k_b \cdot (k_a \cdot G) = k_b \cdot K_a

Ein potenzieller Angreifer, der das ungesicherte öffentliche Netz beobachtet, kann nur die öffentlichen Schlüssel der einzelnen Personen und die Parameter der gewählten elliptischen Kurve in Erfahrung bringen. Wie oben erläutert, reichen diese Informationen allein nicht aus, um die privaten Schlüssel zu ermitteln. Folglich kann der Angreifer das zwischen Alice und Bob geteilte Geheimnis nicht herausfinden.

ECDH ist also ein Schlüsselaustauschalgorithmus. Er wird oft in Verbindung mit anderen kryptographischen Methoden verwendet, um ein vollständiges Protokoll zu erstellen. ECDH ist beispielsweise das Herzstück von TLS (Transport Layer Security), einem Verschlüsselungs- und Authentifizierungsprotokoll, das für die Internet-Transportschicht verwendet wird. TLS verwendet ECDHE für den Schlüsselaustausch, eine Variante von ECDH, bei der die Schlüssel kurzlebig sind, um dauerhafte Vertraulichkeit zu gewährleisten. Darüber hinaus verwendet TLS Authentifizierungsalgorithmen wie ECDSA, Verschlüsselungsalgorithmen wie AES und Hash-Funktionen wie SHA256.

TLS ist verantwortlich für das s in https und das Vorhängeschloss in der Adressleiste Ihres Browsers - Symbole für verschlüsselte Kommunikation. Wenn Sie diesen Kurs besuchen, werden Sie ECDH verwenden, und es ist sehr wahrscheinlich, dass Sie es täglich nutzen werden, ohne es zu wissen.

Die Benachrichtigungstransaktion

Wie wir im vorigen Abschnitt gesehen haben, ist ECDH eine Variante des Diffie-Hellman-Austauschs, die Schlüsselpaare verwendet, die auf einer elliptischen Kurve erstellt wurden. Es ist eine gute Sache, dass wir bereits viele Schlüsselpaare in unseren Bitcoin-Brieftaschen haben, die diesem Standard entsprechen! Die Idee von BIP47 ist es, die Schlüsselpaare der hierarchischen, deterministischen Bitcoin-Wallets beider Parteien zu verwenden, um gemeinsame, ephemere Geheimnisse zwischen ihnen zu schaffen. BIP47 verwendet stattdessen ECDHE (Elliptic Curve Diffie-Hellman Ephemeral).

BTC204

ECDHE wird zuerst in BIP47 verwendet, um den Zahlungscode vom Absender an den Empfänger zu übermitteln. Dies ist die berühmte Nachrichtentransaktion. Dieser Schritt ist unerlässlich, denn damit BIP47 effektiv funktioniert, müssen beide beteiligten Parteien (Sender und Empfänger) die Zahlungscodes des jeweils anderen kennen. Diese Kenntnis ermöglicht die Ableitung von ephemeren öffentlichen Schlüsseln und folglich der zugehörigen leeren Empfängeradressen.

Vor diesem Austausch ist dem Absender der Zahlungscode des Empfängers logischerweise bereits bekannt, da er ihn außerhalb der Kette abgerufen hat, z. B. von seiner Website, seiner Rechnung oder aus sozialen Netzwerken. Der Empfänger kennt jedoch nicht unbedingt den Zahlungscode des Absenders. Der Code muss ihm jedoch übermittelt werden, da er sonst nicht in der Lage ist, die ephemeren Schlüssel abzuleiten, die er benötigt, um die Adressen zu identifizieren, an denen seine Bitcoins gespeichert sind, oder um auf sein Geld zuzugreifen. Obwohl diese Übermittlung des Codes des Absenders technisch gesehen auch außerhalb der Kette durch andere Kommunikationsmittel erfolgen kann, stellt dies ein Problem dar, wenn die Wallet nur vom Seed abgerufen werden soll.

Das liegt daran, dass BIP47-Adressen im Gegensatz zu herkömmlichen Adressen nicht direkt aus dem Seed des Empfängers abgeleitet werden - die Verwendung eines "xpub" wäre in diesem Fall einfacher -, sondern aus einer Berechnung resultieren, die die beiden Zahlungscodes kombiniert: den des Absenders und den des Empfängers. Wenn der Empfänger also seine Brieftasche verliert und versucht, sie mit seinem Seed wiederherzustellen, erhält er seinen eigenen Zahlungscode zurück, der direkt von seinem Seed abgeleitet ist. Um jedoch ephemere Adressen wiederherzustellen, benötigt er auch die Zahlungscodes all derer, die ihm über BIP47 Bitcoins geschickt haben. Daher die Bedeutung der Benachrichtigungstransaktion, die es ermöglicht, diese Informationen in der Bitcoin-Blockchain zu speichern und sie dennoch sehr leicht zu finden, ohne die Milliarden von Transaktionen, die seit der Einführung im Jahr 2009 durchgeführt wurden, durchsuchen zu müssen.

BTC204

Es wäre also möglich, BIP47 ohne die Benachrichtigungstransaktion zu implementieren, vorausgesetzt, dass jeder Nutzer eine Sicherungskopie der Zahlungscodes seiner Mitspieler aufbewahrt. Diese Methode erweist sich jedoch als kompliziert zu handhaben, bis eine einfache, robuste und effiziente Lösung für die Erstellung, Speicherung und Aktualisierung dieser Sicherungskopien entwickelt wird. Beim derzeitigen Stand der Dinge ist die Benachrichtigungstransaktion fast unumgänglich.

In den folgenden Kapiteln werden wir uns jedoch mit anderen Protokollen befassen, die ähnliche Ziele wie BIP47 verfolgen, aber keine Benachrichtigungstransaktion erfordern. Diese Alternativen bringen jedoch ihre eigenen Kompromisse mit sich.

Die Benachrichtigungstransaktion dient nicht nur der Speicherung von Zahlungscodes, sondern hat, wie der Name schon sagt, auch eine Benachrichtigungsfunktion für den Empfänger. Sie macht den Kunden des Empfängers darauf aufmerksam, dass ein neuer Zahlungstunnel eingerichtet wurde, und empfiehlt ihm, die daraus resultierenden flüchtigen Adressen im Auge zu behalten.

Das Vertraulichkeitsmodell BIP47

Bevor auf die technische Funktionsweise des Meldevorgangs eingegangen wird, ist es wichtig, das mit BIP47 verbundene Vertraulichkeitsmodell zu erörtern, das bestimmte Maßnahmen bei der Erstellung dieses ersten Vorgangs rechtfertigt.

Der Zahlungscode selbst stellt kein unmittelbares Risiko für die Vertraulichkeit dar. Im Gegensatz zum traditionellen Bitcoin-Modell, das darauf abzielt, die Verbindung zwischen der Identität des Nutzers und seinen Transaktionen (die öffentlich sind) durch die Wahrung der Anonymität von Schlüsseln und Adressen zu brechen, kann der Zahlungscode offen mit einer Identität verbunden werden, ohne eine Bedrohung darzustellen.

Dies liegt daran, dass der Zahlungscode nicht direkt zur Ableitung der Adressen verwendet wird, die BIP47-Zahlungen erhalten. Stattdessen werden diese Adressen über die ECDH-Anwendung zwischen den aus den Zahlungscodes der beiden beteiligten Parteien abgeleiteten Schlüsseln generiert.

Ein Zahlungscode an sich führt also nicht direkt zu einem Verlust der Vertraulichkeit, da von ihm nur die Meldeadresse abgeleitet wird. Diese Adresse kann zwar bestimmte Informationen preisgeben, lässt aber normalerweise nicht erkennen, mit wem Sie Transaktionen durchführen, es sei denn, es wird eine gründliche Kettenanalyse durchgeführt. Wenn der Absender nämlich UTXOs verwendet, die mit seiner Identität in Verbindung gebracht werden können, um die Meldungstransaktion durchzuführen, kann man daraus schließen, dass seine Identität wahrscheinlich mit BIP47-Zahlungen an Ihren Zahlungscode verbunden ist. Dadurch werden die zugrundeliegenden Transaktionen nicht aufgedeckt, aber es wird auf ihre wahrscheinliche Existenz hingewiesen.

Es ist daher unerlässlich, diese strikte Trennung zwischen den Zahlungscodes der Nutzer aufrechtzuerhalten. In diesem Sinne ist die erste Übermittlung des Codes ein kritischer Moment für die Vertraulichkeit der Zahlung, der jedoch für das korrekte Funktionieren des Protokolls unerlässlich ist. Wenn einer der Zahlungscodes öffentlich zugänglich ist (z. B. auf einer Website), darf der zweite Code, der des Absenders, unter keinen Umständen mit dem ersten in Verbindung gebracht werden.

Lassen Sie uns ein konkretes Beispiel nehmen: Ich möchte über das BIP47 eine Spende an eine politische Bewegung tätigen:

Wie kann ich meinen Code ohne Risiko weitergeben? Die Verwendung herkömmlicher Kommunikationsmittel könnte zu einem Informationsverlust führen und mich somit mit dieser politischen Bewegung in Verbindung bringen. Die Benachrichtigungstransaktion bietet eine Lösung dank einer Verschlüsselungsebene, die genau eine solche Verbindung zwischen zwei Codes verhindert. Es ist zwar nicht die einzige Methode, um den Zahlungscode des Absenders heimlich zu übermitteln, aber eine sehr wirksame.

Im folgenden Diagramm zeigen die orangefarbenen Linien die Punkte, an denen der Informationsfluss unterbrochen werden muss, und die schwarzen Pfeile die Verbindungen, die von Dritten beobachtet werden können:

BTC204

In der Realität ist es bei dem traditionellen Vertraulichkeitsmodell von Bitcoin oft komplex, den Informationsfluss zwischen dem Schlüsselpaar und dem Nutzer vollständig zu trennen, insbesondere bei Ferntransaktionen. Zum Beispiel muss der Empfänger im Rahmen einer Spendenkampagne zwangsläufig eine Adresse oder einen öffentlichen Schlüssel über seine Website oder soziale Netzwerke offenlegen. Die korrekte Verwendung von BIP47, insbesondere bei der Benachrichtigungstransaktion, ermöglicht es, dieses Problem dank ECDHE und der Verschlüsselungsschicht, auf die wir später noch eingehen werden, zu umgehen.

Natürlich gilt das klassische Vertraulichkeitsmodell von Bitcoin auch für ephemere öffentliche Schlüssel, die aus der Kombination der beiden Zahlungscodes abgeleitet werden. Die beiden Modelle sind in der Tat komplementär. Was ich hier betonen möchte, ist, dass im Gegensatz zur üblichen Verwendung eines öffentlichen Schlüssels für den Empfang von Bitcoins der Zahlungscode mit einer bestimmten Identität verknüpft werden kann, da die Information "Alice tätigt eine Transaktion mit Bob" in einem anderen Stadium gebrochen wird. Der Zahlungscode wird verwendet, um Zahlungsadressen zu generieren, aber allein aufgrund der Beobachtung der Blockchain ist es unmöglich, eine BIP47-Zahlungstransaktion mit den Zahlungscodes zu verknüpfen, die zu ihrer Ausführung verwendet wurden, es sei denn, die beteiligten UTXOs waren bereits zuvor mit einer Identität verknüpft und die Nutzer haben ihre Zahlungscodes mit ihren jeweiligen Identitäten verbunden.

Zusammenfassend kann man sagen, dass das von BIP47 angebotene Vertraulichkeitsmodell dem Bitcoin-Basismodell überlegen ist, was aber nicht bedeutet, dass es magisch ist.

Aufbau der Meldungstransaktion

Schauen wir uns nun an, wie diese Meldungstransaktion funktioniert. Stellen wir uns vor, dass Alice mit BIP47 Geld an Bob senden möchte. In meinem Beispiel ist Alice der Absender und Bob der Empfänger. Bob hat seinen Zahlungscode auf seiner Website veröffentlicht. Alice kennt also bereits Bobs Zahlungscode.

1- Alice berechnet ein gemeinsames Geheimnis mit ECDH :

a

B = b \cdot G

S = a \cdot B

f = \text{HMAC-SHA512}(o, x)

**2 - Alice konvertiert ihren persönlichen Zahlungscode zur Basis 2 (binär) **

3 - Er verwendet diesen Verblendungsfaktor als Schlüssel, um die Nutzdaten seines Zahlungscodes symmetrisch zu verschlüsseln. Der verwendete Verschlüsselungsalgorithmus ist einfach ein "XOR". Die durchgeführte Operation ist vergleichbar mit der Vernam-Chiffre, die auch als "One-Time-Pad" bekannt ist.

f = f1 || f2

x' = x \oplus f1

c' = c \oplus f2

4- Alice verfügt also derzeit über ihren Zahlungscode mit einer verschlüsselten Nutzlast. Sie konstruiert und sendet eine Transaktion mit ihrem öffentlichen Schlüssel A als Eingabe, einer Ausgabe an Bobs Benachrichtigungsadresse und einer Ausgabe OP_RETURN, die aus ihrem Zahlungscode mit der verschlüsselten Nutzlast besteht. Diese Transaktion ist die Benachrichtigungstransaktion.

Ein "OP_RETURN" ist ein Opcode, der die Ausgabe einer Bitcoin-Transaktion als ungültig markiert. Heute wird er verwendet, um Informationen auf der Bitcoin-Blockchain zu senden oder zu verankern. Er kann bis zu 80 Bytes an Daten speichern, die dann in die Kette geschrieben werden und für alle anderen Nutzer sichtbar sind.

Wie wir in den vorangegangenen Abschnitten gesehen haben, wird ECDH verwendet, um ein gemeinsames Geheimnis zwischen zwei Benutzern zu generieren, die über ein unsicheres Netzwerk kommunizieren und potenziell von Angreifern beobachtet werden können. In BIP47 wird ECDH verwendet, um über das Bitcoin-Netzwerk zu kommunizieren, das von Natur aus ein transparentes Kommunikationsnetzwerk ist und von vielen Angreifern beobachtet werden kann. Das durch den ECDH-Schlüsselaustausch berechnete gemeinsame Geheimnis wird dann zur Verschlüsselung der zu übertragenden geheimen Information verwendet: dem Zahlungscode des Absenders (Alice).

Ich werde die Schritte, die wir gerade gesehen haben, zusammenfassen, um eine Benachrichtigungstransaktion auszuführen:

BTC204

Meldung von Vorgängen: eine praktische Studie

Um die Funktionsweise und insbesondere die Verwendung von OP_RETURN im Detail zu verstehen, wollen wir uns eine echte Benachrichtigungstransaktion ansehen. Ich habe eine solche Transaktion im Testnetz durchgeführt, das Sie [durch Klicken hier] finden (https://mempool.space/fr/testnet/tx/0e2e4695a3c49272ef631426a9fd2dae6ec3a469e3a39a3db51aa476cd09de2e).

BTC204

Wenn wir uns diese Transaktion ansehen, können wir bereits erkennen, dass sie einen einzigen Eingang und 4 Ausgänge hat:

Am interessantesten ist natürlich die Ausgabe 0 mit OP_RETURN. Schauen wir uns genauer an, was sie enthält. Hier ist der scriptPubKey in hexadezimaler Darstellung:

6a4c50010002b13b2911719409d704ecc69f74fa315a6cb20fdd6ee39bc9874667703d67b164927b0e88f89f3f8b963549eab2533b5d7ed481a3bea7e953b546b4e91b6f50d800000000000000000000000000

Dieses Skript besteht aus mehreren Teilen. Erstens, die :

6a4c

Unter den Opcodes können wir 0x6a erkennen, der den OP_RETURN bezeichnet und 0x4c, der den OP_PUSHDATA1 bezeichnet.

Das Byte nach diesem letzten Opcode gibt die Größe der nachfolgenden Nutzlast an. Es steht für "0x50", also 80 Byte:

6a4c50

Als Nächstes haben wir die Metadaten meines Zahlungscodes im Klartext:

010002

Die verschlüsselte Abszisse des öffentlichen Schlüssels meines Zahlungscodes:

b13b2911719409d704ecc69f74fa315a6cb20fdd6ee39bc9874667703d67b164

Der verschlüsselte String-Code meines Zahlungscodes:

927b0e88f89f3f8b963549eab2533b5d7ed481a3bea7e953b546b4e91b6f50d8

Und schließlich das Auffüllen auf 80 Bytes, die Standardgröße eines OP_RETURN:

00000000000000000000000000

Zum besseren Verständnis finden Sie hier meinen Zahlungscode im Klartext in Base 58:

PM8TJQCyt6ovbozreUCBrfKqmSVmTzJ5vjqse58LnBzKFFZTwny3KfCDdwTqAEYVasn11tTMPc2FJsFygFd3YzsHvwNXLEQNADgxeGnMK8Ugmin62TZU

Und zur Basis 16:

4701000277507c9c17a89cfca2d3af554745d6c2db0e7f6b2721a3941a504933103cc42add94881210d6e752a9abc8a9fa0070e85184993c4f643f1121dd807dd556d1dc000000000000000000000000008604e4db

Wenn wir meinen Klartext-Zahlungscode mit dem OP_RETURN vergleichen, können wir sehen, dass der HRP (0x47) und die Prüfsumme (0x8604e4db) nicht übertragen werden. Das ist normal, da diese Informationen für den Menschen bestimmt sind.

Als nächstes können wir die Version (0x01), das Bitfeld (0x00) und die Parität des öffentlichen Schlüssels (0x02) erkennen. Und, am Ende des Zahlungscodes, die leeren Bytes (0x000000000000000000000000000000), die eine Auffüllung auf insgesamt 80 Bytes ermöglichen. Alle diese Metadaten werden unverschlüsselt übertragen.

Schließlich können wir feststellen, dass die Abszisse des öffentlichen Schlüssels (0x77507c9c17a89cfca2d3af554745d6c2db0e7f6b2721a3941a504933103cc42a) und der Stringcode (0xdd94881210d6e752a9abc8a9fa0070e85184993c4f643f1121dd807dd556d1dc) verschlüsselt wurden. Dies ist die Nutzlast des Zahlungscodes.

Was ist XOR?

Wir haben in den vorangegangenen Abschnitten gesehen, dass der Zahlungscode mit Hilfe der XOR-Operation verschlüsselt übertragen wird. Schauen wir uns die Funktionsweise dieses in der Kryptografie weit verbreiteten Operators genauer an.

XOR ist ein bitweiser logischer Operator, der auf der Booleschen Algebra basiert. Bei zwei Operanden in Bits gibt er 1 zurück, wenn die Bits des gleichen Ranges unterschiedlich sind, und er gibt 0 zurück, wenn die Bits des gleichen Ranges gleich sind. Hier ist die XOR-Wahrheitstabelle entsprechend den Werten der Operanden "D" und "E":

| D | E | D XOR E |

| --- | --- | ------- |

| 0 | 0 | 0 |

| 0 | 1 | 1 |

| 1 | 0 | 1 |

| 1 | 1 | 0 |

Zum Beispiel:

0110 \oplus 1110 = 1000

Oder :

010011 \oplus 110110 = 100101

Bei ECDH ist die Verwendung von XOR als Verschlüsselungsschicht besonders konsequent. Erstens ist die Verschlüsselung dank dieses Operators symmetrisch. Das bedeutet, dass der Empfänger den Zahlungscode mit demselben Schlüssel entschlüsseln kann, der für die Verschlüsselung verwendet wurde. Die Ver- und Entschlüsselungsschlüssel werden aus dem gemeinsamen Geheimnis mittels ECDH berechnet. Diese Symmetrie wird durch die Eigenschaften der Kommutativität und Assoziativität des XOR-Operators ermöglicht:

D \oplus D = 0
D \oplus 0 = D
D \oplus E = E \oplus D
D \oplus (E \oplus Z) = (D \oplus E) \oplus Z = D \oplus E \oplus Z

Wenn :

D \oplus E = L

Dann :

D \oplus L = D \oplus (D \oplus E) = D \oplus D \oplus E = 0 \oplus E = E \\
\therefore D \oplus L = E

Zweitens ist diese Verschlüsselungsmethode der Vernam-Chiffre (One-Time-Pad) sehr ähnlich, dem einzigen bisher bekannten Verschlüsselungsalgorithmus, der unbedingte (oder absolute) Sicherheit bietet. Damit die Vernam-Chiffre diese Eigenschaft hat, muss der Chiffrierschlüssel vollkommen zufällig sein, die gleiche Größe wie die Nachricht haben und nur einmal verwendet werden. Bei der hier für BIP47 verwendeten Verschlüsselungsmethode hat der Schlüssel tatsächlich die gleiche Größe wie die Nachricht, und der Verblendungsfaktor ist genau so groß wie die Verkettung der Abszisse des öffentlichen Schlüssels mit dem Stringcode des Zahlungscodes. Dieser Verschlüsselungsschlüssel wird nur einmal verwendet. Andererseits ist dieser Schlüssel nicht von einer perfekten Zufälligkeit abgeleitet, da es sich um einen HMAC handelt. Vielmehr ist er pseudozufällig. Es handelt sich also nicht um eine Vernam-Chiffre, aber die Methode kommt ihr nahe.

Eingang der Mitteilungstransaktion

Nachdem Alice die Benachrichtigungstransaktion an Bob gesendet hat, wollen wir nun sehen, wie Bob sie interpretiert. Zur Erinnerung: Bob muss Zugriff auf den Zahlungscode von Alice haben. Ohne diese Information kann er, wie wir im nächsten Abschnitt sehen werden, die von Alice erstellten Schlüsselpaare nicht ableiten und somit auch nicht auf seine über BIP47 erhaltenen Bitcoins zugreifen. Im Moment ist die Nutzlast von Alices Zahlungscode verschlüsselt. Schauen wir uns an, wie Bob sie entschlüsselt.

1- Bob überwacht Transaktionen, die Ausgaben mit seiner Meldeadresse erzeugen.

2- Wenn eine Transaktion eine Ausgabe auf ihrer Benachrichtigungsadresse hat, analysiert Bob sie, um zu sehen, ob sie eine OP_RETURN-Ausgabe enthält, die dem BIP47-Standard entspricht.

3- Wenn das erste Byte der OP_RETURN-Nutzdaten 0x01 ist, beginnt Bob seine Suche nach einem möglichen Geheimnis, das er mit ECDH teilt:

A = a \cdot G

b

S = b \cdot A

f = \text{HMAC-SHA512}(o, x)

4- Bob interpretiert die OP_RETURN-Daten in der Benachrichtigungstransaktion als einen Zahlungscode. Er entschlüsselt einfach die Nutzdaten dieses potenziellen Zahlungscodes mit Hilfe des Verblendungsfaktors f:

x = x' \oplus f1

c = c' \oplus f2

5- Bob prüft, ob der Wert des öffentlichen Schlüssels von Alices Zahlungscode Teil der Gruppe secp256k1 ist. Wenn ja, interpretiert er dies als gültigen Zahlungscode. Wenn nicht, ignoriert er die Transaktion.

Da Bob nun den Zahlungscode von Alice kennt, kann Alice ihm bis zu "2^32" Zahlungen schicken, ohne jemals eine solche Benachrichtigung wiederholen zu müssen.

Warum funktioniert das? Wie kann Bob denselben Verblendungsfaktor wie Alice ermitteln und so ihren Zahlungscode entschlüsseln? Schauen wir uns die Wirkung von ECDH in dem soeben beschriebenen Fall genauer an.

Zunächst einmal handelt es sich um eine symmetrische Verschlüsselung. Das bedeutet, dass der Verschlüsselungsschlüssel und der Entschlüsselungsschlüssel der gleiche Wert sind. Dieser Schlüssel ist bei der Benachrichtigungstransaktion der Blendfaktor:

f = f1 || f2

Alice und Bob müssen daher denselben Wert für f erhalten, ohne ihn direkt zu übermitteln, da ein Angreifer ihn stehlen und die geheimen Informationen entschlüsseln könnte. Dieser Verblendungsfaktor wird durch Anwendung von HMAC-SHA512 auf 2 Werte ermittelt:

Bob benötigt also beide Informationen, um den Zahlungscode von Alice zu entschlüsseln. Den Eingabe-UTXO kann Bob einfach durch Beobachtung der Benachrichtigungstransaktion abrufen. Für den geheimen Punkt muss Bob ECDH verwenden. Wie im vorangegangenen Abschnitt über Diffie-Hellman beschrieben, können Alice und Bob einen genauen geheimen Punkt auf der elliptischen Kurve finden, indem sie einfach ihre jeweiligen öffentlichen Schlüssel austauschen und ihre privaten Schlüssel heimlich auf den öffentlichen Schlüssel des anderen anwenden. Die Benachrichtigungstransaktion basiert auf diesem Mechanismus:

B = b \cdot G

A = a \cdot G

S = a \cdot B = a \cdot (b \cdot G) = (b \cdot a) \cdot G = b \cdot A

BTC204

Da Bob nun den Zahlungscode von Alice kennt, kann er ihre BIP47-Zahlungen erkennen und die privaten Schlüssel ableiten, die die erhaltenen Bitcoins sperren.

Ich fasse die Schritte zusammen, die wir gerade gesehen haben, um eine Benachrichtigungstransaktion zu empfangen und zu interpretieren:

BTC204

Der Zahlungsvorgang BIP47

Werfen wir einen Blick auf das Zahlungsverfahren mit BIP47. Um Sie an die aktuelle Situation zu erinnern:

Bevor ich diesen Prozess erkläre, ist es wichtig, sich daran zu erinnern, an welchen Indizes wir gerade arbeiten. Der Ableitungspfad für einen Zahlungscode wird wie folgt beschrieben: m/47'/0'/0'. Die folgende Tiefe unterteilt die Indizes wie folgt:

Jedes Mal, wenn Alice eine Zahlung an Bob senden möchte, leitet sie eine neue, eindeutige, leere Adresse ab, wiederum unter Verwendung des ECDH-Protokolls:

a

B = b \cdot G

S = a \cdot B

S = (Sx, Sy)

s = \text{SHA256}(Sx)

K0 = B + s \cdot G

Sobald Alice Bobs K0-Empfangsadresse erhalten hat, kann sie eine Bitcoin-Transaktion auf die übliche Weise durchführen. Dazu wählt sie ein UTXO, das sie besitzt und das durch ein Schlüsselpaar aus einem anderen Zweig ihrer HD-Wallet gesichert ist, und verbraucht es, um eine Ausgabe an Bobs K0-Adresse zu befriedigen. Es ist wichtig zu beachten, dass diese Zahlung, sobald die Adresse abgeleitet wurde, einem klassischen Prozess folgt und nicht mehr von den mit dem BIP47 verbundenen Schlüsseln abhängt.

Ich fasse die Schritte zusammen, die wir gerade gemeinsam gesehen haben, um eine BIP47-Zahlung zu senden:

BTC204

Wenn Alice eine zweite Zahlung vornehmen möchte, führt sie dieselben Schritte wie zuvor aus, mit dem Unterschied, dass sie diesmal den zweiten öffentlichen Schlüssel auswählt, der von Bobs Zahlungscode abgeleitet ist. Genauer gesagt, verwendet sie den nächsten unbenutzten Schlüssel. Auf diese Weise erhält sie eine neue Empfangsadresse von Bob mit der Bezeichnung K1:

BTC204

Er kann auf diese Weise fortfahren und bis zu 2^32 leere Adressen ableiten, die zu Bob gehören.

Von einem Außenstehenden, der die Blockchain betrachtet, ist es theoretisch unmöglich, eine BIP47-Zahlung von einer herkömmlichen Zahlung zu unterscheiden. Hier ist ein Beispiel für eine BIP47-Zahlungstransaktion auf Testnet:

94b2e59510f2e1fa78411634c98a77bbb638e28fb2da00c9f359cd5fc8f87254

Es sieht aus wie eine klassische Transaktion mit einer verbrauchten Eingabe, einer Zahlungsausgabe und einem Wechselkurs:

BTC204

Eingang der BIP47-Zahlung und Ableitung des privaten Schlüssels

Alice hat soeben ihre erste Zahlung an eine leere BIP47-Adresse von Bob getätigt. Nun wollen wir sehen, wie Bob diese Zahlung erhält. Wir werden auch sehen, warum Alice keinen Zugriff auf den privaten Schlüssel der Adresse hat, die sie gerade selbst generiert hat, und wie Bob diesen Schlüssel findet, um die Bitcoins auszugeben, die er gerade erhalten hat.

Sobald Bob die Benachrichtigungstransaktion von Alice erhält, leitet er den öffentlichen Schlüssel BIP47 K0 ab, noch bevor sein Korrespondent eine Zahlung gesendet hat. Er kann also jede Zahlung an die entsprechende Adresse beobachten. In der Tat leitet er sofort mehrere Adressen ab, die er beobachtet (K0, K1, K2, K3...). So leitet er diesen öffentlichen Schlüssel K0 ab:

b

A = a \cdot G

S = b \cdot A

s = \text{SHA256}(Sx)

K0 = B + s \cdot G

Sobald Bob diesen öffentlichen Schlüssel K0 hat, kann er den zugehörigen privaten Schlüssel ableiten, um seine Bitcoins auszugeben. Nur er kann diesen privaten Schlüssel generieren:

k0 = b + s

Dank des Gruppengesetzes der elliptischen Kurve erhält Bob genau den privaten Schlüssel, der dem von Alice verwendeten öffentlichen Schlüssel entspricht. Wir haben also :

K0 = k0 \cdot G

Ich werde die Schritte zusammenfassen, die wir gerade gesehen haben, um eine BIP47-Zahlung zu erhalten und den entsprechenden privaten Schlüssel zu berechnen:

BTC204

Da Alice nicht an b (Bobs privaten Schlüssel) herankommt, kann sie auch nicht k0 (den privaten Schlüssel, der mit Bobs BIP47-Empfangsadresse verbunden ist) ermitteln. Schematisch kann man die Berechnung des gemeinsamen Geheimnisses S wie folgt darstellen:

BTC204

Sobald das gemeinsame Geheimnis mit ECDH gefunden ist, berechnen Alice und Bob den öffentlichen BIP47-Zahlungsschlüssel K0, und Bob berechnet auch den zugehörigen privaten Schlüssel k0:

BTC204

Erstattung der BIP47-Zahlung

Da Bob den wiederverwendbaren Zahlungscode von Alice kennt, verfügt er bereits über alle Informationen, die er benötigt, um ihr eine Rückerstattung zu schicken. Er braucht Alice nicht mehr zu kontaktieren, um sie um Informationen zu bitten. Er muss sie lediglich mit einer Benachrichtigungstransaktion benachrichtigen, damit sie ihre BIP47-Adressen mit ihrem Seed abrufen kann, und dann kann er ihr auch bis zu 2^32 Zahlungen schicken.

Die Rückerstattungsfunktion ist eine Besonderheit von BIP47 und einer seiner Vorteile gegenüber anderen Methoden, wie z. B. Stille Zahlungen, auf die wir in späteren Kapiteln eingehen werden.

Bob kann dann Alice die Zahlungen auf die gleiche Weise zurückzahlen, wie sie sie ihm geschickt hat. Die Rollen sind vertauscht:

BTC204

*Vielen Dank an [Fanis Michalakis] (https://x.com/FanisMichalakis) für sein Korrekturlesen und seine fachkundigen Ratschläge zu dem Artikel, der den Anstoß zum Schreiben dieses Kapitels gab!

https://planb.network/tutorials/privacy/on-chain/paynym-bip47-a492a70b-50eb-4f95-a766-bae2c5535093

Stille Zahlungen

BIP47 ist wegen seiner Ineffizienz in der Kette weithin kritisiert worden. Wie im vorherigen Kapitel erläutert, muss für jeden neuen Empfänger eine Benachrichtigungstransaktion durchgeführt werden. Diese Einschränkung wird vernachlässigbar, wenn wir planen, einen nachhaltigen Zahlungskanal mit diesem Empfänger aufzubauen. In der Tat ebnet eine einzige Benachrichtigungstransaktion den Weg für eine fast unendliche Anzahl von nachfolgenden BIP47 -Zahlungen.

In bestimmten Situationen kann die Benachrichtigungstransaktion jedoch ein Hindernis für den Nutzer darstellen. Nehmen wir das Beispiel einer einmaligen Spende an einen Empfänger: Mit einer klassischen Bitcoin-Adresse genügt eine einzige Transaktion, um die Spende abzuschließen. Mit BIP47 sind jedoch zwei Transaktionen erforderlich: eine für die Benachrichtigung und eine weitere für die eigentliche Zahlung. Wenn die Nachfrage nach Blockspace gering ist und die Transaktionsgebühren niedrig sind, ist dieser zusätzliche Schritt normalerweise kein Problem. In Zeiten der Überlastung können die Transaktionsgebühren für eine einzige Zahlung jedoch exorbitant hoch werden und die Kosten für den Nutzer im Vergleich zu einer Standard-Bitcoin-Transaktion verdoppeln, was sich für den Nutzer als unannehmbar erweisen kann.

Für Situationen, in denen der Benutzer nur wenige Zahlungen an einen statischen Identifikator vornehmen will, wurden andere Lösungen entwickelt. Dazu gehört Silent Payments, beschrieben in [BIP352] (https://github.com/bitcoin/bips/blob/master/bip-0352.mediawiki). Dieses Protokoll ermöglicht es, einen statischen Identifikator für den Empfang von Zahlungen zu verwenden, ohne dass es zu einer Wiederverwendung von Adressen kommt und ohne dass Benachrichtigungstransaktionen erforderlich sind. Schauen wir uns an, wie dieses Protokoll funktioniert.


Um dieses Kapitel vollständig zu verstehen, ist es wichtig, die Funktionsweise von ECDH (Elliptic Curve Diffie-Hellman) und die kryptografische Schlüsselableitung in einer HD-Brieftasche zu beherrschen. Diese Konzepte wurden im vorherigen Kapitel über BIP47 ausführlich behandelt. Ich werde sie hier nicht wiederholen. Wenn Sie mit diesen Konzepten noch nicht vertraut sind, empfehle ich Ihnen, das vorherige Kapitel zu lesen, bevor Sie mit diesem Kapitel fortfahren. Ich werde nicht noch einmal auf die Risiken eingehen, die mit der Wiederverwendung von Empfängeradressen verbunden sind, und auch nicht darauf, wie wichtig es ist, eine eindeutige Kennung für den Zahlungsempfang zu haben, sondern nur einige Punkte erwähnen


Warum wird die Meldung nicht verschoben?

Wie im Kapitel BIP47 beschrieben, hat die Meldungstransaktion zwei Hauptfunktionen:

Man könnte naiverweise denken, dass dieser Benachrichtigungsprozess außerhalb der Kette erfolgen könnte. Theoretisch ist das durchaus machbar: Der Empfänger müsste lediglich ein Kommunikationsmittel angeben, um die BIP47-Zahlungscodes von den Absendern zu erhalten. Allerdings gibt es bei diesem Ansatz zwei große Probleme:

All diese Einschränkungen machen die Verwendung der Onchain-Benachrichtigung für BIP47 unabdingbar. Silent Payments versucht jedoch, diesen Schritt der Onchain-Benachrichtigung gerade wegen seiner Kosten zu vermeiden. Die gewählte Lösung besteht daher nicht darin, die Benachrichtigung zu verlagern, sondern sie ganz abzuschaffen. Um dies zu erreichen, muss ein Kompromiss in Kauf genommen werden: das Scannen. Anders als bei BIP47, wo der Nutzer dank der Benachrichtigungstransaktionen genau weiß, wo er sein Geld findet, muss er bei Silent Payments alle vorhandenen Bitcoin-Transaktionen prüfen, um die für ihn bestimmten Zahlungen zu erkennen. Um diesen Aufwand zu verringern, beschränkt sich die Suche bei Silent Payments auf Transaktionen, die solche Zahlungen enthalten könnten, d. h. auf Transaktionen mit mindestens einem Taproot P2TR-Ausgang. Die Suche konzentriert sich außerdem ausschließlich auf Transaktionen ab dem Erstellungsdatum der Wallet (es besteht keine Notwendigkeit, Transaktionen aus dem Jahr 2009 zu prüfen, wenn die Wallet im Jahr 2024 erstellt wurde).

Sie sehen also, dass BIP47 und Stille Zahlungen zwar ein ähnliches Ziel verfolgen, aber unterschiedliche Kompromisse eingehen und daher unterschiedliche Anwendungsfälle erfüllen. Für einmalige Zahlungen, wie z. B. einmalige Spenden, sind Stille Zahlungen aufgrund ihrer geringeren Kosten besser geeignet. Bei regelmäßigen Transaktionen an denselben Empfänger, wie z. B. bei Tauschbörsen oder Mining-Pools, kann BIP47 hingegen vorzuziehen sein.

Werfen wir einen Blick auf die technische Funktionsweise der Stillen Zahlungen, um besser zu verstehen, worum es geht. Dazu schlage ich vor, dass wir denselben Ansatz wählen wie in der Erläuterung zum BIP352. Wir werden die durchzuführenden Berechnungen schrittweise, Element für Element, aufschlüsseln und jeden neuen Zusatz begründen.

Ein paar Begriffe zum Verständnis

Bevor wir beginnen, ist es wichtig, darauf hinzuweisen, dass Silent Payments ausschließlich auf der Verwendung von P2TR-Skripttypen (Pay to Taproot) beruht. Im Gegensatz zu BIP47 ist es nicht erforderlich, die Empfängeradressen durch Hashing aus den öffentlichen Schlüsseln der Kinder abzuleiten. Im P2TR-Standard wird der gezwitscherte öffentliche Schlüssel direkt und unverschlüsselt in der Adresse verwendet. Eine Taproot-Empfangsadresse ist also im Wesentlichen ein öffentlicher Schlüssel mit einigen Metadaten. Dieser geänderte öffentliche Schlüssel ist die Aggregation zweier anderer öffentlicher Schlüssel: der eine ermöglicht direkte, herkömmliche Ausgaben über eine einfache Signatur, der andere stellt die Merkle-Wurzel der MAST dar, die Ausgaben vorbehaltlich der Erfüllung einer der im Merkle-Baum potenziell eingeschriebenen Bedingungen autorisiert.

BTC204

Für die Entscheidung, Silent Payments ausschließlich auf Taproot zu beschränken, gibt es zwei Hauptgründe:

Naive Ableitung eines öffentlichen Schlüssels von Silent Payments

Beginnen wir mit einem einfachen Beispiel, um auf den Punkt zu bringen, wie SPs (Silent Payments) funktionieren. Nehmen wir Alice und Bob, zwei Bitcoin-Nutzer. Alice möchte Bob Bitcoins an eine leere Empfängeradresse schicken. Bei diesem Vorgang gibt es drei Ziele:

Alice hat einen UTXO in ihrer sicheren Bitcoin-Brieftasche mit dem folgenden Schlüsselpaar:

Bob hat eine SP-Adresse, die er im Internet mit veröffentlicht hat:

Indem sie Bobs Adresse abruft, kann Alice mit ECDH eine neue leere Adresse berechnen, die zu Bob gehört. Nennen wir diese Adresse P :

P = B + \text{hash}(a \cdot B) \cdot G

In dieser Gleichung hat Alice einfach das Skalarprodukt aus ihrem privaten Schlüssel a und Bobs öffentlichem Schlüssel B berechnet. Dieses Ergebnis hat sie in eine allen bekannte Hash-Funktion eingegeben. Der resultierende Wert wird dann skalar mit dem Erzeugungspunkt G der elliptischen Kurve "secp256k1" multipliziert. Schließlich fügt Alice den resultierenden Punkt zu Bobs öffentlichem Schlüssel B hinzu. Sobald Alice diese Adresse P hat, verwendet sie sie als Ausgang in einer Transaktion, d.h. sie sendet Bitcoins an sie.

*Im Kontext von Silent Payments entspricht die "Hash"-Funktion einer SHA256-Hash-Funktion, die speziell mit BIP0352/SharedSecret gekennzeichnet ist, wodurch sichergestellt wird, dass die erzeugten Hashes nur für dieses Protokoll gelten und nicht in anderen Zusammenhängen wiederverwendet werden können, während gleichzeitig ein zusätzlicher Schutz gegen die Wiederverwendung von Nonces in Signaturen geboten wird. Dieser Standard entspricht demjenigen, der in BIP340 für Schnorr-Signaturen auf secp256k1 spezifiziert ist Dank der Eigenschaften der elliptischen Kurve, auf der ECDH basiert, wissen wir, dass :

a \cdot B = b \cdot A

Bob kann also die Empfängeradresse ermitteln, an die Alice die Bitcoins geschickt hat. Dazu überwacht er alle Bitcoin-Transaktionen, die die Kriterien für stille Zahlungen erfüllen, und wendet die folgende Berechnung auf jede von ihnen an, um festzustellen, ob die Zahlung an ihn gerichtet ist (Scanning):

P' = B + \text{hash}(b \cdot A) \cdot G

Als er die Transaktion von Alice scannt, stellt er fest, dass P' gleich P ist. Er weiß also, dass die Zahlung an sie gerichtet ist:

P' = B + \text{hash}(b \cdot A) \cdot G = B + \text{hash}(a \cdot B) \cdot G = P

Von hier aus kann Bob den privaten Schlüssel p berechnen, mit dem die Adresse P ausgegeben werden kann:

p = (b + \text{hash}(b \cdot A)) \bmod n

Wie Sie sehen, benötigen Sie zur Berechnung dieses privaten Schlüssels p den privaten Schlüssel b. Nur Bob hat diesen privaten Schlüssel b. Er ist daher der Einzige, der die Bitcoins ausgeben kann, die an seine Silent-Payments-Adresse geschickt werden.

BTC204

Legende:

Hier ist ein ziemlich naiver erster Ansatz, Bobs statische Adresse B zu verwenden, um eine eindeutige Adresse P abzuleiten, an die Bitcoins gesendet werden können. Diese Methode ist jedoch zu simpel und hat mehrere Schwachstellen, die behoben werden müssen. Das erste Problem besteht darin, dass Alice bei diesem Schema nicht mehrere Ausgaben an Bob innerhalb derselben Transaktion erstellen kann.

Wie kann ich mehrere Ausgaben erstellen?

Im Beispiel des vorigen Abschnitts erstellt Alice eine einzige Ausgabe, die an Bob unter seiner eindeutigen Adresse P geht. Mit der gleichen gewählten Eingabe ist es für Alice unmöglich, zwei verschiedene leere Adressen für Bob zu erstellen, da die verwendete Methode immer zum gleichen Ergebnis für P, d. h. zur gleichen Adresse, führen würde. Es kann jedoch viele Situationen geben, in denen Alice ihre Zahlung an Bob in mehrere kleinere Beträge aufteilen und somit mehrere UTXOs erstellen möchte. Es muss also eine Methode gefunden werden, um dies zu erreichen.

Um dies zu erreichen, werden wir die Berechnung, die Alice zur Ableitung von P durchführt, leicht modifizieren, so dass sie zwei verschiedene Adressen für Bob erzeugen kann, nämlich P_0 und P_1.

Um die Berechnung zu ändern und 2 verschiedene Adressen zu erhalten, fügen Sie einfach eine ganze Zahl hinzu, die das Ergebnis ändert. Alice wird also 0 zu ihrer Berechnung hinzufügen, um die Adresse P_0 zu erhalten, und 1, um die Adresse P_1 zu erhalten. Nennen wir diese ganze Zahl i:

P_i = B + \text{hash}(a \cdot B \text{ ‖ } i) \cdot G

Der Berechnungsprozess bleibt gegenüber der vorherigen Methode unverändert, nur dass Alice diesmal a \cdot B mit i verkettet, bevor sie mit dem Hash fortfährt. Sie ändern dann einfach i, um eine neue Adresse zu erhalten, die zu Bob gehört. Zum Beispiel:

P_0 = B + \text{hash}(a \cdot B \text{ ‖ } 0) \cdot G

P_1 = B + \text{hash}(a \cdot B \text{ ‖ } 1) \cdot G

Wenn Bob die Blockchain nach für ihn bestimmten Silent Payments durchsucht, beginnt er mit i = 0 für die Adresse P_0. Wenn er auf P_0 keine Zahlungen findet, kommt er zu dem Schluss, dass diese Transaktion keine für ihn bestimmten Silent Payments enthält, und bricht den Scanvorgang ab. Wenn P_0 jedoch gültig ist und eine Zahlung für ihn enthält, fährt er mit P_1 in derselben Transaktion fort, um zu prüfen, ob Alice eine zweite Zahlung getätigt hat. Stellt sich P_1 als ungültig heraus, bricht er die Suche nach dieser Transaktion ab; andernfalls setzt er die Prüfung der aufeinanderfolgenden i-Werte fort:

P_0 = B + \text{hash}(b \cdot A \text{ ‖ } 0) \cdot G

P_1 = B + \text{hash}(b \cdot A \text{ ‖ } 1) \cdot G

Da Bob sofort bei i = 0 aufhört, wenn P_0 nicht funktioniert, wird Bob durch die Verwendung dieser ganzen Zahl bei der Transaktionsprüfung kaum zusätzlich belastet.

Bob kann dann die privaten Schlüssel auf die gleiche Weise berechnen:

p_0 = (b + \text{hash}(b \cdot A \text{ ‖ } 0)) \bmod n
p_1 = (b + \text{hash}(b \cdot A \text{ ‖ } 1)) \bmod n
BTC204

Legende:

Mit dieser Methode erhalten wir allmählich ein gutes Protokoll, aber es gibt noch einige Herausforderungen zu bewältigen, nicht zuletzt die Verhinderung der Wiederverwendung von Adressen.

Wie lässt sich die Wiederverwendung von Adressen vermeiden?

Wie wir in den vorangegangenen Abschnitten gesehen haben, verwendet Alice das Schlüsselpaar, mit dem sie ihr UTXO sichert, um das gemeinsame ECDH-Geheimnis mit Bob zu berechnen. Dieses Geheimnis ermöglicht es ihr, die eindeutige Adresse P_0 abzuleiten. Das von Alice verwendete Schlüsselpaar (a, A) kann jedoch mehrere UTXOs sichern, wenn sie diese Adresse mehrmals verwendet hat. Falls Alice zwei Zahlungen an Bobs statische Adresse B unter Verwendung von zwei UTXOs vornimmt, die mit demselben Schlüssel A gesichert sind, würde dies zu einer Adresswiederverwendung für Bob führen.

*Die Wiederverwendung von Adressen ist eine sehr schlechte Praxis im Hinblick auf die Vertraulichkeit der Benutzer. Um herauszufinden, warum, empfehle ich Ihnen, die ersten Teile dieses Kurses zu lesen Da die eindeutige Adresse P_0 aus A und B abgeleitet wird, landet Alice, wenn sie eine zweite Adresse für eine zweite Zahlung an B mit demselben Schlüssel A ableitet, bei genau der gleichen Adresse P_0. Um dieses Risiko zu vermeiden und die Wiederverwendung von Adressen innerhalb von Silent Payments zu verhindern, müssen wir unsere Berechnungen ein wenig abändern.

Wir wollen, dass jedes UTXO, das von Alice als Input für eine Zahlung verwendet wird, auf Bobs Seite eine eindeutige Adresse ergibt, auch wenn mehrere UTXOs durch dasselbe Schlüsselpaar gesichert sind. Alles, was wir also tun müssen, ist, bei der Berechnung der eindeutigen Adresse P_0 einen Verweis auf den UTXO hinzuzufügen. Dieser Verweis wird einfach der Hash des UTXO sein, der als Eingabe verwendet wird:

\text{inputHash} = \text{hash}(\text{outpoint} \text{ ‖ } A)

Und Alice fügt diesen Verweis als Eingabe in ihre Berechnung der eindeutigen Adresse P_0 ein:

P_0 = B + \text{hash}(\text{inputHash} \cdot a \cdot B \text{ ‖ } 0) \cdot G

Beim Scannen kann Bob auch \text{inputHash} hinzufügen, da er nur die Transaktion beobachten muss, um auf \text{outpoint} zu schließen:

P_0 = B + \text{hash}(\text{inputHash} \cdot b \cdot A \text{ ‖ } 0) \cdot G

Wenn es einen gültigen P_0 findet, kann es den entsprechenden privaten Schlüssel p_0 berechnen:

p_0 = (b + \text{hash}(\text{inputHash} \cdot b \cdot A \text{ ‖ } 0)) \bmod n
BTC204

Legende:

Bei unseren Berechnungen gehen wir vorerst davon aus, dass Alice für ihre Transaktion einen einzigen Input verwendet. Sie sollte jedoch in der Lage sein, mehrere Eingaben zu verwenden. Folglich müsste Bob bei jeder Transaktion mit mehreren Eingängen theoretisch den ECDH für jeden Eingang berechnen, um festzustellen, ob eine Zahlung für ihn bestimmt ist. Diese Methode ist nicht zufriedenstellend, so dass wir eine Lösung finden müssen, um die Arbeitsbelastung zu verringern!

Öffentliche Schlüssel in Eingaben umwandeln

Um dieses Problem zu lösen, verwenden wir statt des Schlüsselpaars, das einen bestimmten Eingang auf Alices Seite sichert, die Summe aller Schlüsselpaare, die in den Eingängen der Transaktion verwendet werden. Diese Summe wird dann als ein neues Schlüsselpaar betrachtet. Diese Technik wird als "Tweaking" bezeichnet.

Nehmen wir zum Beispiel an, dass die Transaktion von Alice drei Eingänge hat, die jeweils mit einem anderen Schlüsselpaar gesichert sind:

BTC204

Nach der zuvor beschriebenen Methode müsste Alice ein einzelnes Schlüsselpaar aus a_0, a_1 und a_2 auswählen, um das ECDH-Geheimnis zu berechnen und die einzelne Zahlungsadresse P aus Bobs statischer Adresse B zu erzeugen. Bei diesem Ansatz muss Bob jedoch jede Möglichkeit der Reihe nach testen, beginnend mit a_0, dann a_1 und so weiter, bis er ein Paar findet, das eine gültige Adresse P erzeugt. Bei diesem Verfahren muss Bob die ECDH-Berechnung für alle Eingänge aller Transaktionen durchführen, was die Belastung durch das Scannen erheblich erhöht.

Um dies zu vermeiden, bitten wir Alice, P anhand der Summe aller Eingabeschlüssel zu berechnen. In unserem Beispiel würde der manipulierte private Schlüssel a wie folgt berechnet werden:

a = a_0 + a_1 + a_2

Auf dieselbe Weise können Alice und Bob den geänderten öffentlichen Schlüssel berechnen:

A = A_0 + A_1 + A_2

Bei dieser Methode braucht Bob nur die Summe der öffentlichen Schlüssel der Transaktion zu berechnen und dann das ECDH-Geheimnis allein aus A zu berechnen, was die Anzahl der für die Scanphase erforderlichen Berechnungen erheblich reduziert.

Erinnern Sie sich jedoch an den vorherigen Abschnitt. Wir hatten den \text{inputHash}-Hash in unsere Berechnung aufgenommen, der als Nonce verwendet wird, um die Wiederverwendung von Adressen zu vermeiden:

\text{inputHash} = \text{hash}(\text{outpoint} \text{ ‖ } A)

Wenn Sie jedoch mehrere Eingänge in einer Transaktion haben, müssen Sie in der Lage sein zu bestimmen, welcher \text{outpoint} in dieser Berechnung gewählt wird. Nach BIP352 ist das zu verwendende \text{outpoint}-Auswahlkriterium die Auswahl des kleinsten lexikografischen UTXO, d. h. der UTXO, der in alphabetischer Reihenfolge zuerst erscheint. Mit dieser Methode wird das in jeder Transaktion zu wählende UTXO standardisiert. Wenn dieser lexikografisch kleinste \text{outpoint} beispielsweise \text{outpoint}_L ist, wird die Berechnung von \text{inputHash} wie folgt aussehen:

\text{inputHash} = \text{hash}(\text{outpoint}_L \text{ ‖ } A)

Die Berechnungen bleiben dann identisch mit denen im vorigen Abschnitt, außer dass der private Schlüssel a und der zugehörige öffentliche Schlüssel A nicht mehr ein Paar sind, das zur Sicherung einer einzelnen Eingabe verwendet wird, sondern nun den Tweak für alle Schlüsselpaare in den Eingaben darstellen.

Getrennte Ausgaben- und Scanschlüssel

Im Moment bezeichnen wir die statische Adresse der Stillen Zahlung B als einen eindeutigen öffentlichen Schlüssel. Denken Sie daran, dass es dieser öffentliche Schlüssel B ist, mit dem Alice das gemeinsame Geheimnis ECDH erstellt, das wiederum die eindeutige Zahlungsadresse P berechnet. Bob verwendet diesen öffentlichen Schlüssel B und den zugehörigen privaten Schlüssel b für die Scanning-Phase. Er wird aber auch den privaten Schlüssel b verwenden, um den privaten Schlüssel p zu berechnen, der die Ausgabe von der Adresse P ermöglicht.

Der Nachteil dieser Methode besteht darin, dass der private b-Schlüssel, der zur Berechnung aller privaten Schlüssel von Adressen verwendet wird, die stille Zahlungen erhalten haben, von Bob auch zum Scannen der Transaktionen verwendet wird. Dieser Schritt erfordert, dass der b-Schlüssel auf einer mit dem Internet verbundenen Wallet-Software verfügbar ist, was ihn einem höheren Risiko des Diebstahls aussetzt als die Aufbewahrung auf einer kalten Wallet. Idealerweise wäre es von Vorteil, die Vorteile von Silent Payments zu nutzen und gleichzeitig den privaten Schlüssel b, der den Zugriff auf alle anderen privaten Schlüssel kontrolliert, sicher in einer Hardware-Wallet aufzubewahren. Glücklicherweise wurde das Protokoll so angepasst, dass genau das möglich ist.

Zu diesem Zweck muss der Empfänger des BIP352 2 verschiedene Schlüsselpaare verwenden:

Auf diese Weise kann Bob den privaten Schlüssel b_{\text{spend}} in einer Hardware-Geldbörse aufbewahren und den privaten Schlüssel b_{\text{scan}} in einer Online-Software verwenden, um seine Stillen Zahlungen zu finden, ohne b_{\text{spend}} preiszugeben. Andererseits sind die öffentlichen Schlüssel B_{\text{scan}} und B_{\text{spend}} beide öffentlich bekannt, da sie sich in Bobs statischer Adresse B befinden:

B = B_{\text{scan}} {{\text{ ‖ } B_{\text{spend}}

Um eine eindeutige Zahlungsadresse P_0 zu berechnen, die Bob gehört, führt Alice nun die folgende Berechnung durch:

P_0 = B_{\text{spend}} + \text{hash}(\text{inputHash} \cdot a \cdot B_{\text{scan}} \text{ ‖ } 0) \cdot G

Um die an ihn gerichteten Zahlungen zu ermitteln, führt Bob die folgende Berechnung durch:

P_0 = B_{\text{spend}} + \text{hash}(\text{inputHash} \cdot b_{\text{scan}} \cdot A \text{ ‖ } 0) \cdot G

Wie Sie sehen, musste Bob bisher b_{\text{spend}}, das sich in seiner Hardware-Brieftasche befindet, noch nicht verwenden. Wenn er P_0 ausgeben möchte, kann er die folgende Berechnung durchführen, um den privaten Schlüssel p_0 zu finden:

p_0 = (b_{\text{spend}} + \text{hash}(\text{inputHash} \cdot b_{\text{scan}} \cdot A \text{ ‖ } 0)) \bmod n

BTC204

Legende:

Verwendung von SP-Adressen mit einem Etikett

Bob hat also eine statische Adresse B für stille Zahlungen wie :

B = B_{\text{scan}} {{\text{ ‖ } B_{\text{spend}}

Das Problem bei dieser Methode ist, dass Sie die verschiedenen Zahlungen, die an diese Adresse gesendet werden, nicht voneinander trennen können. Wenn Bob zum Beispiel zwei verschiedene Kunden für sein Unternehmen hat und er die Zahlungen an beide unterscheiden möchte, benötigt er zwei verschiedene statische Adressen. Eine naive Lösung mit dem derzeitigen Ansatz wäre, dass Bob zwei getrennte Geldbörsen mit jeweils einer eigenen statischen Adresse erstellt oder sogar zwei verschiedene statische Adressen innerhalb derselben Geldbörse einrichtet. Diese Lösung erfordert jedoch, dass die gesamte Blockchain zweimal gescannt wird (einmal für jede Adresse), um Zahlungen zu erkennen, die für jede Adresse bestimmt sind. Dieses doppelte Scannen erhöht die Arbeitsbelastung von Bob unangemessen.

Um dieses Problem zu lösen, verwendet BIP352 ein Label-System, das verschiedene statische Adressen zulässt, ohne den Arbeitsaufwand für das Auffinden von Silent Payments in der Blockchain unangemessen zu erhöhen. Zu diesem Zweck fügen wir eine ganze Zahl m zum öffentlichen Ausgabenschlüssel B_{\text{spend}} hinzu. Diese ganze Zahl kann den Wert 1 für die erste statische Adresse annehmen, dann 2 für die zweite, und so weiter. Die Ausgabenschlüssel B_{\text{spend}} werden nun B_m genannt und werden auf diese Weise konstruiert:

B_m = B_{\text{spend}} + \text{hash}(b_{\text{scan}} \text{ ‖ } m) \cdot G

Zum Beispiel für den ersten Ausgabenschlüssel mit der Bezeichnung 1 :

B_1 = B_{\text{spend}} + \text{hash}(b_{\text{scan}} \text{ ‖ } 1) \cdot G

Die von Bob veröffentlichte statische Adresse besteht nun aus B_{\text{scan}} und B_m. Die erste statische Adresse mit der Bezeichnung 1 lautet zum Beispiel :

B = B_{\text{scan}} {\text{ ‖ } B_1

Wir beginnen nur mit dem Etikett 1, da das Etikett 0 für die Änderung reserviert ist. Alice ihrerseits wird die Einzelzahlungsadresse P auf die gleiche Weise ableiten wie zuvor, aber unter Verwendung des neuen B_1 anstelle von B_{\text{spend}} :

P_0 = B_1 + \text{hash}(\text{inputHash} \cdot a \cdot B_{\text{scan}} \text{ ‖ } 0) \cdot G

In Wirklichkeit weiß Alice nicht einmal unbedingt, dass Bob eine gekennzeichnete Adresse hat, da sie einfach den zweiten Teil der von ihm angegebenen statischen Adresse verwendet, und in diesem Fall ist es der Wert B_1 und nicht B_{text{spend}}.

Um Zahlungen zu scannen, wird Bob auf diese Weise immer den Wert seiner ursprünglichen statischen Adresse mit B_{\text{spend}} verwenden:

P_0 = B_{\text{spend}} + \text{hash}(\text{inputHash} \cdot b_{\text{scan}} \cdot A \text{ ‖ } 0) \cdot G

Dann subtrahiert er einfach den Wert, den er für P_0 gefunden hat, von jeder Ausgabe, eine nach der anderen. Dann prüft er, ob eines der Ergebnisse dieser Subtraktionen mit dem Wert eines der Labels übereinstimmt, die er für sein Portfolio verwendet. Wenn beispielsweise die Ausgabe Nr. 4 mit dem Label 1 übereinstimmt, bedeutet dies, dass es sich bei dieser Ausgabe um eine stille Zahlung handelt, die mit der statisch beschrifteten Adresse B_1 verbunden ist:

Out_4 - P_0 = \text{hash}(b_{\text{scan}} \text{ ‖ } 1) \cdot G

Es funktioniert, weil :

B_1 = B_{\text{spend}} + \text{hash}(b_{\text{scan}} \text{ ‖ } 1) \cdot G

Dank dieser Methode kann Bob eine Vielzahl von statischen Adressen (B_1, B_2, B_3...) verwenden, die alle von seiner statischen Basisadresse (B = B_{\text{scan}} \text{ ‖ } B_{\text{spend}}) abgeleitet sind, um die Nutzung getrennt zu halten.

Beachten Sie jedoch, dass diese Trennung der statischen Adressen nur für die Verwaltung des persönlichen Portfolios gilt, nicht aber für die Trennung der Identitäten. Da sie alle denselben B_{\text{scan}} haben, ist es sehr einfach, alle statischen Adressen miteinander in Verbindung zu bringen und daraus zu schließen, dass sie zu einer einzigen Person gehören.

BTC204

Legende:

Wie baue ich eine Silent-Payments-Adresse auf?

Um eine Adresse für Silent Payments einzurichten, müssen Sie zunächst 2 Schlüsselpaare von Ihrer Bitcoin-HD-Brieftasche ableiten:

Diese Paare werden über die folgenden Pfade abgeleitet (Bitcoin Mainnet):

scan : m / 352' / 0' / 0' / 1' / 0
spend : m / 352' / 0' / 0' / 0' / 0

Sobald wir diese beiden Schlüsselpaare haben, können wir sie einfach verketten (Ende-zu-Ende), um die Nutzdaten der statischen Adresse zu erstellen:

B = B_{\text{scan}} {{\text{ ‖ } B_{\text{spend}}

Wenn wir Labels verwenden wollen, ersetzen wir B_{\text{spend}} durch B_m :

B = B_{\text{scan}} \text{ ‖ } B_m

Mit Etikett m :

B_m = B_{\text{spend}} + \text{hash}(b_{\text{scan}} \text{ ‖ } m) \cdot G

Sobald wir diese Nutzlast haben, fügen wir den HRP (Human-Readable Part) sp und die Version q (= Version 0) hinzu. Wir fügen auch eine Prüfsumme hinzu und formatieren die Adresse als bech32m.

Hier ist zum Beispiel meine statische Adresse von Silent Payments:

sp1qqvhjvsq2vz8zwrw372vuzle7472zup2ql3pz64yn5cpkw5ngv2n6jq4nl8cgm6zmu48yk3eq33ryc7aam6jrvrg0d0uuyzecfhx2wgsumcurv77e

Ein wichtiger Punkt in Bezug auf statische Adressen, den Sie vielleicht in den vorherigen Abschnitten verstanden haben, ist, dass diese Adressen in Bitcoin-Transaktionen nicht sichtbar sind. Nur die P-Zahlungsadressen, die in den Ausgaben verwendet werden, erscheinen in der Blockchain im Standard-Taproot-Format. Von außen betrachtet ist es also unmöglich, eine Transaktion mit Silent Payment von einer normalen Transaktion mit P2TR-Ausgaben zu unterscheiden.

Wie bei BIP47 ist es unmöglich, eine Verbindung zwischen einer statischen Adresse B und einer von B abgeleiteten Zahlungsadresse P herzustellen. Selbst wenn Eve, ein potenzieller Angreifer, versucht, die Blockchain mit Bobs statischer Adresse B zu scannen, ist sie nicht in der Lage, die zur Bestimmung von P erforderlichen Berechnungen durchzuführen. Dazu bräuchte sie entweder Bobs privaten Schlüssel b_{\text{scan}} oder die privaten Schlüssel des Absenders a, aber beide sind natürlich privat. Es ist also möglich, die statische Adresse einer Person explizit mit einer Form der persönlichen Identität zu verknüpfen.

Wie verwende ich Silent Payments?

Der Vorschlag für stille Zahlungen ist relativ neu und wurde bisher nur von einer sehr begrenzten Anzahl von Geldbörsen umgesetzt. Meines Wissens gibt es nur 3 Softwareprodukte, die sie unterstützen:

In Kürze werden wir Ihnen eine ausführliche Anleitung geben, wie Sie Ihre eigene statische Adresse für Silent Payments einrichten können.

Da diese Funktion neu ist, raten wir Ihnen, Vorsicht walten zu lassen und Silent Payments nicht für große Beträge im Mainnet zu verwenden.

*Zur Erstellung dieses Kapitels über stille Zahlungen habe ich [die Website mit Erläuterungen zu stillen Zahlungen] (https://silentpayments.xyz/) und [das Dokument mit Erläuterungen zu BIP352] (https://github.com/bitcoin/bips/blob/master/bip-0352.mediawiki) verwendet

Abschließender Abschnitt

Rezensionen und Bewertungen

true

Abschlussprüfung

true

Schlussfolgerung

true