SegWit

Uit BitcoinWiki.nl
Versie door Marnix (overleg | bijdragen) op 25 feb 2021 om 13:13

Segregated Witness (afgekort SegWit) is een actieve protocolupgrade bedoeld om bescherming te bieden tegen manipuleerbaarheid van transacties en de blokcapaciteit te vergroten. SegWit scheidt de witness van de lijst van inputs. Hierdoor zijn SegWit transacties (virtueel) kleiner en daardoor goedkoper.

De Witnessdata bevat gegevens die nodig zijn om de geldigheid van de transactie te controleren. Het is de handtekening van de transactie. Bovendien wordt een nieuwe gewichtsparameter gedefinieerd, en mogen blokken maximaal 4 miljoen gewichtseenheden (WU) hebben. Niet-getuige en pre-segwit getuige bytes wegen 4 WU, maar elke byte Segwit-getuige data weegt slechts 1 WU, waardoor blokken die groter zijn dan 1 MB zonder een hardforking wijziging.

Na de succesvolle activeringen van OP_CLTV en OP_CSV, was SegWit de laatste protocolwijziging die nodig was om het Lightning Network veilig te maken om in te zetten op het Bitcoin-netwerk.

Omdat het nieuwe witness-veld Script versioning bevat, is het ook mogelijk om wijzigingen aan te brengen of nieuwe opcodes te introduceren in SegWit-scripts die oorspronkelijk extra complexiteit zouden hebben vereist om zonder SegWit te functioneren.

Geschiedenis en activering

In 2016 en 2017 werd de activering van segregated witness om politieke redenen geblokkeerd door miners door misbruik te maken van een fout in het BIP 9 activeringsmechanisme. Op technisch niveau worden de consensusregels van bitcoin gecontroleerd door de economische meerderheid, niet door de miners, dus de impasse was mogelijk op te lossen door een door gebruikers geactiveerde soft fork BIP 148 te creëren waarbij de economische meerderheid de blokkerende miners zou omzeilen en segregated witness op eigen houtje zou activeren. Dit vereiste enige coördinatie onder de economische meerderheid, maar was uiteindelijk succesvol en activeerde Segwit op Bitcoin kort na 1 augustus 2017.