Wat is Segregated Witness (SegWit)?

Door Kraken Learn team
11 min
26 nov 2024

De beginnersgids voor Bitcoin SegWit 💭

Segregated Witness (SegWit) was een upgrade die op 1 augustus 2017 aan de Bitcoin-broncode is toegevoegd.

Ondanks dat het veel verbeteringen aan de Bitcoin-blockchain leek te brengen, werd SegWit geconfronteerd met sterke tegenstand die de gemeenschap verdeelde. 

In het hart van het probleem lag een concurrerend belang tussen de winstgevendheid van miners en netwerkontwikkelaars die Bitcoin goedkoper en sneller wilden maken.

De spanning veroorzaakte een breuk binnen de gemeenschap, die culmineerde in de eerste door gebruikers geactiveerde soft fork van het netwerk en een vijandige splitsing. De splitsing bracht een reeks nieuwe Bitcoin-geforkte projecten voort, waaronder Bitcoin Cash.

Tot op heden blijft SegWit een van de meest controversiële gebeurtenissen in de geschiedenis van Bitcoin. Maar het heeft ook bewezen een van de belangrijkste updates te zijn voor de lange termijn levensvatbaarheid van het protocol. 

Elk jaar vieren velen in de Bitcoin-gemeenschap 1 augustus als "Bitcoin onafhankelijkheidsdag." Dit evenement markeert de gelegenheid waarop de wil van het volk triomfeerde boven de gecentraliseerde belangen van gevestigde bitcoin-miningbedrijven.

Laten we elk van deze gebeurtenissen verkennen zoals ze zich hebben voorgedaan en de geschiedenis achter SegWit ontrafelen.

BTC icon
$70.752.00
+0,41%
24U
btc

Bitcoin voor SegWit ⏮️

Voor de activatie van SegWit was de blokcapaciteit van Bitcoin jarenlang onveranderd gebleven. Blokcapaciteit verwijst naar het maximale aantal transacties dat binnen een bepaald blok kan worden vastgelegd.

Toen Bitcoin in 2009 werd gelanceerd, had de maker(s) Satoshi Nakamoto geen parameters ingesteld voor hoe groot bitcoin-blokken konden zijn.

Echter, in 2010 voegde Nakamoto in het geheim een limiet van 1 megabyte (MB) blokgrootte toe zonder goedkeuring van andere Bitcoin-bijdragers.

Velen geloofden dat Nakamoto de limiet had ingesteld om toekomstige gedistribueerde denial of service (DDoS) aanvallen te voorkomen die het netwerk zouden kunnen beïnvloeden.

Deze vaste limiet op de blokcapaciteit had het ongewenste effect dat de potentie van Bitcoin om op verschillende manieren op te schalen werd beperkt.

Laag doorvoercapaciteit en trage transactietijden

Slechts een beperkt aantal transacties kan passen in het relatief kleine 1MB-blok dat Bitcoin nu heeft aangenomen. Deze kleine capaciteit betekende dat het Bitcoin-netwerk slechts ongeveer 2–3 bitcoin (BTC) transacties per seconde kon verwerken — een wereld van verschil met traditionele digitale betalingsnetwerken die tienduizenden transacties per seconde kunnen verwerken.

Bovendien moet een blok van transacties, om als geldig te worden beschouwd als onderdeel van het bitcoin mining proces, zes bevestigingen ontvangen. Met andere woorden, er moeten zes nieuwe blokken aan de blockchain worden toegevoegd na het betreffende blok voordat het wordt gefinaliseerd. Met een gemiddelde bloktijd van tien minuten betekent dit dat bitcoin blokbevestigingen ongeveer een uur duren.

In die tijd, toen slechts een handvol “Cypherpunk” cryptografen op de hoogte was van bitcoin, was het niet noodzakelijk een groot probleem. Maar als het Bitcoin-netwerk een wereldwijd “peer-to-peer elektronisch betalingssysteem” moest worden, zoals Satoshi voorstelde in de Bitcoin white paper, moesten er dingen veranderen.

Hoge tarieven

De lage doorvoercapaciteit van Bitcoin, beperkt door de kleine blokcapaciteit, betekende dat de kosten ook relatief veel hoger waren dan nu.

