/ Buch

Bitcoin (e)skaliert – die Blocksize-Debatte

tl:dr Die aktuellen Transaktionskosten machen Bitcoin für den alltäglichen Gebrauch untauglich. Dahinter stecken die Probleme für eine Skalierung des dezentralisierten Systems, die nicht gelöst sind. Zu allem Überfluss zeichnet sich für eine Lösung noch nicht einmal ein Konsens ab, stattdessen Spaltung über Spaltung. Die Welt geht aber nicht unter: Das Skalierungsproblem kommt auf viele coins zu, aber einige warten schon mit Lösungen auf.

Bitcoin: der aktuelle Stand

Hast du in letzter Zeit mal eine Bitcoin-Transaktion gemacht, Dirk?

Ja, und das hat fast zwei Euro gekostet. Was für ein Irrsinn

Du bist da nicht der Einzige. Die durchschnittlichen Transaktionskosten lagen im Juni 2017 bei bis zu fünf Euro und sind immer noch bei 50 Cent bis zwei Euro — je nach Eile und Transaktionsgröße. Dazu parallel steigt die Zahl der unconfirmed transactions — das sind Transaktionen, die losgeschickt wurden, aber nie bestätigt worden sind. Die Bitcoins in einer unconfirmed transactionhat weder der Absender noch der Empfänger so richtig. Bitcoin ist zur Zeit für viele Dinge eigentlich nicht wirklich benutzbar.

Außer zum Geld anlegen … der Kurs steigt ja anscheinend unbeeindruckt weiter

Der Hintergrund dieses Missstands ist Bitcoins mangelnde Skalierbarkeit und in dem Zusammenhang …

… die Blocksize-Debatte

Das geistert doch schon seit 2015 durch die (Bitcoin-) Nachrichten. Worum geht es da eigentlich?

Wir erinnern uns an Bitcoins Blockchain, in der im Zehn-Minuten-Takt ein Block generiert wird. Neben den zehn Minuten gibt es einen weiteren wichtigen Parameter: die Blockgröße. Aktuell ist die Blockgröße per Bitcoin-Protokoll auf maximal 1 MB begrenzt und durch das gestiegene Interesse an Bitcoin ist zur Zeit auch jeder Block praktisch l MB groß.

1 MB klingt nicht wirklich viel

Wir versuchen mal ein Gefühl dafür zu kommen, ob das viel oder wenig ist. Jeder node im Bitcoin-Netzwerk speichert die gesamte Blockchain. Nun bedeutet ein Block à l MB alle zehn Minuten, dass diese täglich um 144 MB wächst bzw. jährlich um 54 GB. Aktuell beträgt die Größe 160 GB.

Bedeutet l MB pro Block auch eine Obergrenze für die Anzahl der Transaktionen, die in einen Block gehen?

Exakt! Durchschnittlich passen in einen l-MB-Block 1800 Transaktionen. Bei einem Block pro zehn Minuten sind das im Schnitt etwa drei Transaktionen pro Sekunde.

Laut Google verarbeitet VISA ca. 2000 Transaktionen pro Sekunde

Das ist ein ganz schönes Ding, oder? Es nützt hier gar nichts, die Schwächen von VISA aufzuzählen, der Punkt ist: Bitcoin ist weit von den Kapazitäten entfernt, die ein zeitgemäßes Bezahlsystem verlangt.

Na dann erhöht man halt die maximale Blockgröße. Ich finde, bei 54 GB jährlichem Wachstum der Blockchain ist noch Luft nach oben

Genau darum soll es heute gehen. Um uns da ein Urteil zu bilden, kommen jetzt …

… die technischen Aspekte

der Blocksize-Debatte.

Lad dir mal Bitcoin-Core runter und warte ab. Der synchronisiert da erst einmal eine Weile — abhängig von deiner lnternetverbindung mehrere Tage. Und wenn das erledigt ist, entsteht da monatlich Upload-Traffic in Höhe von rund 200 GB.

Naja, wenn ich mal an den 2-GW-Energieverbrauch der Miner erinnern darf … An welcher Stelle entsteht denn hier ein Problem?

Um das zu verstehen, werfen wir mal einen Blick auf die unterschiedlichen Teilnehmer im Bitcoin-Netzwerk.

Nutzer, Miner, Nodes

Die Nutzer, Leute wie du und ich. Wir sollten uns mit technischen Sachen wir der Blockgröße nicht weiter auseinandersetzen müssen. Aber wir bezahlen die exorbitanten Transaktionskosten — bzw. an dem Tag, an dem wir uns entscheiden, das nicht mehr zu tun, ist die Sache mit Bitcoin irgendwo gegessen.

