Fast 15 Jahre lang wurde die gesamte Kommunikation zwischen Knoten im Bitcoin-Netzwerk vollständig im Klartext und ohne jegliche Verschlüsselung übertragen. Das änderte sich im Jahr 2024 mit der Einführung von BIP 324, das die „v2“ einführte. Transportprotokoll für die Kommunikation zwischen Knoten. Dieses neue Protokoll verfügt über eine opportunistische Verschlüsselung, die den Datenverkehr für passive Angreifer, die Nachrichten zwischen Knoten überwachen können, unlesbar macht. Seit der Unterstützung dafür in Bitcoin Core 26.0 hinzugefügt und standardmäßig in 27.0 aktiviert wurde, wird es nun für den Großteil des weltweiten Bitcoin-P2P-Verkehrs verwendet.
Um einen Schritt zurückzutreten: Die Hauptfunktion eines Bitcoin-Knotens besteht darin, grundsätzlich öffentliche Informationen auszutauschen: Blöcke in der Blockchain, Transaktionen im Mempool und IP-Adressen anderer Bitcoin-Knoten. Da es sich hierbei nicht um geheime Informationen handelt, ist nicht sofort ersichtlich, warum eine Verschlüsselung unterwegs von Vorteil wäre. Aber bei genauerem Hinsehen gibt es jede Menge Metadaten mit schützenswertem Bitcoin-Verkehr verbunden. Wenn ein großer Angreifer sehen kann, welche Transaktion wann und über welche IP-Adresse weitergeleitet wird, kann er daraus schließen, welcher Knoten der wahrscheinliche Urheber – und damit Ersteller – einer Transaktion war. Darüber hinaus kann die Betrachtung der Verbindungen zwischen Knoten selbst Aufschluss darüber geben, wem bestimmte Knoten gehören, sodass Knoten bestimmter Unternehmen oder Miner gezielt angegriffen werden können. Und für einige Benutzer, die Knoten in repressiven Regimen betreiben, kann es unerwünscht sein, offenzulegen, dass sie überhaupt einen Bitcoin-Knoten betreiben.
Im von Satoshi entwickelten P2P-Protokoll verbinden sich Knoten miteinander und senden über diese Verbindungen Nachrichten wie z Inv („Ich habe neue Blöcke/Transaktionen für Sie“), getdata („Gib mir diesen Block/diese Transaktion“), Adr („Hier ist eine IP-Adresse eines anderen Knotens“) und viele andere. Der Satz an Nachrichten und Funktionen, die sie unterstützen, hat sich im Laufe der Zeit erheblich verändert, einschließlich der Unterstützung früher SPV-Clients mit BIP 37, Compact Block Relay mit BIP 152, Unterstützung für Tor v3-Adressen mit BIP 155 und Dutzender anderer. Aber die Art und Weise, wie diese Nachrichten in Bytes kodiert werden, die über die Leitung gesendet werden – was wir Transportprotokoll nennen – hat sich seit 2009 im Wesentlichen nicht geändert. Die einzige Ausnahme hiervon war die Einführung von Prüfsummen in das Protokoll im Mai 2010. BIP 324 war seitdem die erste Änderung dieser Art.
Beachten Sie, dass es sich zwar um eine ziemlich grundlegende Änderung dessen handelt, was man als Teil des „Bitcoin-Protokolls“ bezeichnen kann, sie jedoch völlig optional ist. Es handelt sich nicht um eine Konsensänderung und es waren keine Koordinations- oder Aktivierungsmechanismen erforderlich. Es wird einfach zwischen einzelnen Knoten verwendet, die es unterstützen. Wenn jedoch ein BIP 324-unterstützender Knoten mit einem anderen Knoten kommuniziert, der dies nicht unterstützt, greift er auf das alte („v1“) Transportprotokoll zurück. So kam es, dass weniger als zwei Jahre nach der Veröffentlichung der Client-Software, die dies standardmäßig ermöglicht, ohne viel Aufsehen der Großteil der Kommunikation zwischen Bitcoin-Knoten über das verschlüsselte v2-Transportprotokoll erfolgte.
Die Idee, den Bitcoin-Verkehr zu verschlüsseln, war nicht neu. Bereits 2016 schlug Bitcoin Core-Entwickler Jonas Schnelli BIP 151 vor, das es ermöglichen würde, Verbindungen zu aktualisieren, um sie in einen verschlüsselten Modus zu versetzen. Der Vorschlag kam nicht weit, und da dieser Ansatz den anfänglichen Handshake zwischen zwei Knoten nicht vor neugierigen Blicken verbergen konnte, wurde 2019 mit BIP 324 vorgeschlagen, das Transportprotokoll stattdessen komplett zu überarbeiten. Dieser modernere Ansatz führte stattdessen eine völlig neue Klasse von Verbindungen ein, die von Anfang an verschlüsselt sind. Der Fortschritt beschleunigte sich, als es 2021 von Dhruv Mehta aufgegriffen wurde und zusammen mit Tim Ruffing und mir in einen vollständigen Vorschlag umgewandelt wurde, der einige neue Funktionen wie einen vollständig pseudozufälligen Bytestream, Möglichkeiten für Traffic Shaping und optionale Erweiterungen enthielt. Wir haben es 2022 auf der Bitcoin-Dev-Mailingliste angekündigt und nach Erhalt mehrerer Kommentare im Laufe der Jahre 2022 und 2023 implementiert. Die vollständige Funktion wurde 2023 in Bitcoin Core integriert. Nach weiteren Tests wurde sie 2024 standardmäßig für alle Verbindungen (mit unterstützenden Peers) aktiviert.
Die vollständig pseudozufällige Bytestream-Funktion des neuen Protokolls bedeutet, dass es keine erkennbaren Muster in den über die Leitung gesendeten Bytes aufweist. Beispielsweise verschlüsselt TLS, das für die Kommunikation mit sicheren Websites („https://“-URLs verwendet wird), den Inhalt von Websites, jedoch nicht die Tatsache, dass TLS verwendet wird, oder (bis 2020 mit Encrypted Client Hello, „ECH“), von welchem Hostnamen die Website angefordert wurde. Der v1-Transport, der vor BIP 324 verwendet wurde, sendete über jede Verbindung sehr gut erkennbare feste erste 16 Bytes, was es zensierenden Firewalls leicht machte, jede Verbindung mit diesem Muster zu blockieren. Im Gegensatz dazu weist der v2-Transport überhaupt kein solches Muster auf; Jedes Byte ist aus Sicht eines Dritten einheitlich zufällig und daher völlig unvorhersehbar. Jedes Unternehmen, das damit den Bitcoin-Verkehr blockieren möchte, müsste alles blockieren, was zufällig erscheint, was politisch schwieriger sein könnte, als nur den Bitcoin-ähnlichen Verkehr nur begrenzt zu blockieren. Das Schwierigste daran, das gesamte Protokoll pseudozufällig zu machen, war die Tatsache, dass die Knoten während des Handshakes – bevor die Verschlüsselung eingerichtet wird – öffentliche Schlüssel austauschen müssen, und öffentliche Schlüssel sind nicht nur zufällige Bytes. Nur dank einer recht modernen kryptografischen Technik namens Elligator (2013) und insbesondere einer Variante namens ElligatorSwift (2022), die die Kodierung öffentlicher Schlüssel mit elliptischen Kurven in zufällig aussehenden Bytes ermöglicht, war es möglich, selbst dieses Muster zu vermeiden.
Es ist erwähnenswert, dass aufgrund des öffentlichen Charakters des Bitcoin-Netzwerks erhebliche Einschränkungen für den Datenschutz bestehen, den eine verschlüsselte Transportschicht zwischen Knoten bieten kann. Bitcoin-Knoten haben kein Vertrauen in ihre Kollegen und kümmern sich daher nicht wirklich darum, mit wem sie sprechen. Bitcoin-Knoten verfügen nicht über bekannte öffentliche Schlüssel, weshalb die vom v2-Transport angebotene Verschlüsselung opportunistisch und nicht authentifiziert ist; Beide Seiten erstellen lediglich einen neuen temporären Schlüssel für jede Verbindung. Dies bedeutet, dass es aktiven Gegnern (z. B. Ihrem ISP) möglich ist, einen Man-in-the-Middle-Angriff durchzuführen: Sprechen Sie v2 mit beiden Seiten der Verbindung, entschlüsseln Sie jedoch die gesamte zwischen ihnen fließende Kommunikation und verschlüsseln Sie sie erneut, wodurch weiterhin Spionage und möglicherweise Manipulation oder Zensur möglich sind. Der Punkt ist jedoch, dass dies im großen Maßstab deutlich teurer ist als die einfache Überprüfung unverschlüsselter einzelner Nachrichten, wie dies beim v1-Transport möglich ist. Und da die meisten Bitcoin-Verbindungen willkürlich zu zufälligen, nicht vertrauenswürdigen Knoten hergestellt werden, hat ein Angreifer, der andere Knoten in großem Umfang ausspionieren möchte, natürlich immer die Möglichkeit, einfach eine große Anzahl von Knoten selbst hochzufahren und einen großen Teil des Netzwerks dazu zu bringen, sich mit ihnen zu verbinden. Wie bei Man-in-the-Middle-Angriffen ist dies im großen Maßstab teurer als die bloße Überprüfung von v1-Paketen.
BIP 324 sollte daher am besten nicht als eine Verbesserung der Privatsphäre an sich gesehen werden, sondern als Teil einer größeren Anstrengung, die Kosten für die groß angelegte Überwachung des Bitcoin-Netzwerks zu erhöhen, ohne auf alternative Netzwerke wie Tor oder I2P angewiesen zu sein, die ihre eigenen Kompromisse wie erhöhte Latenz und Denial-of-Service-Risiko haben, die nicht für alle Knoten im Netzwerk akzeptabel wären. BIP 324 bietet außerdem eine Reihe von Funktionen, die bisher noch nicht implementiert sind, wie z. B. Traffic Shaping, um zu vermeiden, dass Informationen über weitergeleitete Transaktionen allein durch die Beobachtung der Größe verschlüsselter Pakete preisgegeben werden. Hoffentlich werden diese Vorteile in den kommenden Jahren weiter genutzt.
Verpassen Sie nicht Ihre Chance, es zu besitzen Das Kernproblem – mit Artikeln, die von vielen Kernentwicklern geschrieben wurden und die Projekte erläutern, an denen sie selbst arbeiten!
Bei diesem Stück handelt es sich um den Brief des Herausgebers, der in der neuesten Ausgabe vorgestellt wird Drucken Ausgabe des Bitcoin Magazine, The Core Issue. Wir teilen es hier als ersten Einblick in die Ideen, die in der gesamten Ausgabe untersucht wurden.

