begin
begin

Bitcoin is een gedistribueerd betalingssysteem. Van nature beheert geen enkele persoon of entiteit het. Het protocol wordt echter soms aangepast om nieuwe functionaliteiten te introduceren. Deze wijzigingen worden over het algemeen aangebracht via een mechanisme dat bekend staat als een „zachte vork”.
Om deze soft forks optimaal te implementeren met behoud van de integriteit van de huidige consensus, worden specifieke activeringsmethoden gebruikt. Hoewel deze mechanismen soms onbekend zijn, spelen ze een cruciale rol bij het begrijpen van de dynamiek die gepaard gaat met veranderingen in het Bitcoin-protocol. In dit artikel onderzoeken we de verschillende methoden voor het activeren van soft forks die op Bitcoin worden gebruikt.
Het Bitcoin-protocol is iets ongrijpbaars van aard. Het vertegenwoordigt gewoon een groep onuitgesproken regels, waarmee verschillende knooppunten kunnen synchroniseren en een netwerk kunnen vormen. Al deze knooppunten implementeren de protocolregels via software, waarvan Bitcoin Core de meest gebruikte is.
Wanneer er een wijziging plaatsvindt in deze protocolregels, wordt deze gebeurtenis een „fork” genoemd. Elk knooppunt is dan vrij om te kiezen of het deze fork wil implementeren, of dat het deze weigert. Op deze manier wordt consensus gezocht voor elke wijziging van Bitcoin, zonder dat een beroep hoeft te worden gedaan op een centrale autoriteit.
Er zijn twee hoofdtypen vorken: harde vorken en zachte vorken. Het verschil tussen beide is de achterwaartse compatibiliteit van de update.
De hard fork wijzigt het protocol door regels te verwijderen of bestaande regels minder restrictief te maken, waardoor het niet achterwaarts compatibel is met oudere nodes. Vervolgens wordt de blockchain opgedeeld in twee verschillende ketens: de ene met de up-to-date knooppunten en de ene met de oude knooppunten.
De soft fork daarentegen verandert het protocol door regels toe te voegen of bestaande regels restrictiever te maken. Op deze manier blijft het nieuwe protocol achterwaarts compatibel met het oude en is het niet de bedoeling dat er sprake is van ketenscheidingen. Voor Bitcoin gebruiken we, behalve in uitzonderlijke gevallen, liever soft forks om de regels van het protocol aan te passen.
➤ Meer informatie over de verschillende soorten vorken op Bitcoin.
De moeilijkheid ligt in het feit dat, zelfs met het gebruik van een soft fork, er soms een scheiding van de blockchain in twee takken kan zijn. Dit scenario doet zich voor wanneer minderjarigen die niet hebben bijgewerkt meer dan 50% van de rekenkracht van het netwerk vertegenwoordigen. In dit geval blijft de vertakking in twee afzonderlijke ketens bestaan zolang de ketting waarin de zachte vork niet is geïntegreerd, meer geaccumuleerd werk heeft dan de ketting die de zachte vork heeft overgenomen.

