Bitcoin Core vs Wasabi Wallet - Datenschutz auf Netzwerkebene

Bitcoin Core, genauer gesagt Full Nodes, gelten in Bitcoin-Wallets als der Inbegriff des Datenschutzes auf Netzwerkebene, an den kein anderer Wallet-Typ herankommt. Es ist nicht schwer zu erkennen, warum: Vollständige Knoten die gesamte Blockchain herunterladen und Ihre Brieftaschenbilanzen lokal erstellen. Somit besteht keine Chance, dass Dritte herausfinden, welche Adressen sich in Ihrer Brieftasche befinden und welche nicht.
Vergleichen Sie dies mit anderen Light Wallets, die einen Back-End-Server abfragen, um Informationen zu bestimmten Adressen abzurufen, oder das SPV-Wallet-Protokoll mit BIP37-Bloom-Filterung verwenden, was wahrscheinlich noch schlimmer ist. Und es gibt Electrum, das Ihre Adressen an zufällige Electrum-Server sendet.

Die Vision einer Light Wallet, die beim Aufbau des UTXO-Sets des Benutzers nicht zu viele Informationen preisgibt, hat Bitcoin-Entwickler seit Jahrhunderten verfolgt.
Sogar BIP37 begann als Verbesserung des Datenschutzes, stellte sich jedoch später heraus, dass dies nicht der Fall war.
Aber es gab gute Versuche: Einige Entwickler, wie Jonas Schnelli, das Stratis-Team und ich, haben Brieftaschen-Software entwickelt, die nur Blöcke aus der Brieftaschenerstellung des Benutzers herunterlud.
Einige Entwickler, wie Nicolas Dorier, versuchten, das BIP37 zu patchen, und andere, wie die Mitarbeiter von Lightning Labs, entwickelten eine ganz neue Architektur für das Light Wallet: BIP157-158.
Die Leute von MoneroWorld möchten, dass Sie die Ausführung Ihres Knotens an die Cloud delegieren.
Es gab auch andere, wie Chris Belcher, der sagte: "fuck that" und EPS erstellt hat, mit dem Sie Ihren Electrum-Client mit Ihrem vollständigen Knoten verbinden können.
Schließlich habe ich in letzter Zeit einen positiven Trend festgestellt, dass Unternehmen, die Kartons verkaufen, sofort einen vollständigen Knoten für Sie ausführen.

Und dann gibt es noch Wasabi Wallet, eine Client-seitige Filter-Light-Wallet-Lösung nach BIP157, die teilweise auch in Ihren gesamten Knoten integriert ist. Damit komme ich zum Thema dieses Artikels: Vor wenigen Stunden haben wir mit Wasabi Wallet die bestmögliche Vertraulichkeit auf Netzwerkebene erreicht, die mit dem heutigen Bitcoin möglich ist.

Terminologie

V. Steht zur Überprüfung oder Validierung. Sie werden synonym verwendet, aber ich bin mir ziemlich sicher, dass eine davon richtig ist. Überprüfung?

FN, vollständiger Knoten, vollständig überprüfender Knoten. Lädt und überprüft alle jemals erstellten Bitcoin-Blöcke, aber für unsere Zwecke (Datenschutz) ist nur der Download-Teil von Bedeutung.
SPV-Knoten, Knoten zur Überprüfung der vereinfachten Zahlung. Synchronisiert nur die Header-Kette (was auch immer das ist) und kann überprüfen, dass Sie eine Transaktion haben, indem Sie etwas merkle Magie anwenden. Nichts davon ist für uns wichtig. Es ist wichtig zu beachten, dass SPV nichts mit Datenschutz zu tun hat. Es ist nur ein Weg, um sicherzustellen, dass Transaktionen stattfinden.
Ein vollständiger Knoten hat im Übrigen auch nichts mit Privatsphäre zu tun. Es wird lediglich beschrieben, wie der Knoten sicherstellt, dass Transaktionen ausgeführt werden. Dabei wird die gesamte Blockchain überprüft. Dazu muss natürlich die gesamte Blockchain heruntergeladen werden, wodurch das lokale Abrufen von Brieftaschen-UTXO ermöglicht wird. Dies ist der privateste Weg, dies zu tun. Warten Sie, es hat also doch etwas mit Privatsphäre zu tun?
Voll-SPV, Voll-Block-SPV, Voll-Block-Download des SPV-Knotens. Lädt alle Blöcke von der Erstellung der Brieftasche herunter und überprüft sie auf SPV. Warten Sie, habe ich gerade das V-Wort dort verdoppelt? Ja, Entwickler sind dies inkonsistent. Ich hoffe auch, dass niemand jemals ein Full-SPV-Wallet erstellen wird, das alle Blöcke herunterlädt, aber eine zentralisierte Validierung durchführt, da es unmöglich ist, einen richtigen Begriff dafür zu finden.

