258 / 736BWH

Block Withholding Attack

Útok zadržováním bloků

Představte si těžaře, který poolu pravidelně dokládá svou práci. Když ale najde výsledek potřebný k vytvoření platného bloku, zatají ho. V přehledu vypadá jako pracující člen, zatímco pool přichází o šanci získat odměnu. Tak funguje základní Block Withholding Attack. Je to útok na spolupráci těžařů, jehož stopy se mohou podobat obyčejné smůle. Abychom mu rozuměli, potřebujeme odlišit doklady o průběžné práci, skutečné bloky a pravidla rozdělování peněz.

Block Withholding Attack je útok, při kterém těžař posílá poolu běžné doklady o práci, ale záměrně neodevzdá nalezené řešení platného bloku. Pool tak může započítávat jeho práci, aniž by od něj dostával odpovídající příležitosti k získání blokových odměn.

Mining Pool sdružuje těžaře a podle dohodnutých pravidel rozděluje odměny. Nemůže však čekat, až každý malý účastník najde celý blok. Jak vysvětluje Bitcoin Developer Guide, používá proto shares: výsledky splňující jednodušší podmínku, které průběžně dokládají vykonanou práci. Vzácný výsledek splní i přísnější podmínku bitcoinové sítě. Útočník běžné shares odevzdává, ale tento cennější nález zahodí. Stroj přitom skutečně počítá a spotřebovává elektřinu; nejde o bezplatné předstírání těžby. [3]

Odpověď závisí na výplatním modelu. Meni Rosenfeld rozlišuje Pay Per Share (PPS), kde provozovatel platí za přijaté shares, a Pay Per Last N Shares (PPLNS), kde se skutečné blokové odměny rozdělují podle nedávno přijatých shares ve vymezeném rozsahu. U PPS tedy schodek z chybějících bloků nese provozovatel, pokud dodržuje slíbené platby. U PPLNS je méně peněz k rozdělení mezi účastníky, včetně útočníka. Stejný zahozený nález proto může připravit o příjem různé účastníky. Rozhodující jsou konkrétní pravidla poolu, nikoli jen nápis „těžba“ v přehledu. [1]

Samotné zahazování nálezů může být nákladnou sabotáží. Útočník platí za stroje a elektřinu a vzdává se části výnosu, který mohl získat poctivě. Ittay Eyal zkoumá také složitější případ: konkurenční pool nechá část výkonu poctivě těžit a část nasadí proti jinému poolu. Za určitých předpokladů může takové rozdělení zvýšit jeho celkový příjem. Výsledek matematického modelu ale není příslib zisku po všech nákladech. Ztráta oběti sama neříká, zda útočník na celé operaci vydělal. [2]

U obou názvů se setkáme s nezveřejněným blokem, ale jeho osud je jiný. Eyal a Emin Gün Sirer popisují Selfish Mining jako těžbu na neveřejné větvi řetězce a strategické zveřejňování jejích bloků. Útočník chce prosadit vlastní větev a získat za ni odměny. Klasický Block Withholding Attack uvnitř poolu naproti tomu nalezené bloky zahazuje; nepotřebuje budovat vítěznou soukromou větev. Existují i varianty, které odevzdání jen odkládají. Při čtení analýzy proto potřebujeme vědět, kterou strategii autor skutečně zkoumá. [4]

Představme si období, v němž by poctivý těžař podle výkonu a obtížnosti našel v průměru 1 blok. Poissonův model, který používá také Rosenfeld, popisuje nezávislé náhodné nálezy při stálém očekávaném tempu. Dává přibližně 37% šanci, že nenajde žádný. Při očekávaných 3 blocích je tato šance asi 5%. To není pravděpodobnost viny: počítáme možnost nulového výsledku za předpokladu poctivé těžby, nikoli pravděpodobnost podvodu po pozorování nuly. Příklad předpokládá odpovídající stabilní podmínky a předem vymezené období. Průměr není termín, do kterého musí blok přijít. [1]

Eyal upozorňuje na obtížnost přiřazení útoku konkrétnímu malému těžaři. Nestačí ukázat účet bez nalezeného bloku. Potřebujeme porovnat přijaté shares s bloky za stejné období a zohlednit obtížnost shares, tedy množství práce, které zastupují. Hashrate označuje rychlost výpočtů; jeho odhad z těchto dokladů také kolísá. Prověřit je třeba i výpadky, chybějící záznamy a změny podmínek. Pool může mít důvod problém vyšetřit, aniž by měl dost podkladů k obvinění konkrétního člověka. [2]

Eyal probírá bonus za nalezený blok, budování reputace i zkušební úlohy se známým řešením. Každý návrh ale něco mění. Bonus přesouvá více odměny k nálezci, a může tak zvýšit kolísání příjmů malých těžařů. Reputační pravidla ztěžují přechod mezi pooly; zkušební úlohy potřebují údržbu a spolehlivé vyhodnocení. Není to univerzální ochrana, kterou stačí zapnout. Provozovatel musí posoudit účinek i vedlejší dopady a poctivě říct, co jeho opatření dokáže rozpoznat. [2]

Bitcoin Developer Guide odděluje hledání bloku od jeho ověření sítí. Zatajený nález nemění pravidla platnosti transakcí a sám neumožní utratit cizí mince ani přepsat potvrzenou historii. Poškozuje hlavně ekonomiku a důvěru uvnitř těžební spolupráce. Pro čtenáře je proto užitečné držet se tří otázek: co se zatajilo, kdo podle smluvených pravidel přišel o peníze a jaké důkazy skutečně máme. Popsaný mechanismus není obviněním žádného současného poolu. [3]

Pro nejúplnější obraz čtěte toto heslo společně s Mining Pool, Pay Per Last N Shares, Hashrate, Selfish Mining.

DOC · 001Rosenfeld — Analysis of Bitcoin Pooled Mining Reward SystemsPrimární zdroj DOC · 002Eyal — The Miner’s DilemmaPrimární zdroj DOC · 003Bitcoin Developer Guide — MiningDokumentace DOC · 004Eyal and Sirer — Majority is not EnoughPrimární zdroj
Revidováno: Primární zdroje · Nejde o investiční doporučení