Wat is een soft fork?

Op het moment dat je gebruik maakt van een computer of smartphone, zul je deze regelmatig moete updaten. Het softwarebedrijf zorgt ervoor dat de update beschikbaar is op jouw apparaat. Je kunt vervolgens zelf de keuze maken om de update te installeren of niet. Zo‘n keuze kun je baseren op verschillende argumenten.

Dit gebeurt ook bij de blockchain. De nodes die zich in het netwerk van de blockchain bevinden, zullen zichzelf regelmatig moeten updaten. Zo‘n update kan gebeuren door middel van een soft fork, waar we in dit artikel meer over zullen uitleggen.

Dit bedoelen we met een fork

Voordat we dieper ingaan op de soft fork en andere soorten forks, is het belangrijk om meer informatie te geven over een fork. Het is namelijk niet wat de meeste mensen denken dat het is.

De blockchain is een keten van verschillende blokken. In deze blokken wordt allerlei informatie opgeslagen. Denk bijvoorbeeld aan transacties, maar ook aan bestanden, foto‘s of andere data. Doordat ieder blok de code van het vorige blok bevat, ontstaat er een keten van blokken die aan elkaar zijn verbonden. Vandaar de naam: blockchain.

Voordat een blok toegevoegd kan worden aan de blockchain, zal deze eerst gevalideerd moeten worden door het netwerk. Het netwerk bestaat uit verschillende computers, genaamd nodes. Zijn controleren of transacties valide zijn, maar controleren ook of andere nodes hun werk wel op de juiste manier uitvoeren.

Er zijn verschillende soorten blockchains. Deze blockchains kunnen ook op verschillende manieren ontstaan. Zo kan een blockchain vanaf niets worden opgebouwd, terwijl het ook mogelijk is om een bestaande blockchain te dupliceren, om het vervolgens aan te passen naar een nieuwe blockchain.

We spreken in dat geval van een fork. De blockchain wordt opgesplitst naar een blockchain die parallel loopt aan de originele. Zo‘n fork kan permanent zijn, al is het ook mogelijk dat het een tijdelijke fork betreft.

Wat is een hard fork?

Een groep miners of nodes kan besluiten om volledig onafhankelijk verder te gaan. Ze splitsen zich dan dus voorgoed af van de oorspronkelijke blockchain, wat betekent dat er uiteindelijk twee verschillende versies ontstaan die niet meer bij elkaar komen.

Het betekent ook dat je twee verschillende netwerken van nodes hebt. De nodes zullen dus moeten kiezen bij welk netwerk ze willen horen. In dit geval spreken we over een hard fork, wat het tegenovergestelde van een soft fork is.

Er zijn drie verschillende soorten hard forks:
  • Geplande hard fork. Dit is al van tevoren gepland door de ontwikkelaars om bijvoorbeeld een update uit te voeren. Denk hierbij bijvoorbeeld aan Ethereum 2.0.
  • Omstreden hard fork. Dit type fork ontstaat wanneer de gemeenschap het niet eens is over hoe ze verder moeten gaan. Bitcoin Cash en Ethereum Classic zijn hier een voorbeeld van.
  • Lancering van een nieuwe cryptocurrency. Omdat de blockchain open source is, kan men ook besluiten om de blockchain te kopiëren zodat ze een eigen cryptocurrency kunnen starten. Dit was bijvoorbeeld het geval bij Dogecoin, welke de code van de Bitcoin-blockchain gebruikt.

Wat is een soft fork?

Zojuist hadden we het over de hard fork. Er zijn verschillende situaties te bedenken waarbij een hard fork heeft plaatsgevonden. Echter hoeft er niet altijd een hard fork plaats te vinden. Het is namelijk ook mogelijk dat er een soft fork plaatsvindt.

Het is belangrijk om te weten dat we over een soft fork spreken wanneer de blockchain uiteindelijk weer bij elkaar komt. De scheiding was dus maar tijdelijk, en er ontstaat niet een permanente andere versie van de blockchain. Er zijn een aantal situaties die kunnen leiden tot een soft fork.

