Een blockchain-fork is wat er gebeurt wanneer twee of meer computers op hetzelfde moment afzonderlijke blokken minen, waardoor er op verschillende punten in het netwerk twee concurrerende versies van de blockchain ontstaan. Dit type fork wordt over het algemeen snel opgelost omdat een van de voorgestelde updates sneller door het netwerk wordt verspreid dan de andere, en al snel de consensus-blockchain wordt. Alle gegevens in een ‘orphan’ blok in de afgewezen keten worden teruggestuurd naar de pool met openstaande gegevens om opnieuw te worden gemined. Om deze reden mag een bitcoin-transactie over het algemeen niet als definitief worden beschouwd totdat er ten minste zes blokken zijn gedolven bovenop het blok dat het bevat.
Het verschil tussen een soft fork en hard fork zit hem in type verandering.
Bitcoin soft fork
Een ‘soft fork’ is een ‘backwards compatible’ manier om de software van een update te voorzien, wat betekent dat gebruikers die de oude software gebruiken, nog steeds blokken herkennen die zijn gemaakt door computers die ervoor hebben gekozen om die van hen bij te werken, en omgekeerd. Bij een soft fork worden de regels verscherpt: er wordt minder toegelaten dan in de situatie daarvoor.
Het wordt ‘soft’ genoemd omdat beide groepen gebruikers nieuwe blokken op dezelfde blockchain blijven minen, dus er is geen ‘harde’ lijn die ze verdeelt. Aangezien beide groepen gebruikers onderdeel blijven van hetzelfde netwerk, zal een soft fork nooit leiden tot de vorming van een nieuwe cryptocurrency.
Een ‘soft fork’ wordt als voltooid beschouwd zodra de meeste machines in het bitcoin-netwerk hun software hebben bijgewerkt. Als dit niet gebeurt, kan de minderheidsgroep uiteindelijk besluiten de voorgestelde update te staken of in plaats daarvan over te gaan tot het implementeren van een hard fork. Bij een bepaalde blockhoogte wordt dan duidelijk of de software update doorgevoerd wordt, of dat de oude versie blijft bestaan.
Voorbeeld: segwit
Bitcoin hard fork
Een ‘hard fork’ is een update die niet ‘backwards compatible’ is. Dit betekent dat gebruikers die de oude software gebruiken, geen blokken zullen herkennen die zijn gemaakt door degenen die de nieuwe software gebruiken, en omgekeerd.
Om deze reden leiden ‘hard forks’ meestal tot een splitsing in de blockchain waarbij een groep gebruikers het oude netwerk effectief verlaat om een eigen cryptocurrency te vormen. In dit scenario neemt het nieuwe netwerk een exacte kopie van de blockchain zoals het was op het punt van de splitsing, waarbij beide versies daarna afzonderlijk bleven.
Gebruikers die ten tijde van de splitsing bitcoin bezaten, kunnen vaak nieuwe munten claimen op het gevorkte netwerk. Het kan echter riskant zijn om de munten te claimen als het nieuwe netwerk geen ‘replay protection’-maatregelen omvat – om te voorkomen dat het oude netwerk zijn transacties ten onrechte herkent (en omgekeerd) – omdat het uitgeven van één set munten kan leiden tot verlies van die op het andere netwerk. Een bekende hard fork gebeurde op 1 augustus 2017. Toen splitste de Bitcoin blockchain bij block 478559 in twee blockchains. Deze splitsing kwam door onenigheid over de blockgrootte. Een aantal developers vonden dat deze vergroot moest worden van 1MB naar 8MB (zodat er meer transacties in een blok kunnen en er dus meer transacties tegelijk verwerkt kunnen worden).
Voorbeeld: bitcoin cash, ethereum classic