Inhoudsopgave
les 8
Wat zijn hard- en soft forks en wat is het verschil?
Wat zijn hard- en soft forks en wat is het verschil?

9 min leestijd

Bijgewerkt

Wat zijn hard- en soft forks en wat is het verschil?

Cryptocurrency’s bestaan in een gedecentraliseerd netwerk genaamd de blockchain. Een fork is een wijziging in het onderliggende protocol van een blockchain. Het komt neer op een essentiële upgrade van het netwerk en kan kleine of grote veranderingen vertegenwoordigen. Deze upgrade kan door ontwikkelaars of leden van het netwerk geïnitieerd worden, wat deze technologie open source maakt. Er bestaan hard en soft forks. Soms, maar niet altijd, leidt een fork tot een permanente scheiding van de blockchain, wat resulteert in een nieuwe cryptocurrency die afstamt van het originele protocol. 

Wat is een soft fork?

In de blockchain-technologie is een soft fork een wijziging in het protocol waarbij de regels strenger worden. Oude blokken blijven bij een soft work nog steeds geldig, waardoor het met terugwerkende kracht compatibel is. 

Stel dat een blockchain zegt dat alle blokken een rode kleur moeten hebben. Alle nodes controleren hierop. Op een bepaald moment wordt een soft fork geïnitieerd: vanaf nu moeten alle blokken rood zijn en moeten ze een perfect vierkante vorm hebben. Nodes die deze update hebben ontvangen, controleren elk blok hun rode kleur en perfect vierkante vorm. Oude nodes die deze update niet hebben ontvangen, controleren alleen op de rode kleur en keuren deze nieuwe blokken ook nog steeds goed, want voor de oude nodes is het enkel belangrijk dat een blok een rode kleur heeft. 

Een typisch voorbeeld van een soft fork is het toevoegen van een nieuwe soort transactie aan het netwerk. Hierbij moeten alleen de deelnemers (verzenders en ontvangers) en de miners de nieuwe soort transactie begrijpen. Een soft fork kan ook per ongeluk gebeuren. Wanneer miners niet-geüpgradede nodes gebruiken, kan een tijdelijke splitsing in de blockchain optreden omdat deze miners een nieuwe consensusregel overtreden. 

Aangezien alle blokken die de soft fork hebben geaccepteerd zowel de nieuwe regels als de oude regels volgen, hoeven nodes niet per se up te daten om consensus te behouden. Dit is waarom er bij een soft fork ook oude gebruikers geaccepteerd worden, zolang deze de oude regels volgen. Soft forks kunnen niet omgekeerd worden, aangezien een soft fork per definitie alleen toestaat dat de set geldige blokken een juiste (strengere) subset is van wat een geldige (soepelere) pre-fork was. Voor dit soort fork is slechts een meerderheid van de miners nodig om te upgraden en zo de nieuwe regels af te dwingen. Hoe meer miners de nieuwe regels accepteren, hoe veiliger het netwerk is. Als 75% van de miners de soft fork herkennen, is het niet gegarandeerd dat de overige 25% de nieuwe regels volgt. Het is dus mogelijk dat 25% van de blokken geldig is voor de oude nodes die niet op de hoogte zijn van de nieuwe regels, maar deze blokken zullen genegeerd worden door 75% van de nodes die wel de nieuwe regels respecteren. 

Wat is een hard fork

Een hard fork is een permanente afwijking van de huidige blockchain en leidt tot een scheidingomdat sommige nodes niet langer aan de nieuwe regels voldoen. Zo ontstaan er twee verschillende versies van het netwerk die afzonderlijk uitgevoerd worden. 

Een hard fork is per definitie niet met terugwerkende kracht compatibel. Stel dat een bepaalde blockchain zegt dat alle blokken een rode kleur én een perfect vierkante vorm moeten hebben. Alle nodes controleren dus op de rode kleur en een perfecte vierkante vorm. Op een bepaald moment wordt een hard fork geïnitieerd: vanaf nu moeten alle blokken enkel nog maar een rode kleur hebben. Nodes die deze update ontvangen, controleren elk blok vanaf nu enkel op hun kleur, niet meer op de vorm. 

