Segregated Witness


Wenn eine Blockchain oder eine Kryptowährung wächst, wird mit der Zeit auch deutlich, dass es Schwachstellen gibt. Das ist zum Beispiel bei Bitcoin der Fall, bei welchem wir gerade herausfinden, dass er eigentlich gar nicht so skalierbar ist. Aber auch in der Vergangenheit sind wir auf Probleme gestoßen, die inzwischen gelöst wurden. Eine solche Lösung kann durch einen Soft Fork erfolgen. Dies geschah auch bei Bitcoin, als die Erweiterung namens SegWit (Segregated Witness) auf der Blockchain implementiert wurde. In diesem Artikel erklären wir Ihnen alles, was Sie über Segregated Witness wissen müssen.

Was ist SegWit?


Segregated Witness (auch bekannt als SegWit) ist ein Upgrade des Bitcoin-Protokolls (ein Soft Fork), das die Struktur von Transaktionen ändert, indem es die Signaturdaten (wie den privaten Schlüssel) in eine separate Datenbank verschiebt. Der Hauptzweck ist es, die Transaktionskapazität von Bitcoin zu erhöhen. Dabei macht es die Transaktionen auch weniger leicht manipulierbar.

Vom Alter her ist SegWit keine neue Idee mehr: Das Update wurde erstmals 2015 vorgeschlagen, bevor es im Dezember 2015 offiziell von Pieter Wuille und anderen Bitcoin Core Entwicklern vorgestellt wurde. Allerdings wurde es aufgrund seiner kontroversen Natur und der Ablehnung durch Miner erst viel später eingeführt. Erst 2017, als Teil des SegWit2X-Kompromisses, wurde der Vorschlag, der SegWit ermöglichte (BIP-91), angenommen. Die Aktivierung von SegWit im Bitcoin-Netzwerk erfolgte schließlich am 24. August 2017 im Block 481.824.

Die wichtigste Verbesserung, die SegWit mit sich bringt, ist die Tatsache, dass Transaktionen nicht mehr manipuliert werden können. Somit sorgt es auch dafür, dass Transaktionen plötzlich kleiner sind und somit viel mehr Transaktionen in einen Block passen.

Wie funktioniert ein SegWit?


Wie Sie wahrscheinlich schon wissen, hat jede Transaktion in Bitcoin eine Bezeichnung (txid), die als Zeichenkette dargestellt wird. Zum Beispiel lautet die Bezeichnung der ersten Transaktion zwischen Satoshi Nakamoto und Hal Finney:

f4184fc596403b9d638783cf57adfe4c75c605f6356fbc91338530e9831e9e16

Diese Transaction-ID ist ein Fingerabdruck der Transaktion, der auch als das Ergebnis der Anwendung einer Hash-Funktion auf diese Transaktion bezeichnet werden kann. Er hängt von den Elementen ab, die in der Transaktion vorhanden sind: wenn eines davon geändert wird, wird die Transaction-ID komplett verändert.

In Bitcoin sind die klassischen Transaktionen formbar. Das bedeutet, dass es möglich ist, ihre Bezeichnung zu ändern, ohne sie ungültig zu machen. Wie ist das also möglich? Es ist möglich, weil die Signaturen, die die Transaktion gültig machen, nicht alle Daten abdecken. Das liegt daran, dass die Transaktion zunächst ohne Signaturen aufgebaut wird, dann wird sie signiert und schließlich werden die Signaturen hinzugefügt.

Erhöhung der Transaktionsfähigkeit durch SegWit


Neben der Korrektur der Manipulierbarkeit von Transaktionen hat das SegWit-Update einen weiteren wichtigen Effekt: Es erhöht die Transaktionsfähigkeit des Netzwerks und vermeidet gleichzeitig einen Hard Fork. Diese Erhöhung der Transaktionsfähigkeit wird dadurch ermöglicht, dass die Signatur-Skripte außerhalb der traditionellen Blöcke platziert werden.

In SegWit wird eine neue Technik verwendet, um den Einfluss von Transaktionen und Blöcken auf das Netzwerk zu messen: das Gewicht. Anstatt sich auf die Größe einer Transaktion zu verlassen, die in Bytes ausgedrückt wird und die Menge der auf der Blockchain gespeicherten Daten repräsentiert, verwendet SegWit ein virtuelles Attribut namens Gewicht. Dieses wird in Gewichtseinheiten (WU) ausgedrückt und ist definiert als:

Gewicht = 4 × Basisgröße + Größe des Zeugen (Witness)

Mit diesem Update wird das 1 MB-Limit für die Blockgröße in ein 4-WU-Limit geändert. Dies ist keine Vervierfachung der Netzwerkkapazität, obwohl der Block bis zu 4 MB Blockgröße zulässt. Es handelt sich also um einen Trick, der durch SegWit implementiert wird.

