In de praktijk ontstaat een fork zodra de software die de nodes van een blockchain draait, wordt bijgewerkt, en hoe die update wordt ontvangen bepaalt welk type fork het wordt. Ontwikkelaars stellen wijzigingen voor om uiteenlopende redenen: een bug oplossen, een nieuwe functie toevoegen, de blockgrootte of gaslimieten aanpassen, of een meningsverschil over de toekomstige richting van het netwerk beslechten. Zodra de nieuwe clientsoftware wordt uitgebracht, kiezen node-operators, miners en validators of ze deze draaien, en hun gezamenlijke beslissing bepaalt of de chain verenigd blijft of splitst.
Een hard fork verandert de regels op een manier die oudere software niet kan valideren, waardoor nodes die niet updaten op een aparte, incompatibele chain terechtkomen. Ethereums Merge en de latere Pectra- en Fusaka-upgrades zijn voorbeelden van geplande, niet-omstreden hard forks waarbij de community een gezamenlijke overgang coördineerde. Bitcoin Cash splitste zich daarentegen in augustus 2017 af van Bitcoin na een langdurig meningsverschil over de blokgrootte, waardoor twee permanent gescheiden assets ontstonden uit een gedeelde geschiedenis: een chain split.
Een soft fork maakt de regels strenger in plaats van ze te breken, waardoor niet-bijgewerkte nodes nieuwe blocks nog steeds als geldig herkennen, mits voldoende van het hashpower of de stake van het netwerk de update overneemt.
Omdat de meeste blockchaincode open source is, kan technisch gezien iedereen de codebase forken, maar een fork wordt pas economisch relevant wanneer een aanzienlijk deel van de gebruikers, exchanges en infrastructuur meegaat. Forks brengen reële risico's met zich mee, waaronder replay-aanvallen, versplintering van de community en verwarring over welke chain het "echte" project vertegenwoordigt.