Hier is een gemakkelijke manier om dit probleem te begrijpen. Stel je voor dat je buiten staat in een menigte mensen na het bekijken van een theaterstuk. Iedereen uit het theater wil tegelijkertijd met een taxi naar huis. Als er genoeg taxi's in de buurt zijn, zou het voor iedereen gemakkelijk moeten zijn om naar huis te gaan. Maar als er maar een handvol taxi's is, kunnen mensen proberen een hogere prijs aan de taxichauffeurs te betalen om de chauffeur te stimuleren hen als eerste naar huis te brengen. Afhankelijk van de vraag kunnen de prijzen voor taxi's aanzienlijk hoger stijgen dan het normale tarief.

Bitcoin-kosten werken volgens dezelfde principes van vraag en aanbod. Als veel mensen willen dat hun transacties tegelijkertijd worden verwerkt, kunnen sommigen ervoor kiezen om meer te betalen in kosten om hun transactie sneller door miners te laten verwerken. Tijdens periodes van hoge gebruik op het Bitcoin-netwerk kan congestie leiden tot concurrentie tussen gebruikers, wat kan leiden tot scherpe stijgingen van de transactiekosten.

Transactie-malleabiliteit

Een andere inherente nuance van de manier waarop Bitcoin-blokken werkten, stond bekend als transactiemalleabiliteit. Voor SegWit konden mensen de ID van een transactie wijzigen voordat deze voldoende bevestigingen op de blockchain ontving.

Het nemen van de informatie met betrekking tot een specifieke transactie en deze door een hashfunctie te halen, creëert een transactie-ID. Je kunt meer leren over hashfuncties in ons artikel Hoe gebruiken cryptocurrencies cryptografie?

Maar voor de eenvoud kun je deze transactie-ID's beschouwen als digitale vingerafdrukken die worden gebruikt om transacties op de blockchain te identificeren en te refereren.

Het wijzigen van de transactie-ID creëert een geheel nieuwe hash die soms de blockchain-clientsoftware kan verwarren. Alle knooppunten draaien clientsoftware om met de blockchain te communiceren en belangrijke rollen te vervullen, zoals gegevensverificatie.

Deze malleabiliteitsfout in de code van Bitcoin opende de deur voor kwaadaardige aanvallen. Een van de meest beruchte voorbeelden van een transactie-malleabiliteitsaanval was de hack van de Mt. Gox-beurs in 2014 - beroemd om de grootste bitcoin-hack in de geschiedenis te zijn.

Experts meldden dat een hacker, of een groep hackers, de bitcoin-portemonnee van de Mt. Gox-beurs heeft leeggehaald. Ze deden dit deels door de transactie-ID van hun opnames te wijzigen. 

De transactie-malleabiliteitsaanval deed het lijken alsof opnames niet werden bevestigd op de blockchain, terwijl ze in werkelijkheid dat wel deden.

Deze kwetsbaarheid, in combinatie met andere aanvalsvectoren, stelde de hacker(s) in staat om meer dan 840.000 BTC van de beurs te siphoneren.

Welke verbeteringen heeft SegWit aangebracht? ⚙️

Bitcoin-bijdrager Pieter Wuille presenteerde de SegWit-upgrade voor het eerst op een Bitcoin Hong Kong-evenement in 2015.

Zijn oplossing was innovatief op drie fronten. SegWit verbeterde de schaalbaarheid van Bitcoin, verwijderde malleabiliteit en stelde knooppunten in staat om de nieuwe transactie-structuur over te nemen. Het beste van alles is dat dit kon worden geïmplementeerd zonder de netwerk hard-forking.

Gescheiden digitale handtekening- en transactie-informatie

Wuille's voorstel verhoogde de Bitcoin-blokcapaciteit door de "witness"-gegevens van een blok te "segregateren" en deze naar de coinbase-transactie te verplaatsen. Coinbase-transacties zijn de allereerste transacties binnen elk nieuw Bitcoin-blok. De coinbase-transactie is verantwoordelijk voor het uitgeven van nieuw geminte cryptocurrency in omloop als beloning voor het bitcoin minen proces.

Miners die erin slagen de cryptografisch gebaseerde proof-of-work competitie van Bitcoin te winnen, verdienen deze nieuw geminte tokens als "blokbeloningen."

