Bitcoin Unlimited – část třetí

první a druhé části miniseriálu o Bitcoin Unlimited jsme se zaměřili na strukturu tohoto návrhu, způsob jeho fungování a rizika. Nyní je čas na vysvětlení pojmu „Emergent consensus“ do hloubky.

Vznikající shoda

BUIP001 negarantuje, že se stroje shodnou – jsou to uživatelé, kdo nastavuje své uzly, čímž může docházet k rozcházení řetězců (blockchainů), ať už schválně, nebo ne. Bitcoin Unlimited namísto toho spoléhá na koncept „vznikající shody“. To je přesvědčení, že účastníci celého ekosystému mají dostatečné ekonomické důvody k tomu, aby vždy nacházeli kompromisní řešení, čímž se budou všichni scházet na jednom blockchainu a nebude docházet k odloučení a vzniku dlouhých sirotčích řetězců. Pokud to automaticky nezajistí software, pak se od uživatelů čeká, že nastaví svoje uzly tak, aby k tomu došlo. Koneckonců by nikomu neprospělo, kdyby se začaly vršit osiřelé bloky a začalo docházet ke vzniku a následnému zániku vedlejších řetězců. Síť by se tak stala nespolehlivou a mnoho transakcí by nebylo fakticky realizováno – tím by velmi utrpěl potenciál BTC, jako platebního prostředku k nákupu zboží a služeb.

Nicméně je tak trochu záhadou, jak má k takové shodě dojít. Někteří používají k vysvětlení analogie, například k hejnu ptáků, které se chová jako jeden. Není ovšem úplně jasné, jak to souvisí s Bitcoinem, protože hejno ptáků prostě následuje jednoho vůdce, zatímco BTC síť je bez jasného centrálního vedení.

Nyní můžeme přistoupit k vysvětlení, jak si to představují navrhovatelé BUIP001. Jako první krok by měli všichni uživatelé nastavit, jakou velikost bloku budou akceptovat, tj. nastavit svou Excessive Block Size (EB). Poté těžaři, aby uspokojili poptávku trhu, zvýší nebo sníží limit velikosti generovaných bloků (MG) podle většinového EB uživatelů. A nakonec, pokud bude u některých uživatelů přesažena akceptovaná velikost bloku, měli by tito buď změnit své nastavení, nebo nechat spustit svou politiku AD.

Jak bylo vysvětleno v předchozích článcích, má tento scénář vážné trhliny. Když například zlovolný útočník přiměje těžaře si myslet, že síť vyžaduje větší bloky (díky signálům z nastrčených „falešných“ uzlů) a oni se přizpůsobí, budou se tak chovat z hlediska uživatelů nepochopitelně. Pro další uživatele by tak tento scénář představoval zvláštní rozhodování: Buď nastaví své AD na nízkou hodnotu a zůstanou tak v hlavním proudu (ale tím předají svou autonomii těžařům), nebo nastaví své AD výše a tím si sice autonomii zachovají, ale riskují rozdělení sítě.

Mimořetězcová koordinace

Aby se síť vyhnula popsaným problémům, koncept vznikající shody předpokládá, že se konsenzus nemusí nutně dosahovat jen s pomocí nastavení na blockchainu, ale například skrz diskusi na fórech, blozích, konferencích a dalších místech ležících mimo síť. Realisticky vzato by k této koordinaci mimo síť docházet muselo.

Například pool ViaBTC chce zavést dvoumegabajtový limit, ale v současnoti jejich nastavení ukazuje něco jiného. Pokud by jejich nastavení ukazovalo 2MB limit, mohlo by to být zneužito k rozdělení sítě. Namísto toho nastavení ViaBTC ukazuje podporu 1MB blokům, zatímco „miner guide“ na jejich stránkách ukazuje touhu po hard forku směrem ke 2MB blokům, pokud se na tom shodne 75% výkonu sítě.

Takový způsob mimosíťové koordinace ale není ojedinělý. Skupiny lidí již v minulosti skoro vždy dosahovaly shody pomocí diskuse. Takový systém ale obvykle znamená, že daná skupina má vůdce, nebo že se zhroutí a rozdělí na jednotlivé frakce, jakmile dosáhne množství sympatizantů určité velikosti. Jiné populární open-source projekty mohou mít i stovky různých větví.

A to platí zejména v nepřátelském prostředí. Pokud se lidé ve skupině neznají, nebo si nevěří, pak mohou těžko vědět, jestli ostatní mluví pravdu, nebo lžou. Dokonce i jeden oponent může znamenat komunikaci z mnoha různých (falešných) uzlů. Díky tomu může být dosažení shody velmi náročnou záležitostí.

