2. 8. 2018

51% útok na bitcoinovou síť - princip a obrana

  • Článek popisuje, jak probíhá útok na bitcoinovou síť, pokud někdo vlastní více jak 50% těžebního výkonu sítě (tzv. "51% útok")
  • Největší nebezpečí je v tom, že útočník může svoje bitcoiny utratit dvakrát, přičemž obrana neexistuje
  • Riziko "51% útoku" v bitcoinové síti je dle mého názoru velice malé
  • "51% útok" není nic nového. Je to riziko bitcoinové sítě známé od samého počátku a Satoshi Nakamoto ho popsal ve svém white paperu
  • Je možné útočit i s výkonem sítě menším jak 50%. Tady je obranou počkat na více potvrzení
O co jde?
Pokud útočník ovládá >50% výpočetního výkonu (hash rate) sítě, může svoje bitcoiny utratit dvakrát. Anglicky se tomu říká double spending. Útok je běžně označován jako „51% útok“, ale postačuje >50% výkonu sítě.

Z pohledu účetní knihy (blockchainu) nejde o dvojí použití v tom smyslu, že by nakonec kniha obsahovala dvě stejné transakce a navyšoval se počet bitcoinů v oběhu. Ve výsledku bude uznána vždy jen jedna transakce.



Jak to funguje?
Předpokládejme, že zloděj disponuje výpočetním výkonem sítě >50% a vyšle dvě transakce těch samých bitcoinů do bitcoinové sítě v krátkém sledu za sebou (tzn. dvakrát použije ty samé bitcoiny – double spending). Použít stejná data dvakrát (něco zkopírovat) v IT světě není nic náročného. Podobně je to s vytvořením dvou transakcí obsahující ty samé bitcoiny (data). 

Transakce označme jako Tx a časy odeslání t1 a t2 – zkráceně Tx(t1) a Tx(t2). První transakci Tx(t1) odešle zloděj na adresu obchodníka (třeba burzy), od které chce zboží (třeba litecoiny za prodané bitcoiny). Druhou transakci Tx(t2) odešle s malým zpožděním na svoji peněženku.

Obě transakce budou zaznamenány všemi uzly. Poctiví těžaři začnou začleňovat prvně vyslanou transakci Tx(t1) do řetězce bloků, protože přišla jako první. Obchodník (burza) po několika potvrzeních bude považovat bitcoiny v transakci Tx(t1) za přijaté a připíše je zloději na jeho burzovní účet. Zloděj tyto bitcoiny prodá a nakoupí litecoiny. Litecoiny si z burzy odešle na jím kontrolovanou peněženku. Potud se vše tváří jako běžný obchod.

Avšak od okamžiku t2 zloděj začal rovněž těžít vlastní bloky, ale tuto informaci síti neoznamuje - tzn. těží bloky tajně. Vzhledem k tomu, že zloděj má nadpoloviční výkon sítě, do jeho zatím tajně vytěženého řetězce bloků bude investován větší výpočetní výkon, než do řetězce bloků poctivých těžařů. Poté, co zloděj prodal na burze bitcoiny a obdržel litecoiny, oznámí síti své vytěžené bitcoinové bloky, kam již začlenil svoji druhou transakci Tx(t2), která směřovala na jeho účet. 

Jeho řetězec bloků, tzn. jím zúčtované transakce (včetně své Tx(t2)), budou uznávány uzly jako platné, neboť do jeho řetězce bloků byl investován největší výpočetní výkon (protože má >50%). Tím mu zůstanou bitcoiny, ale i zboží - litecoiny.

Předpokládejme, že v bitcoinové síti některé burzy připisují deposity bitcoinů už od 3 potvrzení. Pokud k tomu připočteme i čas na jejich prodej a následný nákup a odeslání litecoinů, mohlo by se celkem jednat o 5 bloků v bitcoinové síti jako čas potřebný ke krádeži. 

To je zároveň čas, než by zloděj oznámil síti nových 5 bloků. Tak dlouho by zhruba trvalo i odhalení krádeže. Reorganizace 5 bloků v síti bitcoin by v současné době bylo zcela něco vyjímečného. Pokud by se nejednalo o reorganizaci, na které by se dohodl trh, cena bitcoinů by nejspíš reagovala velkým poklesem právě z obav "51% útoku". 

