092015–2017

Blocksize War: kdo smí změnit pravidla Bitcoinu

Spor nezačal u hrdinů a padouchů, ale u plných bloků. Skončil několika řetězci a praktickou odpovědí: hashpower, firmy ani vývojáři sami neurčují, co musí uzel přijmout.

Jeden megabajt vypadal jako technický parametr, který vyřeší rychlejší počítače a jeden slušný benchmark. Do roku 2015 se z něj stal spor o budoucí podobu peněz i o lidi, kteří smějí říct, co je Bitcoin. Gavin Andresen a Mike Hearn prosazovali výrazně větší bloky. Vývojáři jako Pieter Wuille a Gregory Maxwell varovali před cenou, kterou by platili provozovatelé uzlů. Těžaři, burzy, investoři i anonymní uživatelé přidávali vlastní tlak. Blocksize War nebyla jednou hádkou ani soubojem dvou táborů. Byla to dvouletá série návrhů, ultimát, konferencí, softwarových vydání a termínů, během níž každá skupina zjistila rozdíl mezi tím, co může ovlivnit, a tím, co může vynutit.

01

Plné bloky a dvě různé obavy

S rostoucím používáním se bloky blížily limitu a poplatky stoupaly. Zastánci větších bloků varovali, že drahé transakce vytlačí běžné platby a z Bitcoinu udělají síť pro bohaté. Zastánci opatrnějšího postupu varovali, že rychlý růst dat a nároků oslabí možnost provozovat full node doma a soustředí ověřování do datacenter.

Obě strany mluvily o decentralizaci, ale měřily ji jinak. Jedna počtem lidí, kteří si mohou dovolit transakci; druhá počtem lidí, kteří si mohou dovolit nezávisle kontrolovat pravidla. Návrhy Bitcoin XT, Classic a později Unlimited slibovaly přímé navýšení. Vývoj kolem SegWit hledal změnu formátu transakcí a efektivnější využití prostoru.

Jednomegabajtový limit přitom nebyl přírodním zákonem ani původním cílem Bitcoinu. Satoshi jej zavedl jako ochranu mladé sítě před příliš velkými bloky. Spor proto nebyl o tom, zda se smí změnit jediná posvátná konstanta, ale jak rychle lze růst, aniž by se ověřování přesunulo k lidem s nejrychlejším připojením, největšími disky a nejdelší trpělivostí při prvotní synchronizaci. I malá technická změna nesla dlouhodobou představu o tom, kdo bude schopen říct: pravidla jsem si ověřil sám.

Andresenův BIP101 navrhoval skok na osm megabajtů a poté předvídatelný růst limitu. Hearn jej vložil do klienta Bitcoin XT a oba veřejně vyzvali těžaře a uživatele, aby dali změně podporu. Pro ně byla plná fronta transakcí porušením původního příslibu levné elektronické hotovosti. Pokud by nový uživatel musel za malou platbu soutěžit vysokým poplatkem, síť by podle nich prohrála s kartami dřív, než získá běžný život.

Na druhé straně nestáli lidé, kteří chtěli Bitcoin udržet malý. Pieter Wuille navrhl Segregated Witness, Gregory Maxwell a další vývojáři mluvili o druhých vrstvách a efektivnějším využití každého bajtu. Jejich obava mířila o několik kroků dopředu: větší blok dnes znamená vyšší nároky na připojení, ukládání a ověřování navždy. Když domácí uzel přestane být praktický, uživatel začne věřit serveru někoho jiného. Oba tábory chránily přístupnost; každý ji viděl na jiné straně transakce.

02

Dohoda z New Yorku

V květnu 2017 oznámila skupina velkých firem a těžařů New York Agreement. Plán SegWit2x spojoval rychlou aktivaci SegWitu s následným hard forkem na dvoumegabajtový základní blok. Signatáři uváděli velkou část hashpoweru i objemu transakcí a vystupovali, jako by koordinace hlavních podniků mohla spor uzavřít.

Dohoda však nevázala uživatele, kteří provozovali jiný software. Kritici odmítali především myšlenku, že uzavřená schůzka může jménem sítě slíbit nekompatibilní změnu. Těžaři mohou navrhovat bloky a firmy jim dát značku; uzel je stále může označit za neplatné.

Původní oznámení mluvilo o 58 společnostech z 22 zemí a o 83,28 procenta hashpoweru. Ta čísla měla váhu, ale neměřila souhlas nezávislých uzlů ani lidí, kteří drželi bitcoin mimo služby signatářů. Spojení SegWitu a pozdějšího hard forku navíc vytvořilo politický obchod: každá strana měla dostat část toho, co chtěla. Jakmile se první část aktivovala a druhá zůstala sporná, ukázalo se, že balíček nemá žádnou instituci, která by jeho dokončení vynutila.