Tegelijk hetzelfde blok klaar
Miners zijn continu transacties aan het valideren om zo blokken toe te kunnen voegen aan de blockchain. Vaak zijn er duizenden, al dan wel niet miljoenen miners bezig om blokken toe te voegen aan de blockchain. De kans dat meerdere miners op hetzelfde moment een blok klaar hebben, is dus best realistisch,

Op het moment dat dit gebeurt, splitst de blockchain zichzelf op in meerdere blockchains, totdat het volgende blok wordt ontdekt binnen één van deze blockchains. Daar wordt het blok dan aan toegevoegd, waarna deze blockchain langer is dan de overige blockchains. Het netwerk zal deze blockchain dan als de echte blockchain beschouwen. Vervolgens wordt alles zoals het daarvoor ook al was.

Updaten van software
In de inleiding hadden we het al kort over het updaten van je software. Dat gebeurt ook binnen de blockchain, waar nodes hun code moeten updaten om bij te kunnen blijven. Zo worden er soms bijvoorbeeld nieuwe functies toegevoegd aan de blockchain.

De nodes die hun software zullen updaten, kunnen ook gebruik maken van de nieuwe functies. De nodes die hun software niet updaten, kunnen dat niet. Denk bijvoorbeeld aan de SegWit-update van Bitcoin. Hier zijn er nog steeds een aantal nodes die hun software niet hebben geüpdatet naar deze versie, waardoor ze niet gebruik kunnen maken van SegWit.

Dit hoeft dus niet altijd te leiden tot een hard fork. Er vindt pas een hard fork plaats wanneer een groep nodes besluit om ook daadwerkelijk als onafhankelijke blockchain verder te gaan.

De SegWit-update van Bitcoin

De bekendste soft fork is de SegWit-update van Bitcoin. Deze update moest het schalingsprobleem waar de blockchain van Bitcoin mee te maken had oplossen. Dat deed het door de blokgrootte te vergroten van 1MB naar 4MB. Hierdoor konden er dus aanzienlijk meer transacties verwerkt worden.

Toch waren niet allen nodes blij met deze update, wat voornamelijk nodes uit China waren. Zij besloten daarom ook om deze SegWit-update niet door te voeren. Hierdoor ontstond er binnen de blockchain van Bitcoin een groep miners die wel volgens het SegWit-protocol hun werk voltooide, terwijl een andere groep dat niet deed.

Begin 2021 lag het aantal miners dat volgens het SegWit-protocol hun werk deed tussen de 50% en 60%. Dit wordt ook wel het SegWit Adoption Ratio genoemd. Doordat China halverwege 2021 het minen van Bitcoin in de ban deed, schoot dit ratio omhoog naar bijna 80%.

Conclusie

We spreken dus over een fork wanneer een blockchain wordt opgesplitst. Zo‘n opsplitsing hoeft niet altijd slecht te zijn. Zo kan er een hard fork plaatsvinden, waarbij de opsplitsing permanent is. Wanneer een gemeenschap het niet eens wordt over bepaalde zaken, kunnen ze voor een hard fork kiezen. Het kan ook zo zijn dat iemand een eigen cryptocurrency wil beginnen, en hiervoor de code van een bestaande blockchain dupliceert. Dat mag, omdat de (publieke) blockchain altijd open source is.

Een fork hoeft niet altijd permanent te zijn. In dat geval spreken we over een soft fork. Dit is een fork die maar tijdelijk van aard is. Deze kan ontstaan wanneer er meerdere blokken op hetzelfde moment klaar zijn. In dat geval zullen er verschillende blockchains parallel aan elkaar lopen, totdat het eerstvolgende blok wordt toegevoegd.

Een soft fork is ook mogelijk wanneer er een software-update is uitgebracht. De bekendste soft fork is zo‘n fork, en betreft de SegWit-update. Niet alle miners van het Bitcoin-netwerk kozen ervoor om de SegWit-update te gebruiken, wat ervoor zorgt dat er verschillende software wordt gebruikt binnen een blockchain. Dit is geen probleem, al hebben miners die over de nieuwste software beschikken meer kans om een nieuw blok toe te mogen voegen.