To samé ještě jednou graficky na časové ose. Čtěte v pořadí 1 až 6.




Výše popsaný postup může být proveden jen s bitcoiny zloděje. Zloděj nemůže změnit cizí či dřívější transakce. V nebezpečí je v tomto případě příjemce tzn. obchodník (burza).

Pokud někdo disponuje >50% výkonu sítě, je schopen vždy uvedeným způsobem použit bitcoiny dvakrát. Podle této studie „51% útok“ nelze eliminovat čekáním na více potvrzení.

Podle stejné studie dvojité použití bitcoinů může být uskutečněno i s výkonem menším než 50%.  Princip krádeže je stejný jak bylo popsáno výše s jedním velkým rozdílem. Útočníkovu úspěšnost můžeme v tomto případě eliminovat (snížit pravděpodobnost jeho úspěchu) vyčkáním na větším počet potvrzení. Lépe je to vidět na grafu níže. Na grafu vidíte vztah mezi počtem potvrzení (n), podílu útočníka na výkonu sítě (q) a pravděpodobnosti dvojitého použítí/krádeže (r).

Například při útočníkově výkonu 30% a 2 potvrzeních, bude pravděpodobnost toho, že nás někdo o bitcoiny připraví cca 45 %. Ale pokud počkáme dalších 8 potvrzení (celkem tedy 10 potvrzení), pravděpodobnost už je jenom cca 6%. Úspěšnost krádeže velmi rychle (geometricky) klesá s počtem potvrzení. A to je dobře. Řešení existuje.

Co ale s případem, kdy útočník vlastní více jak 50% výkonu sítě?




Obr.: Pravděpodobnost dvojitého použití bitcoinu v závislosti na výpočetním výkonu útočníka q. Zdrojem pro graf je studie M. Rosenfeld z 2012/2014, Analysis of Hashrate-Based Double Spending, (https://arxiv.org/abs/1402.2009v1)


Jak se bránit 51% útoku?
Zde je několik cest, jak situaci zmírnit, nebo kde komunita/trh hledá řešení. Sami posuďte, jak body A až C níže situaci řeší (možná najdete i další varianty). V případě B (Změna algoritmu konsensu) nebo C (Změna algoritmu těžby) jsou to zásadní změny v chodu sítě.

A) Více potvrzení asi nebude na škodu
Útočník se nemusí chovat podle matematických studií a jeho výkon klidně může okolo 50% kolísat a v nějakém čase může být menší než 50%. V takovém případě čekáním na více potvrzení mu útok stěžujeme nebo ho můžeme i zastavit. Čekat na více potvrzení není nikdy na škodu.

Co se děje pokud někdo uskutečňuje 51% útok? Těží si do „zásoby“. Těží, ale výsledek do určité doby nikomu neoznamuje. V síti by se takové chování mělo projevit velkým (min 50%) poklesem výkonu.

A takový stav v síti odhalím, jen když budu mít dostatečný vzorek počtu bloků (více potvrzení), z kterého pokles odečtu. Tím totiž vyloučím náhodnost různých časů nalezení nových bloků. Minimálně dostanu určitý indikátor, že by se mohlo jednat o 51% útok. V tomto případě se dá ocenit síťový efekt a velký výkon bitcoinové sítě. Náhlé změny (v řádech hodin) o 50% bude mít nějaký vážný důvod. Nikdo si nechce nechat ujít zisk a jen tak se odpojit od doposud hlavní větve blockchainu.

Problém nastane v případě, že někdo připojí nový výpočetní výkon. Jeho změnu nelze odečíst z historie výkonu sítě. Připojit však do současné (8/2018) bitcoinové sítě více jak 50% nového výkonu znamená investovat stovky mil USD a tolik zařízení i vyrobit. 

Vzhledem k ceně a technickým nárokům jsou takové akce schopni jen velcí výrobci výpočetního výkonu - výrobci jednoúčelových počítačů tzv ASICů. Vývoj a výroba ASICů je dnes otázka desítek až stovek mil USD. Proč by si takový výrobce řezal větev sám pod sebou, pokud je těžení a výroba ASICů pro něj výnosná?