Noch verwirrt? Gut. Nachdem Sie die nuancierte Natur des Themas erkannt haben, werden Sie mir verzeihen, wenn ich den Rest dieses Abschnitts mit erheblichen Vereinfachungen abschlachte:

Hybrid-Vollknoten. Ist ein leichter Knoten, bis der vollständige Knoten synchronisiert ist. Ich möchte, dass Wasabi in Zukunft eine solche Brieftasche ist.
BIP37. Client sendet Bloom-Filter an vollständige Knoten, vollständige Knoten senden Daten zurück, die mit dem Bloom-Filter übereinstimmen.
Blütenfilter. Hiermit können Sie testen, ob sich ein Element in einer Menge befindet, ohne die Menge selbst preiszugeben.
Golomb-Reis-Filter. Kleinere Bloom-Filter, die von BIP158 verwendet werden.
Clientseitige Filterung, Neutrino-Filterung, BIP157, BIP158. Die Idee, dass Clients keine Filter an vollständige Knoten senden müssen, sondern das Gegenteil: Vollständige Knoten erstellen Filter und senden sie stattdessen an Clients. Ab hier können Clients Blöcke aus anderen Quellen herunterladen. Dies ist eine anständige private Methode, um den UTXO-Status der Brieftasche festzulegen.
Neutrino. Implementierung des clientseitigen Filterprotokolls durch Lightning Lab.
Was auch immer Wasabi tut. Unsere Implementierung des clientseitigen Filterprotokolls.

Herauszoomen

Es ist erwähnenswert, dass der Datenschutz auf Netzwerkebene nur die Hälfte des Kampfes ist. Die andere Hälfte ist der Datenschutz auf Blockchain-Ebene, der außerhalb des Geltungsbereichs dieses Artikels liegt.

Darüber hinaus besteht der Datenschutz auf Netzwerkebene aus zwei Unterkategorien:

  1. Privater UTXO-Abruf
  2. Private Transaction Broadcasting

Bitcoin Core

Privater UTXO-Abruf

Bitcoin Core lädt alle jemals erstellten Blöcke herunter und erstellt Ihre Brieftaschenbilanzen lokal.

Private Transaction Broadcasting

Bitcoin Core überträgt Transaktionen unverschlüsselt an andere Peers im Clearnet.
Andere Peers können nicht herausfinden, welche Transaktion von einem bestimmten Knoten stammt, da Core nicht nur seine eigenen Transaktionen überträgt, sondern auch jede andere Transaktion weitergibt, die auf seinen Mempool trifft.
Einige Zeitungen bemerken jedoch, dass es nicht kugelsicher ist:

Die Weitergabe von Bitcoin-Transaktionen verbirgt die Quelle einer Transaktion nicht sehr gut, insbesondere gegenüber einem "Supernode" -Lauschangriff, der eine große Anzahl von ausgehenden Verbindungen zu erreichbaren Knoten im Netzwerk herstellt [1,2,3].

Obwohl ich in der Praxis vermute, dass dies nicht viel ausmacht, beabsichtigt dieser Artikel, die Details zu untersuchen, um Core mit Wasabi zu vergleichen. Daher beginne ich, die relevanten identifizierten Gegner von hier an zu sammeln:

Gegner identifiziert

  • Bösartiger Peer
  • Supernode

Bitcoin Core + Tor

Sie können Bitcoin Core mit Tor verwenden, um das oben genannte Problem zu beheben. In diesem Fall kann ein Superknoten keine Transaktionen an Ihre IP-Adresse zurückverfolgen.

Ich werde jede Entität in Betracht ziehen, die Tor, einen universellen Gegner, brechen kann. Beachten Sie jedoch, dass dies ungenau ist. Zum Beispiel sind die meisten Tor-Angriffe nicht möglich, wenn keine Exit-Knoten beteiligt sind. Dies und andere Dinge wie die Konfigurierbarkeit von Core würden die Analyse überkomplizieren. Deshalb ziehe ich hier die Grenze.
Ich gehe davon aus, dass diese Instanz das Zwiebel-Routing und nicht die Verschlüsselung von Tor selbst unterbrechen kann.

Gegner identifiziert

  • Tor Breaker

Wasabi Geldbörse

Private Transaction Broadcasting

Wasabi hatte zuvor seine P2P-Verbindungen über Tor nicht aufrechterhalten. Da Wasabi ein nicht empfangsbereiter Knoten ist, kann der Peer beim Senden von Transaktionen über andere P2P-Knoten über das Clearnet Ihre IP-Adresse mit der Transaktion verknüpfen. Aus diesem Grund haben wir unsere Transaktionen über Tor an unseren Backend-Server gesendet.