Witness-gegevens, ook bekend als ScriptSig of Ontgrendelingsscript, bevatten digitale handtekening en openbare sleutel informatie die nodig is om de overgedragen bitcoin te ontgrendelen. De SegWit-upgrade introduceerde een apart "getuigenveld" voor het ScriptSig-gedeelte van een transactie.

Door digitale handtekeninginformatie apart van het transactie-invoerveld te verwerken, was er meer ruimte voor transacties om in elk blok te passen.

Meer transacties per blok betekent hogere transactiedoorvoercapaciteiten. Dus in plaats van 2-3 transacties per seconde, kan Bitcoin tussen de 7-10 SegWit-transacties per seconde verwerken. Verhoogde capaciteit betekent ook lagere kosten, aangezien de Bitcoin-blockchain een hoger volume aan transacties kan verwerken.

Ondanks de scheiding is het belangrijk op te merken dat knooppunten zowel de transactiegegevens als de getuigengegevens on-chain verwerken. Er worden geen sidechains of Layer 2-protocollen gebruikt.

Blokgewicht

Voor SegWit maten miners bitcoin-blokken op grootte (in bytes). Dit systeem werkte goed toen blokken zowel getuigen- als transactiegegevens bevatten, maar liep tegen problemen aan toen ze gescheiden waren.

Om dit te overwinnen, introduceerde de upgrade een maatstaf genaamd blokgewicht om de grootte van blokken te beheren.

Met dit concept bestaat elk 1-megabyte blok uit 4.000.000 gewichtseenheden (WU). Elke transactie krijgt een gewicht op basis van de volgende formule:

Basis transgrootte in bytes (zonder getuigengegevens) * 3 + Totale transgrootte in bytes.

Door getuigenveldgegevens uit de berekening te verwijderen, hebben SegWit-transacties een veel lager gewicht. Aan de andere kant bevat een niet-SegWit-transactie nog steeds getuigengegevens. Dit betekent dat niet-SegWit-transacties altijd 4 keer zwaarder wegen dan SegWit-transacties.

Dit concept verhoogt theoretisch de grootte van een bitcoin-blok van 1MB naar 4MB, als een blok bijna volledig uit getuigengegevens bestaat. Echter, dit is in de praktijk niet mogelijk.

Het belangrijkste voordeel van het gewogen systeem is dat het miners stimuleert om blokken te verwerken die voornamelijk uit SegWit-transacties bestaan. Aangenomen dat SegWit-transacties dezelfde kosten met zich meebrengen als legacy-blokken, kan een miner veel meer SegWit-transacties per blok verwerken. Hoe meer transacties ze per blok verwerken, hoe meer kosten ze verdienen.

Een win-win voor beide partijen. Of dat zou je denken.

Geen problemen meer met transactie-malleability

Onder de SegWit-structuur bevat de gehashte transactie-ID alleen de transactie-informatie, niet de informatie van het getuigenveld.

Deze wijziging verwijdert de wijzigbare component van een bitcointransactie die eerder malleability-aanvallen mogelijk maakte.

Als gevolg hiervan werden secundaire schaaloplossingen zoals het Bitcoin Lightning Network mogelijk.

 

Waarom was SegWit controversieel? 🤔

Velen in de ontwikkelingsgemeenschap vonden dat SegWit niet ver genoeg ging om de schaalproblemen van Bitcoin aan te pakken.

De belangrijkste argumenten tegen de activatie van SegWit zijn onder andere:

  • De verhoogde doorvoer van Bitcoin van 7-10 transacties per seconde is nog steeds lang niet hoog genoeg voor een gedecentraliseerd, wereldwijd betalingssysteem.
  • De kosten zouden relatief hoog blijven, waardoor dingen zoals microtransacties financieel onhaalbaar zouden zijn.
  • Miners kunnen nog steeds legacy-transactieblokken verwerken, wat betekent dat malleability nog steeds een bedreiging is.
  • Later werd ontdekt dat SegWit de ASICBOOST-mechanisme van Bitmain zou tenietdoen; een exploit die werd gebruikt om de efficiëntie van mining rigs aanzienlijk te verhogen.

Ongeveer een jaar na Wuille's voorstel hadden hij en andere Bitcoin Core-ontwikkelaars, waaronder Eric Lombrozo, de code voorbereid om live te gaan in de aankomende Bitcoin Core 0.13.1-update. De enige resterende stap om SegWit te activeren was dat miners nieuwe SegWit-blokken moesten gaan verwerken. 