Pravděpodobnost takového útoku ze strany výrobců ASICů mi vychází velice malá. Rovněž těžba bitcoinů je dlouhodobě výnosný obchod. Pravděpodobnost útoku ze strany těžařů mi rovněž vychází velice malá. Bitcoin má do určité míry zabudovanou jakousi vlastní ekonomickou obranu. 

B) Změna algoritmu konsensu (z PoW na PoS)
Myšlenka spočívá ve změně konsensu tzn. jakým způsobem se do účetní knihy (blockchainu) zapíše nezměnitelný záznam.  A to změnou z typu Proof-of-Work (PoW), který nyní používá bitcoin, na Proof-of-Stake (PoS). Smyslem je algoritmem vyloučit PoW a tím zmíněné počítače ASIC a nahradit je úplně jinak založeným algoritmem. Algoritmem, který výpočetní výkon (a tedy speciální počítače ASIC) vůbec nepotřebuje (PoS). Pro lepší pochopení, krátký exkurz do PoW a PoS konsensu.

Princip konsensu PoW je založen na dokladu vykonané práce vytěžením bloku. Vytěžit blok v bitcoinové síti znamená investovat do počítačů, elektřiny atd a přes algoritmus SHA-256 nalézt (vypočítat) ten správný hash bloku. Matematika algoritmu SHA-256 zajišťuje, že jinak, než s určitou úrovní vykonané práce a investic, hash bloku nenalezneme. Pokud nalezneme ten správný hash bloku, uzly v síti potvrdí platnost takového bloku. Dojde ke konsensu. PoW je tedy založen na dokladu vykonané práce skrze všem známou matematiku (SHA-256), jako nezmanipulovatelného arbitra. Takový výpočet umí provést nejlépe tzv ASIC počítače, které vyrábí jen pár firem na světě. A zde je, podle některých, problém.

Naproti tomu princip konsensu PoS je založen na velikosti vlastnictví (na velikosti „steaku“) dané měny. Je to v podstatě přímý ekonomický konsensus, který je založen na tom, že blockchain generují ti, kteří jsou vybráni na základě náhodného výběru, délky držení a kryptografické validace jejich jmění (jsou i různé další varianty). Předpokládá se, že konsensus uzavřou poctivě, protože nemají jediný důvod poškodit si svůj majetek, svoji měnu - svůj „steak“.




Ale byla by změna protokolu/programu na PoS u bitcoinu změnou k lepšímu? S tímto pohledem nemusíte souhlasit, ale osobně mi vychází, že ne.

Za prvé. Jak 51% útok může zapříčinit >50% výpočetního výkonu (u PoW), tak úplně stejně může být příčinou útoku >50% vlastnictví dané měny (u PoS). U měn s velkou tržní kapitalizací je to nepravděpodobné, ale nějaká nejistota tam je.

Za druhé. Nesmíte se na konsensus dívat jen skrze vlastní protokol/program bitcoinu, ale je třeba vzít do úvah i bitcoinový trh (ekonomický systém měny). Pokud to neuděláte, nejspíš Vám něco unikne. Zde je vysvětlení.

Pokud se tedy nebudeme dívat na současný konsensus bitcoinu čistě očima vlastního programu/protokolu, ale do úvah vezmeme i ekonomiku (trh) spojenou s bitcoinem, uvidíme, že ekonomická část bitcoinu obsahuje konsensus, který je v principu konsensem proof-of-steak.

Co jiného jsou zmiňovaní výrobci ASICů, kteří investují mil USD do jejich vývoje a výroby? Taková firma je v podstatě vlastníkem majetku, který je (terminologií konsensů) určitým „steakem“. Je vlastníkem výpočetního "steaku" (jejímž je skoro výhradním výrobcem), kterým má vliv na programový/protokolový PoW konsensus. Shrnuto...

Dnešní (programový) PoW konsensus bitcoinu má i svůj ekonomický konsensus, který je v principu PoS. Celý systém bitcoinu je v podstatě hybridní - PoW+PoS. Navíc část PoS u bitcoinu je steak, který musí majitel neustále vylepšovat, jelikož hrozí, že někdo ugriluje steak lepší (vyrobí lepší ASICy)