Om de eenheid van Bitcoin te behouden, willen we dergelijke filialen koste wat het kost vermijden. Om dit te doen, zullen mijnwerkers worden gevraagd vooraf te beslissen of ze een soft fork accepteren. Hoewel een grote meerderheid aangeeft ermee akkoord te gaan, worden de risico's van een vork tijdens de activering van de softfork aanzienlijk beperkt. Dit proces van overleg en voorafgaande consensus wordt een „activeringsmethode” genoemd.
Vervolgens maken we onderscheid tussen twee categorieën zachte vorken. Wanneer de implementatie rechtstreeks van gebruikers komt, wordt dit een „UASF” genoemd (Door de gebruiker geactiveerde Soft Fork). Deze methode doet zich voor wanneer netwerkknooppunten ervoor kiezen om een soft fork toe te passen door hun software aan te passen, zonder te wachten op de goedkeuring van de miners. UASF wordt over het algemeen gebruikt in noodsituaties, vooral wanneer de meerderheid van de minderjarigen tegen de invoering van een soft fork is, en is in werkelijkheid een afschrikmiddel waarmee gebruikers mogelijk machtsmisbruik door minderjarigen kunnen tegengaan. UASF is echter niet zonder risico's: het kan leiden tot een blockchain-tak, waardoor gebruikers die het adopteren in een keten terechtkomen die potentieel geen economische waarde heeft en minder veilig is.
In een meer consensueel proces geven we er de voorkeur aan om softfork-activering door minderjarigen te gebruiken. We spreken dan van een „MASF” (Door mineralen geactiveerde zachte vork). In dit geval mogen minderjarigen hun goedkeuring geven voor de wijziging van het protocol. Wanneer een grote meerderheid van hen aangeeft akkoord te gaan met de implementatie van de soft fork, wordt de update vervolgens gevalideerd en iets later geactiveerd. Deze methode maakt het mogelijk om de vertakking van de blockchain te vermijden en de eenheid van het netwerk te behouden.
Zoals u kunt zien, kan elke update snel chaotisch worden, aangezien er geen centrale planning voor Bitcoin is. De ontwikkelaars hebben daarom verschillende activeringsmethoden voorgesteld om een soft fork uit te voeren en tegelijkertijd het risico te verkleinen dat de Bitcoin-consensus wordt verbroken.
Ten tijde van Satoshi Nakamoto bestond er geen formele procedure voor het activeren van softforks. Satoshi zelf heeft de wijzigingen aangebracht, die over het algemeen zonder veel tegenstand werden overgenomen door een nog kleine gemeenschap. Soms kondigde het ze zelfs niet van tevoren aan, zoals toen het eenzijdig een blokgroottelimiet van 1 MB oplegde in 2010.
Onder de eerste gebruikte methoden vinden we ook de „Vlaggendag”. Het bestond uit het vaststellen en opleggen van een specifieke datum om de softfork te activeren. Hoewel eenvoudig, is deze methode erg rigide en laat ze niet toe om mogelijke meningsverschillen binnen de gemeenschap in overweging te nemen.
Na het vertrek van Satoshi begin 2011 begonnen er meer geformaliseerde activeringsprocedures te ontstaan. De activering van BIP16, waarmee P2SH wordt geïntroduceerd (Hash van pay-to-script), stond centraal in een van de eerste grote debatten binnen de gemeenschap. Het was tijdens deze spannende periode dat de eerste activeringsmethoden werden gebruikt waarbij rekening werd gehouden met de mening van minderjarigen.
Na deze debatten over P2SH stelde Gavin Andresen BIP34 voor, dat een eerste raamwerk voor activeringsmethoden introduceerde. Deze aanpak maakte het mogelijk om rekening te houden met de mening van minderjarigen en om de soft fork uit te voeren zodra een bepaalde goedkeuringsdrempel was bereikt.
Vervolgens gebruikten andere softforks vergelijkbare methoden, met activeringsperioden die zich over meerdere weken uitstrekten. Er was echter nog steeds geen gestandaardiseerde methode om een protocolwijziging te activeren. De activeringen werden min of meer uitgevoerd in overeenstemming met de aanbevelingen van de BIP34, maar bij deze laatste werd geen rekening gehouden met de signalering van meerdere zachte vorken tegelijk.
De BIP9, ontworpen in 2015 door Pieter Wuille, Peter Todd, Peter Todd, Greg Maxwell en Rusty Russell, vormt een standaardraamwerk voor het activeren van zachte vorken, waardoor het oorspronkelijke concept van de BIP34 wordt verbeterd. De bediening is heel eenvoudig. Wanneer tot een soft fork wordt besloten, legt de gemeenschap deze voor aan het minderjarigheidsrapport. Hiervoor worden een startdatum en een maximale duur van de signalering bepaald. Gedurende deze tijd kunnen mijnwerkers een specifiek bit in het veld voor de blokversie gebruiken om aan te geven dat ze de soft fork ondersteunen.