Oude nodes die de update niet hebben ontvangen, zullen nog steeds op kleur én op de perfecte vierkante vorm controleren. De oude nodes keuren dus blokken af die geen vierkante vorm hebben, ook al is deze regel eigenlijk uit het netwerk verwijderd. De oude nodes zijn niet meer compatibel met het nieuwe systeem. Er worden als het ware twee verschillende paden gecreëerd: één pad dat de oude set regels volgt en één pad dat de nieuwe set regels volgt. 

Gevaren van een hard fork

Hard forks worden vaak als gevaarlijk gezien. Wanneer er een splitsing optreedt tussen de miners die het netwerk beveiligen en de nodes die transacties valideren, wordt het gehele netwerk minder veilig en kwetsbaarder voor aanvallen. 

Een 51% aanval is een bekende manier om controle te krijgen over een blockchain-netwerk. Wanneer een groep miners beslist om een hard fork uit te voeren, is het mogelijk dat zij na splitsing plots 51% van alle miners onder hun controle hebben. Dit betekent dat ze de hele blockchain kunnen controleren en manipuleren. 

Replay-aanvallen zijn ook een gevaar bij een hard fork. Wanneer een frauduleuze miner een transactie op het gevorkte netwerk onderschept en die gegevens in de andere keer herhaalt, voert deze miner een replay-aanval uit op het netwerk. Als een hard fork geen extra replay-beveiliging heeft, keurt deze beide transacties als geldig. Op deze manier kan iemand munten verplaatsen van een andere gebruiker zonder ze te controleren.

Wat is het verschil tussen een hard en soft fork?

In de basis betekent een fork een verandering aan de software achter een cryptocurrency. Dit kan zowel met een hard fork als met een soft fork. Het verschil zit in de manier waarop de fork is opgebouwd. 

Een soft fork wordt als een veiligere methode gezien, omdat deze met terugwerkende kracht compatibel is. Een soft fork is echter beperkt in mogelijkheden, juist vanwege die compatibiliteit. De upgrade mag namelijk enkel veranderingen doorvoeren die de regels van een blockchain niet in essentie veranderen. Een soft fork kan gezien worden als een update van het besturingssysteem van een apparaat, bijvoorbeeld als je computer update van Windows 7.1 naar Windows 7.2. Na de update blijven de oude applicaties, zoals Microsoft Word of Acrobat Reader, nog steeds werken met het nieuwe besturingssysteem. Net alsde oude nodes die de update niet hebben gekregen, maar wel compatibel met het netwerk blijven. Een soft fork heeft enkel een meerderheid nodig om uitgevoerd te worden. 

Een hard fork is een wijziging die de basisregels van het systeem verandert. Om door te gaan op het oude voorbeeld: het hele besturingssysteem wordt overboord gegooid en er wordt een nieuwe geïnstalleerd, van Windows 7 naar Windows 10. Bij zo’n update dienen de programma’s op je computer ook geüpdatet te worden. Bij een hard fork is het noodzakelijk dat alle nodes de fork accepteren en uitvoeren. Nodes die de hard fork niet accepteren, zijn vanaf dan niet meer compatibel met het nieuwe netwerk. Er ontstaat zo een splitsing van de blockchain. 

Waarom forken?

Met zulke ernstige nadelen, waarom worden hard forks dan toch nog uitgevoerd? Omdat de blockchain ze nu eenmaal nodig heeftom het netwerk te verbeteren. De technologie rond blockchains evolueert nog elke dag. Dit betekent dat er elke dag nieuwe innovaties ontwikkeld worden waarop de blockchain aangepast moet worden. Een goede reden om een hard fork uit te voeren is bijvoorbeeld om een beveiligingsrisico op te lossen, belangrijke nieuwe functionaliteiten toe te voegen, of eerder uitgevoerde transacties om te keren, al is dit laatste erg controversieel. 

Belangrijke voorbeelden van hard forks

Hieronder staan de twee belangrijkste voorbeelden van hard forks uit het verleden.

SegWit2x en Bitcoin Cash

De SegWit2x was een voorgestelde update die ontworpen was om Bitcoin te helpen schalen. De fork was bedoeld om Segregated Witness (SegWit) te implementeren op het netwerk en de limiet voor de blokgrootte te verhogen van één MB naar twee MB. Het was de bedoeling om SegWit te implementeren via een soft work en later de limiet van de blokgrootte te verhogen via een hard fork. 

