Der Bitcoin-Entwickler 0xB10C, unter anderem bekannt für seine Tools zur Datenaufbereitung oder auch Observierung des Bitcoin-Mempools, veröffentlichte diese Woche einen Beitrag in seinem Blog, in dem auf den Versuch, insgesamt vier Bitcoin-Transaktionen zu zensieren, hingewiesen wurde. Die vom F2Pool gefilterten Transaktionen versuchten allesamt von einer Bitcoin-Adresse auszugeben, die vom US-amerikanischen Office of Foreign Assets Control (OFAC) auf eine Liste von sanktionierten Adressen gesetzt wurde.

Da der F2Pool natürlich nicht der einzige Mining-Pool ist und mit etwa 10% auch keinen überragenden Anteil der Rechenleistung für sich beansprucht, wurden die besagten Transaktionen natürlich ausnahmslos innerhalb kürzester Zeit bestätigt, indem sie von anderen Minern in einen Block aufgenommen wurden. Die Zensurresistenz von Bitcoin hat sich also erfolgreich unter Beweis gestellt. Es ist aber das erste Mal, dass ein großer Mining-Pool nachweislich aktive Filtermaßnahmen anhand von OFAC-Sanktionen durchführt. Grund genug, einen genaueren Blick darauf zu werfen, wann man überhaupt von absichtlichem Filtern oder gar Zensur im Bitcoin-Netzwerk sprechen kann und welche langfristigen Auswirkungen dieser Fall für Bitcoin haben könnte.

Mein Miningpool-Observierungs-Projekt hat kürzlich sechs Transaktionen, die von der OFAC sanktioniert wurden, als fehlend in Blöcken gemeldet.

Vier dieser Transaktionen wurden wahrscheinlich von F2Pool gefiltert. Dies ist das erste Mal, dass ich eine Filterung aufgrund von OFAC-Sanktionen gesehen habe.

@0xB10C auf 𝕏

Vorsicht vor Fehlalarmen

Bevor wir uns den Zensurversuchen von F2Pool widmen, sollten wir zunächst klarstellen, wann ein Miner überhaupt aktiv versucht, eine Transaktion zurückzuhalten und wann es sich schlichtweg um ungünstige Zufälle handelt. Neben den vier durch F2Pool gefilterten Transaktionen entdeckte 0xB10C nämlich noch zwei weitere Verdachtsfälle bei ViaBTC und Foundry USA, die es ebenfalls nicht in einen Block schafften und entsprechende Adressen der OFAC-Liste enthielten.

In einem dezentralen Netzwerk wie Bitcoin ist es nicht immer einfach, sämtliche Teilnehmer auf der ganzen Welt, darunter natürlich auch Bitcoin-Miner, in kürzester Zeit über neue Transaktionen zu informieren. Von der Veröffentlichung einer Transaktion bis zur Aufnahme in sämtlichen Mempools auf der ganzen Welt, können gut und gerne mal einige Sekunden vergehen. Zusätzlich müssen die Bitcoin-Miner eine neue Transaktion, sofern sie genug Gebühren abwerfen würde, erst einmal in ihren vorbereiteten Block-Kandidaten aufnehmen. Ein Prozess, der nicht in Echtzeit, sondern mit Verzögerungen in der Größenordnung von etwa 30 Sekunden stattfindet.

Block 813231

Ein handfestes Beispiel für dieses Phänomen ist Block 813231 von Foundry USA, in dem eine verdächtige Transaktion, welche von einer sanktionierten Adresse ausgeben wollte, scheinbar zurückgehalten wurde. Schnell könnte man hier einen weiteren Zensurversuch unterstellen, doch auf den zweiten Blick ist der eigentliche Grund wohl ein anderer. Als der Block gefunden wurde, befand sich die besagte Transaktion nämlich erst seit ungefähr einer halben Minute im Mempool (von mempool.observer). Foundry USA hatte also alleine deswegen schon wenig Zeit, die neue Transaktion überhaupt aufzunehmen. 0xB10C schätzt den potenziellen Zeitraum für solche falschen Schlussfolgerungen sogar auf bis zu 60 Sekunden, da zusätzliche Verzögerungen, die rein technisch durch die jeweiligen Tools selbst bedingt sind, nicht auszuschließen sind.