Zodra 95% van de blokken hun goedkeuring aangeeft gedurende een vaste periode van 2016 blokken, wordt de softfork vergrendeld. Deze periode valt samen met elke aanpassing in de proof-of-work-moeilijkheidsgraad. Na deze lockdown krijgen miners een korte periode de tijd om zich aan te passen aan de update, voordat de soft fork daadwerkelijk wordt uitgevoerd. Als de goedkeuringsdrempel van 95% niet binnen de gestelde tijd wordt bereikt, wordt de soft fork verlaten.
In vergelijking met de BIP34 biedt de BIP9 de mogelijkheid om meerdere softforks tegelijkertijd te melden. Het heeft echter ook nadelen, waaronder het feit dat het volledig gebaseerd is op een MASF, waardoor minderjarigen aanzienlijke bevoegdheden krijgen. Als de drempelwaarde van 95% signalering tijdens de stemperiode niet wordt bereikt, wordt de voorgestelde wijziging inderdaad gewoon afgeschaft.
In het bijzonder werd BIP9 in 2017 gebruikt om SegWit te activeren. Zoals je waarschijnlijk weet, is alles niet volgens plan verlopen. Maandenlang weigerde een meerderheid van de minderjarigen hun overeenkomst met SegWit te melden, ondanks de consensus van de gebruikers.
BIP9 introduceert dus een zekere dubbelzinnigheid in het bestuur van Bitcoin, waardoor mijnwerkers denken dat zij de activering van soft forks beheersen. In werkelijkheid is hun rol beperkt tot het aangeven van hun bereidheid om de nieuwe code over te nemen, om zo een vertakking van de blockchain te vermijden. Ondanks de complexiteit van het onderwerp, zijn het de gebruikers die via hun volledige nodes de definitieve controle over het protocol uitoefenen.
Om deze reden heeft ontwikkelaar Shaolin Fry in maart 2017 de BIP148 voorgesteld, waarmee gebruikers een UASF konden doen. Het doel was om minderjarigen SegWit op te leggen, zonder hun toestemming. Dit initiatief, dat breed werd gesteund door de gemeenschap, zette voldoende druk op de mijnwerkers, die, uit angst hun inkomsten te verliezen, uiteindelijk SegWit goedkeurden via een meer traditioneel signaleringsproces.
➤ Ontdek wie het Bitcoin-protocol beheert.
Het activeringsproces van SegWit werd dus een fiasco en had een ramp kunnen zijn voor Bitcoin. Daarom hebben Shaolin Fry en Luck Dashjr in 2017 BIP8 voorgesteld, een nieuwe activeringsmethode die het idee van BIP9 overneemt en aan het einde van de stemperiode een automatisch UASF-mechanisme toevoegt.
Het specificeert een nieuwe parameter genaamd „LOT” (Inschrijven op een time-out), die de waarde „true” of „false” kan aannemen. Als deze variabele is ingesteld op „false”, werkt BIP8 op dezelfde manier als BIP9. Er is een goedkeuringsvenster voor minderjarigen gespecificeerd en zodra de drempel is bereikt, wordt de softfork vergrendeld. Aan de andere kant, als de LOT-parameter op „true” is ingesteld, bepaalt BIP8 dat als de vereiste drempel niet wordt bereikt aan het einde van de stemperiode, automatisch een UASF wordt geactiveerd door de gebruikers. Dit mechanisme heeft tot doel druk uit te oefenen op mijnwerkers om de activering van de softfork af te dwingen in geval van een blokkering in het goedkeuringsproces.

BIP8 met LOT geactiveerd is daarom een veel agressievere methode tegen minderjarigen. Dan hebben ze maar twee keuzes:
BIP8 heeft ook enkele fouten in BIP9 verholpen. In plaats van tijdstempels te gebruiken om de stemperiode aan te geven, stelt hij deze in op blokhoogtes. Op deze manier elimineert BIP8 de mogelijkheid dat miners ervoor zorgen dat de hash-snelheid op het netwerk sterk daalt, waardoor het proces scheef wordt getrokken. Bovendien wordt de mogelijkheid toegevoegd om vrij de minimale stemdrempel te bepalen en wordt een parameter geïntroduceerd die een minimale blokhoogte specificeert, waaronder de softfork niet kan worden geactiveerd. Deze instelling geeft minderjarigen de tijd om zich voor te bereiden op de codewijziging, terwijl ze van tevoren hun akkoord kunnen aangeven.
Het „" Speedy Trial "” -proces, voorgesteld door David A. Harding begin 2021 op basis van een idee van Russell O'Connor, is een nieuwe activeringsmethode die oorspronkelijk is ontworpen voor de Taproot-softfork.” Het is gebaseerd op het gebruik van BIP8 waarbij de LOT-parameter is ingesteld op „false”, maar met een aanzienlijke verkorting van de activeringsperiode tot slechts drie maanden. Op deze manier kan de goedkeuring van minderjarigen zeer snel worden geverifieerd. Als de vereiste drempel tijdens een van de periodes wordt bereikt, wordt de soft fork enkele maanden later geactiveerd, zodat er voldoende tijd overblijft voor miners om hun software te updaten. Hoewel deze methode nog niet is geformaliseerd in een specifiek BIP, werd deze al in november 2021 gebruikt om Taproot te activeren.
Ondanks de effectiviteit ervan voor Taproot, dat een grote consensus had in de gemeenschap, is de Speedy Trial-methode niet noodzakelijk de meest geschikte voor alle Bitcoin-updates. Sommige ontwikkelaars maken hun bedenkingen bij het toekomstige gebruik ervan, omdat ze bang zijn dat dit te snel een opeenvolging van soft forks zou aanmoedigen en dat dit de stabiliteit van het Bitcoin-protocol in gevaar zou kunnen brengen.
➤ Begrijp de Taproot-update van 2021
De methoden voor het activeren van soft forks op Bitcoin evolueren met nieuwe updates. Het is een patroon van vallen en opstaan dat elke keer vrij gelijkaardig is: we definiëren een standaard activeringsmethode; we gebruiken die voor de volgende grote softfork; het gaat niet zoals verwacht; dus definiëren we een andere standaard door rekening te houden met onze fouten uit het verleden.
Tot op heden zijn er hoofdzakelijk drie activeringsmethoden:
Hulpbronnen:

