Das Bitcoin-Whitepaper macht das Kernmerkmal von Bitcoin klar: Es ist erlaubnislos. Jeder auf der Welt kann jeden bezahlen, indem er dem Peer-to-Peer-Netzwerk beitritt und eine Transaktion überträgt. Der Proof-of-Work-Konsens befähigt sogar jeden, Blockproduzent zu werden, und bedeutet, dass die einzige Möglichkeit, eine Zahlung rückgängig zu machen, darin besteht, alle anderen durch Hashpower zu überwältigen.
Aber Proof of Work definiert nur, wie man einen Gewinner unter konkurrierenden Ketten auswählt; es hilft einem Knoten nicht, es zu entdecken. Ein 51-Prozent-Angriff – oder ein 100-Prozent-Angriff – ist viel einfacher, wenn ein Angreifer verhindern kann, dass Knoten von konkurrierenden Ketten erfahren. Die Aufgabe der Entdeckung gehört zum Peer-to-Peer-Modul, das viele widersprüchliche Aufgaben jongliert: Finden Sie ehrliche Peers in einem Netzwerk, in dem Knoten ständig beitreten und gehen, jedoch ohne Authentifizierung oder Reputation. Halten Sie immer Ausschau nach Blöcken und Transaktionen, aber wundern Sie sich nicht, wenn die meisten Daten Müll sind. Seien Sie robust genug, um extremen widrigen Bedingungen standzuhalten, aber leicht genug, um auf einem Raspberry Pi zu laufen.
Die Implementierungsdetails für ein erlaubnisloses Peer-to-Peer-Netzwerk wurden im Whitepaper weggelassen, machen aber heute den Großteil der Komplexität der Bitcoin-Knotensoftware aus.
Filter sind für Spam
Das Whitepaper erkennt die öffentliche Transaktionsweiterleitung als Eckpfeiler der Zensurresistenz von Bitcoin an, sagt aber nur ein paar Worte darüber, wie es funktionieren sollte: „Neue Transaktionen werden an alle Knoten gesendet. Jeder Knoten sammelt neue Transaktionen in einem Block. Jeder Knoten arbeitet daran, einen schwierigen Arbeitsnachweis für seinen Block zu finden.“1
Viele finden es amüsant, dass Satoshi vorgeschlagen hat, dass jeder Knoten „minen“ würde. Aufgrund des Zentralisierungsdrucks der Mining-Variabilität arbeitet die überwiegende Mehrheit der Knoten im heutigen Netzwerk nicht daran, einen Proof-of-Work zu finden. Vielleicht ist das ein akzeptables oder sogar erfolgreiches Ergebnis wirtschaftlicher Anreize; Wir haben einen Teil der Dezentralisierung gegen erhöhte Hashpower und damit Sicherheit eingetauscht. Allerdings wird der Zensurwiderstand von Bitcoin zusammenbrechen, wenn wir auch die dezentrale Transaktionsweiterleitung aufgeben.
Unser Wunsch nach einem breiten Pool von Transaktionsweiterleitungsknoten muss sich mit der Praktikabilität alltäglicher Computer auseinandersetzen, die sich einem erlaubnislosen Netzwerk aussetzen und Daten von anonymen Peers verarbeiten. Dieses Bedrohungsmodell ist einzigartig und erfordert eine äußerst defensive Programmierung.
Beim Block-Download dient der Proof-of-Work eines Blocks auf elegante Weise sowohl zur Verhinderung von Denial of Service (DoS) als auch als eindeutige Möglichkeit, den Nutzen von Daten zu bewerten. Im Gegensatz dazu können unbestätigte Transaktionsdaten praktisch frei erstellt werden und es könnte sich lediglich um Spam handeln. Beispielsweise können wir nicht wissen, ob die Transaktion ihre Ausgabebedingungen erfüllt, bis wir das UTXO geladen haben, was möglicherweise einen Abruf von der Festplatte erfordert. Es kostet Angreifer absolut nichts, diese Aktivität mit relativ hoher Latenz auszulösen: Sie können große Transaktionen mithilfe von Eingaben erstellen, die nicht zu ihnen gehören oder überhaupt nicht vorhanden sind.
Validierungsschritte wie die Signaturüberprüfung und die Mempool-Abhängigkeitsverwaltung können rechenintensiv sein. Es ist bekannt, dass die Validierung von Transaktionen mit einer großen Anzahl älterer Signaturen (Pre-Segwit) auf mancher Hardware Minuten dauern kann2Daher filtern die meisten Knoten große Transaktionen heraus. Die Ressourcennutzung ist nicht nur knotenlokal: Akzeptierte Transaktionen werden in der Regel an andere Peers weitergegeben, wobei die Bandbreite proportional zur Anzahl der Knoten im Netzwerk genutzt wird.
Knoten schützen sich selbst, indem sie den für unbestätigte Transaktionen und Validierungswarteschlangen verwendeten Speicher begrenzen, die Transaktionsverarbeitung pro Peer drosseln und neben dem Konsens auch Richtlinienregeln durchsetzen. Doch diese Grenzen können auch Zensurvektoren hervorrufen, wenn sie nicht sorgfältig gestaltet werden. Die einfache Logik, eine bereits abgelehnte Transaktion nicht herunterzuladen, die Größe der Transaktionswarteschlange für einen einzelnen Peer zu begrenzen oder Anfragen nach fehlgeschlagenen Download-Versuchen zu verwerfen, kann dazu führen, dass Knoten sich selbst für eine Transaktion blind machen. Diese Fehler werden zu zufälligen Zensurvektoren, wenn sie vom richtigen Angreifer ausgenutzt werden.
In diesem Sinne ist es zwar völlig logisch, unbestätigte Transaktionen, bei denen es sich um doppelte Ausgaben voneinander handelt, nicht aufzubewahren (nur eine Version kann gültig sein), aber die Ablehnung einer doppelten Ausgabe bedeutet, dass eine frühere Übertragung das Mining einer späteren ausschließt. Eine doppelte Ausgabe könnte ein absichtlicher Versuch sein, eine Zahlung zu fälschen, oder, wenn ein UTXO mehreren Parteien gehört, ein Pinning-Angriff, der die Mempool-Richtlinie ausnutzt, um das Mining von Abwicklungstransaktionen der zweiten Ebene zu verzögern oder zu verhindern. Wie sollten Knoten wählen?
Diese Frage bringt uns zum zweiten Element der Transaktionsweiterleitung: der Anreizkompatibilität3. Während Gebühren für den Konsens nicht relevant sind, abgesehen davon, dass sie begrenzen, was ein Miner als Blockbelohnung beanspruchen kann, spielen sie als Nutzenmetrik eine große Rolle in der Knotenpolitik. Unter der Annahme, dass Miner von wirtschaftlichen Anreizen angetrieben werden, können Knoten ungefähr abschätzen, welche Transaktionen für das Mining am attraktivsten sind, und die am wenigsten attraktiven verwerfen. Wenn Transaktionen denselben UTXO ausgeben, kann der Knoten den profitableren behalten. Obwohl Knoten keine Gebühren erheben, können sie gebührenfreie Transaktionen als Spam betrachten: Sie verbrauchen wahrscheinlich Netzwerkressourcen, werden aber nie abgebaut, und die Erstellung kostet praktisch nichts.
Diese beiden Designziele – DoS-Resistenz und Anreizkompatibilität – stehen in ständigem Spannungsverhältnis. Obwohl es attraktiv ist, eine Transaktion durch eine Version mit höherer Fee-Rate zu ersetzen, könnte das wiederholte Ersetzen mit geringfügigen Gebührenerhöhungen die Bandbreite des Netzwerks verschwenden. Die Berücksichtigung von Abhängigkeiten zwischen unbestätigten Transaktionen kann profitablere Blöcke erzeugen (und CPFP ermöglichen), kann jedoch bei komplexen Topologien teuer sein.
In der Vergangenheit waren Knoten auf Heuristiken und Abhängigkeitsgrenzen angewiesen, was zu Reibungsverlusten bei den Benutzern führte und neue Pinning-Vektoren eröffnete. Mempools, die Cluster verfolgen, können die Anreizkompatibilität genauer beurteilen, müssen aber dennoch Mempool-Abhängigkeiten begrenzen. Diese Arten von Einschränkungen schaffen Pinning-Vektoren für Transaktionen, an denen mehrere Parteien beteiligt sind, die sich gegenseitig nicht vertrauen: Ein Angreifer kann seinen Co-Transaktor daran hindern, CPFP zu verwenden, indem er das Limit monopolisiert.
Es ist leicht, diese Probleme zu trivialisieren: Pinning-Angriffe sind eine Nischenform der Zensur, die sich nur auf gemeinsame Transaktionen bezieht und in der Regel nur zu vorübergehenden Transaktionsverzögerungen führt. Lohnt es sich, Nicht-Mining-Knoten dabei zu helfen, ein paar zusätzliche Satoshis an Gebühren zu erpressen?
Ein Deal mit dem Mevil
Gemeinsame Transaktionen sind das Rückgrat der UTXO-Mischung von Datenschutzlösungen und Protokollen der zweiten Schicht. Ein Großteil der Bitcoin-Entwicklung konzentriert sich auf die Erstellung skalierbarer, privater und funktionsreicher Anwendungen in einer zweiten Schicht, die auf die Ansiedlung in der Kette zurückgreift. Ein gängiges Muster besteht darin, Auszahlungen oder Abrechnungen vorübergehend zu verzögern, sodass die Parteien innerhalb eines Zeitfensters auf Fehlverhalten reagieren können. Aber viele Designs – darunter auch solche, die dazu dienen, Konsensänderungen zu motivieren – beschönigen in diesen Szenarien die Gebührenerhöhung.
Ein Zeitfenster zur Verhinderung von Fehlverhalten ist auch ein Zeitfenster für Angreifer. Diese beiden Bedingungen – gemeinsame Transaktionen und Bestätigungsfristen zur Verhinderung von Fehlverhalten – erzeugen den perfekten Sturm, der die Schwere von Pinning-Angriffen von vorübergehenden Transaktionsverzögerungen (meh) bis hin zu potenziellem Diebstahl (oh nein!) erhöht.
Das Pinning war Gegenstand jahrelanger Forschungs- und Entwicklungsbemühungen, die zum Transaktionsformat Topologically Restricted Until Confirmation (TRUC) führten4Pay to Anchor (P2A)-Ausgabetyp5Richtlinie für kurzlebigen Staub6Cluster-Mempool7begrenzte Weitergabe von Paketen8und verschiedene Verbesserungen der Transaktions-Relay-Zuverlässigkeit. Diese Funktionen sollen stärkere Garantien für die Verbreitung höherer Gebühren für den Ersatz gemeinsamer Transaktionen bieten.
Dennoch bringt eine ordnungsgemäße Gebührenverwaltung Mehraufwand in Form größerer Transaktionen, komplexerer Wallet-Logik und der Behandlung unwahrscheinlicher Randfälle mit sich. Eine einfache Abkürzung besteht darin, einen Deal mit einem Miner abzuschließen: Gegen eine Gebühr garantiert der Miner, dass seine Transaktionen umgehend abgebaut werden. Diese Lösung erweist sich möglicherweise als zuverlässiger als die Verwendung des Peer-to-Peer-Netzwerks, das aufgrund heterogener Mempool-Richtlinien eine hohe Latenz und eine schlechte Ausbreitung aufweisen kann.
Wenn kommerzielles Interesse besteht, kann die Einführung der direkten Übermittlung an den Miner schnell zunehmen. Börsen machen einen großen Teil des Transaktionsvolumens aus und bevorzugen wahrscheinlich ein vorhersehbares Timing gegenüber der Optimierung von Gebühren. Beliebte Anwendungen sind möglicherweise von Pinning-Angriffen betroffen oder möchten nicht standardmäßige Transaktionen verwenden, die durch allgemeine Knotenrichtlinien verboten sind. Unternehmen und Depotbanken, die über Quantenangriffe mit kurzer Reichweite besorgt sind, können einen privaten Kanal mit einem Miner einrichten.
Als privater Miner Extractable Value (MEVil)9 Wird es notwendig, wettbewerbsfähig zu bleiben, kann sich das Netzwerk zu einem Modell zentralisierter Blockspace-Broker entwickeln. Diese Dienste können zu Engpässen für Angreifer und staatliche Anordnungen werden und die Prämisse untergraben, dass es keine Erlaubnis gibt, ein Miner zu werden.
Wenn das Transaktions-Relay-Netzwerk für den Knotenbetrieb irrelevant wird, kann es sein, dass die Teilnahme daran unnötig erscheint. Werden wir in dieser hypothetischen Zukunft über die Vorstellung lachen, dass jeder Knoten im Netzwerk unbestätigte Transaktionen weiterleitet, so wie wir es lustig finden, dass Satoshi sich jeden Knoten als Miner vorgestellt hat?
Die Ironie besteht darin, dass die Zentralisierung des Bergbaus nicht mit offener Absprache oder behördlicher Vereinnahmung beginnt. Es beginnt mit ein paar rationalen Abkürzungen: effizientere Vereinbarungen, benutzerdefinierte Weiterleitungspfade oder Leistungsoptimierungen, die für ihre Teilnehmer von Vorteil sind. Niemand kann das Zustandekommen dieser Vereinbarungen verhindern. Wir können jedoch versuchen, den Wettbewerbsvorteil privater Dienste gegenüber dem öffentlichen Netzwerk zu verringern: Mempool-Pinning-Vektoren ausbügeln, bevor wir Vorschläge für Konsensänderungen in Betracht ziehen, die das Potenzial für Mevil erhöhen; Machen Sie das öffentliche Transaktions-Relay-Netzwerk zu einem effizienten Marktplatz für Gebote (und Aktualisierungen) für Blockplatz.
Im Peer-to-Peer-Netzwerk werden viele der Kernideologien von Bitcoin zum Leben erweckt. Es ist auch eine technische Herausforderung mit schmerzhaften Kompromissen zwischen effizientem Knotenbetrieb, Zensurresistenz, Anreizausrichtung und Protokollkomplexität. Es wird nur noch schwieriger, wenn Bitcoin wächst. Wie diese konkurrierenden Designziele in Einklang gebracht werden sollen, bleibt dem Leser überlassen.
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.
[1] https://bitcoin.org/bitcoin.pdf
[2] https://delvingbitcoin.org/t/great-consensus-cleanup-revival/710
[3] https://delvingbitcoin.org/t/mempool-incentive-compatibility/553
[4] https://github.com/bitcoin/bips/blob/master/bip-0431.mediawiki
[5] https://github.com/bitcoin/bitcoin/pull/30352
[6] https://bitcoinops.org/en/topics/ephemeral-anchors/
[7] https://delvingbitcoin.org/t/an-overview-of-the-cluster-mempool-proposal/393?u=glozow
[8] https://bitcoinops.org/en/topics/package-relay/
[9] https://bluematt.bitcoin.ninja/2024/04/16/stop-calling-it-mev/

