Viele Stimmen in- und außerhalb der Bitcoin-Community kritisieren häufig die zunehmende Zentralisierung der Mining-Pools, wovon die beiden größten, Foundry USA und Antpool, zusammen mittlerweile über die Hälfte der gesamten Rechenleistung im Netzwerk ausmachen. Die Behauptung, Bitcoin-Mining sei nicht dezentral, da nur wenige Entitäten das gesamte Netzwerk "lahmlegen" könnten, scheint nahezuliegen.

Während kurzfristiges Zensieren von einzelnen Transaktionen durch große Mining-Pools zwar einfacher wird, haben diese mittel- bis langfristig weder die Möglichkeit zur systematischen Zensur, noch gefundene Blöcke für einen Double-Spend-Angriff ("51%-Attacke") zurückzuhalten. Ein solches Fehlverhalten durch einen Mining-Pool würde nicht nur dem restlichen Netzwerk, sondern vor allem den eigenen Minern schnell auffallen. Letztere könnten innerhalb von Minuten Konsequenzen ziehen und dem unehrlichen Pool den Rücken kehren. Davon abgesehen haben Mining-Pools als Dienstleister für ihre Kunden, also die Miner, keinerlei finanzielles Interesse an unehrlichem Verhalten, da schließlich ihr gesamtes Geschäftsmodell auf dem Spiel steht.

In diesem Beitrag soll es allerdings gar nicht darum gehen, dieses längst entkräftete Argument der zu zentralen Mining-Pools erneut aufzuwärmen, sondern wir schauen stattdessen nach vorne: Mit dem grundlegend überarbeiteten Mining-Protokoll Stratum V2 soll Bitcoin-Mining nicht nur allgemein effizienter und sicherer werden, sondern vor allem soll sich das Mitspracherecht wieder stärker zu den einzelnen Minern verlagern. Was genau damit gemeint ist, und welche weiteren Verbesserungen Stratum V2 mit sich bringt, nehmen wir im Folgenden etwas genauer unter die Lupe.

Lese-Tipp: Mining-Pool wächst immer weiter: Droht eine 51%-Attacke?

Die Verteilung der Hashrate auf Mining-Pools im letzten Monat | Quelle: mempool.space

Stratum

Nicht einmal ein Jahr nachdem Satoshi Nakamoto im Januar 2009 den ersten Bitcoin-Block veröffentlicht hatte, wurde mit dem Slush Pool (ursprünglich bitcoin.cz) der erste offizielle Mining-Pool ins Leben gerufen. Das gemeinsame Suchen nach dem nächsten Bitcoin-Block mit anschließendem Aufteilen des Gewinns stellte sich schnell als unausweichlich heraus, um ein regelmäßiges und sicheres Einkommen zu ermöglichen. In den Anfängen des Pool-Minings merkte man allerdings auch schnell, dass die rasant steigenden Anforderungen, z.B. durch hohe Datenlasten, nicht mehr mit den gegebenen Möglichkeiten des Bitcoin-Protokolls vereinbar waren.

Daraufhin wurde das erste gesonderte Mining-Protokoll Stratum entwickelt, das schnell zum Standard in der Mining-Industrie wurde und bis heute zur Kommunikation zwischen Minern und ihren Mining-Pools dient. Vorstellen kann man sich Stratum wie einen "Aufsatz" oder eine Erweiterung des Bitcoin-Protokolls. Aus heutiger Sicht ist Stratum allerdings ziemlich in die Jahre gekommen. An vielen Stellen gibt es Optimierungsbedarf und ein häufig genannter Kritikpunkt ist das einseitige Verhältnis zwischen Pools und ihren Minern. Letztere bekommen ihre Arbeit einfach zugewiesen und haben wenig Möglichkeiten zur Mitentscheidung, was beispielsweise die Auswahl der Transaktionen betrifft. In der Praxis ist dies auch kein großes Problem gewesen, da Miner und Pools in der Regel eine grundlegende Motivation eint: Geld verdienen, womit sich die Frage der Transaktionsauswahl eigentlich größtenteils erledigt.

