Verandering van het software-protocol

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 werd gepleegd door een aanvaller, zoveel mogelijk te beperken. Bij een soft fork worden de cryptocurrency’s (de waarde) van een aanvaller als het ware bevroren. Als we het hebben over een ‘soft fork’ in het kader van blockchaintechnologie, dan bedoelen we daarmee dat er een verandering plaatsvindt in het software-protocol. Een aanpassing waarbij alleen de voorgaande geldige blokken 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 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 updaten, 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 de geüpdatet nodes) in dat geval als ongeldig verklaren.

Ethereum

 

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 gerealiseerd 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 ook daadwerkelijk geweigerd worden, tenzij de transacties voldoen aan de voorwaarden van de nieuwe regels van het blockchain-protocol.

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. Het gaat dan meestal om een consensusregel waarvan de nodes het bestaan niet kennen. Het is ten aanzien van een soft fork niet noodzakelijk dat de nodes een update uitvoeren om het consensus-mechanisme in stand te houden, omdat alle blokken met de nieuwe ‘gesoft-forkte’ regels ook gewoon de oude regels blijven volgen. Dat betekent dat de nodes die nog niet zijn geüpdatet, ook de nieuwe blokken zullen 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 de meerderheid van de miners om een bepaalde reden 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.

Herkennen van een soft fork

Als we een soft fork succesvol willen laten verlopen dan is het belangrijk dat 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 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 géén garantie dat een kwart van de nieuw gevormde blokken, de nieuwe regels ook volgt. Deze kwart van de blokken wordt alleen als geldig beschouwd door de nodes, die zich ‘bewust’ zijn van de nieuwe regels. De nieuwe nodes zullen deze blokken dus negeren.

nodes netwerk, soft fork.

The DAO

Nadat het blockchain-project The DAO – dat werd uitgevoerd op het blockchainnetwerk van Ethereum – was gehackt, werd er uiteindelijk gekozen voor een hard fork, in plaats van voor een soft fork. DAO zijn zogenaamde Decentrale Autonome Organisaties. Dit zijn een soort van investeringsfondsen die zichzelf automatisch in het blockchainnetwerk kunnen handhaven. Daarbij zijn er ‘in principe’ geen invloeden van buitenaf mogelijk, waardoor het systeem dus ook niet centraal bestuurd kan worden. De aanval op The DAO van Ethereum maakte het echter toch noodzakelijk, om een wijziging in de blockchain aan te brengen. Smart contracts

Smart contracts

Bij de DAO-hack – die plaatsvond in de zomer van 2016 – bleek dat er een oneffenheid zat in de programmacode, van één van de smart contracts die op de Ethereum blockchain werden uitgevoerd. Door deze bug werd het voor een aanvaller mogelijk om zo’n 3,6 miljoen ether weg te sluizen naar een andere locatie. Ether (ETH) is de cryptocurrency van Ethereum. Het virtuele geld werd overgemaakt naar een zogenaamde ‘child DAO’ waar de ETH – volgens de voorwaarden uit het smart contract – 28 dagen werd vastgehouden. De ether was dus niet echt weg, maar de Ethereum-community moest wel snel een oplossing bedenken. Eén van de opties was helemaal niets doen. Dat zou dan vervolgens wel inhouden dat iedereen zijn ETH kwijt was. Een tweede opties was het uitvoeren van een soft fork. In een dergelijke situatie zou het geld van de hacker worden bevroren. In dat geval zouden er geen blokken worden ‘teruggedraaid’. Een derde optie was het uitvoeren van een hard fork. Bij een hard fork zouden alle recente transacties ongedaan worden gemaakt.

 

Onenigheid binnen de Ethereum-community

Binnen de Ethereum-community ontstond veel onenigheid over wat er precies met de The DAO moest gebeuren. Sommige ontwikkelaars vonden weliswaar dat de hack onethisch was, maar waren van mening dat de aanval een ‘geldige’ procedure had gevolgd, binnen het blockchain-protocol. Andere community-leden dachten daar totaal anders over en riepen op tot het opnieuw toe-eigenen van de ETH. Weer anderen wilden dat het DAO-project per direct zou worden beëindigd. Uiteindelijk bleek het te lastig om de weggesluisde ether weer terug te verplaatsen naar de oorspronkelijke eigenaren. Daarom werd besloten tot het uitvoeren van een hard fork, wat een zeer ingrijpende wijziging van het blockchain-protocol inhield.

Pijl in twee richtingen, splijtende blockchain, soft fork.

Splitsing van de blockchain

Door de hard fork splitste de Ethereum blockchain zich op. Bij een bepaald aantal ‘geminde’ blokken werd een splitsing aangebracht in het netwerk. Zo ontstond er een nieuwe en een oude blockchain. Wanneer 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 in de meeste gevallen uit. De tegoeden die in het ‘criminele’ smart contract van de DAO zijn opgeslagen, worden dan in de nieuw gevormde blockchain naar een ander smart contract overgebracht. Alle andere transacties en smart contracts in het blockchainnetwerk worden niet gecorrigeerd. Ongeveer een maand na de hack van The DAO werd uiteindelijk gekozen voor het uitvoeren van de hard fork. Een van deze afsplitsingen kreeg de naam Ethereum Classic (ETC). De andere blockchain ging door als Ethereum (ETH). Daarbij volgde de ETC-blockchain de oude regels en de Ethereum-blockchain de nieuwe regels.

 

Op de hoogte blijven van de ontwikkelingen op het gebied van blockchaintechnologie? Meld je dan nu aan voor de 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).