Nun haben wir begonnen, unseren gesamten P2P-Verkehr durch Tor zu tunneln:

  • Wir haben es so gemacht, dass wir nur eine Verbindung zu Zwiebelknoten herstellen, sodass die End-to-End-Verschlüsselung jetzt zwischen uns und unseren Kollegen erzwungen wird. All dies, ohne dass ein Exit-Knoten erforderlich ist.
  • Wir verbinden uns mit jedem Peer über einen anderen Tor-Stream.
  • Dies ermöglichte es uns, unseren Transaktionsübertragungsmechanismus zu ersetzen. Jetzt senden wir Transaktionen nur an einen Peer über Tor und trennen sofort danach den Peer.

Privater UTXO-Abruf

Endlich kamen wir zum interessanten Teil. Vor der P2P-Tor-Implementierung hat Wasabi Folgendes ausgeführt:
Der Backend-Server stellte allen Clients über Tor eine konstante Filtertabelle zur Verfügung. Aus diesen Filtern konnten die Clients herausfinden, an welchen Blöcken sie interessiert sind, und diese Blöcke und einige falsch positive Blöcke von Peers herunterladen. Ein Block pro Peer. Bei der Erfassung eines Blocks wurde die Verbindung zum Peer getrennt.
Es gab zwei Probleme damit.
Was wäre, wenn alle Peers, mit denen Wasabi verbunden war, für einen längeren Zeitraum dieselbe Entität wären? Dann würde die angreifende Entität von Sybil alle Blöcke kennen, an denen ein Kunde interessiert ist und von denen einige Informationen erhalten werden könnten. Die Frage stellt sich? Wie stellen Sie sicher, dass Sie der einzige Peer sind, mit dem ein Client über einen längeren Zeitraum verbunden ist?
Das zweite Problem ist, was passiert, wenn Ihr ISP Sie über einen längeren Zeitraum ausspioniert? Das ist plausibler. Tatsächlich wurde Wasabis Datenschutzbewertung für die Bitcoin.org-Auflistung fast auf den Wert "Brieftasche" herabgestuft, was natürlich lächerlich wäre, da es sich bei "Brot" um eine BIP37-Brieftasche handelt. Was die Bewertung rettete, war, dass ich feststellte, dass Bitcoin Core, wenn ISP ein Gegner ist, dies auf spektakulärere Weise gescheitert wäre, da Transaktionen über das Clearnet übertragen werden und selbst wenn der Knoten lauscht, die einzige Transaktion, die dies nicht tut. t hereinkommen, aber nur geht aus der Brieftasche muss derjenige sein, der aus dem Knoten stammt.
Wie auch immer, Wasabi macht das jetzt über Tor. Durch die End-to-End-Verschlüsselung des Zwiebelnetzwerks wird ein ISP-Gegner sofort besiegt und der ohnehin schon unmögliche Job des Sybil-Gegners wird noch unmöglicher. Wie verbindet Sybil über einen längeren Zeitraum alle Knoten mit Wasabi? Oder nur ein Knoten? Der Kunde versteckt sich hinter Tor. Sie können nicht einmal zwei Verbindungen des Clients verbinden, da der Client über einen anderen Tor-Stream eine Verbindung zu all Ihren Sybils herstellt.
Der einzige Gegner, der dies möglicherweise überwinden könnte, müsste Tausende von vollständigen Knoten über Zwiebeln setzen und auch Tor selbst zerbrechen.

Gegner identifiziert

  • ISP
  • Tor Breaker Sybil Attacker mit Tausenden von Knoten über Zwiebel

Wasabi Wallet + Full Node

Privater UTXO-Abruf

Wenn ein hörender voller Knoten im Hintergrund ausgeführt wird (nicht nur Bitcoin Core, sondern ein beliebiger voller Knoten), wird er von Wasabi automatisch abgerufen. Statt Peers nach Blöcken zu fragen, werden die Blöcke von Ihrem eigenen Knoten angefordert. Wenn Sie Wasabi auf diese Weise verwenden, erhalten Sie dasselbe Datenschutzmodell wie bei Bitcoin Core für Private UTXO Retrieval.

Alles zusammenfügen

Fazit

Um nützlich zu sein, sollten Sicherheitsmetriken die Schwierigkeit widerspiegeln, die ein Gegner hat, sie zu überwinden. - Entropist

Da ein Vergleich zwischen Bitcoin Core und Wasabi Wallet auf Netzwerkebene gegen alle vernünftigen Gegner keinen Sinn macht, könnte man meinen, dieser Artikel sei Zeitverschwendung. Aber Sie irren sich sehr. Dieser Artikel wird mir sicherlich dabei helfen, Internet-Argumente zu gewinnen. Und ist das am Ende nicht das, worauf es wirklich ankommt?