Naproti tomu (programový) konsensus PoS je jakýsi statický steak. Pokud má měna finální množství a já vlastním x% měny, můj vliv na konsensus bude v průběhu času (plus/minus) stejný, aniž bych se musel namáhat. Pokud úzká skupina získá významný podíl, k větší (a zřejmě trvalejší) centralizaci může dojít rovněž.

Programový PoW není ideální, jako není ideální PoS. Jde jen o to, který je z těch dvou lepší. Mě vychází, že PoW.


C) Změna algoritmu těžby (z SHA-256 na ....)
Myšlenka spočívá ve změně bitcoinového algoritmu těžby SHA-256 (který je nyní vhodný pro zařízení typu ASIC) na algoritmus vhodný pro zařízení, která jsou typu PC (CPU) či nějaké verze grafické karty (GPU) apod. Smyslem je zůstat u konsensu PoW a jen algoritmem těžby vyloučit počítače, které jsou speciální, které umí vyrobit jen pár firem na světě a nahradit algoritmem vhodným pro zařízení, která umí vyrobit více firem. Tím eliminovat monopol výrobců ASICů.

Demonopolizace výroby a vývoje těžebního výkonu znamená menší pravděpodobnost, že někdo získá >50% výkonu sítě. Podporovatelem této varianty je řada lidí, nicméně není shoda na jaký algoritmus přejít a jak provést změnu (zde příklad jednoho z dřívějších návrhů). Změna má totiž vliv na zisky výrobců ASICů (níže) a vliv na výpočetní výkon (tedy bezpečnost) bitcoinové sítě. Takové náklady převážná část trhu asi nebude chtít akceptovat. Změna je tedy dle mě spíše teoretická.

Navíc...

Ač se to (eliminovat monopol výrobců ASICů) zdá jako logický postup, tento článek hovoří o opaku. Vytvořit těžební algoritmus, který bude odolný počítačům typu ASIC je prakticky neproveditelné. Podle zmíněného článku je vždy jen otázkou času, kdy dojde k "prolomení" a ASIC bude vyroben na jakýkoliv algoritmus těžby. Zmíněný článek považuji za věrohodný, jelikož je napsán někým, kdo ASICy, ve spolupráci s výrobcem čipů, sám dělá. Je to firma Obelisk a autorem je David Vorick.



Při nerespektování tohoto závěru se může stát, že si všichni myslí, že jejich síť je z pohledu těžby natolik decentralizovaná, že neexistuje nikdo s výpočetním výkonem blížícím se 50%, ale ve skutečnosti je přesný opak pravdou. Tohle se stalo třeba Monacoinu (a dalším měnám s malým výpočetním výkonem sítě) a výsledkem byl 51% útok. Některé měny reagovaly forkem a změnily algoritmus těžby, aby zabránily těžbě  pomocí ASICů. Nicméně podle zmíněného článku jsou za dveřmi ASIC zařízení, která jsou přizpůsobivá i změně algoritmu po forku - tzv. "hard fork resistance ASIC". Jedna citace za všechny:
"The ultimate conclusion here once again wraps back to the capabilities of ASICs. I think there are a lot of people out there who do not realize that flexible ASICs are possible, and expected that routinely doing small hardforks to disrupt any ASICs on the network would be sufficient. It may be sufficient sometimes, but just as algorithms can attempt to be ASIC resistant, ASICs can attempt to be hardfork resistant, especially when the changes are more minor." 
Závěr článku? Algoritmus těžby naopak přizpůsobit ASIC počítačům a počkat na jejich komodizaci. Komodizací se v tomto případě myslí učinit ASIC počítače běžným zbožím - běžnou komoditou - aby nedocházelo k monopolu vývoje a výroby.

Toho dnes nelze jinak dosáhnout než tím, že ASIC počítače začnou vyrábět firmy jako Intel, AMD, Samsung a další. Motivem pro vstup by měly být velké zisky současného největšího výrobce ASICů firmy Bitmain. Bitmain podle CNBC vydělal 3-4 mld USD (operating profits 2017). To je víc než výrobce grafických karet Nvidia. V 1Q 2018 to bylo 1,1 mld USD.

