Segwit2x – Keine Zeugen zurück lassen

Es gibt gerade eine hitzig geführte Debatte ob Segwit2x verwendet werden soll oder nicht. Es tun sich viele Fragen auf: Ist es technisch eine gute Lösung? Wie würde es sich wirtschaftlich auswirken? Spricht das gegen oder für die Bitcoin Philosophie?

Um das zu verstehen, muss allerdings erst verstanden werden was den Segwit Version 1 überhaupt bedeutet für Bitcoin.

Früher war alles … fetter

Transaktionen in Bitcoin sind eine interessante Datenstruktur. Sie bestehen aus einer Liste von Quellen und einer Liste von Zielen für den Bitcoin-Fluss. Doch diese Quellenangaben und Zielangaben enthalten nicht nur den Betrag der transferiert werden soll.

Eine Zielangabe in der Transaktion, in Bitcoin-Terminologie VOUTs, beinhaltet neben der zu transferierenden Menge, auch ein Rätsel. Jeder der dieses Rätsel lösen kann darf die Bitcoins ausgeben. Am einfachsten stellt man sich das als Zahlenschloss an einer Schatztruhe vor. Es ist dem Schloss völlig egal wer die Zahlenkombination eingibt, sobald sie richtig eingegeben wird, geht das Schloss auf.

Die Quellangaben, in Bitcoin-Terminologie VINs, beinhalten des Rätsels Lösung. Durch die Lösung wird jedem der die Transaktion validiert bewiesen, dass der Transaktionsender tatsächlich Zugriff auf die noch nicht ausgegebenden Schätze hinter dem Zahlenschloss hat. Diese noch nicht ausgegebenden Schätze nennt man in Bitcoin-Terminologie Unspend Transaction Output.

Die Lösung des Rätsels, also der Beweis, dass man über die Bitcoin verfügen darf, wird auch „Zeuge“ genannt. Im übertragenen Sinn handelt es sich dabei um Beweise die bezeugen dass man das Geld ausgeben darf.

Technisch betrachtet, sind Zeugen Programmparameter für Smart Contracts die auf der Bitcoin-Blockchain ausgeführt werden. Der Smart Contract wird in der Programmiersprache Bitcoin Script geschrieben.

Die Parameter sind lange Ketten von Zeichen die häufig von geheimen Schlüsseln (Private Keys) generiert werden. Die Ketten sind lang und verbrauchen daher viele Bytes. Diese Bytes tun schnell weh, wenn nur eine Blockgröße von einem Megabyte zur Verfügung steht.

Segwit – Oldies und Jugend vereint

Segwit steht für „Segrageted Witness“ und meint, dass die Zeugen von den Transaktionen abgespalten werden. Die Zeugen zu einem VIN können über zusätzliche Nachrichten abgerufen werden, verbrauchen allerdings keinen Platz mehr in der Transaktion bzw. im Block selbst.

In den letzten Wochen liest man häufig von einem Hardfork und welche ernsten Folgen ein solcher haben könnte. Im Falle von Segwit handelt es sich nicht um einen Fork, da die Änderung abwärtskompatibel ist.

Für Knoten im Bitcoin-Netzwerk die Segwit nicht implementieren, sehen Segwit-Transaktionen merkwürdig aber trotzdem gültig aus. Die alte Versionen der Knoten erkennen den Verweis auf den außerhalb liegenden Zeugen nicht. Sie sehen stattdessen nur den Hinweis das jeder auf den Schatz zugreifen kann, wenn er möchte.

Durch dieses Vorgehen wird Platz gespart und zwar soviel, dass nun dank Segwit doppelt so viele Transaktionen pro Block möglich sind wie ohne.

Segwit-Transaktionen sind deutlich leicht gewichtiger als die regulären Transaktionen. Erfordern aber zusätzliche Kommunikation mit dem Netzwerk wenn eine Transaktion validiert werden soll. Durch diesen Mehraufwand wird mehr Platz im Block geschaffen.

Segwit2x – Ohne Hardfork geht‘s nicht

Segwit2x ändert das Protokoll und führt dazu, dass alte Knoten nicht mehr mitreden können. Für diese wären neue Segwit2x Transaktionen aufgeblasener Unsinn den man am besten verwirft. Wie der Name andeutet, handelt es sich bei der Änderung um die Erhöhung auf 2MB pro Block. Das 2x steht für die Verdopplung der aktuellen Blockgröße.

Wann es dann wirklich los geht, hängt auch von den Signalen

Na und, ist das nicht viel Trubel um Nichts?

Ursprünglich wurde das ganze im März 2017 in der bitcoin-dev Mailing List von Sergio Demian Lerner vorgeschlagen. Der Vorschlag basiert auf einem Bitcoin Improvement Proposal und kann in BIP 102 nachgelesen werden. Wie auch in der Mailing-List nachzulesen ist, gab es von Anfang an in der Core-Developer-Community Widerstand gegen einen Hardfork.

Durch diese Uneinigkeit, entwickelte eine Gruppe der Core-Developer ohne die 2MB Blockgröße weiter und eine Gruppe baute Software die, die 2 MB Blockgröße enthält. Die Basis für diesen Software-Fork ist Version 0.14 des Bitcoin Core Projekts.

Seit Anfang gibt es rund um Segwit2x gibt es viele Diskussionen, die teilweise auch sehr hitzig geführt werden. Die Kritik an Segwit2x reicht vom Aufzeigen technischer Defizite hin zu Ärger über die politische Lobby hinter Segwit2x, aber auch über den Verrat an den philosophischen Grundlagen einer dezentralen Kryptowährung.

Bereits die erste Antwort auf die initiale Ankündigung in der Mailing-List war eine entsprechende Kritik. Ernst sind vor allem die Sicherheitsbedenken wie zB. die schwache Replay-Protection oder die Gefahr von DOS-Attacken.

Was heißt das für uns Bitcoin-Halter?

Defakto ist gerade ein politischer Konflikt zwischen mehreren, sehr einflussreichen Parteien ausgebrochen. Egal wer gewinnt, es wird hier auch große Verlierer geben. Ich persönlich frage mich, ob die Querelen nicht insgesamt Bitcoin schaden könnten.

Der Kryptomarkt ist im Vergleich zum normalen Finanzmarkt klein und Bitcoin, als älteste der Top 10 Währungen, gibt auch vor wie sich der restliche Markt entwickelt. Ich vermute kurzfristig wird es rund gehen …

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.