Wat is een soft fork?

Sinds de DAO-hack in juni 2016 werd de ‘soft fork’ besproken als een van de mogelijke opties, om de schade van de fraude die gepleegd werd door een aanvaller, zoveel mogelijk te beperken. Bij een soft fork wordt het geld (de waarde) van een aanvaller als het ware bevroren. Als we het hebben over een ‘soft fork’ in het kader van de blockchaintechnologie, dan bedoelen we daarmee dat er een verandering plaatsvindt in het software protocol. Een aanpassing waarbij alleen de voorgaande geldige blokken (transacties) ongeldig worden verklaard.

Forks, vorken.

Wat is het verschil tussen een soft fork en een hard fork?

Omdat oude nodes (computers in het blockchainnetwerk) de nieuwe blokken als geldig zullen bestempelen, is er bij een soft fork sprake van achterwaartse compatibiliteit. Dat houdt dus in dat er ondersteuning is voor de oudere versies van bepaalde programma’s. Bij een dergelijke soft fork is het alleen vereist dat een kleine meerderheid van de miners de software update, om de nieuw gevormde regels (software protocol) toe te passen. De soft fork is het tegenovergestelde van de hard fork, waarbij alle nodes in het blockchainnetwerk een upgrade moeten uitvoeren en ook overeenstemming (consensus) moeten bereiken over de nieuwe regels. Bij een hard fork is er geen sprake van achterwaartse compatibiliteit. Oudere nodes zullen de nieuwe blokken (blokken die gecreëerd zijn door geüpdatet nodes) dus als ongeldig verklaren.

Bitcoin miner

Voorwaarden die voldoen aan de nieuwe regels

Nieuwe vormen van transacties kunnen in principe worden toegevoegd als soft forks. De enige vereiste is dan, dat iedere verzender, ontvanger, maar ook alle miners de nieuwe transactievorm ook volledig begrijpen. Dit kan worden bewerkstelligd door de nieuwe transactie te presenteren aan de oudere nodes, als zijnde een ‘betaal-aan-iemand’ transactie. Hierdoor ontstaat een situatie waarbij de miners overeen zullen komen, dat dit soort blokken met dit soort transacties, geweigerd moeten worden. De transacties zullen dan geweigerd worden, tenzij de transacties voldoen aan de voorwaarden van de nieuwe regels.

Rules, regels.

Consensusregels

Een soft fork kan ook optreden als er een tijdelijke afwijking optreedt binnen het blockchainnetwerk. Dit kan gebeuren als miners die gebruikmaken van niet-geüpdatet nodes, een nieuwe consensusregel schenden. Een consensusregel waarvan hun nodes het bestaan niet kennen. Het is ten aanzien van een soft fork niet noodzakelijk dat de nodes een update uitvoeren om de consensus in stand te houden, omdat alle blokken met de nieuwe ‘in-gesoft-forkte-regels’ ook gewoon de oude regels volgen. Ook de nodes die nog niet zijn geüpdatet, zullen de nieuwe blokken dus accepteren.

Consensus ahead, consensus algoritme.

Passende deelverzameling

Een soft fork kan niet worden teruggedraaid zonder een hard fork. Dat komt omdat een soft fork per definitie een aantal geldige blokken toestaat. Deze geldige blokken zijn een passende deelverzameling van de blokken die geldig waren, voordat de fork werd uitgevoerd. Als gebruikers upgraden naar een post-soft-fork node en om een bepaalde reden de meerderheid van de miners terugschakelt naar een pre-soft-fork node, dan ontstaat er een situatie waarbij de gebruikers van een post-soft-fork node, de consensus (overeenstemming) teniet doen, op het moment dat er een blokje verschijnt, dat niet aan de nieuwe regels van de node voldoet.

Blokken, blockchain.

Herkenning van de soft fork

Het is dus belangrijk dat als we een soft fork succesvol willen laten verlopen, de meerderheid van de ‘mining-kracht’ gebruikmaakt van een node, die in staat is om de soft fork ook als zodanig te herkennen. Je zou dus kunnen zeggen dat hoe meer miners de nieuwe regels accepteren, hoe veiliger het netwerk na uitvoering van een fork is. Als driekwart van de miners de fork accepteert, dan is er geen garantie dat een kwart van de nieuw gevormde blokken, de nieuwe regels volgt. Deze kwart van de blokken wordt alleen als geldig gezien door de nodes, die zich ‘bewust’ zijn van de nieuwe regels. De nieuwe nodes zullen deze blokken dus negeren.

nodes netwerk, soft fork.

De DAO

DAO zijn Decentrale Autonome Organisaties. Dit zijn ‘entiteiten’ die zichzelf automatisch in het blockchainnetwerk kunnen handhaven. Er zijn in principe geen invloeden van buitenaf mogelijk, waardoor het systeem dus ook niet centraal bestuurd kan worden. Eén van de eerste DAO was ‘The DAO’ die draaide in de Ethereum blockchain. Deze DAO was een investeringsfonds voor projecten op het Ethereum blockchainplatform.

Smart contracts

Smart contracts

Bij de DAO-hack in juni 2016 bleek dat er een oneffenheid zat in de programmacode van één van de slimme contracten. Dit waren de zogenaamde smart contracts die draaiden op de Ethereum blockchain. Door deze oneffenheid bleek dat het dus mogelijk was voor een aanvaller om ether te stelen. Er moest dus snel naar een oplossing worden gezocht. Eén van de opties was helemaal niets doen. Dat zou dus inhouden dat iedereen zijn geld kwijtgeraakt was. Een tweede opties was de soft fork. In een dergelijke situatie zou het geld van hacker worden bevroren. In zo’n geval zouden er geen blokken worden ‘teruggedraaid’. Een derde optie was een hard fork. Bij een hard fork zouden alle recente transacties ongedaan worden gemaakt.

Pijl in twee richtingen, splijtende blockchain, soft fork.

Splitsing van de blockchain

Bij een hard fork wordt bij een bepaald aantal ‘geminde’ blokken een splitsing aangebracht in de blockchain. De blockchain zal dan splitsen in een nieuwe en een oude blockchain. Als de meerderheid van de miners er bij een hard fork voor kiest om mee te gaan naar de nieuwe blockchain, dan sterft de oude blockchain waarschijnlijk uiteindelijk uit. De tegoeden in het ‘criminele’ slimme contract van de DAO, worden dan in de nieuw gevormde blockchain naar een ander slim contract overgebracht. Alle andere transacties en slimme contracten in het blockchainnetwerk worden niet gecorrigeerd. Ongeveer een maand na de hack van The DAO werd in juli 2016, uiteindelijk gekozen voor het uitvoeren van een hard fork. Hierdoor ontstonden dus twee blockchains. Een van deze afsplitsingen kreeg de naam Ethereum Classic (ETC). De andere blockchain ging door als Ethereum (ETH).

 

Op de hoogte blijven van de ontwikkelingen op het gebied van de blockchaintechnologie? Meld je dan nu aan voor onze blogpost!

 

 

Meld je aan voor de blogpost!
Ik ga ermee akkoord dat mijn naam en e-mailadres worden gedeeld met Mailchimp.
Met de blogpost van Uitleg Blockchain blijf je automatisch op de hoogte van de nieuwste ontwikkelingen omtrent de blockchain technologie.
We hebben een hekel aan spam. Uw e-mailadres zal niet worden verkocht of gedeeld met anderen (afgezien van het marketing automation platform dat wij gebruiken voor onze e-maillijst).