Es ist also sehr unwahrscheinlich, dass Foundry USA hier aktive Filtermaßnahmen einsetzte, da die Transaktion schlichtweg zu spät im Netzwerk bekannt wurde. Diese Annahme bestätigte sich auch direkt mit dem nächsten Block, der zufälligerweise ebenfalls von Foundry USA gefunden wurde: Die Transaktion wurde hier nämlich wie erwartet aufgenommen und bestätigt.

Bevor man die Alarmglocken der Zensur läutet, sollte man sich also stets vergewissern, ob nicht andere Faktoren, die rein technischer Natur sind, zum Ausschluss aus einem Block geführt haben.

Die F2Pool-Blöcke

Bei den Blöcken 810727, 811791, 811920 und 813357 sieht es allerdings anders aus. Für alle vier verdächtigen Transaktionen kann jeweils gezeigt werden, dass weder eine zu geringe Transaktionsgebühr noch der Zeitpunkt der Veröffentlichung für die Zurückhaltung verantwortlich war.

Im Fall von Block 811791 ist es besonders offensichtlich. Die gefilterte Transaktion war bereits für knapp fünf Minuten im Bitcoin-Netzwerk bekannt – mehr als genug Zeit, um bei einer Aktualisierung der Block-Kandidaten aufgenommen zu werden. Auch die Gebührenrate war im Verhältnis zu anderen Transaktionen im Block völlig ausreichend, was schön in folgender Grafik veranschaulicht wird, welche die Verteilung der Gebührenraten auf den beanspruchten Platz im Block darstellt. Der rote Punkt, also die gefilterte Transaktion, ist recht weit links anzusiedeln, was so viel bedeutet wie: Es gab genug Platz für die Transaktion.

Verteilung der Gebührenraten in Block 811791. Der rote Strich markiert, wo die gefilterte Transaktion "Platz gehabt hätte". | Quelle: 0xB10C

Auch der beliebte Bitcoin-Explorer mempool.space markierte die Transaktion in der eigenen Übersicht als "Entfernt", was allgemein zu einer niedrigeren Bewertung der "Gesundheit" des Blockes führte. Diese Metrik ("Block Health") zeigt über sämtliche Blöcke hinweg, ob diese so aussehen, wie man durch die finanziellen Anreize erwarten würde, oder ob manuelle Eingriffe im Spiel waren. Absolut zuverlässig ist diese Anzeige natürlich nicht, aber dennoch ein guter Indikator für anhaltende Trends, insbesondere bei der Einschätzung von einzelnen Mining-Pools. F2Pool kommt hier aktuell auf eine durchschnittliche Block-Gesundheit von etwa 98% – ein unauffälliger Wert.

Mining-Pools sind Dienstleister

Die Angst, einzelne Mining-Pools könnten effektive und nachhaltige Zensur auf Transaktionen im Bitcoin-Netzwerk ausüben, kommt nicht von ungefähr. Aktuell machen nur zwei Mining-Pools, Foundry USA und AntPool, ungefähr 55% der Rechenleistung im Netzwerk aus, was häufig als Argument für die Zentralisierung von Mining-Pools hervorgebracht wird. Je mehr Mining-Pools sich beispielsweise an eine Liste von sanktionierten Bitcoin-Adressen halten, desto länger dauert es bzw. desto schwieriger wird es für betroffene Nutzer, ihre "nicht salonfähige" Transaktion zu bestätigen. Ein Zustand, der in keinster Weise dem Anspruch und Ethos des Bitcoin-Netzwerks und seiner Community gerecht wird.

