Een soft fork is een achterwaarts compatibele update van een blockchain-protocol waarbij alleen nieuwe transacties aan strengere regels moeten voldoen. Oude nodes herkennen nieuwe blokken nog steeds als geldig.
Soft Fork uitgelegd
In de wereld van cryptocurrencies en blockchain-technologie worden wijzigingen of updates in het protocol vaak geïmplementeerd via “forks”. Er zijn verschillende soorten forks, maar een van de meest voorkomende is de “soft fork”.
Een soft fork is een verandering in het blockchain-protocol die achterwaarts compatibel is. Dit betekent dat de wijzigingen die worden aangebracht, strenger zijn dan de vorige regels. Hierdoor blijven transacties die onder de oude regels zijn gemaakt, geldig volgens de nieuwe regels, maar niet noodzakelijkerwijs andersom. Om het eenvoudig te zeggen, stel je voor dat de oorspronkelijke regel was dat alle transacties moeten worden ondertekend door de zender. Een soft fork kan een nieuwe regel introduceren waarbij transacties niet alleen door de zender moeten worden ondertekend, maar ook door een derde partij. Oude transacties die alleen door de zender zijn ondertekend, zouden nog steeds als geldig worden beschouwd, maar nieuwe transacties zouden aan de strengere eisen moeten voldoen.
Wat interessant is aan een soft fork, is dat nodes (de computers die de blockchain draaien en valideren) die de update niet hebben geadopteerd, nog steeds nieuwe transacties kunnen herkennen en accepteren, omdat deze transacties nog steeds voldoen aan de oude regels. Dit betekent dat er geen opsplitsing van de blockchain is; er blijft één enkele, samenhangende keten.
Echter, als een meerderheid van de miners (degenen die nieuwe blokken aan de blockchain toevoegen) besluit om de nieuwe regels van de soft fork te volgen en een minderheid niet, dan kan er een tijdelijke splitsing in de blockchain ontstaan. Maar zodra een van de ketens langer wordt dan de andere, zullen alle nodes deze langere keten als de geldige beschouwen, waardoor de kortere keten wordt verlaten.
Het voordeel van een soft fork is dat het de community niet verdeelt en dat het zorgt voor een gestroomlijnde implementatie van updates. Toch zijn er soms zorgen over de centralisatie van besluitvorming, aangezien het vaak de miners zijn die beslissen welke versie van de software wordt geadopteerd.
Verschil Soft Fork en Hard Fork
Het belangrijkste verschil tussen een soft fork en een hard fork in de context van cryptocurrencies en blockchain-technologie is hoe ze omgaan met achterwaartse compatibiliteit en de potentiële opsplitsing van de blockchain. Hier is een vergelijking:
Soft Fork:
- Achterwaartse compatibiliteit: Een soft fork is achterwaarts compatibel. Dit betekent dat nodes die de soft fork niet hebben geadopteerd, nog steeds nieuwe transacties kunnen herkennen en accepteren, omdat deze transacties voldoen aan de oude regels.
- Opsplitsing van de blockchain: In het geval van een soft fork, als een meerderheid van de miners de nieuwe regels volgt, wordt verwacht dat de gehele netwerk uiteindelijk de nieuwe regels zal volgen, waardoor er slechts één keten overblijft.
- Aanscherping van regels: Soft forks introduceren vaak strengere regels dan de vorige versie van het protocol, waardoor bepaalde transacties die voorheen geldig waren, nu ongeldig worden onder de nieuwe regels.
Hard Fork:
- Geen achterwaartse compatibiliteit: Een hard fork is niet achterwaarts compatibel. Dit betekent dat nodes die de hard fork niet hebben geadopteerd, de nieuwe transacties niet herkennen en ze als ongeldig beschouwen.
- Opsplitsing van de blockchain: Een hard fork leidt tot een permanente splitsing van de blockchain in twee afzonderlijke ketens, tenzij alle nodes unaniem besluiten om de nieuwe versie van het protocol te volgen. Deze splitsing kan resulteren in twee afzonderlijke cryptocurrencies. Een bekend voorbeeld hiervan is de splitsing van Bitcoin (BTC) en Bitcoin Cash in 2017.
- Wijziging van regels: Een hard fork kan zowel het versoepelen als het aanscherpen van de regels inhouden. Het is een duidelijke breuk van de oude regels en kan worden gebruikt om grote veranderingen of verbeteringen in het netwerk te implementeren.
In essentie is het belangrijkste verschil de mate van compatibiliteit en de gevolgen van de fork voor de blockchain. Waar een soft fork probeert om binnen het bestaande framework te blijven en slechts enkele regels te veranderen, creëert een hard fork een geheel nieuw framework dat onverenigbaar is met het oude.
Waarom een Soft Fork?
Een soft fork kan om verschillende redenen gebeuren binnen een blockchain-netwerk. Hier zijn enkele van de voornaamste redenen:
- Protocolverbeteringen: Ontwikkelaars kunnen een soft fork voorstellen om het onderliggende protocol te verbeteren, waardoor de prestaties, veiligheid of functionaliteit van de blockchain kunnen worden verbeterd.
- Veiligheidsmaatregelen: Als er zwakheden of bugs in de huidige versie van het protocol worden ontdekt, kan een soft fork worden gebruikt om deze problemen te verhelpen voordat ze kunnen worden misbruikt.
- Nieuwe functies: Soms kunnen nieuwe functies of mogelijkheden worden geïntroduceerd via een soft fork, zolang deze functies compatibel blijven met de bestaande regels.
- Regelgeving: In sommige gevallen kan externe regelgeving of wetgeving vereisen dat bepaalde wijzigingen in het protocol worden aangebracht. Een soft fork kan dan worden gebruikt om het netwerk in overeenstemming te brengen met deze vereisten.
- Netwerkintegriteit: Soft forks kunnen ook worden geïmplementeerd om bepaalde vormen van gedrag op het netwerk te ontmoedigen of te voorkomen, zoals bepaalde vormen van mining die als oneerlijk of schadelijk worden beschouwd.
- Community consensus: Soms kan een deel van de community het gevoel hebben dat bepaalde veranderingen nodig zijn om de waarden of doelstellingen van het project beter te weerspiegelen. Als er voldoende consensus is, kan een soft fork worden voorgesteld en geïmplementeerd.
De keuze voor een soft fork boven een hard fork wordt vaak gedaan vanwege de achterwaartse compatibiliteit die een soft fork biedt. Dit betekent dat niet alle nodes onmiddellijk hoeven te updaten om de nieuwe regels te volgen, en het vermindert de kans op een splijting van de blockchain. Door deze compatibiliteit kunnen soft forks over het algemeen soepeler en met minder verstoringen worden geïmplementeerd dan hard forks.
Voorbeelden van Soft Forks
Er zijn verschillende voorbeelden van soft forks in de geschiedenis van cryptocurrencies. Hier zijn enkele opmerkelijke soft forks die in het Bitcoin-netwerk zijn geïmplementeerd:
- Pay-to-Script-Hash (P2SH):
- Geïntroduceerd in 2012, maakte P2SH het mogelijk voor transacties om te worden verzonden naar een script-hash in plaats van naar een openbaar sleutel-adres. Hierdoor werd het mogelijk om complexere transactievoorwaarden te stellen, zoals multi-signature transacties, waarvoor meerdere handtekeningen nodig zijn voordat de fondsen kunnen worden besteed.
- BIP66 – Strict DER signatures:
- Geïntroduceerd in 2015, dit voorstel vereiste dat alle nieuwe transacties gebruikmaken van het Strict DER formaat voor hun handtekeningen, wat enkele potentiële kwetsbaarheden in het oude formaat elimineerde.
- BIP68, BIP112 en BIP113 – Sequence Locks en Median Time Past:
- Geïmplementeerd in 2016, deze soft forks introduceerden “sequence locks” die transacties toestaan om te specificeren wanneer ze kunnen worden opgenomen in een blok, en de “Median Time Past” (MTP) regel, waardoor de tijdstempel van een blok wordt gebaseerd op de mediane tijdstempel van de vorige 11 blokken.
- Segregated Witness (SegWit – BIP141):
- Geïntroduceerd in 2017, is dit misschien wel de meest bekende soft fork in de Bitcoin-geschiedenis. SegWit pakte het probleem van “transaction malleability” aan en vergrootte effectief de blokgrootte door transactiehandtekeninggegevens af te zonderen van de hoofdtransactiedata.
Deze soft forks zijn in de loop der jaren geïmplementeerd om verschillende redenen, zoals het verbeteren van de schaalbaarheid, het vergroten van de veiligheid, of het toevoegen van nieuwe functionaliteiten aan het Bitcoin-netwerk. Hoewel deze voorbeelden specifiek betrekking hebben op Bitcoin, hebben ook andere cryptocurrencies hun eigen soft forks ervaren om soortgelijke verbeteringen en aanpassingen aan hun respectievelijke netwerken door te voeren.