De Bitcoin Segregated Witness Upgrade (SegWit)

Wat is Segregated Witness (SegWit)?
Segregated Witness (of SegWit) is de naam voor de soft fork die Bitcoin heeft ontvangen op 24 Augustus 2017. Segregated Witness (SegWit) is een manier waarop transacties door witness nodes worden getekend. Het doel van deze protocolupgrade was om transacties beter te beschermen tegen manipulatie en snellere transacties te genereren door de blockcapacity te verhogen. Het was ook bedoeld om het validatieproces te versnellen door meer transacties in een block op te slaan.
Korte samenvatting
-
Segregated Witness (SegWit) is een upgrade van het Bitcoin netwerk waardoor de transactietijden verlaagd zijn en de blockcapacity van Bitcoin verhoogd is.
-
Het doel van Segregated Witness is om onbevoegde transacties aan het Bitcoin-netwerk te voorkomen en ervoor te zorgen dat er meer transacties in een block kunnen worden opgeslagen.
-
SegWit was ook bedoeld om een probleem met de grootte van de blockchain op te lossen, waardoor de transactiesnelheid van Bitcoin werd vertraagd.
-
Niet iedereen was het in het verleden eens met de Segregated Witness upgrade. Het duurde dan ook een lange tijd voordat de meeste mensen deze update geaccepteerd hadden.
Waarom was Segwit nodig?
Blockchain-netwerken zoals Bitcoin bestaan uit duizenden computers die fungeren als validators voor de blocks die door miners worden gecreëerd. Deze computers worden nodes genoemd en houden elk een volledig overzicht bij van alle transacties. Dit overzicht wordt een blockchain genoemd.
Na het winnen van populariteit kreeg het Bitcoin-netwerk te maken met verschillende problemen. Een daarvan was dat er meer transacties plaatsvonden, wat leidde tot langere wachttijden voor gebruikers en hogere kosten, omdat gebruikers meer moesten betalen om hun transacties voorrang te geven.
Bitcoin-blokken worden gemiddeld gezien elke 10 minuten aangemaakt en waren vroeger beperkt tot een maximale grootte van 1 megabyte (MB). Dit is natuurlijk niet veel, en door deze beperking kon er maar een beperkt aantal transacties aan een blok worden toegevoegd. Het gevolg hiervan? Lang durende transacties en oplopende kosten.
Zonder de implementatie van SegWit zou de validatie van Bitcoin-transacties heel sloom worden. Al helemaal als de populariteit van Bitcoin zo zou blijven groeien.
Het SegWit-protocol verdeelt de transactie in twee delen. De ontgrendelingshandtekening (de ‘witness’-gegevens) wordt uit het oorspronkelijke deel verwijderd, maar blijft als aparte structuur aan het einde deel uitmaken van de blockchain. Het oorspronkelijke deel bevat de gegevens van de afzender en ontvanger, terwijl de aparte structuur aan het einde (de ‘witness’-structuur) scripts en handtekeningen bevat.
Door deze scheiding van gegevens ontstaat er meer ruimte en kunnen er meer transacties aan de blockchain worden toegevoegd. Dit betekent uiteindelijk dus lagere transactiekosten.
Doelstellingen van SegWit
Om de doelstellingen achter de implementatie van SegWit te begrijpen, is het essentieel om te begrijpen wat er achter de schermen gebeurt dat het nuttig maakt.
Het belangrijkste probleem dat SegWit aanpakt
Stel, je wilt wat Bitcoin naar je vriend sturen. Daarvoor heb je twee dingen nodig: een public address en een private key. Het public address is eigenlijk het adres waar je die Bitcoin naartoe stuurt (zie dit als je bankrekeningnummer). Iedereen kan jouw public address zien, en de inhoud hiervan bekijken, want het ligt open op het netwerk. De private key kun je zien als je wachtwoord dat bewijst dat jij de eigenaar bent van dat adres.
Als je een transactie wilt doen, stuur je een verzoek naar het netwerk met je public address en het bedrag. De miners controleren vervolgens deze transactie en versleutelen alle info (hashing) en maken er een soort digitale vingerafdruk van (de transactie-ID).
Die transactie komt in een wachtrij, en zodra er genoeg transacties zijn, worden ze gebundeld in een block. Dat block wordt naar de nodes gestuurd, en als de meerderheid het eens is dat alles klopt, wordt het toegevoegd aan de blockchain. Zo gaat je Bitcoin veilig van jou naar je vriend of collega.
Klinkt misschien ingewikkeld, maar het is alsof je een brief verstuurt die door tientallen postkantoren gecontroleerd wordt, zodat ze zeker weten dat de brief niet verloren raakt of veranderd wordt.
Alleen was er een probleem: elke transactie had een digitale handtekening nodig, en die nam veel ruimte in het block in. Daardoor zaten blocks sneller vol, waardoor het netwerk traag werd en de kosten stegen. SegWit kwam hier met een slimme oplossing: het scheidde die handtekening van de rest van de transactie, zodat er meer transacties in een block passen en alles sneller en goedkoper gaat.
Hoe SegWit het probleem oploste
Toen Bitcoin steeds populairder werd, liep het netwerk een beetje vast. Er konden niet genoeg transacties tegelijk worden verwerkt, waardoor het allemaal trager en duurder werd. Dat kwam vooral doordat elke transactie best veel ruimte innam in een block.
Een Bitcoin developer, Pieter Wuille, kwam toen met een oplossing: 'Laten we de handtekeningen (die nodig zijn om een transactie te bewijzen) loshalen van de rest van de transactie.' Dat noemden ze Segregated Witness (oftewel SegWit). Het idee: haal de handtekening (de witness) los van alle andere gegevens en creëer zo meer ruimte in elk block.
Bitcoin kreeg daarbij ook een nieuw soort limiet: niet meer alleen een maximale grootte in megabytes, maar een limiet in gewicht (4 miljoen WU, oftewel weight units). Dat klinkt misschien vaag, dus hier komt een voorbeeld.
Voorbeeld:
Stel je voor dat je een verhuisdoos vult. Vroeger mocht die doos maar 1 meter hoog zijn. Met SegWit maakt de hoogte niet zoveel meer uit, maar het gewicht van wat je erin stopt telt zwaarder. Zware spullen (zoals de witness-gegevens) tellen nu minder mee, waardoor je er meer in kwijt kunt.
Blokken zijn na SegWit dus niet letterlijk 4 MB groot, maar ze kunnen wel veel meer transacties bevatten. Zo was er op 25 januari 2022 een block dat 1,56 MB groot was, maar het gewicht zat helemaal tegen de limiet aan (3,993 miljoen WU). Andere blocks op die dag waren kleiner qua MB’s, maar hadden precies hetzelfde gewicht. Dat laat zien: het draait niet meer alleen om de afmeting, maar om hoe 'zwaar' de data is.
Wat is Native SegWit?
Native SegWit is gewoon een upgrade van SegWit die alles nog een beetje sneller, goedkoper en beter maakt. In plaats van de oude Bitcoin-adressen die beginnen met een '1' (legacy) of een '3' (compatibel SegWit), gebruikt Native SegWit adressen die beginnen met 'bc1'.
Denk aan het verschil tussen een oud e-mailadres en een modern cloud-gebaseerd adres: het werkt allebei, maar de nieuwe versie is lichter, sneller, en minder foutgevoelig.
Waarom zou je Native SegWit gebruiken?
-
Lagere transactiekosten
Omdat de data efficiënter wordt opgeslagen, betaal je minder fee. -
Sneller verwerkt
Miners kunnen meer transacties in een block stoppen. Er is minder kans op fouten (Door het Bech32-formaat). -
Toekomstbestendig
Native SegWit is de standaard geworden voor nieuwe Bitcoin wallets en ondersteunt toekomstige upgrades zoals Taproot beter.
Voorbeeld:
Stel je Je stuurt 0,01 BTC van een ouderwets adres (begint met een 1), dan betaal je ongeveer €2 aan fee. Kies je ervoor dezelfde transactie vanaf een Native SegWit adres (bc1) te doen dan betaal je bijvoorbeeld maar €0,50.
Wat zijn de voordelen van Segwit?
De cryptocurrency-community discussieert nog steeds of SegWit goed of slecht is, maar de verbeterde beveiliging en kortere transactietijden zijn gunstig voor de blockchain en de miners en nodes die het accepteren. SegWit leidde tot de implementatie van Taproot, een upgrade van Bitcoin die is gebaseerd op SegWit en die een nog snellere validatie mogelijk maakt.
Voordelen van SegWit
-
Meer transacties in een block
Doordat de witness-data apart wordt opgeslagen, is er ineens meer ruimte in een block. Resultaat? Er passen meer transacties in en je hoeft minder lang te wachten. Win-win dus. -
Minder kans op fouten en bugs
Voor SegWit kon iemand met een kleine aanpassing de transactie-ID veranderen. Dat zorgde soms voor gedoe bij dApps of exchanges. Met SegWit is dat probleem (bijna) helemaal weg. -
Snelle en goedkope betalingen via Lightning
SegWit maakte het mogelijk om betalingen buiten de blockchain om te doen met bijvoorbeeld het Lightning Network. Deze transacties zijn veel sneller dan het gebruikelijke Bitcoin-netwerk. -
Betere Bitcoin adressen (Bech32)
SegWit introduceerde nieuwe adressen die beginnen met “bc1”. Ze zijn lichter, dus je betaalt minder aan fees. En omdat ze simpeler zijn, maak je ook minder snel een foutje als je ze kopieert. -
Bitcoin Taproot Upgrade
SegWit was een aanloop naar een van de meest recente grote veranderingen bij Bitcoin, namelijk Taproot. Die zorgt weer voor betere privacy en meer mogelijkheden voor slimme contracten.
Nadelen van SegWit
-
Langzame adoptie
Niet alle wallets en exchanges gebruikte SegWit automatisch. Het duurde jaren voordat een meerderheid het gebruikte, en sommige gebruikers vinden het oude systeem nog steeds beter. -
Technisch ingewikkelder
Ontwikkelaars moeten bij het bouwen van toepassingen rekening houden met zowel SegWit- als niet-SegWit-transacties. Dat maakt het voor developers soms vervelend. -
Meningsverschillen in community
Niet iedereen was fan van SegWit. Sommige groepen vonden het een halve oplossing en wilden liever direct grotere blocks via een hard fork. Dit zorgde uiteindelijk voor een hard fork. Deze hard fork kennen we vandaag de dag als Bitcoin Cash. -
Niet meteen effect
De voordelen van SegWit kwamen pas goed naar voren nadat het grootste gedeelte van de mensen over waren. Het probleem van volle blocks bleef dus nog een tijd bestaan.
Conclusie
SegWit was een grote stap vooruit voor Bitcoin (volgens de meeste mensen). Het maakte de blockchain efficiënter, goedkoper en klaar voor de toekomst. Dankzij de Segwit update kunnen we nu gebruik maken van het Lighting Network, en is het netwerk beter voorbereid op innovaties. Echter is de Bitcoin community zoals wel vaker in het verleden het niet altijd eens. De Segwit update was dan ook een veel besproken onderwerp waarbij niet iedereen het eens was.