c't 11/2018
S. 22
News
Bitcoin doppelt leistungsfähig
Aufmacherbild

Quadratur des Bitcoin

Wie Segregated Witness das Platzproblem auf der Bitcoin-Blockchain löst

Der Bitcoin scheint am eigenen Erfolg zu ersticken: Die Kryptowährung ist offenbar nicht leistungsfähig genug, immer wieder türmen sich unbearbeitete Transaktionen in den Mem-Pools. Hard-Forks wie Bitcoin Cash mit vielfach größeren Blöcken sollten den veralteten Bitcoin ersetzen, doch der hält sich hartnäckig und hat durch sanftes Doping – von den meisten unbemerkt – seine Leistungsfähigkeit verdoppelt.

Nüchtern betrachtet taugt die Kryptowährung Bitcoin weder zum massenhaften noch zum globalen Einsatz als Zahlungsmittel. Sie ist einfach viel zu beschränkt: So dauert es aufgrund der in Stein gemeißelten Zeitvorgabe mindestens zehn Minuten, bis eine Transaktion in einem Block auftauchen kann. Das Limit von maximal 1 MByte Transaktionsdaten pro Block sorgt zudem dafür, dass darin nur rund 2000 Standard-Transaktionen mit einem Absender und einem Empfänger verarbeitet werden können – weltweit. Da ist es kaum verwunderlich, dass sich Spekulanten bei Kursstürzen gegenseitig überbieten, um für ihre Verkaufs-Transaktion einen Platz im nächsten Block zu ergattern. Kurz vor Weihnachten 2017 war ihnen das über 100 US-Dollar Überweisungsgebühr pro Transaktion wert.

Solche Transaktions-Staus und Gebührenexzesse führen zwangsläufig dazu, dass Bitcoin nicht mehr als Zahlungsmittel, sondern nur noch als Investitions- und Spekulationsobjekt benutzt wird. Wer will schon Stunden warten, bis sein Kaffee bezahlt ist oder ein Vielfaches des Kaufpreises als Überweisungsgebühr ausgeben? Auch die Bitcoin-Miner haben ein Interesse an größeren Blöcken, schließlich wird die Transaktionsgebühr pro Byte bezahlt – größere Blöcke bedeuten potenziell höhere Einnahmen aus Transaktionsgebühren.

Bei der Suche nach einer Lösung spielen die Miner die größte Rolle, nicht etwa die Bitcoin-Besitzer: Die Miner sind es, die die Transaktionen zu neuen Blöcken verarbeiten. Egal wie eine Änderung aussieht, sie muss die Zustimmung der Miner finden und die Miner müssen ihre Software entsprechend ändern – andernfalls bleibt alles beim Alten.

Ein Änderungsvorschlag, der Anfang 2017 große Unterstützung fand, war Segregated Witness 2MB, abgekürzt SegWit2x. Er sah vor, Buchungsdaten und Signaturen der Transaktionen nicht mehr unmittelbar hintereinander im Block zu speichern, sondern voneinander zu trennen (Englisch: segregate). Vorne im Block würden nur noch die Buchungsdaten mit Absender, Empfänger und Betrag stehen, die Signatur hingegen sollte ans Ende des Blocks verlegt werden. Außerdem sollte die Blockgröße auf 2 MByte anwachsen – womit SegWit2x inkompatibel zum damaligen Bitcoin-Protokoll wäre. Dadurch entstünde eine neue Kryptowährung, ein sogenannter Hard-Fork.

Der Bitcoin-Börse CoinDesk, dem Mining-Farm-Betreiber ViaBTC und anderen war die Erhöhung der Blockgröße auf 2 MByte zu kurzsichtig. Es würde das Transaktionsvolumen lediglich verdoppeln. Sie unterstützten deshalb einen anderen Vorschlag, der Blockgrößen bis zu 8 MByte vorsah und außerdem einen neuen Algorithmus für eine beschleunigte Anpassung des Schwierigkeitsgrads enthielt, sodass die Kryptowährung künftig schneller auf Schwankungen bei der Anzahl und Leistungsfähigkeit der Miner reagieren könnte. Auch dies wäre ein Hard-Fork, wodurch eine neue Kryptowährung entstünde – ViaBTC nannte sie Bitcoin Cash.

Späte Liebe

Der dritte Vorschlag stieß bei den Minern zunächst auf wenig Gegenliebe: Er sah ähnlich wie SegWit2x eine Auftrennung von Buchungsdaten und Signaturen vor, die nominale Blockgröße sollte hingegen unverändert bei 1 MByte belassen werden. Dadurch wären die Blöcke weiterhin kompatibel mit dem traditionellen Bitcoin-Protokoll, sodass keine neue Kryptowährung entstehen würde – SegWit wäre ein sogenannter Soft-Fork.

Wegen angeblicher Patentverletzungen schwenkten die meisten vormaligen SegWit2x-Unterstützer aber zu SegWit, sodass letztlich am 1. August 2017 der Hard-Fork Bitcoin Cash und am 24. August der Soft-Fork SegWit umgesetzt wurden. SegWit2x hingegen wurde Anfang November 2017 endgültig begraben.

Während Bitcoin Cash viel Aufmerksamkeit erfuhr, bekamen die meisten Anwender vom Soft-Fork SegWit kaum etwas mit – der Bitcoin funktionierte ja weiterhin wie gewohnt. Dabei gleicht die Lösung einer Quadratur des Kreises: Dank SegWit ist nun fast doppelt so viel Platz für Transaktionen auf der Blockchain, die SegWit-Blöcke sind aber abwärtskompatibel. Alte Bitcoin-Clients verstehen die neuen Blöcke, ein Upgrade auf SegWit ist eine Option, keine Notwendigkeit.