Dohodu organizoval zakladatel Digital Currency Group Barry Silbert během konference Consensus v New Yorku. U stolu seděli představitelé burz, peněženek, platebních firem a těžebních společností; implementaci SegWit2x vedl Jeff Garzik. Pro obchodníky vyčerpané dlouhým sporem to působilo jako dospělý kompromis: vlivní lidé se konečně dohodli na termínu a napsali pod něj své firmy. Jenže Bitcoin neměl registr členů, v němž by jejich podpisy představovaly kvalifikovanou většinu.

Kritici reagovali nejen na dva megabajty, ale na způsob rozhodnutí. Adam Back, Gregory Maxwell a další varovali, že nekompatibilní změna s krátkým termínem staví uživatele před hotovou věc. Signatáři kontrolovali služby, přes které procházelo mnoho lidí, a těžaři mohli dodat většinu hashpoweru. Nemohli však na dálku změnit validační pravidla uzlu běžícího v cizím bytě. Dohoda tak vytvořila podivnou situaci: největší firmy mohly oznámit, co budou nazývat Bitcoinem, ale majitel každého uzlu si ponechal vlastní tlačítko odmítnout.

03

UASF, BIP91 a řetězec, který se nerozštěpil

BIP148 navrhl user-activated soft fork: od 1. srpna měly zapojené uzly odmítat bloky, které nesignalizují SegWit. Byl to riskantní tlak. Pokud by ekonomicky významná část sítě zůstala jinde, mohly vzniknout konkurenční historie nebo chaotické reorganizace.

Ještě před rozhodným dnem však těžaři prostřednictvím BIP91 začali signalizovat podmínky vedoucí k uzamčení SegWitu. Nelze proto poctivě připsat výsledek jedinému aktérovi: hrozba UASF změnila pobídky, těžaři koordinovali signalizaci a existující uzly prosazovaly pravidla kompatibilního soft forku. SegWit se aktivoval 24. srpna 2017.

Uzly s BIP148 neuměly SegWit samy vytěžit ani přinutit ostatní, aby jej používali. Mohly pouze předem slíbit, že po termínu nebudou přijímat určitou skupinu bloků. Síla tohoto slibu závisela na tom, zda jej budou následovat burzy, obchodníci, peněženky a držitelé, jejichž mince dávají řetězci ekonomický význam. UASF tak fungoval jako veřejný závazek v koordinační hře: jeho účinek nevycházel z příkazu, ale z věrohodné možnosti, že neposlušný řetězec bude mít hashpower a zároveň méně kupujících.

Návrh BIP148 zveřejnil vývojář pod pseudonymem Shaolinfry. Lidé si začali nasazovat čepice s písmeny UASF a 1. srpnu říkali den nezávislosti. Za memy však stála vážná sázka. Kdyby těžaři pokračovali bez signalizace a významná část ekonomiky následovala BIP148, mohly se na čas rozdělit historie a uživatelé by nevěděli, který příchozí převod zůstane platný. Aktivista provozující uzel tedy neriskoval jen slogan; riskoval vlastní schopnost bezpečně přijímat peníze.

BIP91 od Jamese Hilliarda poskytl cestu, jak se těžaři mohli koordinovat ještě před termínem a uzamknout signalizaci SegWitu při nižším prahu. Když se podpora náhle zvedla, každá strana výsledek četla po svém. Zastánci UASF viděli důkaz, že tlak uživatelů změnil pobídky. Těžaři poukazovali na vlastní koordinaci a signatáři New York Agreement na svůj kompromis. Historie neposkytuje kontrolní experiment, v němž jednu skupinu odstraníme. Jisté je, že hrozící konflikt přiměl všechny jednat dřív.

04

Bitcoin Cash odešel, SegWit2x ustoupil

Dne 1. srpna se oddělil Bitcoin Cash s většími bloky a vlastními pravidly. Nebyl to přepis původních uzlů, ale nový nekompatibilní řetězec se společnou historií do bodu rozdělení. Trh a uživatelé pak mohli obě aktiva oceňovat a provozovat odděleně.

Druhá část New York Agreement měla aktivovat dvoumegabajtový hard fork v listopadu. Jeho organizátoři jej 8. listopadu pozastavili, protože přiznali, že nezískali dostatečný konsensus pro čistý upgrade. Vysoká signalizace hashpoweru se neproměnila v jistotu, že ekonomika přijme nové bloky jako Bitcoin.

V okamžiku oddělení sdílely oba řetězce dosavadní historii a stejný obraz nevypořádaných mincí. Kdo ovládal klíče před rozdělením, mohl po něm za určitých podmínek nakládat s odpovídajícími aktivy na obou stranách. Od tohoto bodu už ale každý řetězec přijímal jiné budoucí bloky a budoval vlastní síťový efekt. Rozštěpení nepřinutilo staré uzly změnit definici platné transakce; poskytlo zastáncům odlišných pravidel možnost nést náklady i výsledek své volby.

