Bitcoin-Technologie: Segregated Witness (SegWit). Segregated Witness (SegWit) ist ein implementiertes Protokoll-Upgrade, das Schutz vor Transaktionsverformbarkeit und Erhöhung der Blockkapazität bietet.
SegWit trennt den Zeugen von der Liste der Eingaben. Der Zeuge enthält Daten, die zur Überprüfung der Gültigkeit der Transaktion erforderlich sind, ist jedoch nicht erforderlich, um Transaktionseffekte zu ermitteln.
Um wirklich zu verstehen, wie SegWit funktioniert, konzentrieren wir uns auf zwei unterschiedliche Konzepte: Blockgewicht und weiche Gabeln.
Bitcoin Blockgröße und Gabeln
Um genau über Blockgrößen zu sprechen, ist es wichtig zu verstehen, wie die Blockgröße gemessen wird. Die Blockgröße ist einfach die Größe des serialisierten Blocks in Bytes (der Blockkopf, die Anzahl der Transaktionen und die Transaktionen selbst).
Als Teil der Konsensregeln überprüft jeder Knoten im Bitcoin-Netzwerk derzeit, ob ein Block weniger als 1.000.000 Byte beträgt. Ein Block mit mehr als 1.000.000 Byte wird von diesen Knoten als Konsensregel abgelehnt.
Da Legacy-Knoten (Knoten, die nicht aktualisiert werden) einen Block mit mehr als 1.000.000 Byte ablehnen, muss jeder Soft Fork diese Regel beibehalten. Aber wie können Sie die Blockgröße erhöhen und diese Regel trotzdem beibehalten? Sind größere Blöcke über eine weiche Gabel überhaupt möglich?
Der wichtigste Einblick ist, dass ein großer Teil der Transaktion, der ScriptSIG (öffentlicher Schlüssel), im Wesentlichen nicht an Legacy-Knoten gesendet werden kann, damit eine Transaktion als gültig gezählt wird. Die Tatsache, dass dies als Soft Fork getan werden kann und mehr Transaktionen ermöglicht, ist ein technischer Durchbruch.
Nicht-SegWIT-Transaktionen setzen die ScriptSIG in die Mitte der Transaktion. SegWit Transaktionen setzen die ScriptSIG am Ende. Der ScriptSIG-Teil von SegWit-Transaktionen wird als „Zeugendaten“ bezeichnet. Wenn SegWit-Transaktionen an Legacy-Knoten gesendet werden, werden die Zeugendaten entfernt. Der Schlüssel ist, dass diese „gestrippten“ Transaktionen immer noch gültige Transaktionen auf Legacy-Knoten sind, was uns eine Platzeinsparung gegenüber Nicht-SegWIT-Transaktionen ermöglicht. Daher können mehr Transaktionen in den Block passen, der an Legacy-Knoten gesendet wird, ohne die 1.000.000 Byte Grenze zu überschreiten.
SegWit Knoten empfangen SegWit Transaktionen und Blöcke, die die Zeugendaten mithilfe alternativer Netzwerkmeldungen enthalten. Die SegWit-Blöcke, die die Zeugendaten enthalten, können über 1.000.000 Byte betragen. Legacy-Knoten erhalten, wie bereits erwähnt, dieselben Blöcke und Transaktionen, aber die Zeugendaten werden entfernt. Dies ist eine Möglichkeit, SegWit zu einem weichen Fork zu machen, was bedeutet, dass es nicht zwingend notwendig ist, Ihre Software zu aktualisieren, um am Konsens teilzunehmen.
SegWit und Blockgewicht
Ein offensichtliches Problem für einen SegWit-Kritiker wäre die Tatsache, dass es eine obere Grenze geben muss, sonst könnte die Blockgröße möglicherweise unbegrenzt eskalieren - was ein großes Problem für die Fehlertoleranz von Knoten ist.
Um SegWit Blöcke zu beschränken, kamen die Ersteller von SegWit stattdessen eine andere Einschränkung als die Größe auf. Die SegWit Blöcke sind durch etwas, das Blockgewicht genannt wird, eingeschränkt. Blockgewicht ist ein neues Konzept, das in SegWit eingeführt wurde und pro Transaktion berechnet wird. Im Wesentlichen hat jede Transaktion ein „Gewicht“.
Transaktionen, die keine Zeugendaten haben, sind leichter als solche mit Zeugendaten. Beachten Sie, dass SegWit-Transaktionen ohne Zeugendaten an Legacy-Knoten übertragen werden. Dies führt daher immer zu Blöcken, die an Legacy-Knoten kommuniziert werden, die kleiner oder gleich 1.000.000 Bytes sind.
Ein Schlüsselkonzept zu verstehen ist, dass SegWit-Transaktionen viele unterschiedliche Gewichte haben können, je nachdem, wie viel der Transaktion von Zeugendaten aufgenommen wird, was Transaktionsherstellern viel mehr Spielraum gibt, um mit Transaktionsverformbarkeit zu spielen.
Disclaimer: The views and opinions expressed by the author should not be considered as financial advice. We do not give advice on financial products.