SegWit-fähige Bitcoin-Clients trennen Überweisungen in zwei Transaktionen auf, eine Buchungstransaktion (TX) ohne und eine Witness-Transaktion (WTX) mit Signaturen. Die erste Transaktion enthält somit lediglich die Buchungsdaten mit Absender, Empfänger und Betrag, die Witness-Transaktion hingegen den vollständigen Datensatz inklusive Signaturen.

Die Miner schürfen ihre Blöcke wie bisher aus dem Pool traditioneller Bitcoin-Transaktionen sowie aus Buchungstransaktionen von SegWit-Überweisungen. Zudem hängen sie bei SegWit-Überweisungen die Witness-Transaktionen ans Ende des Blocks an. Dabei darf der erste Teil des Blocks ohne Witness-Daten nicht größer als 1 MByte sein.

Zweigleisig

Alte Bitcoin-Clients können den vorderen Teil eines SegWit-Blocks mit den Buchungsdaten theoretisch verarbeiten. Doch sie müssten die Transaktionen verwerfen, da es keine Signatur gibt, die die Überweisung autorisiert. Der Clou liegt darin, dass Geld aus der Buchungstransaktion von SegWit-Überweisungen stets als gemeinfrei („Anyone can spend“) gekennzeichnet wird. Solches freies Geld konnte vor SegWit jedermann für sich beanspruchen und musste sich nicht mit einer Signatur autorisieren – deshalb handelt es sich in den Augen der alten Bitcoin-Clients um eine gültige Transaktion. Lediglich die erste SegWit-Transaktion, die Geld von einer noch ohne SegWit genutzten Adresse als gemeinfrei kennzeichnet, muss eine Signatur im Buchungsteil enthalten.

Auf diese Weise können Bitcoin-Clients, die noch nie etwas von SegWit gehört haben, weiterhin den Zahlungsverkehr verfolgen und auch weiterhin Transaktionen durchführen. Allerdings können sie die Autorisierung von SegWit-Zahlungen nicht verifizieren – denn alle Gelder aus diesen Transaktionen sind vermeintlich gemeinfrei.

Moderne Bitcoin-Clients und die Miner, die SegWit beherrschen, wissen hingegen um die neue Funktion des Transaktions-Typs „Anyone can spend“ und verwenden die Witness-Transaktion für die Verifizierung. Sie verhindern, dass ältere Bitcoin-Clients fremde Gelder erfolgreich für sich beanspruchen und – aus ihrer Sicht völlig legal – woanders hin überweisen können: Es gibt für eine solche Transaktion keine Witness-Transaktion, weshalb sie Miner und SegWit-fähige Bitcoin-Clients zurückweisen. Deshalb konnte SegWit erst eingeführt werden, nachdem so gut wie alle Miner auf SegWit umgestellt waren.

Platz da!

Ohne Signatur benötigen die Buchungstransaktionen von SegWit-Überweisungen deutlich weniger Platz im ersten, noch immer auf maximal 1 MByte begrenzten Block (genauer: TX+WTX/4 maximal 1 MByte), wodurch sich die mögliche Zahl der Transaktionen nahezu verdoppelt. Das Potenzial kann aber nur ausgenutzt werden, wenn Anwender SegWit-fähige Bitcoin-Clients installieren und ihr Geld in SegWit-Wallets übertragen.

Zum Kasten: Eckdaten der Bitcoin-Forks

Den ersten nennenswerten Anstieg an SegWit-Überweisungen gab es im Dezember 2017, als jedes Byte in der Blockchain sprichwörtlich mit Gold aufgewogen werden musste. Kurz vor Weihnachten waren erstmals über 15 Prozent aller Transaktionen SegWit-Überweisungen. Inzwischen machen SegWit-Überweisungen bereits über 30 Prozent aller Transaktionen aus, Tendenz weiter steigend.

Um die SegWit-Nutzung zu forcieren, dürften die Bitcoin-Miner mittlerweile traditionelle Transaktionen zurückweisen – machen davon aber keinen Gebrauch. Sie bevorzugen stattdessen SegWit-Transaktionen, was dazu führt, dass SegWit-Transaktionen schneller und für weniger Transaktionsgebühr ausgeführt werden als traditionelle Transaktionen.

SegWit löst allerdings nicht alle Probleme des Bitcoin: Die Verdopplung des Transaktionsvolumens ist ein großer Schritt, doch Engpässe wie etwa vor Weihnachten 2017 sind damit weiterhin möglich. Auch liegt der Blockabstand noch immer bei 10 Minuten. Dieser Flaschenhals wurde durch SegWit zwar nicht angegangen, doch durch die Einführung von SegWit konnte das Lightning Network (LN) seinen Betrieb aufnehmen. Dort werden Zahlungen innerhalb von Sekunden und praktisch kostenlos außerhalb der Blockchain durchgeführt, die Guthaben der Nutzer aber regelmäßig mit der Blockchain synchronisiert. Damit steigt das Transfervolumen fast ins Unendliche, außerdem sind die einzelnen Zahlungen nicht mehr über die Blockchain nachverfolgbar, was die Privatsphäre schützt. Über diesen Bi-Turbo lesen Sie in einer späteren Ausgabe mehr. (mid@ct.de)