UASF: Wie SegWit gegen das Veto der Miner durchgesetzt werden könnte
Nachdem die Miner sich offenbar weigern, die Aktivierung des Protokoll-Upgrades SegWit zu signalisieren, beginnt die Entwickler-Community zu überlegen, wie sie SegWit auch gegen den Widerstand der Miner aktivieren können.
Stellt euch mal vor: Das Ökosystem Bitcoin ist einstimmig dafür, ein Upgrade auszuführen, weil es wichtige Probleme löst. Entwickler, Börsen, Wallet-Provider und Hardware-Wallets wollen das Upgrade. Doch die Miner weigern sich, es zu aktivieren. Muss das Ökosystem das nun hinnehmen? Darf es sich gar von den Minern erpressbar machen lassen?
Wir reden, natürlich, von SegWit. Jener Softfork, die Transaktion in einem neuen Format ermöglicht, das, neben einigen weiteren Vorteilen, auch ein gutes Stück mehr Kapazität auf der Blockchain mitbringt. SegWit sollte eingeführt werden, wenn 95 Prozent der Miner ihre Bereitschaft dazu signalisieren. Allerdings scheinen die Miner nicht gewillt zu sein, das zu tun.
Sitzen die Miner einem Missverständnis auf?
Als sich abzeichnete, dass es vorerst kein SegWit auf Bitcoin geben würde, hat Charlie Lee, wie bereits berichtet, versucht, es in Litecoin durchzusetzen. Doch auch dort stellen sich die Miner quer. In einem AMA (Ask Me Anythin, Frag mich was du willst) hat Litecoin-Chefentwickler Charlie Lee daraufhin den politischen Konflikt, der in der Sache liegt, auf die Spitze getrieben: Lee hat erklärt, dass die Miner gar nicht um ihre Zustimmung gefragt werden, sondern lediglich signalisieren sollen, wann sie das Update eingespielt haben, um die Softfork zu koordinieren. Und überhaupt, so Lee etwas nebulös: Wenn die Miner weiterhin nicht kooperieren, aber das Ökosystem SegWit will, dann werde es auch andere Möglichkeiten geben.
Wie diese “anderen Möglichkeiten” aussehen, hat der Litecoin-Entwickler Shaolin Fry kürzlich in der Mailing-List der Bitcoin-Entwickler skizziert. Fry beginnt seinen Beitrag damit, aufzuzählen, welche Nachteile das bisherige Verfahren hat, eine Softfork zu aktivieren, wenn 95 Prozent der Hashrate über 1.000 Blöcke Bereitschaft signalisieren müssen: Es gibt einem kleinen Anteil der Hashrate eine Vetomacht und droht damit, durch eine künftige “Upgrade Trägheit” maßgebliche Verbesserungen von Bitcoin zu blockieren.
Fry wiederholt, was Lee bereits im AMA gesagt hat: Die Methode wird “weithin dahingehend missverstanden, dass die Hash Power über einen Vorschlag abstimmt.” Er fügt hinzu, dass es schwierig sei, “dieses Missveständnis in der weiteren Community zu bereinigen.” Tatsache sei jedoch, dass Softforks “immer von den Nodes, nicht von den Minern durchgesetzt werden.” Miner “können sich natürlich ausloggen, indem sie einfach keine Transaktionen bestätigen, die die Features der Softfork benutzen.” Aber – und jetzt wird es etwas kniffelig: “Sie können keine Blöcke produzieren, die für die Softfork ungültig sind.”
Lasst uns an der Stelle kurz stehenbleiben. Was ist eine Softfork? Warum ist sie anders als eine Hardfork? Was hat das mit den Minern, mit den Nodes zu tun? Und wie kann das den Entwicklern dabei helfen, eine Softfork gegen die Miner durchzudrücken?
Vom Unterschied zwischen Hard- und Softforks
Sowohl Soft- als auch Hardforks sind Upgrades von Bitcoin, die nicht nur auf der Ebene der Software, sondern auf der des Konsens-Protokolls stattfinden, das dafür sorgt, dass alle Bitcoin-Knoten auf der Welt mit derselben Blockchain nach denselben Regeln synchronisieren. Während eine Softfork jedoch weitere Regeln hinzufügt, eliminiert eine Hardfork alte Regeln. Eine Softfork ist rückwärtskompatibel, was bedeutet, dass alte Knoten, die das Update nicht eingespielt haben, die neu eingeführten Features – wie SegWit-Transaktionen – zwar nicht verstehen, aber dennoch als gültig akzeptieren. Eine Hardfork hingegen bricht die Rückwärtskompatibilität, was bedeutet, dass alte Clients, die das Update versäumt haben, die neuen Blöcke nicht nur nicht verstehen, sondern auch als ungültig zurückweisen.
Stellt euch ein Word-Dokument vor. Wenn man eine .doc Datei produziert, kann sie von einer Vielzahl von Programmen gelesen werden. Als Microsoft jedoch das .docx-Format einführte, konnten open source Alternativen wie OpenOffice die Dokumente zunächst nicht lesen. Man könnte sagen, dass das einer Hardfork entspricht. Allerdings sind die Grenzen fließen: Zum Teil konnte man .docx-Dateien mit anderen Programmen öffnen, da das grundsätzliche Format anerkannt wurde, doch angezeigt wurde nur ein Buchstabensalat mit Sonderzeichensauce. In dem Fall würde es einer Softfork entsprechen.
Zurück zu SegWit: Die Transaktionen, die SegWit einführen soll, werden von allen Knoten als gültig anerkannt. Wirklich verstanden werden sie jedoch nur von den Nodes, die auch SegWit installiert haben. Der Plan war eigentlich, dass 100 Prozent der Miner Blöcke minen, in denen SegWit-Transaktionen in der vorgesehenen Weise prozessiert werden, während die Nodes – die User und Unternehmen – die Wahl haben, ob sie SegWit-Transaktionen ebenfalls bilden und verstehen wollen oder sich zunächst mit einem Kauderwelsch zufriedengeben.
Shaolin Fry stellt nun einen Plan auf, um eine Softfork ohne die Miner zu aktivieren. “Die hier diskutierte Alternative ist eine ‘flag day activation’ in denen Knoten beginnen, die Softfork zu einer bestimmten Zeit in der Zukunft durchsetzen. Diese Methode braucht eine längere Vorbereitungszeit als ein auf Hash power basierender Trigger, bietet aber eine Reihe von Vorteilen …”
Sobald Leute beginnen, SegWit-Transaktionen zu senden und zu empfangen, besteht für rationale Miner ein Anreiz, diese auch zu bestätigen, da die Witness – die ohne SegWit-Aktivierung ausgeklammert wird – zusätzliche Gebühren einbringt. Eine solche “User activated Soft Fork” (UASF) sei ein “win-win, denn sie schafft eine Option, die einige Leute wollen, ohne anderen Leuten etwas zu nehmen. Selbst wenn nur 10 Prozent der User ein Feature wollen, wäre es für die anderen nicht rational, ihnen dies zu verweigern, sofern die Vorteile die technischen Risiken überwiegen.”
Pro & Contra
In der Mailing-List wurde die UASF natürlich kontroves diskutiert. Manche jubeltem dem Vorschlag zu, machen lehnten ihn rundheraus ab, andere brachten Skepsis zum Ausdruck.
Jameson Loop, Ingenieur des Wallet-Providers BitGo, gab etwa zu bedenken, dass eine UASF nicht ohne Risiko sei. Wenn die Softfork per Flag Day aktiviert wird, kann jemand einen Split der Ketten triggern, indem er Transaktionen bildet, die auf der alten Chain gültig, aber auf der Softfork ungültig sind. Wenn die Softfork nur mit Unterstützung einer Minderheit der Hashrate aktiviert wird, dann, so Loop, könnte die Mehrheit der Miner zusammen die Softfork-Blöcke ablehnen, um diese abzuwürgen. Auch Core-Entwickler Luke Dashir meint, dass es ohne die Mehrheit der Hashrate möglich ist, mit einem einzigen Block die Chain zu spalten. Eine User aktivierte Softfork stelle, so Luke Dashir, die Vorteile einer Softfork gegenüber einer Hardfork auf den Kopf, da sie sich wie eine Hardfork verhält.
Chris Belcher, Entwickler von Joinmarket, findet hingegen Gedallen an der Idee. “Ich denke, UASF ist eine großartige Idee, da es den Macht-Balancen in Bitcoin gerecht wird und viel freiwilliger ist.” Belcher möche eine UASF nicht mit einer Hardfork vergleichen. Denn wenn es zu einer Fork kommt, dass also auf der einen Chain SegWit gültig und auf der anderen ungültig ist, dann wird die alte Chain vernichtet, wann immer die SegWit-Chain mehr Hashrate hat, und es kommt zu einer großen Reorganisierung der Blockchain. Anders als bei einer Hardfork wird die alte Chain schlichterdings aufhören zu existieren.
Auch David Vorrick, Entwickler von Siacoin, schätzt die Iee: “Die Hashrate folgt dem Preis eines Coins. Wenn die UASF einen höheren Preis hat, wird die andere Chain vernichtet. Wenn die UASF einen tieferen Preis hat, kann sie dennoch existieren (auch wenn die Coins trivial auf der Mainchain gestohlen werden können).” Der Erfolg einer UASF hänge ausschließlich vom Preis ab. Alles, was man brauche, sei die Unterstützung der wirtschaftlichen Zentren. Vorrick schätzt, dass eine UASF erfolgreich sein dürfte, wenn sie die Unterstützung von 75 Prozent der wichtigsten Börsen und Zahlungsdienstleistern findet.
Tom Zander, Entwickler von Bitcoin-Classic, ist dagegen skeptisch: “Mach’ keinen Fehler; wenn eine Hash-Minderheit die Hash-Mehrheit angreift, ist das ein Angriff auf Bitcoin als ganzes. Wenn so etwas im nächsten Jahr möglich ist, werden wir erleben, wie Regierungen versuchen, Änderungen durch eine UASF durchzusetzen. Ich bin sehr froh, dass UASFs nicht funktionieren, denn dies wäre das Ende von Bitcoins freier und dezentraler Natur.”
Shaolin Fry ließ sich von solcher Kritik jedoch nicht davon abhalten, seine Idee auszubauen. Ein wenig später schlug er in der Mailing-List eine Flag-Day-Aktivierung vor.
Die Flag Day Aktivierung
Da es offenbar eine starke Unterstützung von SegWit in der Bitcoin-Ökonomie gibt, aber einige Mining-Pools die Aktivierung blockieren, schlägt Shaolin Fry vor, die Softfork auf anderem Wege durchzusetzen. Und zwar als eine User Activated Soft Fork (UASF).
“Während die Anzahl von Nodes an sich bedeutungslos ist,” so Fry, “ist der Upgrade-Trend” zugunsten SegWit signifikant. “Es auch auch recht klar, dass ein deutlicher Teil des Ökosystems Zeit und Ressourcen investiert hat, um mit SegWit umzugehen, etwa durch die Upgrades von Wallet-Codes, die Updates von Libraries und andere Arbeiten, die Zeit und Geld kosten. Darüber hinaus haben andere bereits Systeme entwickelt, die auf SegWit beruhen, haben signifikante Resourcen investiert, um Systeme zu entwickeln, die SegWit benötigen – so wie verschiedene Lightning Netzwerk Systeme. Das ist ein sehr viel signifikanterer sozialer Beweis als einen Node laufen zu lassen.”
Anstatt nun die Miner um die Aktivierung zu bitten, schlägt Fry vor, “den Code zu veröffentlichen, der die existierende SegWit Entwicklung aktiviert, ohne auf einer kompletten Neu-Entwicklung zu basieren und ohne der Hash-Power Vetorechte zu geben. Das könnte erreicht werden, wenn die ökonomische Mehrheit übereinstimmt, einen Code zu benutzen, der Blöcke zurückweist, die kein SegWit aktiviert haben. Aus der Perspektive aller existierender Witness-Nodes würden die Miner dann die BIP9 Aktivierung signalisieren. Eine solche Regel könnte 4 bis 6 Wochen vor dem Timeout von BIP9 [im November 2017, CB] in Kraft treten. Wenn große Teile der ökonomischen Mehrheit öffentlich erklären, dass sie diesen neuen Client anwenden, müssen Miner das Signal zur SegWit-Aktivierung geben, um gültige Blöcke zu produzieren.”
Was Shaolin Fry vorschlägt, ist also, dass die Bitcoin-Unternehmen die Miner zwingen, SegWit zu aktivieren, indem sie die Blöcke der Miner, die sich SegWit verweigern, zurückweisen.Filed under: Deutsch
Source: Bitcoin Blog