Dennoch: Der Optimierungsbedarf ist vorhanden, weshalb im Jahr 2019 der vielversprechende Nachfolger, Stratum V2, erstmals vorgestellt wurde und seither stetig weiterentwickelt wird. Werfen wir also einen Blick auf die wichtigsten Verbesserungen des neuen Mining-Protokolls.

Verhandeln statt Befehlen

Ein besonders interessanter Teil von Stratum V2 ist das sogenannte Job-Negotiation-Protocol, also zu Deutsch, das Protokoll zur Verhandlung von Arbeit. Bislang waren alleine die Mining-Pools selbst dafür zuständig, die Block-Kandidaten zu bauen, also die mit unbestätigten Transaktionen gefüllten Blöcke, für die anschließend die Miner ein gültiges Proof-of-Work suchen würden. Die Entscheidung, welche Transkationen in den nächsten Block aufgenommen werden, liegt hier also noch beim Mining-Pool selbst, während die Miner im Pool diese Vorgabe einfach akzeptieren.[1]

Mit Stratum V2 können Miner selbst zu "Verhandlern" werden und sich auf einen Block-Kandidaten mit ihrem Mining-Pool einigen, für den sie die Transaktionsauswahl selbst vorgenommen haben. Ein solcher Verhandler hat dafür im Hintergrund einfach eine eigene Bitcoin-Node laufen und kann ganz nach dem "Don't trust verify"-Prinzip Transaktionen selbst auswählen – fast schon wie ein Solo-Miner. Dass nicht jeder einzelne Miner diese Extrameile gehen wird, ist klar, weshalb ein Vermittler grundsätzlich nicht nur für sich selbst, sondern auch für andere Miner, wie in der Grafik angedeutet, verhandeln kann. Entscheidend ist, dass die Möglichkeit besteht und für grundsätzlich mehr gegenseitige Überprüfung innerhalb eines Mining-Pools und darüber hinaus gesorgt wird.

Quelle: braiins.com (Bearbeitet)

[1]Natürlich können Miner auch heute die erhaltenen Block-Kandidaten ihres Pools begutachten, also z.B. mit eigenen Block-Kandidaten nach möglicher Zensur abgleichen (vgl. "Erwarteter Block" und "Block Gesundheit" auf mempool.space), und sind insofern nicht dazu gezwungen diese zu akzeptieren, da sie jederzeit den Pool verlassen können.


 

Schluss mit leeren Blöcken

Wie wir in unserem Beitrag zu ungewöhnlichen Bitcoin-Blöcken bereits gezeigt haben, kommt es immer mal wieder zu leeren Blöcken, die seltsamerweise keine Transaktionen von anderen Nutzern beinhalten. Grund dafür ist die Tatsache, dass es schlichtweg schneller geht, einen leeren Block-Kandidaten, der nur die allernötigsten Informationen enthält, an die eigenen Miner zu verteilen, als es bei einem vollständigen Block-Kandidaten, der natürlich entsprechend mehr Daten umfasst, der Fall wäre. Bei jedem neuen Block arbeiten die allermeisten Miner also für einen Bruchteil einer Sekunde an einem leeren Block-Kandidaten – und können dabei zufälligerweise Glück haben.

Mit Stratum V2 bekommen Miner hingegen bereits im Vorfeld alle nötigen Informationen, zumindest soweit vorhanden, für den nächstfolgenden Block mitgeteilt. Sobald es also so weit ist und ein neuer Block im Bitcoin-Netzwerk angekündigt wird, müssen Mining-Pools nur noch den Hashwert dieses neuen Blockes an ihre Miner mitteilen, da alle weiteren Details bereits zuvor ausgetauscht wurden. Alle Miner im Pool können nun also direkt mit der Arbeit an einem "normalen", also möglichst vollen, Block-Kandiaten beginnen, womit das Phänomen der zufälligen leeren Blöcke komplett eliminiert werden sollte.

Weitere Effizienzgewinne

