“Posuňte datum zpět o dva měsíce.” OP_EVAL zatím ještě není připraven. “
Byl to verdikt, kterému se Gavin Andresen tak dlouho snažil zabránit. S jedinou výtkou zaslanou z klávesnice Russella O’Connora byla měsíc trvající snaha o upgrade bitcoinu – první po ukončení zakladatele Satoshi Nakamota – náhle zastavena před implementací.
Jak odhalil O’Connor, navrhovaný příkaz – označený Andresenem jako „nejrychlejší cesta“ k bezpečnějším bitcoinovým peněženkám – by mohl být zneužit k vytvoření transakcí, které by software poslaly do nekonečné výpočetní smyčky ve snaze je ověřit.
Stručně řečeno, OP_EVAL by mohl být zneužit k havárii bitcoinových uzlů, a tím i bitcoinové sítě.
“Trvalo mi celých 70 minut, než jsem hledal tuto chybu,” napsal O’Connor a odsoudil proces, který spojil – a téměř tlačil – špatný kód do živého softwaru. “Vy, chlapci, musíte přestat s tím, co děláte, a skutečně rozumět bitcoinům.”
Pro Andresena, nového vedoucího projektu, který rychle protestoval, to byl první vážný neúspěch. Podle jeho názoru by opuštění OP_EVAL nezbylo jen plýtváním měsíců kódování a kontroly, ale uživatelé by zůstali bez nástrojů na ochranu před trojskými koni a viry, které by pak drancovaly jejich digitální peněženky.
To bylo jádrem přitažlivosti OP_EVAL – snadné multisignature peněženky by uživatelům umožnily obnovit bitcoin, i když by došlo ke ztrátě záloh; služby by mohly být vybudovány tak, aby zasílaly bankovní výstrahy, které by odrazovaly od podvodů a krádeží; a ještě lépe by toho bylo možné dosáhnout v transakcích, které by vypadaly a chovaly se tak, jak to uživatelé věděli a chápali.
Varovná slova O’Connora však stačila těm, kteří viděli, že jejich obavy z eskalačního tempa vývoje byly potvrzeny.
“Rád bych všem připomněl, že se potýkáme s věcí ve výši 20 milionů dolarů,” napsal vývojář Alan Reiner. “V sázce není jen kousek softwaru – cokoli se děje, musí být tvrdé jako diamant.”
Selhání OP_EVAL by mělo ještě větší důsledky. Byla pravda, že Nakamoto spustil první decentralizovanou digitální měnu na světě, ale její slib nebyl zdaleka splněn. Koncem roku 2011 jeho kód pochopil jen málokdo a méně z nich stále disponovalo dovednostmi a znalostmi, které jej vedly k jeho ochraně.
Jak by se tito vývojáři měli organizovat? Jaké povinnosti měli vůči uživatelům? A jak by uzákonili změnu, když nebylo jasné, kdo – pokud vůbec někdo – by měl mít poslední slovo?
Takové otázky by se brzy dostaly do popředí v první velké bitvě o bitcoinový software.
Neortodoxní dědictví
Bezplatné a open-source projekty jsou nejčastěji vedeny zakladateli, kteří zase musí sladit úsilí s přispěvateli, od nichž závisí jejich práce. Přesto tam, kde se vyskytnou spory o směr, jsou naplněny přirozenou autoritou jednat jako tvůrci rozhodnutí pro jejich výtvory.
Bitcoin na počátku nebyl výjimkou. Během prvních dvou let své existence hrál Nakamoto roli hlavního vývojáře a benevolentního diktátora. Jako nesporný vůdce bitcoinů přijal až osm změn protokolu, aniž by se hodně podobal širšímu diskurzu [1]. Tedy až do doby, kdy postupně od projektu odstoupil.
Do konce roku 2010 Nakamoto vymaže svůj pseudonym z webu Bitcoin.org a ponechá veteránského vývojáře 3D grafiky Gavina Andresena, aby si plášť označil za „de facto vedoucího“ projektu [2].
Andresenova preferovaná volba slov byla vhodná, protože okolnosti tohoto přechodu byly neobvyklé, představovaly krátkou veřejnou zprávu, soukromé předání povinností a výměnu klíče umožňující uživateli odeslat výstražnou zprávu v celém systému..
V té době to však pro malou, ale rostoucí skupinu kodérů bitcoinu představovalo jen málo potíží. Většina z nich byla znepokojena kritickými opravami a Andresen, manžel profesora, měl čas a nadšení vést práci [3].
Ve skutečnosti existovalo mnoho naléhavých potřeb – rychlejší synchronizace, lepší testování – ale „zvýšené zprávy o odcizených peněženkách“ a „špatné PR“, které krádeže způsobily, se rychle ukázaly jako hlavní problém.
Nějakou dobu to byl cíl, na kterém se zdálo, že se nová skupina přispěvatelů bitcoinu shoduje [4].
Holé multisig
Naštěstí plán řešení poskytl Nakamoto. Jak by se Andresen naučil, bitcoinový kód již uživatelům umožňoval vytvářet bezpečné transakce, které bylo možné utratit pouze při podepsání několika soukromými klíči [5].
Díky multisignaturu nebo zkráceně multisig mohou být soukromé klíče uloženy na více zařízeních, na opačných koncích světa nebo sdíleny mezi uživatelem a peněženkou, což znamená, že hackeři by museli kompromitovat více cílů, aby ukradli mince.
Zamilovaný touto myšlenkou by se Andresen stal jejím prvním šampiónem, který by na seznam adresátů napsal vášnivou prosbu, která by inspirovala přispěvatele k akci.
“Moje největší obava je, že si řekneme: ‘Jistě, dohodnutí se na tom, jak to udělat správně, bude trvat jen pár dní,’ a za šest měsíců stále neexistuje shoda,” napsal [6]. “A peněženky lidí se [budou] nadále ztraceny nebo odcizeny.”
Obavy nebyly bez váhy – jak implementoval Nakamoto, multisig měl významné nevýhody. Nejnaléhavější z nich bylo, že transakce byly nekompatibilní se standardním formátem adresy bitcoinu, a místo toho vyžadovaly mnohem delší adresy.
Z tohoto důvodu byly transakce financovající multisig peněženky větší a vyžadovaly vyšší poplatky. A co víc, tyto poplatky musely být placeny nikoli osobou přijímající bitcoiny s multisig peněženkou, ale osobou, která jim zasílá bitcoiny.
Kvůli těmto neoptimálním vlastnostem byly multisig transakce v softwaru označeny jako „nestandardní“, což znamená, že by se nemusely nutně šířit do uzlů v síti. Pokud by uzel obdržel multisig transakci, jednoduše by ji ignoroval. Podobně neexistovala žádná záruka, že by horníci zahrnuli tyto transakce do bloků.
Pokud by byly zahrnuty, uzly by je přijaly (multisig transakce byly nakonec platné). V praxi ale toto označení téměř znemožnilo potvrzení těchto transakcí.
Zadejte OP_EVAL
Aby uvolnil potenciál, který viděl, Andresen by pokračoval v prosazování nového „operačního kódu“, typu příkazu, který by uzly mohly použít k rozhodnutí, zda a kdy by měly být nové typy transakcí platné.
OP_EVAL, navržený tak, aby vyhovoval pokročilejším transakcím, jako je multisig, se těžce opíral o hashe, kryptografický trik, který deterministicky skrývá a komprimuje data, ale nevratně do jedinečného řetězce čísel.
První navrhováno pseudonymním vývojářem ByteCoin, základní myšlenkou bylo, že uživatelé mohou hash instrukce podrobně popisující podmínky, za kterých by mohly být bitcoiny později utraceny (včetně do a z multisig peněženek) zahrnutím tohoto hash do transakce. Mince by byly v zásadě odeslány „do“ hash.
Podmínky potřebné k pozdějšímu utrácení bitcoinů by byly odhaleny, až když byly mince utraceny „z“ hash. Když uživatel utratil coiny, uživatel multisig zaplatil za přidanou velikost transakce, zatímco požadovaná data navíc představovala menší zátěž pro síť.
Vzhledem k tomu, že návrh dostal pozitivní zpětnou vazbu, Andresen neztrácel čas a upřednostňoval nasazení OP_EVAL dříve než později.
“Bezpečnost je na seznamu priorit opravdu vysoká; Chtěl bych vidět zabezpečené bitcoinové adresy v podpisech lidí na fóru do jednoho roku, “napsal [7].
Ne všichni však sdíleli Andresenův pocit naléhavosti. OP_EVAL by byl velkým upgradem na živém systému, který již má hodnotu milionů dolarů. Za oceánem z Andresenu navrhl mladý Amir Taaki vývojářům, aby si návrh přečetli.
“Na první pohled to vypadá dobře,” napsal Taaki [8]. “Ale rychlé sledování tohoto do blockchainu pravděpodobně není moudrý nápad … Bitcoin zítra nevybuchne, takže nedojde k žádné velké ztrátě z toho, že se odloží významné změny, jako jsou tyto.”
Vývojáři dále komplikovali záležitosti a předpokládali, že přidání OP_EVAL do protokolu bude představovat významnou koordinační výzvu. V zásadě by přijetí vyžadovalo riziko, že se blockchain, definitivní záznam všech bitcoinových transakcí, vynucený sdílenou shodou na jeho softwarových pravidlech, může rozdělit na nekompatibilní sítě.
To znamenalo, že jakmile bude OP_EVAL spuštěn, každý uživatel bude muset přejít na novou verzi softwaru a nový blockchain v tzv. „Hard fork“ upgradu.
Nepodaří se upgradovat unisono a těžaři mohou nevědomky vytvářet „neplatné“ bloky. Ještě horší je, že uživatelé mohou nevědomky přijímat „neplatné“ transakce.
Nový druh měkké vidlice
Brzy si však Andresen uvědomil, že je možné jeho kritiky uklidnit.
Jako šikovný trik odhalil, že OP_EVAL lze nasadit předefinováním jednoho z několika neaktivních operačních kódů původně zahrnutých Nakamotem jako zástupců pro budoucí příkazy.
K překvapení všech, včetně Andresena, by to bylo také kompatibilní s uzly, které neaktualizovaly, aby přijaly OP_EVAL. Tyto uzly by zkontrolovaly, zda se hash shodoval s novými pokyny, ale nevynucoval by je, místo toho by ve výchozím nastavení přijímal transakce.
Pokud většina těžařů prosazovala nová pravidla, znamenalo to, že nový blockchain bude považován za platný jak pro upgradované, tak pro ne upgradované uzly. Upgradované uzly by přijaly blockchain, protože byla vynucována nová pravidla, zatímco uzly, které se nepodařilo upgradovat, by blockchain přijaly, protože se o nová pravidla nestaraly..
Takové zpětně kompatibilní upgrady nebo „soft forky“ již nasadil Nakamoto, ale jak se síť rozrůstala, vývojáři se začali obávat velkého počtu lidí, kteří by se museli na jakékoli aktualizaci podílet..
Není překvapením, že Andresenovo zjištění, že se tomu lze vyhnout, uvítali další zavedení přispěvatelé, s nimiž novinky rychle sdílel..
“Páni. Gavinův názor, že [OP_EVAL] lze udělat bez rozkolu, mi vyrazil z hlavy, “poznamenal Gregory Maxwell a reagoval na objev v reálném čase [9]. “Přineste kampaň [sic].”
S tímto vývojáři pokračovali v navrhování ještě bezpečnější metody aktivace soft forků. Teorizovali, že by mohli provést něco jako hlasování, aby zjistili, kdy má funkce dostatečně širokou podporu od horníků, kterou pak mohou použít k zajištění bezpečného upgradu.
Horníci by byli požádáni, aby do bloků, které těžili, zahrnuli trochu dat, aby signalizovali, že budou prosazovat nová pravidla. Když byla většina připravena, změna mohla být aktivována [10].
Fatální chyba
Ale veškerá tato práce byla zrušena O’Connorovými nálezy [13].
Výsledkem bylo rozdělení na frakce, přičemž někteří si mysleli, že OP_EVAL se zbytečně zdržuje a jiní tvrdili, že navrhované rychlé opravy by narušily určité požadované vlastnosti základního skriptovacího jazyka bitcoinu [14].
Vývojáři včetně Luke Dashjr, Pieter Wuille a Maxwell navrhli alternativy, které jako OP_EVAL využily koncept zasílání mincí „do“ hash. Stále však bylo výzvou dostat tuto logiku, kterou začali označovat jako „pay to script hash“ nebo „P2SH“, do bitcoinu jako soft fork a vyhnout se blockchainovému rozdělení.
Stávající operační kódy by mohly jít jen tak daleko: neupgradované uzly by musely přijímat transakce, které utratily mince z hashů, aniž by rozuměly novým pravidlům.
Byl to Andresen, kdo našel cestu vpřed, a jeho konkrétní řešení P2SH by vůbec nevyžadovalo nový operační kód. Spíše Andresenova myšlenka spočívala v tom, že bitcoin lze naprogramovat tak, aby rozpoznal určitý formát transakcí, a poté tento formát interpretovat netradičním způsobem a ověřit jej pomocí nových pokynů.
Jakýkoli uzel, který nebyl upgradován, by interpretoval netradiční formát pomocí konvenční logiky. Stejně jako u OP_EVAL by transakce byla vždy považována za platnou u neaktualizovaných uzlů. To znamenalo, že P2SH by mohlo být nasazeno jako soft fork: pokud většina hash síly vynucuje nová pravidla, staré i nové uzly by se shodly na stejném blockchainu.
Andresenův návrh vypadal pro většinu uspokojivý. “Vypadá to … přijatelné na první pohled,” odpověděl O’Connor [15]. Taaki s odkazem na nekonvenční přístup kódu řekl: „Myšlenka je hack…. ale mě se to líbí.”
Na následné schůzce vývojářů se sentiment udržel a účastníci souhlasili s implementací Andresenova návrhu P2SH. Horníci by byli dotazováni v týdnu před 1. únorem, a pokud by většina hash power (55 procent) signalizovala podporu, byl by klient propuštěn k aktivaci soft forku jen o dva týdny později.
Mír bude trvat několik dní.
Proč nepoužívat USD?
Prolomením konsensu by byl Dashjr, který musel schůzku opustit dříve a teprve později se dozvěděl, že Andresenova verze P2SH byla přijatým kompromisem.
Netradiční povaha Andresenova řešení rozzlobila Dashjra, který věřil, že to komplikuje protokol a přináší nejisté důsledky. Na problém upozornil s Andresenem, ale ten nebyl přesvědčen, že jeho obavy si zaslouží změnu plánů [16].
Jeho návrhy zamítly, Dashjr vybuchne na veřejném fóru BitcoinTalk v polovině ledna a odsoudí P2SH a účtuje Andresenovi podporu „na vlastní pěst“ [17].
“Gavin nutí každého, kdo používá nejnovější bitcoinový kód, aby hlasoval pro [P2SH],” napsal. “Pokud se chcete postavit proti této šílené změně protokolu, budete muset upravit svůj zdrojový kód BitcoinD, nebo budete ve výchozím nastavení hlasovat V PŘÍPADĚ TOHO.”
Vzhledem k nuance jeho námitek, drzému tenoru, ve kterém byly doručeny, a jeho obviněním o Andresenovi, byly reakce na příspěvek méně než pozitivní. Místo toho, aby omezovali technickou debatu na vývojáře, někteří vnímali Dashjra jako snahu podněcovat populární dav.
Nepomohlo ani to, že Dashjr byl jedním z více quixotických přispěvatelů, známých svými dlouhými argumenty v obraně alternativních číselných systémů a silné křesťanské víry. Jeden uživatel fóra uvedl, že díky Dashjrovým komentářům vypadal „mentálně nestabilní [18]. “ Jiný řekl, že se vůbec nechce obtěžovat se specifiky; jednoduše věřil Andresenovi [19].
V reakci na to Dashjr podal trvalou námitku proti návrhu P2SH z filozofických důvodů a zpochybnil nejen jeho technické výhody, ale také jeho důsledky pro správu..
“Pokud chcete monarchiální měnu, proč nepoužívat pouze USD Fedu?” Dashjr požádal své kritiky, jen aby ho ostatní pronásledovali a tvrdili, že to byl on, kdo soupeří o moc [20].
Bez ustoupení by Dashjr kódoval alternativní verzi P2SH nazvanou CheckHashVerify (CHV). CHV byla v podstatě jiná implementace P2SH – ale nevyžadovala nekonvenční interpretaci transakčních výstupů. Místo toho společnost CHV přidala nový operační kód, který, podobně jako OP_EVAL, lze „zamaskovat“ jako zástupný operační kód.
Ale pro Andresena už bylo příliš pozdě na další debatu [21]. Když se vznášel nad veřejným výbuchem, odpověděl svým vlastním a napsal:
“Luku, zkus moji trpělivost.” Chystám se na pár dní ustoupit od kódu, abych se uklidnil, než udělám něco hloupého. “
Genjix je veřejný
Protože Andresenův P2SH design (nyní označovaný jednoduše jako P2SH) byl do značné míry považován za dost dobré řešení preferované hlavním vývojářem projektu, Dashjr se ocitl s několika obránci.
Bylo by na Taaki, aby byl hlasem menšiny, aby bral okrajové obavy vážně – ale ne proto, že by byl proti Andresenovu řešení nebo nutně souhlasil s Dashjrovým.
Vývojář, který byl tehdy na počátku 20. let, již byl jedním z nejotevřenějších přispěvatelů bitcoinů, a přestože se ještě neměl stát anarchistou, který popadl titulek, který hackl z dřepů a cestoval s 3D tištěnými běžci zbraní, jeho vize softwaru jako hnutí proti založení už ho vytlačilo z vnitřního kruhu projektu.
To zase způsobilo, že Taaki nedůvěřoval zrychlujícímu se procesu vývoje projektu. Upřednostňoval to, pokud rozhodovací proces vyžadoval čas a zahrnoval širší uživatelskou základnu.
Podle jeho názoru nebyl bitcoin dobře obsluhován malou kabalou vývojářů, kteří volali výstřely. Taaki silně cítil, že kdokoli, kdo má zájem o projekt, by měl být informován o kompromisech a pokud možno se účastnit rozhodování.
“Byl bych raději, kdyby se k věci vyjádřili lidé, i kdyby to vývojářům ztížilo vysvětlování jejich rozhodnutí,” řekl ostatním vývojářům [22]. “Cítím trochu obavy, když řeknu našim uživatelům, že to tak bude, nemáte slovo a potom jim dáte prst.”
I když Taaki souhlasil, že rozdíl mezi Andresenovými P2SH a Dashjrovými návrhy CHV je malý, trval na tom, že zapojení uživatelů do procesu vývoje bylo důležitým cvičením.
“[M] y starosti jsou jednou bitcoiny poškozeny. Vnímejte tuto zvláštní kontrolu jako příležitost k budování kultury otevřenosti, “argumentoval.
Za tímto účelem napsal Taaki blogový příspěvek, ve kterém představil upgrady P2SH a CHV a rozdíly mezi těmito dvěma [23].
Uživatelé měli na výběr, to byla Taakiho zpráva a: „Hlasování je založeno na těžební síle.“
F * cked-up situace
Taaki svým výběrem slov vynesl v místnosti slona. Byla to pravda, Nakamoto uzákonil soft forky, ale koncem roku 2011 již síť nefungovala tak, jako v těch prvních dnech.
Když Nakamoto v roce 2008 zveřejnil bílou knihu, předpokládal, že uživatelé, kteří přispějí výpočty prostřednictvím osobních počítačů, dodají důkaz o práci. “Důkaz práce je v podstatě jeden CPU za jeden hlas,” napsal Nakamoto.
Podle tohoto návrhu může být jakýkoli uživatel těžařem a zabezpečit síť navrhováním bloků, ověřováním transakcí zasílaných vrstevníky a vynucováním kódu vytvořeného vývojáři.
Ale v letech od spuštění softwaru byl tento model zastaralý podnikateli. Vzhledem k tomu, že Lazlo Hanyesz (ze slávy bitcoinové pizzy) přišel na to, jak generovat bitcoiny s výkonnějšími jednotkami grafického zpracování, měli specialisté plné ruce práce s přeměnou těžby z hobby na malý podnik.
Přibližně ve stejné době představil Marek „Slush“ Palatinus metodu, která umožňuje horníkům spojit hashovací sílu potřebnou k navrhování bloků a sdílení zisků. Díky tomu byla těžba méně loterií a stabilnějším zdrojem příjmů.
Do konce roku 2011 pouze tři fondy – DeepBit, Slush Pool a BTC Guild – kontrolovaly více než polovinu globální hash síly. Místo jednoho CPU-jednoho hlasování se nyní většina „hlasů“ soustředila jen do několika provozovatelů těžební skupiny, jako by to byli zástupci jejich kybernetických složek.
Pro některé to byl důkaz, že v bitcoinové síti něco není v pořádku. “Vidím [těžební fond], který rozhoduje o změně v síti, jako frašku hlasování,” argumentoval raný horník Midnightmagic [24].
Pro ostatní byla centralizace těžby nešťastnou berlí, což je způsob, jak vylepšit měkkou vidličku lépe zvládnutelným, a tedy méně riskantním. (Koneckonců, bezpečné zavedení nyní vyžadovalo účast jen hrstky provozovatelů těžební skupiny.)
Například Maxwell byl více rezignován na neuspokojivou realitu po ruce [25].
“Pokud by došlo k netriviálnímu zpětnému rázu, oba vývojáři a kaluže by ustoupili, ale zdá se, že teď tomu nikdo v žádném případě moc neodporuje,” odpověděl. “[Je to dobrý mechanismus, který lze použít pro budoucnost … když doufejme, že nebudeme mít tuto posranou situaci, kdy bitcoin již nebude decentralizovaný.”
Hlasovat nebo nehlasovat
To, že válčící návrhy Andresena a Dashjra ztělesní protichůdné názory na správu bitcoinů, by věci jen komplikovalo.
Do té doby vývojáři vždy mluvili o nadcházejícím upgradu soft fork jako o druhu hlasování: těžaři mohli prosazovat nová pravidla uvedená v P2SH (nebo OP_EVAL) s hašovací mocenskou většinou, takže hlasování mělo měřit pravděpodobnost toho výsledek.
Ale zatímco terminologie se stala součástí lexikonu, toto vynechalo některé technické nuance. Při provádění průzkumu se vývojáři přesně neptali horníků, co si myslí o nových pravidlech. Spíše to viděli jako způsob, jak zjistit, zda jsou horníci připraveni zajistit bezpečný upgrade.
Z tohoto pohledu dávalo vývojářům smysl, že k softwaru bude přidán pouze jeden návrh a uživatelé těžařů budou prosazovat pravidla sítě.
“Bitcoinový systém je _NOT_ připraven na většinu voleb.” Ani většina hashpower, ani většina lidí, ani většina peněz, “tvrdil Maxwell, rozčilený Taakiho rámcovým rozhodnutím jako hlasování [26].
Maxwell cítil, že silně by „hlasy“ těžařů měly být omezeny tak, jak tomu bylo v samotném softwaru, na vynucování pořadí transakcí – ne pravidla celé sítě.
“Co se stane, když nadpoloviční většina – dokonce 100% – současných horníků rozhodne, že dotace by měla být navždy 50 BTC?” NIC. Horníci, kteří toto pravidlo ve svém softwaru změní, jednoduše přestanou existovat z pohledu bitcoinové sítě, “napsal.
Dashjr s Maxwellem nesouhlasil, ale v praxi pro něj bylo těžké vidět, jak by bitcoin zůstal bezpečný, pokud by vývojáři prosazovali změny bez podpory horníků.
„Horníci mohou jednoduše odmítnout těžit transakce P2SH, aby byli imunní vůči změnám„ vývojového týmu “,“ odpověděl [27]. “Pokud‚ vývojáři ‘zamknou všechny horníky, hádejte, co se stane? Snadné 50% útoky, síť zůstane nezajištěná! “
Při pohledu na toto světlo je snazší pochopit, proč Dashjr věřil, že Andresen zneužívá svou roli vedoucího vývojáře tím, že se pokouší prosadit P2SH sám. Pokud by těžař použil standardní software k těžbě bloku, automaticky by hlasoval ve prospěch P2SH [28].
V reakci na to Dashjr napsal patche, které by vstoupily do jeho preferovaného návrhu do „voleb“ s hashovou mocí, a zavedly možnost, aby horníci hlasovali pro i proti P2SH a CHV.
Ačkoli tento kód používalo jen málo horníků, Dashjrova opozice měla účinek. Tycho, provozovatel DeepBit, který je v té době největším těžebním fondem sítě, začal být nepohodlný kvůli své roli při hodnocení konkurenčního kódu.
Tvrdil, že je zřejmé, že mezi vývojáři dosud nebylo dosaženo konsensu, a napsal: „Nechci se stát jediným subjektem, který o tom rozhodne [29]. “
Zablokování
Když Tycho odmítl myšlenku, že by těžařský fond mohl být použit k ovlivnění rozhodnutí o upgradu, přidal další zvrat do debaty. Bez jeho podpory, která by přesahovala 30 procent veškerého hashového výkonu, by se P2SH aktivoval obtížně.
Koncem ledna se první kolo hlasování P2SH chýlilo ke konci a nevypadalo to, že splní požadovanou hranici. Upgrade by se musel odložit, což byla realita, která frustrovala nejen Andresena, ale i další vývojáře.
Na IRC Maxwell veřejně bědoval nad tím, že se slepá ulička nezdá v dohledu.
“Toto ‘spěchající’ mem je kecy, Gavin začal na cestě [pay-to-script-hash], co, říjnu?” napsal[30]. “Pokud vím, pokud někdo nestanoví termín, tento proces se nikdy nesblíží, protože vždy bude nějaký NEXT chlap, jehož skvělý nápad byl vynechán.”
Andresen by vinu za zpoždění nevalil na nástup těžařských bazénů, ale osobně na operátora DeepBit Tycha. “Právě teď to vypadá, že jedna osoba má dostatek hashovací síly k vetování jakékoli změny,” napsal [31].
To vadilo Andresenovi, který považoval Tychův postoj za neetický. “Myslím, že je od vás špatné, když používáte svou pozici největšího provozovatele bazénu, abyste šli proti obecnému konsensu,” napsal [32].
Dokonce i když Andresen zašel tak daleko, že vyvinul tlak veřejnosti, tlačil na uživatele, aby požádali své těžební fondy o upgrade – a nabídl náhradu všech prostředků DeepBit v případě, že P2SH způsobí jakoukoli finanční ztrátu – Tycho nebyl ochoten „hlasovat“ pro návrh[33].
Tváří v tvář zpoždění se Andresen pokusil zařadit veřejnost k věci, přetrvávající ve svém přesvědčení, že volba mezi P2SH a CHV bude mít malý dopad na uživatele.
Andresen napsal:
“Všechny věci [P2SH / CHV] jsou většinou inženýři, kteří se hádají, zda je lepší použít hřebík, šroub nebo lepidlo na spojení dvou kusů dřeva.” Jakékoli z řešení by fungovalo a běžní uživatelé by si nevšimli žádného rozdílu [34]. “
Soudě podle odpovědí ve vlákně, uživatelé bitcoinů přijali Andresenův rámec, vinili Tycha z toho, že zadržel vidličku a tlačil na něj, aby aktivoval.
Tycho zase ostře protestoval proti Andresenovu tvrzení. I když měl 30 procent hash síly, věděl, že ho zbývající horníci mohou přemoci, a nechtěl být rozhodujícím faktorem.
2. kolo
Vzhledem k tomu, že P2SH dosud nedokázal nashromáždit dostatečnou podporu hašovací síly, byl by Andresen stále více nucen diskutovat o strategii svého návrhu na otevřeném prostranství a zejména začal přijímat CHV jako potenciální alternativu k prolomení patové situace.
Odpovědi přesto dělily dělící čáru mezi těmi, kteří věřili, že volba mezi P2SH a CHV je pro horníky, a těmi, kteří upřednostňovali meritokratičtější rozhodování.
“Nakonec jsou horníci JEN jediní lidé, kteří mají nějaké slovo nad takovými problémy,” argumentoval uživatel docoinlus BitcoinTalk [35]. “Jsou jediní, kdo rozhoduje, které transakce se dostanou do bloků.”
Administrátor fóra Theymos tuto myšlenku úplně odmítl. “Nerudové mohou bloky odmítnout.” Pokud to udělá dostatek klientů, těžba mincí se stane bezcennou. [36] “
Místo toho Theymos navrhl, aby se určitý vnitřní okruh odborníků zapojil do dvoutýdenní diskuse a na konci hlasoval [37]. Dashjr kvůli návrhu nebo události brzy vytvořil Wiki, kde by seznam respektovaných vývojářů mohl vyjádřit své preference.
Během několika příštích dnů Maxwell, Thomas a Wuille všichni naznačili, že by rádi přijali P2SH nebo CHV, ačkoli dali jasně najevo, že dávají přednost P2SH. O’Connor a Dashjr se shodli na tom, že P2SH je přijatelný, ale vyjádřili preferenci pro CHV [38].
Možná nepřekvapuje, že se Andresen ujistil, že bude hlasovat ve prospěch P2SH, přičemž proti návrhu CHV zaregistroval hlasité „ne“.
Ještě důležitější je, že možná jen velmi málo horníků podporovalo CHV. Do poloviny února byl P2SH podporován 30 procenty hash energie, zatímco alternativa Dashjr uvízla kolem 2 procent.
Během setkání na IRC Dashjr řekl, že uvažuje o tom, zda úplně odebrat CHV, s neochotou přijmout dominanci P2SH [39]. Na téže schůzce se účastníci dohodli na stanovení druhého termínu hlasování na 1. března.
Jak se blížil nový termín, za P2SH se shromáždilo více horníků, čímž se podpora hashové síly přiblížila hranici 55 procent. Tycho i Dashjr brzy nezbývalo nic jiného, než přijmout preference svých vrstevníků [40].
Díky tomu Andresen oznámil, že softwarová vidlice bude nasazena a aktivována do 10 dnů, a do 1. dubna 2012 byla vynucena nová pravidla [41].
Byl přijat P2SH, první upgrade protokolu od Satoshiho odchodu.
Bouře v konvici
Složitý politický proces, který vedl k průchodu P2SH, bude mít i nadále trvalý dopad mimo samotný software.
Nakonec byl Andresen schopen nasadit řešení, které navrhl a upřednostnil. Pokud se dá říci, že jeho vedení bylo v době krize zpochybňováno, nakonec bylo pevně zafixováno.
Veřejné mínění, které se netýká specifik, se do značné míry spojilo s akcemi Dashjra a v menší míře s Taaki, což je považovalo za zbytečné a pobuřující [42]. Andresen šel tak daleko, že požádal Dashjra, aby přestal přispívat k bitcoinům úplně, i když se zdá, že od této hrozby ustoupil, jinak ji Dashjr jednoduše ignoroval [43].
Mezitím se Maxwell stal jedním z „hlavních vývojářů“ bitcoinů, kteří sdíleli přístup k projektu s Andresenem a přispěvateli Wladimirem van der Laanem a Jeffem Garzikem.
Byl nastaven tón: když došlo na vývoj bitcoinů, byl odměněn podpůrný, pragmatický přístup a byli odmítnuti protikladní přispěvatelé. I když se objevily ideologické rozdíly, zůstaly – a byly pravděpodobně pouze zakořeněny – řízením.
Vzhledem k tomu, že do bitcoinu se denně dostává více uživatelů, P2SH krátce přešel do tradice, i když by zejména nadále sloužil jako bod vzplanutí v neshodách mezi vývojáři.
Při vzpomínce na události o rok později v reakci na další vznikající krizi by se Andresen chlubil způsoby, které naznačují, že věří, že P2SH potvrdil jeho vedení a vizi projektu [44].
„Velikost bloku se zvýší,“ napsal v reakci na video vytvořené vývojářem Peterem Toddem, který se zasazuje o zvýšení limitu počátkem roku 2013 [45]. “Vaše video způsobí, že se spousta lidí bude o nic bát, přesně tak, jak loni [CHV] návrh společnosti Luke-Jr neudělal nic jiného, než vyvolat bouři v konvici.”
Jak by měla být učiněna rozhodnutí pro první decentralizovanou digitální měnu? Pokud by otázka byla nakonec položena, její vyřešení by vyžadovalo širší válku, ještě roky v budoucnosti …
The Battle For P2SH: The Untold History of the First Bitcoin War
Podívejte se na toto video na YouTube