V technologii blockchain jsou hard forky a soft forky dva různé způsoby upgradu a aktualizace síťových protokolů. Výrazně se liší v tom, jak jsou implementovány, a tyto rozdíly mohou přímo ovlivnit strukturu a provoz blockchainové sítě.
Tvrdá vidlice
Hard fork je změna pravidla, při které nová verze sítě již není kompatibilní se starou verzí. V důsledku toho se blockchain rozdělí na dvě samostatné větve, které běží paralelně a vzájemně se neovlivňují.
Měkká vidlice
Soft fork je změna pravidla, při které mohou uzly, které přijmou nová pravidla, stále komunikovat s uzly, které neprošly upgradem. V tomto případě zůstává nová verze sítě kompatibilní se starou verzí.
Srovnání
Hard Fork
Příklad: 2016 DAO
Stará verze není kompatibilní s novou sítí
Běží pod různými protokoly
Soft Fork
Příklad: 2017 SegWit
Nová síť zůstává kompatibilní se starou verzí
Funguje pod stejným celkovým protokolovým rámcem
Analýza situace
Tvrdá vidlice
Předpokládejme například, že polovina síťových uzlů chce zvětšit velikost bloku z 2 MB na 3 MB. Pokud je 3MB blok odeslán uzlům staré verze, tyto uzly jej odmítnou, protože jejich pravidla stále definují 2 MB jako maximální velikost bloku. V tomto případě se síť rozdělí na dva samostatné protokoly a každá pobočka může používat jinou měnu. Všechny zůstatky účtů se zkopírují z původního řetězce do nového řetězce. Pokud například uživatel držel 20 BTC před rozvětvením, tento uživatel by pak držel 20 BTC v původním řetězci a 20 nových BTC v novém řetězci.
Měkká vidlice
Pokud je například původní velikost bloku 2 MB a polovina síťových uzlů zavádí přísnější pravidlo omezující velikost bloku na 1 MB, budou upgradované uzly považovat bloky větší než 1 MB za neplatné. Uzly staré verze však mohou bloky stále přijímat a vysílat. V této situaci může nová síť stále pokrýt všechny uzly, aniž by byla omezována různými verzemi pravidel. Bitcoin’s Segregated Witness (SegWit) je typickým příkladem soft forku. Tento upgrade chytrým způsobem zavedl nový blokový a transakční formát. Uzly, které nebyly upgradovány, mohou stále přijímat informace o bloku, ale neúčastní se ověřování nového formátu transakce.
