Útok 51 procent

Co útočník může a co ne, a spočítaná cena útoku.

Co se naučíš: Budeš vědět přesně, co útočník s většinou výkonu může a co nemůže ani teoreticky.

7 min čtení + cvičeníNavazuje na:🔀 Forky a nejdelší řetěz

Kolem téhle hranice je hodně nedorozumění. Nejde o číslo, za kterým se něco rozbije, a útočník s většinou výkonu nemůže zdaleka všechno. Tahle kapitola říká přesně, co může, co nemůže a kolik by ho to stálo.


Co útočník s většinou výkonu může

MůžeJak
Dvojí utracenívybuduje delší řetěz, ve kterém jeho platba není
Cenzurovat transakceprostě je nezařadí do svých bloků
Vytlačit ostatní mineryjeho větev vždycky vyhraje, cizí bloky osiří
Přepsat nedávnou historiidokud se mu vyplatí přemínovat

Co nemůže ani s devadesáti procenty

NemůžeProč
Utratit cizí coinypotřeboval by privátní klíč, výkon s tím nepomůže
Vyrobit coiny mimo pravidlaemisi ověřuje každý uzel nezávisle
Změnit pravidla protokolupravidla vynucují uzly, ne mineři
Zůstat neviditelnýreorg je pro každého vidět okamžitě
Přepsat hlubokou historiicena roste s hloubkou a nikdy nekončí

Tohle rozdělení je podstatné. Útok 51 % není ovládnutí blockchainu. Je to schopnost manipulovat s pořadím a s posledními několika bloky. Na krádež to nestačí.


Proč to není ostrá hranice

Pod padesáti procenty útok není nemožný, jen nejistý. Nad padesáti není jistý okamžitě, jen nevyhnutelný, když počkáš dost dlouho.

Z tabulky v kapitole o podvrhnutí: útočník se 45 % má i po šesti potvrzeních přes třicetiprocentní šanci. To je z praktického hlediska zničující, a přitom je pod hranicí.

Hranice 51 % je tedy popis toho, kdy pravděpodobnost přejde v jistotu, ne kdy začne nebezpečí.


Poctivá většina se láme dřív než na padesáti procentech

Zatím to vypadalo, že pod padesáti procenty je útočník jen v nevýhodě. U dvojího utracení to platí, ale existuje jiná strategie, u které to neplatí.

Jmenuje se sobecké minování a funguje takhle: když miner najde blok, nezveřejní ho. Mine si potají dál a náskok si drží. Když poctivá síť najde blok, on okamžitě zveřejní svůj delší řetěz a práce ostatních propadne.

Podstatné je, že se mu to vyplatí i výrazně pod polovinou výkonu. Podle původní práce Eyala a Sirera stačí zhruba čtvrtina, a při dobrém propojení v síti ještě míň.

Neznamená to, že jde dvojí utracení, ani že jde krást. Znamená to něco jinak nepříjemného: předpoklad, že se poctivé chování většině vyplatí, přestává platit dřív, než se dojde k padesáti procentům. A protože sobeckému minerovi roste podíl na odměnách, má z čeho dál růst.

Hranice 51 % je tedy strop pro jistotu útoku na historii, ne dolní hranice, pod kterou je všechno v pořádku.


Kolik to stojí

Cena útoku se dá odhadnout přímočaře: potřebuješ hodinu výkonu srovnatelného s celou sítí. U velkých sítí to znamená vybudovat datové centrum s desítkami tisíc specializovaných strojů, což je otázka miliard a měsíců dodacích lhůt.

U malých sítí je to ale jiný příběh. Existují služby, kde si těžební výkon pronajmeš na hodiny, a pokud daná síť používá tentýž algoritmus jako nějaká větší, je k dispozici výkonu dost. Cena útoku pak klesá na tisíce dolarů a útoky se skutečně opakovaně staly.

Praktické pravidlo: bezpečnost sítě je úměrná ceně jejího výkonu, ne stáří nebo popularitě. Síť s malým podílem na sdíleném algoritmu je zranitelná bez ohledu na to, jak dlouho běží.


Obrana

  • Víc potvrzení u větších částek. Nejlevnější a nejúčinnější opatření na straně příjemce.
  • Vlastní algoritmus. Pokud pro daný algoritmus neexistuje pronajímatelný výkon, útok vyžaduje vlastní hardware.
  • Kontrolní body. Některé sítě zmrazí historii do určitého bloku, čímž se vzdají části bezdůvěrnosti výměnou za jistotu.
  • Sledování reorgů. Burzy hlídají hloubku reorgů a při anomálii zastaví výběry.