Jde vlastně o problém byzantských generálů, kterému se chtěl Satoshi Nakamoto vyhnout. Ten spočívá v tom, že generálové, kteří velí jednotlivým částem vojska, se musí při obléhání pevnosti shodnout, jestli zaútočí, nebo odtáhnou. Někteří mohou chtít zaútočit, jiní zase odtáhnout, ale všichni se shodnou, že nejhorší variantou by bylo, kdyby každý z nich provedl svoje řešení bez ohledu na ostatní. Problém se komplikuje v případě, že mají mezi sebou zrádce. Hlasuje-li například devět generálů, čtyři jsou pro a čtyři proti, pak zrádce může oběma skupinám tvrdit, že hlasuje s nimi. Jelikož si obě skupiny myslí, že mají převahu a polovičaté řešení je horší, než se přizpůsobit většině, pak během bitvy polovina vojska zaútočí, zatímco druhá ustoupí. Tím pak dojde k nejhoršímu možnému scénáři, totiž rozdělení celého vojska.

Za osmileté historie Bitcoinu bylo prokázáno, že matematicky daný protokol řízený stroji zajišťuje rychlou a účinnou shodu mezi lidmi, kteří se navzájem neznají a nevěří si. Bitcoin je v tomto ohledu imunní vůči problému byzantských generálů. Tvůrci BU ale věří, že ekonomické výhody toho, aby uživatelé zůstali na jednom blockchainu výrazně převáží nad možnými riziky a koncept se tak stane taktéž imunní vůči byzantskému problému. V tomto případě ale nepočítají se zásahy entit, které mají mnoho zdrojů a Bitcoin je jim trnem v oku, protože ho nemohou kontrolovat – například států. Navíc nebylo toto řešení nikdy testované v polních podmínkách. Žádná z alternativních kryptoměn totiž nespoléhá na podobné předpoklady, ani neexistuje veřejně přístupná testovací síť, kde by se dal BUIP001 natvrdo otestovat.

Co Bitcoin Unlimited změní

Předchozí odstavce jasně ukazují, že Bitcoin Unlimited nespoléhá pouze na chladnou výpočetní sílu strojů, ale též na úsudek lidí, kteří budou nejlépe vědět, jak se chovat v zájmu celé sítě. Jeho navrhovatelé tedy spoléhají na mnohem složitější algoritmus rozhodování. Jsou to lidé, kdo se rozhoduje, jestli budou součástí sítě, lidé jí dávají hodnotu a někdy, jako v srpnu 2010 a březnu 2013, kdy se oddělily významné vedlejší řetězce, jsou to lidé, kdo se musí sejít, diskutovat, a určit, který řetězec je platný.

BUIP001 v podstatě nic nemění. Uživatelé si mohou vybrat Bitcoin Unlimited. Software uzlu už na to mohl být pomocí aktualizace připraven předem. A široká shoda se už mohla předtím vytvořit mimo blockchain. Ale uvést tento projekt do života, věřit, že uživatelé budou svůj software skutečně nastavovat – to znamená velkou důvěru v racionalitu a pilnost lidí. Místo aby účastníkovi stačilo se rozhodnout, zda vstoupí do systému a zbytek nechal na strojích, spoléhá tento systém na mnohem aktivnější roli uživatele. Jak jeden z navrhovatelů BU poznamenal v reakci na bug, který na krátkou dobu nedávno rozdělil blockchain: „Takto Bitcoin funguje. Není určen pro lidi, kteří za volantem spí“.

Je pravda ta, že BUIP001 nepřináší nic, co by nebylo možné již předtím. Jako open-source projekt může být BU uživateli a těžaři upraven tak, aby to vyhovovalo všem, nebo alespoň velké většině. Ale to samo o sobě není argument pro podporu BU. Jen proto, že uživatelé mají tu moc, není ještě nikde psáno, že ji musí využít.

Dosud se na blockchainu objevilo několik forků, které způsobily technické problémy. V srpnu 2010 bylo potřeba odstranit fork, aby se síť vyhnula vytvoření miliard BTC jen tak ze vzduchu – tato situace trvala hodinu a tudíž osiřelo asi 6 bloků. Během března 2013 došlo k dalšímu forku, kdy byla síť pro uživatele nespolehlivá a minimálně v jednom případě došlo k dvojímu utracení jedné mince. Několik těžařů pak zcela zbytečně užívalo své cenné zdroje, protože těžili na osiřelém řetězci. Podobná situace nastala v červenci 2015, kdy bylo těžařům doporučeno, aby přešli na plnou validaci těžebních poolů – mnoho z nich se pak ze svých chyb poučilo.

Vývojáři, těžaři i uživatelé v bitcoinové komunitě se snaží vzít si z každé takové situace maximální ponaučení, aby se jim mohli napříště vyhnout.

Paradoxně se zdá, že Bitcoin Unlimited takovéto situace programově zavádí…

 

Budete-li chtít v reálném čase sledovat, který návrh (BU vs SegWit) má v současnosti větší podporu, můžete tak učinit zde.

Související

A máme zde další z nekonečné řady článků o škálovacích řešeních v oblasti Bitcoinu....

PŘIDEJTE SE DO DISKUZE