Die Miner standen im letzten Artikel zum Thema im Mittelpunkt. Wie du korrekt festgestellt hast, sind deren Kosten hauptsächlich Stromverbrauch und Investitionen in ASICs. Technische Kapazitäten zum Skalieren gibt es da im Überfluss.

lm Zusammenhang mit der Blockgröße spielen die Miner trotzdem eine wortwörtlich entscheidende Rolle: Wenn es Updates des Bitcoin-Protokolls gibt, entscheiden die Miner mit ihrer Rechenpower, wohin die Reise geht. Ein Update kann von Minern auch ignoriert werden — oder es kommt zu einem epischen Kampf, in dem die einen Miner das Update implementieren und die anderen nicht.

Wäre das dieser hard fork, von dem immer alle sprechen?

Ja genau. Wenn ein kritische Masse der Rechenpower eine abweichende Bitcoin-Variante implementiert, konvergiert das Netzwerk nicht mehr einfach so. Es entsteht stattdessen ein Bitcoin-Klon — zur Verwirrung aller Beteiligten, weil dann niemand so wirklich sagen kann, was der “richtige Bitcoin” ist.

So ein hard fork war am 1. August 2017 mit Bitcoin Cash zu beobachten. Erstaunlicherweise ging die Geburt von Bitcoin Cash aus Nutzersicht extrem glatt durch. Ein hard fork ist also keine Katastrophe. Wer Bitcoins besessen hat, hat jetzt den gleichen Betrag an Bitcoin-Cash-Coins. viele Exchanges haben direkt den Handel mit Bitcoin Cash ermöglicht. Selbst ein komplett ignoranter Nutzer hat durch Untätigkeit keinen finanziellen Nachteil hinnehmen müssen.

Heute ist aber nur wichtig, dass bei den Minern die Entscheidungsgewalt liegt, wenn es darum geht, das Bitcoin-Protokoll zu ändern.

Z.B. wenn man an der maximalen Blockgröße schrauben will

So sieht es aus. Wir haben aber noch einen dritten Teilnehmer der allzu oft übersehen wird

Die full nodes, auch einfach nodes genannt, sind ein Mittelding zwischen Nutzer und Miner. Genauer gesagt heißt ein Node dann “full node”, wenn er die Blockchain vollständig herunterlädt und damit selber die komplette Information des Bitcoin-Netzwerks zur Verfügung hat, ohne einem weiteren Service vertrauen zu müssen.

Wer also entsprechend der Vision von Satoshi bei Bitcoin mitmachen will, ohne einem Service zu vertrauen, betreibt im Keller einen full node. Mithilfe eines full nodes kann ich z.B. auch unabhängig prüfen, ob gerade jemand das Netzwerk attackiert. Die wichtigste Funktion der full nodes: sie leiten neue Transaktionen und Blöcke weiter und tragen so zur Konnektivität des Netzwerks bei. Ohne die full nodes wäre die Latenz im Netzwerk höher und Miner-Zentralisierung wäre ein noch dringenderes Problem als ohnehin schon.

Bei all dem bekommen Nodes aber im Gegensatz zu Minern keine Belohnung für ihre Arbeit.

Es zeichnet sich für mich gerade ab, dass es also die full nodes sein sollen, die irgendwie unter einer Erhöhung der Blockgröße leiden würden …

lch kann leider nicht einfach “ja” sagen, aber exakt dieses Argument scheint in der Debatte eine Rolle zu spielen. Und damit sind wir mitten drin in …

… der politischen Debatte

Irgendwann 2015 kam das Thema der maximalen Blockgröße mal auf. Damals waren die Transaktionskosten noch niedrig und die Debatte war recht theoretisch. Natürlich war das Limit von durchschnittlich 3 Transaktionen pro Sekunde aber auch damals schon bekannt. Nun gibt es eine Reihe von Entwicklern, die am Bitcoin-Protokoll schrauben, die sog. Bitcoin-Core-Developer, oder auch die core devs, die für ihren technischen Sachverstand gerne angehört werden.

Einer von denen hatte damals von Satoshi Nakamoto die Zugriffsrechte für das Bitcoin-Repository erhalten und gewissermaßen Satoshis Erbe angetreten.

Was haben die vorgeschlagen?

Die core devs sagten damals: eine Erhöhung der maximalen Blockgröße mag eines Tages notwendig sein — das kann man dann aber immer noch kurzfristig machen, wenn es dringend wird. Nachteilig sei aber, dass eine Erhöhung der Blockgröße

A Leute davon abhalten würde, full nodes zu betreiben — wegen steigender Anforderungen an die Hardware und Internetverbindung — und

B einen hard fork bedeuten würde, der potenziell riskant sei.

