Antwoorden>Leer meer over de basisprincipes van blockchainbeveiliging>Wat is een chain fork?
Wat is een kettingvork?
// Tags
chain forkhard forksoft fork
TL;DR: Er is sprake van een chain fork wanneer de protocolregels van een blockchain uiteenlopen, waardoor er twee of meer mogelijke paden ontstaan die de keten kan volgen. Soft forks introduceren achterwaarts compatibele wijzigingen in de regels die de bestaande regels aanscherpen, zodat niet-geüpgradede nodes nog steeds nieuwe blokken accepteren en het netwerk verenigd blijft. Hard forks introduceren wijzigingen die niet achterwaarts compatibel zijn, wat betekent dat geüpgradede en niet-geüpgradede nodes verschillende regels volgen en de keten permanent opsplitst in twee afzonderlijke netwerken als niet iedereen een upgrade uitvoert. Forks zijn het belangrijkste mechanisme waarmee blockchains evolueren, worden geüpgraded en meningsverschillen binnen de gemeenschap worden opgelost, maar ze brengen ook risico’s met zich mee op het gebied van duplicatie van activa, replay-aanvallen en fragmentatie van het ecosysteem.
De eenvoudige uitleg
Zie een blockchain-fork als een splitsing in de weg. Iedereen heeft tot nu toe hetzelfde pad gevolgd en zich aan dezelfde regels gehouden. Bij de splitsing wordt een nieuwe reeks regels voorgesteld. Als de wijziging achterwaarts compatibel is (een soft fork), kan iedereen op dezelfde weg blijven, ongeacht of ze de nieuwe regels overnemen. De weg wordt iets smaller (strengere regels), maar alle reizigers kunnen er nog steeds gebruik van maken. Als de wijziging niet achterwaarts compatibel is (een hard fork), splitst de weg zich in twee afzonderlijke paden. Reizigers moeten kiezen welk pad ze volgen, en degenen die verschillende paden volgen, kunnen niet langer met elkaar communiceren.
In blockchain-termen verwijst ‘regels’ naar het consensusprotocol: welke transacties geldig zijn, hoe blokken zijn opgebouwd, wat de maximale blokgrootte is, hoe gas wordt berekend en hoe beloningen worden verdeeld. Elke node in het netwerk handhaaft deze regels bij het valideren van blokken. Wanneer de regels veranderen, kunnen nodes die de nieuwe regels hebben overgenomen en nodes die nog steeds de oude regels gebruiken, van mening verschillen over welke blokken geldig zijn. Hoe dit meningsverschil wordt opgelost, bepaalt of de fork een soft fork is (het netwerk blijft samen) of een hard fork (het netwerk splitst zich).
Soft forks
Een soft fork verscherpt de bestaande regels. Blokken die volgens de nieuwe regels geldig zijn, zijn ook geldig volgens de oude regels, maar sommige blokken die volgens de oude regels geldig waren, zijn volgens de nieuwe regels niet langer geldig. Dit betekent dat geüpgradede nodes een strengere validatie toepassen, terwijl niet-geüpgradede nodes de nieuwe blokken nog steeds accepteren omdat deze niet in strijd zijn met de oude regels.
De Segregated Witness (SegWit)-upgrade Bitcoin in 2017 is het klassieke voorbeeld van een soft fork. SegWit veranderde de manier waarop transactiehandtekeningen werden opgeslagen, waardoor de effectieve omvang van transacties werd verkleind en het Lightning Network mogelijk werd gemaakt. Nodes die niet waren geüpgraded, accepteerden nog steeds SegWit-blokken, omdat deze blokken geldig waren volgens de oude regels voor de maximale omvang. Geüpgradede nodes hanteerden aanvullende regels voor de manier waarop handtekeninggegevens werden georganiseerd, maar dit was onzichtbaar voor oude nodes.
Soft forks worden over het algemeen als veiliger beschouwd dan hard forks, omdat ze geen risico op een splitsing van de keten met zich meebrengen. Zolang een meerderheid van de miners of validators de nieuwe regels overneemt, blijft de keten één geheel. Nodes die niet zijn geüpgraded, begrijpen of valideren de nieuwe functies wellicht niet, maar ze wijzen de blokken niet af, waardoor het netwerk één enkele keten blijft. Het nadeel van soft forks is dat ze beperkt zijn in wat ze kunnen bereiken. Omdat nieuwe regels achterwaarts compatibel moeten zijn, zijn fundamentele protocolwijzigingen (zoals het aanpassen van de blokstructuur, het wijzigen van het accountmodel of het aanpassen van het consensusmechanisme) doorgaans onmogelijk te implementeren als soft forks.
Hard forks
Een hard fork versoepelt of wijzigt de regels ingrijpend, waardoor nieuwe blokken volgens de oude regels ongeldig worden. Knooppunten die niet zijn geüpgraded, wijzen de nieuwe blokken af, en het netwerk splitst zich in twee ketens: één die de nieuwe regels volgt en één die de oude regels volgt. Beide ketens delen dezelfde geschiedenis tot aan het splitsingspunt en lopen vanaf dat punt uiteen.
De meeste hard forks zijn geplande en gecoördineerde upgrades waarbij de hele gemeenschap ermee instemt om over te stappen op de nieuwe regels. De overgang Ethereum van Proof of Work naar Proof of Stake (The Merge, september 2022) was een hard fork. Elke node-beheerder, staking-aanbieder, beurs en applicatieontwikkelaar werkte samen om hun software vóór het aangewezen blok te upgraden. Omdat de gemeenschap eensgezind was, kreeg de oude Proof of Work-keten (kortstondig op de markt gebracht als „EthereumPoW“) minimale steun en raakte deze al snel in de vergetelheid.
De regelmatige netwerkupgrades Ethereum(Shanghai, Dencun en andere) zijn eveneens hard forks, die worden geactiveerd bij vooraf vastgestelde bloknummers of tijdstempels. Het hele ecosysteem wordt van tevoren geüpgraded en de oude regels worden afgeschaft. Deze gecoördineerde hard forks vormen routineonderhoud en zijn geen omstreden gebeurtenissen.
Omstreden hard forks
The most dramatic forks occur when the community cannot agree on the direction of the protocol, and both sides have enough support to sustain an independent chain. These contentious hard forks result in two living blockchains, each with its own community, miners/validators, token value, and development team.
De bekendste omstreden fork is Ethereum . In 2016 werd misbruik gemaakt van een bug in het smart contract van The DAO, waardoor voor miljoenen dollars aan ETH werd gestolen. De Ethereum debatteerde over de vraag of er een hard fork moest plaatsvinden om de diefstal ongedaan te maken. De meerderheid steunde de fork, waardoor een nieuwe keten ontstond ( Ethereum huidige Ethereum) waarin de gestolen middelen werden teruggegeven. Een minderheid verwierp de fork om filosofische redenen (met het argument dat „code is law“ en dat de blockchain nooit met terugwerkende kracht mag worden gewijzigd), en zij bleven de oorspronkelijke keten gebruiken, die Ethereum (ETC) werd. Beide ketens bestaan vandaag de dag nog steeds, waarbij Ethereum overweldigend groter en waardevoller Ethereum .
Bitcoin is een andere belangrijke, omstreden fork. In 2017 voerde de Bitcoin een debat over hoe de transactiedoorvoer kon worden verhoogd. De ene factie was voorstander van het vergroten van de blokgrootte van 1 MB naar 8 MB. Een andere factie was tegen grotere blokken en gaf de voorkeur aan de SegWit-softfork en off-chain schaalbaarheidsoplossingen zoals het Lightning Network. Het meningsverschil was onoverbrugbaar en in augustus 2017 voerde de ‘big-block’-fractie Bitcoin uit, Bitcoin Bitcoin (BCH) ontstond. BCH splitste zich vervolgens in 2018 opnieuw, wat leidde tot Bitcoin en Bitcoin .
Wat gebeurt er tijdens een fork?
Wanneer er een hard fork plaatsvindt, bezit elke houder van de oorspronkelijke cryptovaluta plotseling hetzelfde bedrag op beide ketens. Als je vóór de splitsingEthereum 10 ETH bezat, had je 10 ETH op de nieuwe keten en 10 ETC op de oude keten. Deze duplicatie van activa kan tot economische complexiteit leiden, waaronder replay-aanvallen waarbij een transactie die op de ene keten geldig is, opnieuw wordt uitgezonden op de andere keten.
Voor ontwikkelaars betekent een fork dat ze moeten beslissen welke keten ze gaan ondersteunen (of dat ze beide gaan ondersteunen), dat ze de node-software moeten bijwerken, dat ze moeten controleren of smart contracts zich volgens de nieuwe regels correct gedragen, en dat ze de wijzigingen aan gebruikers moeten doorgeven. Voor node-beheerders vereist een fork dat de client-software vóór het fork-blok wordt geüpgraded om de beoogde keten te volgen. Nodes die niet worden geüpgraded, blijven op de oude keten achter, leveren verouderde gegevens en kunnen ervoor zorgen dat applicaties niet meer werken.
Wat is het verschil tussen een soft fork en een hard fork?
Het belangrijkste verschil komt neer op achterwaartse compatibiliteit. Bij een soft fork worden de regels op een manier aangescherpt die door oudere software nog steeds wordt geaccepteerd, waardoor het netwerk één keten blijft. Bij een hard fork worden de regels op een manier gewijzigd die door oudere software wordt afgewezen, waardoor het netwerk in twee ketens kan splitsen. In de onderstaande tabel worden de twee naast elkaar vergeleken.
Kenmerk
Soft fork
Hard fork
Wijziging van de regels
Verscherpt de bestaande regels
Versoepelt of herdefinieert regels
Achterwaarts compatibel
Ja
Nee
Niet-geüpgradede knooppunten
Nog steeds nieuwe blokken accepteren
Nieuwe blokken afwijzen
Ketenresultaat
Het netwerk blijft één geheel
Het netwerk kan in twee ketens uiteenvallen
Nieuw object aangemaakt
Nee
Ja, houders ontvangen munten op beide blockchains
Voorbeeld
Bitcoin (2017)
De splitsing tussen The Merge en Ethereum
Beide soorten forks zijn manieren waarop een blockchain in de loop van de tijd wordt geüpgraded. Soft forks brengen minder risico met zich mee, maar zijn beperkt in omvang, terwijl hard forks ingrijpende protocolwijzigingen mogelijk maken, maar wel vereisen dat iedereen gelijktijdig een upgrade uitvoert.
Wat is een onbedoelde of tijdelijke fork?
Niet elke fork is een opzettelijke protocolwijziging. Onbedoelde forks doen zich voor wanneer twee validators vrijwel tegelijkertijd concurrerende blokken produceren, waardoor het netwerk kortstondig verdeeld raakt over welk blok de keten voortzet. Het netwerk lost dit binnen één of twee blokken op door te convergeren naar de zwaarste geldige keten, waarna het verweesde blok wordt verwijderd. Deze kortstondige splitsing hangt nauw samen met een blockchain-reorganisatie.
Deze tijdelijke vertakkingen zijn normaal en meestal onzichtbaar voor gebruikers, maar applicaties die onbevestigde blokken als afgewikkeld beschouwen, kunnen transacties weergeven die later verdwijnen. Wachten op definitieve bevestiging voordat geld als definitief wordt beschouwd, is de standaardmaatregel om te voorkomen dat er actie wordt ondernomen op basis van een blok dat bij een reorganisatie wordt verwijderd.
Wat zijn replay-aanvallen tijdens een fork?
Wanneer een hard fork twee ketens creëert die dezelfde geschiedenis delen, kan een transactie die voor de ene keten is ondertekend ook geldig zijn op de andere, omdat de rekening, het saldo en het ondertekeningsschema op het splitsingspunt identiek zijn. Een aanvaller kan uw transactie op de tweede keten opnieuw uitzenden (replay) om geld over te maken dat u niet van plan was over te maken. Goed beheerde forks voegen replay-bescherming toe, zoals een unieke keten-ID, zodat een transactie alleen geldig is op het beoogde netwerk. Beheerders van wallets en nodes moeten controleren of replay-bescherming is ingeschakeld voordat ze transacties uitvoeren na een omstreden splitsing.
Hoe bereiden ontwikkelaars zich voor op een blockchain-fork?
De voorbereiding op een geplande fork draait vooral om timing en testen. De onderstaande checklist bevat de stappen die de meeste teams volgen in de aanloop naar een geplande hard fork.
Stap
Wat te doen
Waarom dit belangrijk is
Houd het schema bij
Let op het fork-blok of de tijdstempel
Als je dit overslaat, blijf je aan de oude ketting hangen
Klanten upgraden
Werk de software van het knooppunt van tevoren bij
Oude klanten wijzen nieuwe blokken af
Test op testnet
Contracten toetsen aan de nieuwe regels
Detecteert ingrijpende wijzigingen in een vroeg stadium
Bevestig de beveiliging tegen herhaling
Controleer of de keten-ID uniek is
Voorkomt cross-chain replay
Gebruik een beheerde infrastructuur
Upgrades uitbesteden aan een dienstverlener
Voorkomt single points of failure
Teams die gebruikmaken van beheerde RPC hoeven het grootste deel van dit werk niet te doen, omdat de provider de knooppunten vóór de activering bijwerkt. Voor gebeurtenisgestuurde apps, Webhooks en Streams leveren post-fork-gegevens zonder handmatig clientbeheer.
Veelgestelde vragen
Krijg je gratis munten bij een hard fork?
Als een hard fork een tweede, blijvend bestaande blockchain creëert, beschikken houders van het oorspronkelijke activum op het moment van de fork over een gelijkwaardig saldo op de nieuwe blockchain. Op deze manier hebben houders Ethereum en Bitcoin munten ontvangen. Het nieuwe activum heeft alleen waarde als de afgesplitste blockchain daadwerkelijke steun van de gemeenschap en de markt krijgt, wat bij de meeste forks nooit het geval is.
Wat is veiliger: een soft fork of een hard fork?
Soft forks brengen over het algemeen minder risico met zich mee, omdat ze het netwerk verenigd houden en niet vereisen dat alle deelnemers tegelijkertijd een upgrade uitvoeren. Hard forks zijn krachtiger maar risicovoller, aangezien knooppunten die geen upgrade uitvoeren, achterblijven op de oude keten en omstreden splitsingen tot versnippering van de gemeenschap kunnen leiden.
Wat is het verschil tussen een fork en een reorg?
Een fork is een afwijking in de protocolregels of de ketenhistorie, terwijl een reorg inhoudt dat het netwerk recent toegevoegde blokken vervangt door een concurrerende tak. Een korte, onbedoelde fork wordt opgelost door een reorg, terwijl een hard fork een permanente wijziging in de regels is die twee blijvende ketens kan creëren.
Kan een blockchain-fork ongedaan worden gemaakt?
Een geplande of omstreden hard fork is definitief zodra beide ketens onafhankelijke ondersteuning hebben, omdat elk netwerk volgens zijn eigen regels blokken blijft produceren. Onbedoelde forks worden daarentegen automatisch binnen één of twee blokken opgelost, doordat het netwerk weer samenkomt in één enkele canonieke keten.
Welke invloed heeft een fork op mijn applicatie?
Tijdens een geplande fork moet je node de bijgewerkte software draaien om de canonieke keten te blijven volgen, anders zal deze verouderde gegevens weergeven. Door gebruik te maken van een beheerde RPC-provider die fork-overgangen afhandelt, blijven je eindpunten tijdens de upgrade canonieke gegevens teruggeven zonder dat je daar zelf iets voor hoeft te doen.
Hoe Quicknode forks
Quicknode's infrastructure team monitors all planned hard forks across 80+ supported networks and ensures that nodes are upgraded before fork activation. This means developers using Quicknode do not need to manage client upgrades themselves or risk their applications ending up on the wrong side of a fork. When a chain undergoes a planned hard fork, Quicknode handles the transition seamlessly, and your RPC endpoints continue serving data from the canonical, upgraded chain.
Bij omstreden forks waarbij beide ketens blijven functioneren, Quicknode de steun vanuit de gemeenschap, de beveiliging en de vraag vanuit de ontwikkelaarsgemeenschap alvorens te beslissen of de nieuwe keten als ondersteund netwerk wordt toegevoegd. Dankzij de multi-chain-infrastructuur Quicknode is het toevoegen van ondersteuning voor een nieuw afgesplitste keten een infrastructurele beslissing, en geen ontwikkelingslast voor klanten.
Quicknode Streams verwerkt fork-overgangen soepel door gegevens in definitieve volgorde te leveren, waardoor wordt gegarandeerd dat tijdelijke onduidelijkheden in de keten tijdens de fork-activeringsperiode er niet toe leiden dat onjuiste gegevens aan uw pijplijn worden geleverd. De ingebouwde reorg-afhandeling dekt de randgevallen die zich kunnen voordoen tijdens fork-activeringsblokken.