SEGWIT wat is dat ?

Crypto Pal
(updated: 25-06-2021 10:13)
25-06-2021 10:12



OIP (3) 

In 2015 is SegWit bedacht Pieter Wuille een protocol, genaamd Segregated Witness (SegWit) dat de schaalbaarheid van blockchain zou moeten ondersteunen. Er is namelijk altijd al een probleem geweest als het op de schaalbaarheid van blockchain aankomt. Denk maar eens aan het Bitcoin netwerk.

Iedere 10 minuten wordt er een nieuw blok door het Bitcoin netwerk gevalideerd. Zo'n blok bevat tal van transacties. Het aantal transacties dat in het blok zit, bepaald ook mede hoe snel een blok gevalideerd kan worden. Op dit moment kan de blockchain van Bitcoin zo'n 7 transacties per seconde verwerken.

SegWit zorgt er voor dat de structuur van de data in de blokken wordt veranderd, waardoor de blokken minder groot zijn. Dit doet SegWit door de signatures niet langer naast de transactiedata te zetten. De naam zegt dus eigenlijk ook wat een SegWit doet; het segregate (scheid) de signatures van de transactiedata.

Waar leid dat nou toe? Nou, doordat er minder data aan een transactie is gekoppeld, is er ruimte voor meer transacties. Zo kunnen er dus veel meer transacties in een blok verwerkt worden, waardoor het aantal transacties per seconde wordt verhoogt.

Wie gebruikt het?

Er zijn verschillende blockchains die gebruik maken van SegWit. Dit komt door de vele voordelen die SegWit heeft. Zo maken Bitcoin en Litecoin beide gebruik van SegWit. Bitcoin maakt pas sinds 2017 gebruik van SegWit. Ontwikkelaars van Bitcoin hebben een soft-fork gebruikt om SegWit toe te voegen aan het Bitcoin platform.

Een soft fork betekent dat er tijdelijk een kopie van de blockchain wordt gemaakt om een nieuwe feature te kunnen verwerken. Hierna wordt de kopie (incl. feature) gebruikt als de hoofd-blockchain, en komt de oude versie te vervallen.

Het kan ook voorkomen dat niet iedereen overstapt naar de nieuwe versie van de blockchain. In dat geval spreken we van een hard-fork.

SegWit heeft de capaciteit van het BitCoin netwerk verdubbeld(!). Door de digital signature te scheiden van de transactie, kunnen er meer transacties in een blok verwerkt worden. Een blok bestaat voor bijna 60% uit de digital signature. Hier valt dus ontzettend veel te halen.

Omdat er meer transacties in een blok verwerkt kunnen worden, wordt een transactie ook een stuk sneller verwerkt. Stel dat een blok waar nog geen SegWit wordt gebruikt vol is, worden alle transacties die hierna komen in een mempool geplaatst. Dit is een soort wachtrij. Het kan hierdoor voorkomen dat je een tijdje moet wachten voordat jouw transactie wordt verwerkt in een van de blokken.

Door SegWit kunnen er meer transacties in een blok verwerkt worden, waardoor de kans kleiner is dat jouw transactie in een mem-pool terecht komt.

Doordat de transactiesnelheid is verhoogt, zijn de kosten van een transactie nu een stuk lager. Voordat SegWit er was, kwam het soms voor dat je $30 voor een transactie moest betalen. Met SegWit is dat bedrag verlaagt naar ongeveer $1 per transactie.

Voordat SegWit bestond, kwam het wel eens voor dat er iets fout ging met een transactie, waardoor hij corrupt werd verklaard. Doordat SegWit de digital signature scheid van de transactie, doen deze problemen zich niet meer voor. 

Maar hoe werkt het dan ?

Een SegWit zorgt er dus voor dat de transacties in de blokken worden verkleind, waardoor er meer transacties in een block verwerkt kunnen worden. Maar hoe doet een SegWit dat?

Ongeveer 60% van de ruimte in een block wordt gebruikt door digital signatures. Meestal staan deze digital signatures in het midden van de transactiedata. Een SegWit verwijdert de digital signatures niet, maar verplaatst ze alleen naar het einde van de transactie. Hierdoor wordt de grootte van een blok een stuk kleiner, waardoor er meer transacties in een blok passen.

Voordat SegWit er was, kon er maximaal 1,000,000 bytes (1MB) aan data in een Bitcoin blok. Wanneer het limiet was bereikt, konden er geen transacties meer worden toegevoegd aan het blok. Deze transacties kwamen dan op een wachtrij (mempool), en konden vervolgens pas in het volgende blok verwerkt worden.

SegWit meet de grootte van een blok op een hele andere manier. Het kijkt namelijk naar het gewicht van een blok. Hierdoor is het gewicht van een blok dat niet van SegWit gebruik maakt 4 keer zwaarder. SegWit voert hier namelijk een wiskundig trucje uit, waardor nodes die een SegWit blok valideren, ook blokken van 4MB kunnen verwerken. Een node die blokken met het originele protocol valideert, kan echter maar blokken van 1MB valideren. 

Toch wordt er nooit een blok van 4MB gevalideerd. Dat is namelijk erg groot. In de meeste gevallen is een SegWit blok niet groter dan 2MB.

Je weet nu dus wat een Segregated Witness (SegWit) is. Een SegWit zorgt er voor dat er meer ruimte over is in een blok, waardoor er uiteindelijk meer transacties verwerkt kunnen worden. SegWit doet dit door de digital signature aan het einde van de transactie te plaatsen. Verschillende blockchains maken gebruik van SegWit. De bekendste blockchains zijn Bitcoin en Litecoin.