De implementatie van SegWit2x werd op 23 mei 2017 besloten in de overeenkomst van New York. De overeenkomst is controversieel omdat een aantal eigenaren en miners van Bitcoin, die samen meer dan 85% van de hash-snelheid van het netwerk ]hadden, achter gesloten deuren beslisten over de toekomst van Bitcoin. 

Bitcoin-gebruikers voerden destijds campagne voor een soft fork, als reactie op de vergadering achter gesloten deuren. Ze riepen op tot implementatie van het Bitcoin Improvement Proposal (BIP) 148, dat SegWit op het Bitcoin-netwerk wilde implementeren en voerden aan dat SegWit2x een controversiële hard fork was die het netwerk kwetsbaar maakte voor een replay-aanval.

Op 1 augustus 2017 werd besloten om de Bitcoin-blockchain te forken. De fork kwam als reactie op de wens om grotere blokken te creëren, maar de gemeenschap was bang dat het SegWit2x-plan niet uitgevoerd zou worden. Het resultaat was de oprichting van Bitcoin Cash (BCH). De gebruikers achter de hard fork zagen de splitsing niet als een nieuw netwerk, maar als voortzetting van de oorspronkelijke visie van Satoshi Nakamoto. 

De DAO Hack en Ethereum Classic

Een tweede belangrijke hard fork in de geschiedenis van cryptocurrency’s is gerelateerd aan een gedecentraliseerde autonome organisatie (DAO). De DAO werd in 2016 op het Ethereum-netwerk gelanceerd. In 2016 haalde de DAO ruim 150 miljoen dollar, ongeveer 133 miljoen euro, aan ETH op door middel van crowdfunding. Crowdfunding was in die tijd nog gangbaar, voordat een initial coin offering (ICO) populair werd in 2017. 

Na de lancering van DAO werd deze meteen gehackt voor 60 miljoen dollar aan ETH van 11.000 investeerders. De hack zorgde voor een grote vertrouwensbreuk binnen de gemeenschap. Er volgde een debat binnen de Ethereum-gemeenschap. Ethereum-oprichter Vitalik Buterin stelde een soft fork voor om het adres van de hacker(s) op een zwarte lijst te zetten zodat ze het geld niet meer zouden kunnen verplaatsen. De hacker(s) reageerden door te verklaren dat ze het geld op een legale manier hadden verkregen door de regels van de DAO te volgen. 

Opnieuw volgde debat binnen de gemeenschap en werd er uiteindelijk besloten om een hard fork uit te voeren om de geschiedenis van het Ethereum-netwerk terug te draaien net voor de DAO hack. Het gestolen geld werd zo teruggewezen aan de investeerders. De hard fork was controversieel omdat het geïnterpreteerd kon worden als een aanval op de onveranderlijkheid van de blockchain en extreme beschermingsmaatregelen voor investeerders. Gebruikers die de hard fork zo interpreteerde, gingen niet akkoord met de hard fork en bleven trouw aan de eerdere versie van het netwerk. De eerdere versie werd hernoemd naar Ethereum Classic (ETC). 

Conclusie

Een fork is een wijziging van de software die achter een cryptocurrency zit. Deze wijziging kan met een soft fork of met een hard fork doorgevoerd worden. Een soft fork kun je zien als een upgrade aan het besturingssysteem en is daarmee per definitie met terugwerkende kracht compatibel. Nodes die de upgrade niet implementeren zijn nog steeds compatibel met het netwerk. Een hard fork daarentegen is niet met terugwerkende kracht compatibel. De wijziging in de software kan vergeleken worden met het overschakelen naar een compleet nieuw besturingssysteem. Elke node moet de hard fork dus accepteren, anders zijn ze niet meer compatibel met het nieuwe netwerk. Doen ze dat niet, dan ontstaat er een splitsing van de blockchain. 

Een fork wordt uitgevoerd om een wijziging aan de software uit te voeren. Dit kan zijn om nieuwe functionaliteiten toe te voegen, eerdere beveiligingsrisico’s op te lossen, of uitgevoerde transacties om te keren.