Om de implementatie te bevestigen, zou meer dan 95% van alle bitcoin-miners steun moeten tonen voor SegWit binnen de eerste twee weken na de start — een grote hindernis gezien de omstandigheden op dat moment.

Door gebruikers geactiveerde soft fork

Overbodig te zeggen dat grote mijnbedrijven zoals Bitmain nog steeds ontevreden waren over de voorgestelde wijzigingen en weigerden SegWit’s activatie te steunen.

In het begin van 2017 bracht een pseudonieme ontwikkelaar genaamd "Shaolinfry" de mogelijkheid ter sprake dat Bitcoin-nodes een soft fork zouden afdwingen in een online bitcoin-dev post

Een door gebruikers geactiveerde soft fork was nog nooit eerder geprobeerd op het Bitcoin-netwerk, maar het zou ontwikkelaars in staat stellen om SegWit door te drukken met ongeveer 51% steun van miners. Degenen die weigerden nieuwe blokken te ondersteunen, liepen het risico dat hun blokken door nodes werden afgewezen. De oplossing was niet zonder risico's. Als SegWit er niet in slaagde voldoende steun van miners te krijgen, zou de uitkomst onvermijdelijk leiden tot een ketensplitsing.

Degenen die tegen SegWit waren, stelden in plaats daarvan een andere SegWit 2X hard fork-upgrade voor. Een die SegWit en de blokgrootte van Bitcoin zou verhogen naar 2MB.

In tegenstelling tot de vorige upgrade, zou SegWit 2X niet achterwaarts compatibel zijn met eerdere versies van de Bitcoin-client. Deze wijzigingen betekenden dat nodes hun software moesten bijwerken om op het netwerk te blijven opereren.

SegWit & de New York-overeenkomst 🗽

De topbedrijven uit de industrie kwamen bijeen op Consensus 2017 en ondertekenden gezamenlijk een memorandum dat "de New York Overeenkomst" werd genoemd. Dit document legde plannen vast voor SegWit om in de zomer live te gaan en voor de blokgrootte van Bitcoin om in november te verhogen naar 2MB.

Voor november stelde Shaolinfry twee Bitcoin Improvement Proposals (BIPs) op; BIP148 en BIP149. De eerste vertegenwoordigde een harde en snelle oplossing; signaalsteun voor SegWit-blokken of nodes zullen je blokken afwijzen. De laatste bood een langere tijdshorizon voor miners om aan boord te komen, met een activatiedeadline voor juli het volgende jaar.

Naarmate de datum naderde, stelde Bitmain Warranty-engineer James Hillard een nieuwe BIP voor; BIP91. Zijn oplossing was erop gericht om zowel SegWit 2X als BIP148 met elkaar compatibel te maken. Waarom risico lopen op een ketensplitsing over twee concurrerende SegWit-updates als je ze beide compatibel kunt maken?

Op 1 augustus bevestigde voldoende mijnsteun de activatie van SegWit. De tweede fase van de New York Overeenkomst kreeg echter niet dezelfde steun.

De mislukking om de blockgrootte van Bitcoin naar 2MB te verhogen resulteerde in de vorming van Bitcoin Cash (BCH) - een nieuw geforkt project van de Bitcoin-blockchain.

$471.18
+1,73%
24U
bch

Het belang van Bitcoin onafhankelijkheidsdag

De introductie van SegWit en de beslissing van de gemeenschap om de verhoging van de blockgrootte te verwerpen, vertegenwoordigde een mijlpaalmoment voor de bredere Bitcoin-gemeenschap.

SegWit toonde het belang van consensus aan als het ging om veranderingen in de Bitcoin-blockchain, evenals de mate van decentralisatie van macht die bitcoin bood.

Geen enkele persoon was in staat om het netwerk over te nemen en hun voorstel door te voeren.

In plaats daarvan debatteerde de gemeenschap, iteratief en vervolgde het lange proces van het bereiken van consensus als een collectieve groep - niet onder leiding van een enkele persoon.

Begin met Bitcoin kopen

Nu je alles over SegWit hebt geleerd, ben je klaar om je crypto-reis voort te zetten en bitcoin te kopen?

Bekijk onze gids in het Kraken Leercentrum voor meer informatie over Hoe te kopen Bitcoin (BTC) en registreer je vandaag nog voor een account bij Kraken.