Wat is Segregated Witness (SegWit)?
Basics
Segregated Witness (SegWit) is een protocolupgrade die in 2015 werd geïntroduceerd als oplossing voor het schaalbaarheidsprobleem van blockchains. Momenteel kan de Bitcoin-blockchain slechts ongeveer 7 transacties per seconde verwerken, wat relatief lang kan duren vergeleken met conventionele betaalsystemen en financiële netwerken die duizenden transacties per seconde aankunnen. Het idee achter SegWit is om blokdata te herschikken zodat handtekeningen niet langer samen met transactiegegevens worden geplaatst. De upgrade houdt in dat de witnesses (handtekeningen) worden gescheiden van de transactiegegevens, waardoor meer transacties in één blok kunnen worden opgeslagen en de transactiedoorvoer van het netwerk toeneemt.
SegWit werd in 2015 ontwikkeld door Pieter Wuille, een Bitcoin-ontwikkelaar, en andere bijdragers aan Bitcoin Core. In augustus 2017 werd de SegWit-upgrade als een soft fork op het Bitcoin-netwerk geïmplementeerd. Tegenwoordig gebruiken meerdere cryptocurrency-projecten SegWit, waaronder Bitcoin en Litecoin. De protocolupgrade bracht veel voordelen met zich mee, zoals verbeterde transactiesnelheid en blokcapaciteit, en het loste tevens de transactiemanipuleerbaarheidsbug op. Gemiddeld valideert het Bitcoin-netwerk elke 10 minuten een nieuw blok, waarbij elk blok meerdere transacties bevat. De blokgrootte beïnvloedt het aantal transacties dat in elk blok kan worden bevestigd.
Benefits of SegWit
SegWit biedt verschillende voordelen voor het Bitcoin-netwerk. Een van de belangrijkste voordelen is de toename van de blokcapaciteit. Met SegWit kunnen meer transacties in een blok worden opgeslagen omdat de signature-gegevens uit de inputs worden verwijderd. Voorheen konden de signature-gegevens tot 65% van een blok innemen, maar nu zijn ze gescheiden van het inputveld, waardoor de effectieve blokgrootte kan toenemen van 1 MB naar ongeveer 4 MB.
SegWit is niet een echte toename van de fysieke blokgrootte, maar eerder een technische oplossing om de effectieve blokgrootte te vergroten. De blokgrootte blijft 1 MB, maar de limiet van de effectieve blokgrootte is 4 MB, wat wordt berekend met het concept van block weight.
Doordat er meer transacties in elk blok worden verwerkt, verhoogt SegWit ook de transactiesnelheid en verlaagt het de transactiekosten. Voor SegWit konden transactiekosten oplopen tot meer dan $30 per transactie, maar SegWit heeft de kosten aanzienlijk verlaagd tot minder dan $1 per transactie.
SegWit heeft ook het probleem van transactiemanipuleerbaarheid opgelost, wat een belangrijk probleem was bij Bitcoin-transacties. Het wijzigen van de handtekening van een transactie kon een transactie tussen twee partijen corrupteren, en de data die op blockchains worden opgeslagen zijn onveranderlijk, waardoor ongeldige transacties permanent in de blockchain werden vastgelegd. SegWit loste dit probleem op door de handtekeningen te scheiden van de transactiegegevens, wat verdere innovatie binnen de blockchain-gemeenschap mogelijk maakte, zoals second-layer-protocollen en smart contracts.
SegWit and the Lightning Network
De oplossing voor de transactiemanipuleerbaarheidsbug effende het pad voor de ontwikkeling van second-layer-protocollen, dat zijn nieuwe lagen bovenop blockchains zoals Bitcoin. Een populair protocol is het Lightning Network, een off-chain micropayment-netwerk dat tot doel heeft meer transacties binnen een kortere tijd te bevestigen, wat resulteert in snellere transacties voor gebruikers. Transacties worden tijdelijk off-chain gebufferd en later door het Bitcoin-netwerk verwerkt.
Oorspronkelijk ontwikkeld voor Bitcoin, wordt het Lightning Network door andere blockchain-projecten overwogen om de bevestigingstijd van transacties te verkorten en nieuwe oplossingen voor schaalbaarheidsproblemen te ontwikkelen.
SegWit vs. SegWit2x
De voorgestelde SegWit2x (S2X)-implementatie van het Bitcoin-netwerk zou een hard fork upgrade hebben vereist, terwijl SegWit een achterwaarts compatibele soft fork is. Het belangrijkste verschil tussen SegWit en SegWit2x is dat laatstgenoemde niet alleen een wijziging in het bundelen van transacties zou bevatten, maar ook een toename van de blokgrootte (van 1 MB naar 2 MB). Een grotere blokgrootte zou echter de last voor node-operators en miners vergroten, omdat er meer data verwerkt zouden moeten worden.
Hoewel het SegWit-voorstel door de Bitcoin-gemeenschap werd gesteund en afgedwongen, werd de SegWit2x-beweging uiteindelijk opgeschort vanwege het ontbreken van consensus onder ontwikkelaars over adoptie en implementatie. De SegWit-upgrade gaf ook aanleiding tot het concept UASF, of user-activated soft fork.
Nested SegWit vs. Native SegWit (bech32)
Native SegWit, ook wel bech32 genoemd, is een verbeterde versie van Nested SegWit. Het biedt verschillende voordelen, waaronder snellere transacties, betere foutdetectie en lagere transactiekosten. Bech32-adressen zijn ook beter leesbaar omdat ze uit kleine letters bestaan.
Het is belangrijk op te merken dat blockchain-transacties compatibel zijn tussen non-SegWit (Legacy), Nested SegWit en Native SegWit-adressen. Niet alle exchanges en cryptocurrency-wallets ondersteunen echter SegWit, dus het kan voorkomen dat je fondsen niet direct naar een SegWit-adres kunt opnemen.
Conclusion
De steun en implementatie van SegWit door de gedecentraliseerde gemeenschap markeerde de belangrijkste protocolupgrade van Bitcoin. SegWit loste meerdere schaalbaarheidsproblemen op die met Bitcoin en andere blockchain-netwerken samenhangen, en maakte daarmee een cruciale stap vooruit mogelijk. Dankzij SegWit en second-layer-protocollen kunnen blockchain-netwerken meer transacties verwerken, efficiënter en tegen lagere kosten.
Ondanks dat het een krachtige en innovatieve oplossing is, is de volledige adoptie van SegWit nog niet bereikt. Momenteel gebruikt slechts 53% van de Bitcoin-adressen SegWit.