Třeba Intel reportoval "operating income" v 2017 cca 18 mld USD. Pokud bychom (i přes neznalost metodik výpočtu operating profits u Bitmain a tedy asi s nějakou chybou) srovnali tato dvě čísla, pak podíl zisku Bitmainu na zisku Intelu tvoří cca 22%. I kdyby to bylo poloviční číslo, nic na tom nezmění, že to je pěkný "steak" pro společnost vzniklou v 2013 a na rychle rostoucím trhu, který před pár lety vůbec neexistoval. Co myslíte, nechá si to Intel ujít?

Dalším argumentem spíš ke komodizaci ASICů, než ke změně protokolu těžby je stav, kdy ani současná výroba grafických karet (GPU) či běžných mikroprocesorů (CPU) není nemonopolní. Podívejte se třeba na podíl výrobců grafických karet za posledních cca 5let - viz graf níže. Největší podíl drží Intel okolo 70%.

Jak lze potom argumentovat směrem ke změně algoritmu těžby vyhovující CPU či GPU, když nedošlo k demonopolizaci ani u CPU a GPU. Zkrátka procesory jsou high tech produkty a ty nemůže vyrábět firma z Horní Dolní. Určitá úroveň monopolizace je zřejmě přirozená a úplně běžná komodita to asi nebude nikdy.

Navíc je nutné rozlišovat mezi monopolem výroby/vývoje ASICů/CPU/GPU a monopolem těžby. Monopol těžby je to, co vede k získání více jak 50% výkonu sítě. Tyto dvě proměnné se nutně nemusí rovnat (ale mohou).

Na zvýšení centralizace těžby může mít vliv úplně jiný zdroj nutný k těžbě než ASICy – třeba levná elektřina v dané oblasti, efektivnější chlazení apod. Který zdroj bude příčinou uvedeného chování (zvýšení centralizace těžby) je záležitostí toho, jak hodně je vzácný. Pokud uvedené zdroje zásadně vylepší ekonomiku těžby a přístup k nim má pár lidí, pak takový stav povede nejspíš ke zvýšení centralizace těžby, ale v tomto případě ne z důvodu monopolu výroby ASICů.

Jedna z dalších (zatím teoretických) cest v případě změny algoritmu těžby by mohl být tzv Photonic Proof of Work. Další zdroj informací zde.
Obr.: Tržní podíl výrobců grafických karet 2013-2018. Intel dosahuje v průběhu času průměrné hodnoty okolo 70%. Takhle nevypadá demonopolizovaný trh. This statistic shows the global graphics processing units (GPU) market share from the 3rd quarter of 2013 to the 1st quarter of 2018, by vendor. Zdroj: https://www.statista.com/statistics/754557/worldwide-gpu-shipments-market-share-by-vendor/



Závěrem
Myslím, že 51% útok v bitcoinové síti je velice nepravděpodobný. Především z ekonomických důvodů. A nejpravděpodobnější scénář dle mého názoru?

Další rozvoj ekosystému (burzy, peněženky, smart kontrakty, první ETF v USA atd) z toho dlouhodobý růst ceny, růst výdělků z výroby, vývoje a těžby na ASIC počítačích a ziskem hnaný vstup gigantů do oblasti těžebních zařízení jako Intel, AMD, Samsung atd. Tím by mohlo dojít k určité úrovni komodizace ASICů, zmenšení centralizace a snížení rizika 51% útoku.

Uvidíme jak se předpoklad naplní. V kryptu totiž nikdy nevíte dne ani hodiny. Je možné, že dosavadní exponencionální růst sebou přinese originální a brzká vylepšení i v této oblasti.

2.8.2018, JFB








1 komentář:

  1. Bohužel si myslím, že podobných útoků bude víc a ta BTC síť začne postupně oslabovat, až prostě zmizí. Jako dřív bych si vsadil na to, že BTC je dlouhodobě udržitelné, ale teď už bych řekl, že v dlouhodobém hledisku se s BTC rozloučíme. Osobně vidím potenciál ve věcech jako správa dluhopisů. Ta investiční bublina z pandemie už pomalu praská.

    OdpovědětVymazat