Unter der Annahme einer vollständigen Implementierung von SegWit würde man eine 70-100%ige Erhöhung der Netzwerk-Transaktionskapazität erwarten. Das heißt, es handelt sich um SegWit-Blöcke mit einer Gesamtgröße von 1,7-2 MB, was im besten Fall 5-15 Transaktionen pro Sekunde ermöglichen würde.

Weitere Vorteile von SegWit


In Übereinstimmung mit BIP-143 wurde der Signaturalgorithmus für SegWit-Transaktionen verbessert. Einerseits vermeidet er redundante Hashes bei der Verifizierung einer Signatur. Andererseits bietet der Algorithmus durch die Berücksichtigung der Eingangsbeträge der Transaktion eine bessere Sicherheit als die Offline-Signatur, die von Hardware-Wallets wie dem Ledger Nano S verwendet wird.

SegWit bietet auch eine Versionskontrolle der Skripte, was dieses Update zu einem Werkzeug zur Verbesserung des Protokolls macht.

Da mehr Transaktionen verarbeitet werden können, sind auch die Transaktionskosten viel geringer. Und das ist natürlich ein großer Vorteil, zum Beispiel für Bitcoin-Nutzer. Sie können durch SegWit mehr Transaktionen durchführen, zu einem geringeren Preis.

Nachteile


Im Gegensatz zu dem, was Sie vielleicht denken, war SegWit keineswegs eine kleine Änderung für Bitcoin: Es war eine große Umstrukturierung der Transaktionen, die ihre eigenen Komplikationen mit sich brachte. Auch wenn die Umstellung über einen Soft Fork erfolgte, bedeutet das nicht, dass es ein reibungsloser Prozess war. Sobald SegWit aktiviert war, wurden die Blöcke aller Miner, die sich nicht an die neuen Regeln hielten, vom Netzwerk zurückgewiesen: Das Upgrade war also für alle Miner verpflichtend.

Dabei wurde SegWit von der Bitcoin-Community nicht einstimmig unterstützt. Befürworter der Blockchain-Skalierbarkeit, Miner und große Marktteilnehmer waren generell dagegen. Einige Community-Mitglieder drängten darauf, dass es am 1. August 2017 über einen "User Activated Soft Fork" aktiviert wird. Das SegWit-Update kam nur im Zusammenhang mit dem Kompromiss zustande, der durch SegWit2X geschaffen wurde, einer Vereinbarung, die SegWit erlauben wollte, während sie das Basis-Blockgrößenlimit auf 2 MB erhöhte, sich aber letztlich nicht durchsetzte.

SegWit macht die Basis des Codes sehr komplex, indem zum Beispiel eine neue Interpretation der Skripte mit den neuen Adressen verbunden wird. Dies ist problematisch, da Bitcoin ein Wirtschaftssystem ist, bei dem die Sicherheit von der Kontrolle einer großen Anzahl von Personen (Nodes) abhängt und einfach gestaltet sein muss.

SegWit verursacht auch eine "Validierungsniederlage" für die Nodes, die den alten Regeln folgen: sie sehen die Signaturen nicht und validieren sie nicht, was die Qualität des Netzwerks verschlechtert und die Nodes zwingt, auf die neue Software umzusteigen.

Der letzte große Nachteil von SegWit ist, dass seine Verbreitung langsam und begrenzt ist. Da es sich um einen Soft Fork handelt, haben die Leute die Wahl, SegWit zu verwenden oder nicht. Dies wirkt sich jedoch direkt auf die Versprechen aus, die dieses Update macht. Derzeit stagniert die SegWit-Akzeptanz bei 50% (April 2021), was bedeutet, dass nur 50% der Nodes auf SegWit umgestellt haben.

Fazit


Nachdem wir nun erklärt haben, was SegWit ist, wie es funktioniert und was die Vorteile sind, ist es an der Zeit, das eben Gelernte zusammenzufassen. Es ist klar, dass SegWit ein Upgrade des Bitcoin-Protokolls ist, das eine Reihe von Verbesserungen bringt, über die wir bereits in diesem Artikel gesprochen haben. Insbesondere behebt es die Fehlerhaftigkeit von Transaktionen, die die Implementierung des Lightning Netzwerks behindert hat und erhöht die Kapazität des Netzwerks. Einer der größten Vorteile ist, dass mehr Transaktionen in einen Block passen können, was auch die Transaktionskosten reduziert. Dies ist natürlich sehr vorteilhaft für Krypto-Händler, aber auch für die Knoten der Bitcoin-Blockchain. Die Tatsache, dass es ein Soft Fork ist, macht SegWit kompatibel mit älteren Versionen von Bitcoin, aber SegWit ist weit davon entfernt, perfekt zu sein. Daher ist es noch lange nicht klar, wie sich dies auswirken wird.