Hard Fork je změna pravidel platnosti bloků či transakcí, která není zpětně kompatibilní se starými uzly. Ke sledování nového nekompatibilního řetězce musí uzel přijmout nová pravidla. Samotné oznámení změny ani větší těžební výkon jej k tomu nepřinutí.
Anna a Pavel provozují Full Node, tedy počítač, který samostatně kontroluje bitcoinová pravidla. Anna přijme nový software dovolující větší bloky; Pavel si ponechá původní limit. Dorazí blok, který splňuje nové podmínky, ale starý limit překračuje. Anna jej přijme, Pavel odmítne. Nejde o poruchu spojení: jejich programy se neshodnou na tom, co smí být součástí společné historie. To je praktický význam Hard Fork. Označení „upgrade“ nepřesvědčí Pavlův počítač, aby vlastní pravidlo ignoroval. Mohou dál existovat dvě větve, pokud pro každou někdo vytváří bloky a lidé ji používají. Pokud účastníci přejdou na jednu sadu pravidel, nemusí zůstat dvě živé sítě. [1]
Starý uzel odmítne nekompatibilní blok i větev, která na něm staví. To ale neznamená, že se navždy zasekne. Jestliže těžaři pokračují v tvorbě jiné větve podle původních pravidel, může přijímat její bloky dál. Bez takového pokračování zůstane u posledního pro něj platného bloku. Rozhodující je obsah pravidel jeho softwaru, nikoli počet lidí, kteří změnu podporují. Pro přechod na nekompatibilní větev musí provozovatel pravidla vědomě změnit. [1]
Bitcoin Cash se oddělil od Bitcoinu ve výšce 478 559 dne 1. srpna 2017. Přijal pravidla umožňující větší bloky, než tehdejší bitcoinové uzly přijímaly, a vytvořil vlastní pokračující řetězec. Bitcoinové uzly bloky platné pouze podle pravidel BCH odmítly a uzly BCH pokračovaly podle vlastních pravidel. Vznikla tak samostatná síť; nešlo o aktualizaci, která by Bitcoin jako celek nahradila. [3] [4]
Představte si v řetězci záznam o přijaté částce, která ještě nebyla utracena: takový výstup transakce Bitcoin označuje jako UTXO. Větve se společnou minulostí zdědí tentýž záznam, pak jej ale každá spravuje samostatně. Pokud ovládáte potřebné klíče a obě sítě příjem dál uznávají, obvykle můžete nakládat s odpovídajícími mincemi na obou. Neznamená to dvojnásobnou hodnotu: jde o dvě různá aktiva s vlastní poptávkou. U prostředků na burze navíc záleží na tom, zda a jak burza mince z druhé sítě připíše. [4] [6]
Máte-li mince v obou větvích, můžete chtít zaplatit jen v jedné. Bez ochrany ale někdo může tutéž podepsanou transakci převzít a odvysílat také ve druhé, kde může rovněž platit. Tomu se říká replay. Proto je třeba ověřit ochranu konkrétní sítě a podporu peněženky. Například změna sighash, tedy pravidel pro data zahrnutá do podpisu, může transakci svázat s daným řetězcem. Jiný vzhled adres pomáhá rozlišit sítě, sám však kryptografickou ochranu proti replay nezajišťuje. [3]
Aktivace je stanovený okamžik začátku používání nových pravidel. Výška bloku označuje jeho pořadí v řetězci. Pevné datum, výška bloku nebo signalizace těžařů mohou koordinovat ty, kteří aktualizaci přijali, ale nemohou změnit software uzlu, který jej nepřijal. Zůstanou-li ekonomicky významní účastníci na obou sadách pravidel, mohou pokračovat oba řetězce. Při plánování přechodu na Hard Fork je proto třeba počítat i s možností rozdělení sítě. [1]
Governance zde znamená, jak se účastníci rozhodují o změnách. Ticker je obchodní zkratka aktiva, například BTC nebo BCH. Vývojáři mohou vydat kód, těžaři přesměrovat těžební výkon, firmy zvolit ticker a pravidla vkladů a uživatelé vybrat software. Nic z toho samo nezmění pravidla, podle kterých ostatní uzly ověřují bloky. Trvalé rozdělení může přetrvat, pokud dostatek nezávislých účastníků dobrovolně udržuje a oceňuje obě sady pravidel; ne každá nekompatibilní změna musí vytvořit dvě trvale živé sítě. Označení jedné větve za „aktualizaci“ vyjadřuje postoj jejích zastánců; samo o sobě není pravidlem pro ověřování bloků. [1]
Síť se může rozdělit i bez záměru vytvořit novou měnu. V březnu 2013 některé starší uzly nedokázaly zpracovat blok s neobvykle velkým počtem vstupů transakcí. Narazily na limit databázových zámků, které brání souběžným operacím měnit stejná data. Novější verze 0.8 používala jinou databázi a blok přijala. Těžařské pooly BTC Guild a Slush se vrátily k verzi 0.7 a začaly těžit na větvi přijímané i staršími uzly. Když tato větev získala více kumulované práce, připojily se k ní i novější uzly. Šlo o nápravu nechtěné neshody softwaru, nikoli o dlouhodobé budování samostatné sítě jako u Bitcoin Cash. [2]
Soft Fork zpřísňuje dosavadní pravidla. Blok, který splní nová omezení, proto vyhovuje i pravidlům starým. Starý uzel jej může přijmout, i když nová omezení sám nekontroluje. U Hard Fork to neplatí: blok přijatelný pro nový software může původní pravidla porušovat. K jeho přijetí musí provozovatel starého uzlu změnit pravidla svého softwaru. Ani Soft Fork nezaručuje, že se síť nerozdělí; pokud těžaři vytvoří blok porušující nové omezení, staré a nové uzly jej mohou posoudit odlišně. [1]
Označme V(stará) všechny bloky přijímané původními pravidly. Hard fork nastane, když nový software přijme alespoň jeden blok mimo tuto množinu, takže V(nová) není podmnožinou V(stará). Často jde o rozšíření platnosti, ale rozhodující je kompatibilita: jestli může být blok platný pro nový uzel neplatný pro starý, starý validátor nemůže nový řetězec sledovat beze změny pravidel. [1]
Chainwork vyjadřuje souhrnnou práci prokázanou těžbou bloků celé větve. Hashrate naproti tomu označuje rychlost těžebních výpočtů. Uzel vybírá větev s největší kumulovanou prací pouze mezi řetězci, které vyhovují jeho pravidlům. Pokud některý blok tato pravidla poruší, větší množství práce jej nezachrání. Pavel z úvodního příkladu tedy nepřijme příliš velký blok jen proto, že na něm těží většina těžařů. Práce může rozhodnout mezi platnými větvemi; nemůže rozhodnout za provozovatele uzlu, jaká pravidla má používat. [1]
Začněte ověřením sítě, podporované peněženky a ochrany proti replay. Stejný název mince nebo podobná adresa nestačí. Seed Phrase, tedy záložní slova k peněžence, nezadávejte do neznámé služby slibující vyzvednutí mincí. Provozovatel vlastního uzlu může navíc zkontrolovat verzi softwaru, připojené uzly, poslední přijatý blok a otisk bloku v místě rozdělení. Otisk se nazývá hash. Tyto údaje lze porovnat s dokumentací příslušné sítě; údaj webového průzkumníku sám nenahradí vlastní kontrolu pravidel. [5] [6]
Pro nejúplnější obraz čtěte toto heslo společně s Soft Fork, Konsensuální pravidla, Full Node, Reorg, Válka o velikost bloků, UTXO. Opačným směrem na něj odkazují také Soft Fork, BIP (Bitcoin Improvement Proposal), Reorg, Válka o velikost bloků.