Doch häufig außer Acht gelassen wird bei dieser Argumentation, dass ein Mining-Pool eigentlich alles andere als äquivalent mit "einer Entität" ist, die uneingeschränkt und ohne Konsequenzen Entscheidungen über ihre Miner hinweg treffen kann. Mining-Pools sind in erster Linie Dienstleister, die ihren Kunden, also den Minern, einen Service verkaufen: Die organisierte Vermittlung zwischen vielen kleineren Minern, um gemeinsam für ein zuverlässiges Einkommen zu sorgen.

Zwar bestimmen aktuell hauptsächlich die zentralen Pool-Server, welche Transaktionen in die eigenen Blöcke aufgenommen werden, doch die einzelnen Miner geben durch ihre Teilnahme im Pool sozusagen indirekt eine Stimme ab, dass sie mit jener Auswahl einverstanden sind. Ein ehrlicher Miner hat einen übergeordneten Anreiz: Geld verdienen. Stimmt dieser Anreiz mit einem bestimmten Pool weniger überein, da ständig Transaktionen gefiltert werden, die potenziell mehr Geld eingebracht hätten, hat der Miner einen klaren finanziellen Anreiz, den Mining-Pool zu verlassen. Ein Vorgang, der theoretisch innerhalb von Minuten erledigt ist.

Dazu kommt der allgemeine, langfristige Anreiz für Bitcoin-Miner, dass das Bitcoin-Netzwerk in einem gesunden und funktionierendem Zustand ist. Schließlich ist der Wert von Bitcoin als Geld stark davon abhängig – und Miner erhalten ihr Einkommen nun mal direkt in Bitcoin. Man könnte also argumentieren, dass der Markt sowohl direkt über die gewählten Transaktionsgebühren, als auch indirekt über den Preis von Bitcoin bestimmt, wie wichtig es ist, Transaktionen uneingeschränkt und ohne Verzögerungen tätigen zu können. Einzelne Betreiber von Mining-Pools sitzen hier vor allem langfristig am deutlich kürzeren Hebel.

Fazit

Dennoch sollten wiederholte Zensurversuche natürlich nicht auf die leichte Schulter genommen werden. Zwar haben diese aktuell keinerlei nachhaltigen Effekt, es ist allerdings essenziell, dass Tools und Metriken zur Verfügung stehen, um etwaige Filtermaßnahmen erstens zu erkennen und zweitens darüber zu berichten und Aufmerksamkeit für das Thema zu schaffen.

Ob weitere gefilterte Transaktionen bei Blöcken von F2Pool auffallen, oder ob sich gar weitere Mining-Pools solchen Maßnahmen anschließen, wird sich zeigen. Insbesondere für die spieltheoretische Überlegung aus dem vorherigen Absatz könnte diese Entwicklung dahingehend interessant werden, ob die Hashrate solcher "zensierenden" Pools tatsächlich Einbußen verzeichnet, also ob Miner den Pool zunehmend häufig verlassen.

Der Co-Founder von F2Pool, Chun, meldete sich jedenfalls bereits auf 𝕏 und kündigte an, die Filtermaßnahmen zunächst wieder einzustellen. Der Post ist mittlerweile aber wieder gelöscht.

Original-Post wurde gelöscht

Werde den Patch zum Filtern von Transaktionen zunächst deaktivieren, bis die Community zu einem umfassenderen Konsens über dieses Thema gelangt.

@satofishi auf 𝕏

Glücklicherweise wird es außerdem in Zukunft technische Möglichkeiten geben, die Aufgabe der Auswahl von Transaktionen, den Mining-Pools teilweise oder sogar vollständig zu entziehen: Mit Stratum V2, dem Mining-Protokoll der nächsten Generation, können Block-Kandidaten dezentral bzw. unabhängig gebaut werden, ohne dabei auf die eigentliche Dienstleistung von Mining-Pools verzichten zu müssen.

Lese-Tipp: Stratum V2: Wie Bitcoin-Mining effizienter und unabhängiger wird!