Segregated Witness, spezifiziert in BIP141, aktivierte sich bei Block 481.824 am 24. August 2017. Es war damals das größte Upgrade in Bitcoins Geschichte und ein Soft Fork.
Problem 1: Malleability
Vor SegWit konnte ein Dritter die Kodierung einer Signatur leicht ändern, ohne sie ungültig zu machen. Die Transaktion blieb gültig, aber ihre txid änderte sich. Jede unbestätigte Transaktion, die sie ausgab und sich auf die alte txid bezog, brach. Das blockierte sichere Off-Chain-Protokolle.
SegWit verschiebt Signaturen und Scripts in eine separate Witness-Struktur, die nicht Teil der txid ist. Eine zweite ID, die wtxid, schließt sie ein.
Problem 2: Blockraum
SegWit ersetzte das 1-MB-Größenlimit durch ein Limit von 4.000.000 Gewichtseinheiten. Non-Witness-Bytes kosten 4 WU, Witness-Bytes 1. Alte Nodes sehen nur den gestrippten Block, der unter 1 MB bleibt, und akzeptieren ihn weiter. Upgegradete Nodes sehen den vollen Block, der größer sein kann.
Wie alte Nodes kompatibel bleiben
Ein SegWit-Output sieht aus wie OP_0 <20 or 32 bytes>. Alte Nodes sehen ein Script, das jeder mit leerem scriptSig ausgeben kann, und akzeptieren daher jede Ausgabe. Neue Nodes erzwingen die Witness-Programm-Regeln. Blöcke committen die Witness-Daten über einen OP_RETURN-Output in der Coinbase, der einen Hash der Witness-Merkle-Wurzel enthält.
Weitere Fixes
- BIP143 änderte, wie Signaturen gehasht werden. Die Signierzeit wächst linear statt quadratisch, und Signer committen den Input-Betrag – das hilft Hardware-Wallets.
- Script-Versionierung: der führende Opcode (OP_0 bis OP_16) ist eine Versionsnummer, was Taproot (Version 1) zu einem sauberen Upgrade machte.
Warum es zählte
Ohne Malleability-Fix wäre das Lightning Network unpraktisch gewesen. SegWit wurde nach einem langen Streit um die Blockgröße aktiviert, der BIP148 (einen nutzeraktivierten Soft Fork) und die Bitcoin Cash-Abspaltung am 1. August 2017 umfasste.