Cvičení

  1. Proč útočník s 51 % nemůže ukrást coiny z cizí adresy?
  2. Síť A má vlastní algoritmus a malý výkon. Síť B sdílí algoritmus s velkou sítí a má dvojnásobný výkon než A. Která je zranitelnější?
  3. Proč se hranice jmenuje 51 %, když už 45 % je nebezpečných?
  4. Proč se sobeckému minerovi vyplatí zadržet nalezený blok, i když riskuje, že o něj přijde?
Náčrt řešení: rozbal, až si cvičení zkusíš sám
  1. Protože k utracení je potřeba podpis, a ten se vyrábí privátním klíčem, ne výpočetním výkonem. Mineři rozhodují o tom, které platné transakce se zařadí a v jakém pořadí, ale platnost samotnou určují pravidla, která ověřuje každý uzel. Transakce bez správného podpisu je neplatná a blok, který ji obsahuje, nikdo nepřijme, ať za ním stojí jakkoli velká práce.
  2. Zranitelnější je B, přestože má víc výkonu. U sítě A musí útočník pořídit vlastní hardware, protože pro její algoritmus žádný pronajímatelný výkon neexistuje, což je otázka měsíců a velkých peněz. U sítě B stačí pronajmout si část výkonu té velké sítě, se kterou sdílí algoritmus, a to jsou hodiny a tisíce dolarů. Rozhoduje dostupnost výkonu, ne jeho absolutní množství.
  3. Protože nad polovinou se z pravděpodobnosti stává jistota. Útočník s menším podílem může uspět, ale musí mít štěstí a jeho šance klesá s každým potvrzením geometricky. Nad padesáti procenty šance neklesá vůbec: stačí počkat dost dlouho a delší řetěz vznikne s jistotou. Hranice tedy neodděluje bezpečné od nebezpečného, ale nejisté od zaručeného.
  4. Protože tím připraví o odměnu ostatní, čímž si zvýší svůj podíl na celkových výnosech. Riskuje, že jeho zadržený blok propadne, když síť najde blok dřív a on nestihne zveřejnit náskok. Jenže když to vyjde, propadne práce ostatních, a při dostatečném podílu výkonu je očekávaný výnos z téhle strategie vyšší než z poctivého minování. Podle původní analýzy stačí zhruba čtvrtina výkonu, při rychlém šíření bloků i méně. Důsledek je, že předpoklad poctivé většiny nestojí na padesáti procentech, ale výrazně níž.

Shrnutí

  • Útok 51 % umožňuje dvojí utracení, cenzuru a přepis nedávné historie.
  • Neumožňuje krádež z cizích adres ani emisi mimo pravidla, protože ta ověřují uzly.
  • Není to ostrá hranice; už 45 % je prakticky nebezpečných, nad 50 % je úspěch jistý.
  • Sobecké minování se vyplatí už zhruba od čtvrtiny výkonu, takže poctivá většina se láme dřív.
  • Cena útoku závisí na dostupnosti pronajímatelného výkonu, ne na velikosti sítě.
  • Obrana na straně příjemce je hlavně větší počet potvrzení a sledování reorgů.
Co útočník s většinou výpočetní síly rozhodně nedokáže?

Nedokáže utratit cizí prostředky, protože k tomu potřebuje privátní klíč, a nedokáže vyrobit coiny mimo pravidla emise, protože ta ověřuje každý uzel nezávisle. Může měnit pořadí transakcí, cenzurovat je a přepsat posledních několik bloků, což stačí na dvojí utracení, nikoli na krádež.

Proč je síť sdílející algoritmus s větší sítí zranitelnější?

Protože pro takový algoritmus existuje volný výkon, který si lze pronajmout na hodiny. Útočník tedy nemusí pořizovat hardware a cena útoku klesá na tisíce dolarů. Rozhoduje dostupnost výkonu vůči velikosti dané sítě, ne absolutní počet strojů.

Proč se mluví o hranici 51 procent, když nebezpečí začíná dřív?

Protože nad polovinou výkonu přestává být úspěch útoku otázkou štěstí a stává se jistotou při dostatečně dlouhém čekání. Pod polovinou šance s každým potvrzením geometricky klesá, ale nikoli na nulu: útočník se 45 procenty má i po šesti potvrzeních přes třicetiprocentní naději.