Deshalb seien alternative Lösungen vorzuziehen. Dazu zählen side chains, das Lightning Network und Verbesserungen der Effizienz durch Updates, so wie Segregated Witness — kurz SegWit — eines ist, sodass mehr Transaktionen in einen l-MB-Block passen. Ärgerlicherweise sind die core devs auch in diese Alternativen investiert. Man darf also nicht auf deren “unabhängigen Sachverstand” bauen.

Und was sagen die Miner?

Bei den Minern gibt es kein kohärentes Bild. Mein Eindruck ist Die Miner machen tendenziell bei allem mit, was aus Richtung der core devsvorgeschlagen wird.

Nach dem Motto cui bono haben aber viele Leute den Minern ein Interesse unterstellt, die maximale Blockgröße beizubehalten. Denn mit sinkendem block reward beziehen die Miner ihre Einnahmen zunehmend aus Transaktionskosten und die sind ja gerade durch das l-MB-Maximum gestiegen.

Ich möchte aber betonen, dass das Cui-Bono-Argument Spekulation ist. Es gab auch schon bedeutende Unterstützung von Minern für eine Erhöhung bzw. Aufhebung der maximalen Blockgröße, wie es durch Bitcoin XT und Bitcoin Unlimited vorgeschlagen wird.

… was nicht verwundern sollte, denn hohe Transaktionsentgelte mögen den Minern kurzfristig gefallen — langfristig profitieren die aber maßgeblich vom hohen Bitcoin-Kurs. D.h. Miner dürften opportunistisch jede Lösung unterstützen, die die leidige Debatte endlich beendet.

Und an dieser Stelle einmal langsam, bitte! “SegWit” erklärst du hoffentlich später noch im Detail. Erst einmal: “Bitcoin XT” und “Bitcoin Unlimited” … was sind das für Tierchen?

Nun ja, Bitcoin ist open source. Das heißt, die core devs sind eigentlich keine besonderen Autoritäten — jeder kann den Code kopieren und auf eigene Faust entwickeln. Und mit dem Zögern der core devs, die maximale Blockgröße zu erhöhen, sind unabhängige Entwickler aktiv geworden — tendenziell Leute mit vielen Bitcoins und eigenen Visionen. Nun existieren also Vorschläge für Bitcoin-Updates, die die maximale Blockgröße erhöhen oder ganz aufheben.

Leider haben diese Alternativen effektiv zu einer Spaltung der Community geführt. Und meinem Verständnis nach ist es genau der mangelnde Konsens und die damit einhergehende Verunsicherung, die die Miner davon abgehalten hat, zügig ein Update umzusetzen — welches auch immer.

Was wäre denn aus deiner Sicht die richtige Lösung?

Ha! Als könnte ich das so einfach sagen. Die Sache scheint sich außerdem so langsam zu klären, wie ich unten beschreiben werde. lch kann trotzdem mal ein paar Dinge festhalten.

Eine Bewertung der Argumente

Das Argument der core devs, dass größere Blöcke zu Lasten von full nodesgehen, ist im Prinzip widerlegt. Wer wirklich mit Leuten spricht, die full nodes operieren, weiß, dass die kein Problem mit einer Erhöhung der Blockgröße hätten, auch wenn dann die Anforderungen an deren Hardware steigen.

Möglicherweise hängen die core devs nostalgisch an der Vision, man könnte full nodes auf einem Mobiltelefon oder Rasperry Pie betreiben und so zu Satoshis Vision von Dezentralisierung zurückkehren.

Der Zug ist abgefahren, Blockgröße erhöhen!

… gegen eine Erhöhung spricht wiederum, dass das auch keine nachhaltige Lösung ist. Niemand traut sich, die Blockgröße auf “beliebig groß” zu setzen (außer Roger Ver von Bitcoin Unlimited), aus Angst dass das Netzwerk dann nicht nur skaliert, sondern in einer unumkehrbaren Entwicklung unbeherrschbare Dimensionen annimmt — befeuert durch Transaktions-Spam — und sich zuletzt komplett lahmgelegt.

Schrittweise Erhöhung bedeutet aber auch nur, dass die Debatte weiterläuft und potenziell immer wieder Kontroverse entfacht. Fortlaufende Notwendigkeit von hard forks zur Erhöhung der maximalen Blockgröße ist irgendwie uncool.

Es ist also nicht so einfach.

Na gratuliere. Du schreibst dir hier einen Wolf, mein Mausrad glüht und am Ende kommst du mir hier mit “es ist also nicht so einfach”

Dazu mal zwei Dinge. Die Lösung ist vielleicht auch außerhalb von Bitcoin zu suchen.

Wie es jetzt weitergeht

Mit Bitcoin

Bitcoin hat sich am 8. August 2017, für SegWit entschieden und seit dem 21. August ist das Update live. Die core devs haben zwar lange gebraucht und damit viel Aufregung verursacht, aber der mühsame Kompromiss für erhöhte Effizienz unter Beibehaltung der l-MB-Grenze scheint sich durchgesetzt zu haben.