Bitcoin Cash dal zastáncům větších bloků něco, co nekonečná debata nemohla: fungující řetězec podle jejich pravidel. Burzy mu musely přidělit ticker, peněženky řešit ochranu proti opakování transakcí a držitelé se rozhodnout, zda nové mince prodají, podrží nebo ignorují. Spor se částečně přesunul z mailing listů na trh. Cena, hashpower a používání obou řetězců začaly vyjadřovat průběžné rozhodnutí, nikoli jednorázové hlasování o jediném vítězi.

SegWit2x měl být jiný. Jeho zastánci chtěli, aby dvoumegabajtový řetězec zdědil značku BTC a stal se pokračováním, ne vedlejší větví. Jak se listopad blížil, chyběla široká podpora v klientském softwaru i jasný plán, jak bezpečně zvládnout dva řetězce. Dne 8. listopadu Mike Belshe, Wences Casares, Jihan Wu, Jeff Garzik, Peter Smith a Erik Voorhees oznámili odklad. Přiznali, že bez větší shody by pokračovali v rozdělení komunity, kterou chtěli sjednotit.

05

Moc je rozdělená, nikoli nepřítomná

Z války se často dělá čisté vítězství uživatelů. Přesnější závěr je složitější. Vývojáři ovládají pozornost a kvalitu kódu, těžaři pořadí bloků, firmy likviditu a značku, uživatelé volbu softwaru a protistran. Žádná skupina nemá sama všechny páky; některé jich však mají podstatně víc než jiné.

Bitcoin tehdy nehlasoval jedním číslem. Koordinoval se přes kód, veřejné argumenty, obchodní rozhodnutí, termíny a ochotu riskovat rozdělení. Výsledek nebyl tichý ani levný. Právě v tom je jeho význam: pravidla zůstala stejná ne proto, že spor neexistoval, ale protože ke změně nestačilo přesvědčit jen nejviditelnější místnost.

Nakamotův konsensus rozhoduje o pořadí transakcí uvnitř společně přijatých pravidel; není to parlament, který hlasováním hashpoweru přepisuje pravidla samotná. Těžař může vytvořit blok s obrovským množstvím práce, ale uzel jej zahodí, pokud porušuje jeho software. Volba pravidel proto probíhá mimo samotný blockchain: v kódu, verzích klientů, cenách, smlouvách a v tom, s kým jsou lidé ochotni obchodovat. Blocksize War neobjevila jednoduchou ústavu Bitcoinu. Ukázala systém, v němž je změna možná, ale nikdo nemá zaručené právo označit ji za konsensus.

Lidé na všech stranách zaplatili osobní cenu. Mike Hearn v lednu 2016 projekt veřejně opustil a označil experiment za neúspěšný. Gavin Andresen ztratil dřívější postavení v Bitcoin Core. Vývojáři čelili kampaním, firmy bojkotu a jednotlivci útokům, které z technické neshody dělaly zkoušku charakteru. Vítězný příběh často tyto lidi zploští na zrádce a hrdiny. Přesnější je přiznat, že mnozí chránili rozdílnou představu téhož cíle a někdy používali nátlak, který sami považovali za nutnou obranu.

Po válce zůstalo slovo konsensus opatrnější. Už neznamenalo prostý počet těžařských signálů, seznam firem ani souhlas hlavních vývojářů. Znamenalo stav, kdy dost aktérů považuje změnu za bezpečnější než rozdělení a ti ostatní nemají vůli či sílu udržet konkurující pravidla. To není elegantní hlasovací systém. Je to nepřetržité vyjednávání, v němž možnost odejít dává váhu i lidem bez titulu — a zároveň nikdy nezaručuje, že jejich řetězec bude mít cenu, uživatele nebo bezpečnost.

Atlas

Postavy a pojmy v Atlasu

2017Válka o velikost blokůBIP141SegWitNODEFull NodeFORK↓Soft ForkFORK↑Hard ForkRULESKonsensuální pravidlaCOREBitcoin CoreGAVINGavin AndresenHEARNMike HearnSIPAPieter WuilleGMAXGregory MaxwellBACKAdam BackGARZIKJeff Garzik
  1. 01
    BIP 101 — Increase maximum block size

    Jeden z hlavních formálních návrhů automatického růstu limitu.

  2. 02
    BIP 141 — Segregated Witness

    Technická specifikace SegWitu a block weight.

  3. 03
    Digital Currency Group — Bitcoin Scaling Agreement at Consensus 2017

    Původní text New York Agreement a seznam signatářů.

  4. 04
    SegWit2x Working Group — archived repository

    Dobová dokumentace cíle a implementace SegWit2x.

  5. 05
  6. 06
    BIP 91 — Reduced threshold SegWit MASF

    Mechanismus těžařské koordinace, který uzamkl signalizaci před 1. srpnem.

  7. 07
    Bitcoin ABC — UAHF technical specification

    Dobová specifikace oddělení Bitcoin Cash.

  8. 08
    SegWit2x mailing list — Onwards

    Oznámení z 8. listopadu 2017, že hard fork nemá dostatečný konsensus.

Další příběh · 10FTX: zůstatek, který nebyl tam, kde měl být