Das Verhindern von leeren Blöcken ist zwar ganz nett und anschaulich zu erklären, ist aber natürlich kein alles entscheidender Aspekt von Stratum V2. Der viel wichtigere Effizienzgewinn liegt tiefer im grundlegenden Aufbau des Protokolls begraben. Beim Vorgänger handelt es sich um ein textbasiertes Protokoll, das zwar für uns Menschen recht leserlich, aber an vielen Stellen ineffizient und einen vermeidbaren Überhang an Daten zur Folge hat. Mit Stratum V2 stellt man auf ein komplett binäres Protokoll um, optimiert Nachrichten somit auf eine möglichst effiziente Verarbeitung für Computer und kann an vielen Stellen Daten einsparen. Ganz allgemein können neben effizienteren Abläufen, wie gerade beschrieben, also auch die Größen der Datenpakete im Protokoll selbst reduziert werden.

In einem zeitkritischen Geschäft wie dem Bitcoin-Mining bedeutet dies vor allem: Mehr Geld verdienen, da man weniger Zeit mit Kommunikation "verschwenden" muss. Auch die Koordination bei der Arbeitsverteilung kann deutlich optimiert werden.

Sicherheit

Stratum V2 nutzt im Gegensatz zu seinem Vorgänger einen modernen Standard zur Verschlüsselung und zum Integritätsschutz von Nachrichten (AEAD). Unbefugte Dritte können diese also zum einen nicht mehr mitlesen und zum anderen würde potenzielle Manipulation an den übertragenen Daten beim Empfänger sofort auffallen.

Damit schützt man sich vor allem vor sogenannten Man-In-The-Middle-Angriffen, bei denen ein Angreifer zwischen Miner und Pool Nachrichten abfangen, und zu seinem Vorteil ausnutzen kann. Beispielsweise wäre es einem Angreifer bislang möglich gewesen, die Arbeitsnachweise eines Miners unterwegs abzufangen und selbst an den Mining-Pool zu veröffentlichen, und somit effektiv die Arbeit des Miners mitsamt der ihm zustehenden Belohnung zu stehlen (Hashrate-Hijack). Dieser und ähnliche Angriffe können mit Stratum V2 also deutlich erschwert, wenn nicht sogar komplett verhindert werden.

Ausblick

Stratum V2 bietet noch unzählige weitere kleinere bis größere Optimierungen, auf die wir unmöglich alleine in diesem Beitrag eingehen können. Die Details sind an dieser Stelle auch gar nicht so wichtig. Viel entscheidender ist am Ende die Frage, wann es denn so weit ist? Wie weit ist die Entwicklung und Adoption von Stratum V2 bereits vorangeschritten?

Es wird noch eine Weile dauern, bis das neue Mining-Protokoll auf hohe Adoption bei den Minern und Mining-Pools stoßen wird. Das Projekt ist nach wie vor in der Entwicklung und an vielen Stellen fehlt auch noch schlichtweg die Nachfrage aus der Mining-Industrie. Nach einer Umfrage aus dem Jahr 2020 planen nur 27% der Befragten Miner und Pool-Leiter eine Implementierung von Stratum V2 während der Großteil mit 64% noch unentschlossen ist. Die Stimmung bei vielen ist dennoch optimistisch, da die Effizienzvorteile früher oder später, umso umkämpfter der Markt wird, einen entscheidenden Wettbewerbsvorteil bieten könnten und eine breite Adoption von Stratum V2 schlussendlich unausweichlich wäre.

Quelle: Cambridge Center for Alternative Finance 

Was den Aspekt des Verhandelns der Transaktions-Auswahl mit den Mining-Pools betrifft, liegt es in erster Linie an den Minern selbst, sich für diesen Schritt besonders starkzumachen. Nur mit genug Nachfrage für mehr Mitspracherecht wird es schlussendlich auch gelingen, für einen relevanten Unterschied zu sorgen. Vielleicht kann die Diskussion um die "viel zu mächtigen" Mining-Pools dann in Zukunft eine neue Wendung finden.

Wenn es noch 10 Jahre dauert, bis Bitcoin-Mining umgestellt wird und neue Protokolle verwendet werden, dann dauert es eben so lange. Aber es wird letztendlich geschehen.

Matt Corallo im Gespräch mit Braiins Pool