Die Transaktionskosten sind seitdem auch direkt gefallen. Allerdings könnten die neugeschaffenen Kapazitäten aufgrund weiterhin steigender Nachfrage auch schnell wieder ausgeschöpft sein. ¯\_(ツ)_/¯

Das einzige was das noch aufhalten kann, wäre ein überraschender Erfolg von Bitcoin Cash, ein Bitcoin-Klon, der recht kurzfristig aus einem geplanten hard fork am l. August entstanden ist. Bitcoin Cash scheint einzig den Zweck zu haben, SegWit zu verhindern, und hätte nebenbei auch die maximale Blockgröße erhöht. Bitcoin Cash kann aber auch so schnell wieder gehen, wie es gekommen ist, und ist ein Thema für sich.

Kann man die Erfolgsaussichten von Bitcoin Cash genauer quantifzieren?

Geh mal auf fork.lol. Dort findest du den Verlauf der mining profitabilitygrafisch aufbereitet. Wenn Bitcoin Cash dauerhaft höhere Profite für Miner verspricht, ist Bitcoin potenziell dem Untergang geweiht — das Bitcoin-Netzwerk könnte nicht gut mit einer zu schnellen Abwanderung von Minern fertig werden und wäre in Nullkommanichts tot.

Tatsächlich hatte Bitcoin Cash auch schon einmal für einen kurzen Moment die Hälfte der gesamten Rechenpower für sich. Seitdem sieht es aber wieder gut für SegWit-Bitcoin aus.

Jetzt also bitte: Was in Herrgottsnamen ist “SegWit”?

Leider ist SegWit keine gewaltige technische Revolution. Effektiv wurde der Platz in einem Block grob verdoppelt und auf der Festplatte nehmen Blöcke jetzt bis zu 2 MB an Platz ein. Im Code steht aber immer noch das 1-MB-Blockgrößen-Limit — da hat man getrickst: Bei der Berechnung der Transaktionsgröße werden gewisse Daten geringer gewichtet, was mathematisch zu kleineren Transaktionsgrößen führt. Die Gewichtung macht aber mit Blick auf die Hardware-Anforderungen auf full nodes Sinn: Diejenigen Daten, die ein full node im teuren Arbeitsspeicher bereithalten muss, fließen zu 100% ein. Die Signatur-Daten, auf die das nicht zutrifft, fließen nur zu 25% ein.

Ein weiterer Vorteil dieser Trickserei bzw. dieses formalen Beihbehaltens der 1-MB-Obergrenze: SegWit ist kein hard fork. Stattdessen existieren jetzt neben herkömmlichen Bitcoin-Transaktionen im alten Format eben auch SegWit-Transaktionen und jedem Miner steht es frei, komplett alles beim alten zu belassen und erst dann SegWit-Transaktionen zu verarbeiten, wenn er Lust drauf hat.

Ohne Bitcoin

Wer sich damals Bitcoin zugewandt hat, weil er Politik gehasst hat, kehrt Bitcoin jetzt möglicherweise den Rücken zu. Es gibt ja nicht ohne Grund viele erfolgreiche Altcoins.

In dem Zusammenhang sei mal besonders Dash erwähnt. Dash ist Bitcoin sehr ähnlich, hat aber Governance-Strukturen fest miteingebaut. Das bedeutet, ein Dash-Full-Node bekommt nicht nur vom block reward etwas ab, sondern er bekommt auch eine Stimme bei Abstimmungen. Bei Dash gab es auch ein Blocksize-Debatte, die mit einer einzigen Abstimmungen über die Bühne gebracht wurde, woraufhin Dash seine maximale Blockgröße auf 2 MB erhöht hat, und das Thema war erst einmal gegessen.

Abgesehen davon skalieren alle POW-basierten coins erwartungsgemäß extrem schlecht. Das ist eine Aspekt der Dezentralisierung, den man noch nicht im Griff hat. Hier müssen ggf. komplett neue Konzepte her. Über NXT und Proof-of-Stake hab ich ja schon geschrieben, ein weiterer Kandidat wäre IOTA.

Liebe Leser

lch bedanke mich für eure kontinuierliche Aufmerksamkeit! Jeder Kommentar mit Fragen und Anmerkungen hilft mir, das aktuelle lnteresse am Thema einzuschätzen. Viel Rückmeldung = viel Motivation, mehr zu schreiben. Also schießt los!

Weiterlesen Tangle statt Blockchain: Wie IOTA funktioniert

Du bist hier Bitcoin (e)skaliert: Die Blocksize-Debatte

Voriger Artikel Proof of Stake verstehen

Zurück zur Inhaltsübersicht