In het kort: hard fork vs. soft fork

fork

Bitcoin is een protocol: een set van regels waar iedereen in het netwerk zich aan houdt. Soms verschillen de meningen over wat de regels zouden moeten zijn. Het kan dan voorkomen dat verschillende groepen een andere toekomst zien voor Bitcoin. Wanneer dit leidt tot twee verschillende implementaties kan er een fork ontstaan.

Een fork in software development betekent dat de broncode gekopieerd wordt en door een andere partij wordt aangepast. Binnen Bitcoin is een fork het splitsen van de blockchain in twee of meerdere richtingen, waardoor nieuwe blocks van de ene chain niet meer geaccepteerd worden door de andere. Bij Bitcoin valt er onderscheid te maken tussen twee typen forks: soft fork en hard fork. Kort gezegd kan je stellen dat bij een soft fork in Bitcoin de regels in het protocol strenger gemaakt worden en bij een hard fork juist versoepeld. Dit klinkt tegenstrijdig, maar het werkt als volgt.

Soft fork

Bij een soft fork worden de regels verscherpt: er wordt minder toegelaten dan in de situatie daarvoor. Een voorbeeld hiervan is het instellen van de blockgrootte van 1 MB in 2011. In de situatie voor het instellen van de 1 MB blockgrootte was er geen limiet aanwezig. Door het instellen van de limiet zijn de regels dus Âstrenger geworden; blocks groter dan 1 MB worden niet meer geaccepteerd door de nieuwe nodes. Oude nodes die niet upgraden naar de nieuwe versie hebben geen probleem met de nieuwe situatie: de nieuwe regels conflicteren namelijk niet met de al bestaande regels. Een block van 1 MB "past" binnen de regels van de oude nodes, updaten is dus niet per sé nodig. Dit is een soft fork.

softf2.png

Hard fork

Wanneer de regel wordt gewijzigd van 1 MB naar 2 MB is er sprake van een versoepeling van de regels. In de nieuwe situatie is namelijk meer mogelijk dan voorheen. Wanneer nodes niet updaten zullen ze de nieuwe richting van Bitcoin niet kunnen volgen: de nieuwe regel van 2 MB conflicteert met de maximale grootte van 1 MB die zij hanteren. Daardoor ontstaat er een blockchain die de oude regels hanteert, en een die de nieuwe regels hanteert. Dit is een hard fork.

hardf2.png

In het geval van een hard fork is het niet altijd duidelijke welke van de twee blockchains nu de "ware" is. Het kan zijn dat de hele gemeenschap het eens is over een upgrade aan het protocol. In dat geval dient een hard fork als update van het netwerk: iedereen schakelt over en de oude blockchain sterft uit. Wanneer er meningsverschillen zijn binnen de gemeenschap over wat de juiste blockchain is, kan het zijn dat beide blockchains ondersteund worden en verder groeien. In dit geval spreken we van een omstreden hard fork.

Riskant

Er wordt regelmatig gesproken over zowel soft forks als hard forks binnen de Bitcoingemeenschap. Een soft fork is, door compatibiliteit met oudere versies, minder ingrijpend en gevaarlijk dan een hard fork. Aanpassingen aan het Bitcoinprotocol maken via een soft fork heeft daarom ook veelal de voorkeur. Toch kunnen beide aanpakken voor nadelige gevolgen zorgen, zoals we eerder al schreven over de hard fork van Bitcoin Unlimited en recenter over user-activated-soft-fork. Het is daarom belangrijk om ten tijde van een soft- of hard fork je bitcoins veilig te stellen en tijdelijk geen transacties te doen.