Útok a obrana na ethereový důkaz podílem
Stránka naposledy aktualizována: 26. února 2026
Zloději a sabotéři neustále hledají příležitosti k útoku na klientský software Etherea. Tato stránka popisuje známé vektory útoku na konsensuální vrstvu Etherea a popisuje, jak se těmto útokům bránit. Informace na této stránce jsou převzaty z delší verzeopens in a new tab.
Předpoklady
Vyžadují se základní znalosti důkazu podílem. Také je užitečné mít základní znalosti o ethereové vrstvě pobídek a algoritmu pro výběr větve, LMD-GHOST.
Co útočníci chtějí?
Běžnou mylnou představou je, že úspěšný útočník může vytvářet nový ether nebo odčerpávat ether z libovolných účtů. Nic z toho není možné, protože všechny transakce jsou prováděny všemi exekučními klienty v síti. Musí splňovat základní podmínky platnosti (např. transakce jsou podepsány soukromým klíčem odesílatele, odesílatel má dostatečný zůstatek atd.), jinak se jednoduše vrátí. Existují tři třídy výsledků, na které se může útočník realisticky zaměřit: reorganizace, dvojí finalita nebo zpoždění finality.
„Reorganizace“ je přeskupení bloků do nového pořadí, případně s přidáním nebo odebráním některých bloků v kanonickém řetězci. Škodlivá reorganizace může zajistit zahrnutí nebo vyloučení konkrétních bloků, což umožňuje dvojí útratu nebo extrakci hodnoty prostřednictvím front-runningu a back-runningu transakcí (MEV). Reorganizace by se také mohly použít k zabránění zahrnutí určitých transakcí do kanonického řetězce – což je forma cenzury. Nejextrémnější formou reorganizace je „vrácení finality“, které odstraňuje nebo nahrazuje bloky, jež byly dříve finalizovány. To je možné pouze v případě, že více než ⅓ celkového stakovaného etheru je zničeno útočníkem – tato záruka je známá jako „ekonomická finalita“ – o tom více později.
Dvojí finalita je nepravděpodobný, ale závažný stav, kdy se dvě větve dokáží finalizovat současně, což vytvoří trvalé rozdělení v řetězci. To je teoreticky možné pro útočníka, který je ochoten riskovat 34 % celkového stakovaného etheru. Komunita by byla nucena se koordinovat mimo řetězec a dohodnout se, kterou větev bude následovat, což by vyžadovalo sílu sociální vrstvy.
Útok zpožděním finality brání síti v dosažení nezbytných podmínek pro finalizaci úseků řetězce. Bez finality je těžké důvěřovat finančním aplikacím postaveným na Ethereu. Cílem útoku zpožděním finality je pravděpodobně jen narušit Ethereum, než přímý zisk, pokud útočník nemá nějaké strategické krátké pozice.
Útok na sociální vrstvu může mít za cíl podkopat důvěru veřejnosti v Ethereum, znehodnotit ether, snížit adopci nebo oslabit komunitu Etherea, aby byla externí koordinace obtížnější.
Poté, co jsme si ujasnili, proč by protivník mohl zaútočit na Ethereum, následující části se zabývají tím, jak by to mohl udělat.
Metody útoku
Útoky na 0. vrstvu
Především jednotlivci, kteří se aktivně neúčastní na Ethereu (provozováním klientského softwaru), mohou útočit na sociální vrstvu (0. vrstvu). 0. vrstva je základ, na kterém je Ethereum postaveno, a jako taková představuje potenciální plochu pro útoky s důsledky, které se šíří zbytkem stacku. Některé příklady mohou zahrnovat:
-
Dezinformační kampaň by mohla narušit důvěru komunity v plán Etherea, týmy vývojářů, aplikace atd. To by pak mohlo snížit počet jednotlivců ochotných se podílet na zabezpečení sítě, což by narušilo decentralizaci i kryptoekonomickou bezpečnost.
-
Cílené útoky a/nebo zastrašování zaměřené na komunitu vývojářů. To by mohlo vést k dobrovolnému odchodu vývojářů a zpomalit pokrok Etherea.
-
Příliš horlivá regulace by také mohla být považována za útok na 0. vrstvu, protože by mohla rychle odradit od účasti a přijetí.
-
Infiltrace znalých, ale škodlivých aktérů do komunity vývojářů, jejichž cílem je zpomalit pokrok diskusemi o nepodstatných detailech, oddalováním klíčových rozhodnutí, vytvářením spamu atd.
-
Úplatky klíčovým hráčům v ekosystému Etherea za účelem ovlivnění rozhodování.
Co dělá tyto útoky obzvláště nebezpečnými, je skutečnost, že v mnoha případech je zapotřebí jen velmi malý kapitál nebo technické know-how. Útok na 0. vrstvu by mohl být násobitelem kryptoekonomického útoku. Pokud by například cenzury nebo vrácení finality bylo dosaženo škodlivým většinovým držitelem, podkopání sociální vrstvy by mohlo ztížit koordinaci komunitní reakce mimo běžné kanály.
Obrana proti útokům na 0. vrstvu pravděpodobně není jednoduchá, ale lze stanovit některé základní principy. Jedním z nich je udržování celkově vysokého poměru signálu k šumu u veřejných informací o Ethereu, vytvářených a šířených poctivými členy komunity prostřednictvím blogů, serverů na Discordu, anotovaných specifikací, knih, podcastů a YouTube. Zde na ethereum.org se usilovně snažíme udržovat přesné informace a překládat je do co nejvíce jazyků. Zaplavení prostoru vysoce kvalitními informacemi a memy je účinnou obranou proti dezinformacím.
Dalším důležitým opevněním proti útokům na sociální vrstvu je jasné poslání a protokol správy. Ethereum se etablovalo jako šampion v decentralizaci a bezpečnosti mezi 1. vrstvami s chytrými kontrakty, přičemž si také vysoce cení škálovatelnosti a udržitelnosti. Ať už v komunitě Etherea vzniknou jakékoli neshody, tyto základní principy jsou ohroženy jen minimálně. Posuzování narativu oproti těmto základním principům a jeho zkoumání v postupných kolech revize v procesu EIP (Ethereum Improvement Proposal) může komunitě pomoci rozlišit dobré aktéry od špatných a omezuje prostor pro škodlivé aktéry, aby ovlivňovali budoucí směřování Etherea.
A konečně, je zásadní, aby komunita Etherea zůstala otevřená a vstřícná vůči všem účastníkům. Komunita s vrátnými a exkluzivitou je obzvláště zranitelná vůči sociálním útokům, protože je snadné vytvářet narativy „my a oni“. Tribalismus a toxický maximalismus poškozují komunitu a narušují bezpečnost 0. vrstvy. Ethereané s osobním zájmem na bezpečnosti sítě by měli své chování online a v reálném světě vnímat jako přímý příspěvek k bezpečnosti 0. vrstvy Etherea.
Útok na protokol
Kdokoli může provozovat klientský software Etherea. Pro přidání validátora ke klientovi musí uživatel stakovat 32 etherů do depozitního kontraktu. Validátor umožňuje uživateli aktivně se podílet na bezpečnosti sítě Ethereum navrhováním a atestováním nových bloků. Validátor má nyní hlas, který může použít k ovlivnění budoucího obsahu blockchainu – může to dělat poctivě a navyšovat svou zásobu etheru prostřednictvím odměn, nebo se může pokusit manipulovat procesem ve svůj vlastní prospěch a riskovat svůj stake. Jedním ze způsobů, jak provést útok, je nashromáždit větší podíl celkového staku a poté ho použít k přehlasování poctivých validátorů. Čím větší je podíl staku ovládaný útočníkem, tím větší je jeho hlasovací síla, zejména při určitých ekonomických milnících, které prozkoumáme později. Většina útočníků však nebude schopna nashromáždit dostatek etheru k takovému útoku, takže místo toho musí používat jemné techniky k manipulaci poctivé většiny, aby jednala určitým způsobem.
V zásadě jsou všechny útoky s malým stakem jemnými variacemi dvou typů nesprávného chování validátorů: nedostatečná aktivita (neúspěšná atestace/navržení nebo jejich pozdní provedení) nebo nadměrná aktivita (navrhování/atestování příliš mnohokrát v jednom slotu). V nejzákladnějších formách se s těmito akcemi snadno vypořádá algoritmus volby větve a vrstva pobídek, ale existují chytré způsoby, jak systém zneužít ve prospěch útočníka.
Útoky pomocí malého množství ETH
Reorganizace
Několik studií vysvětlilo útoky na Ethereum, které dosahují reorganizace nebo zpoždění finality pouze s malým podílem celkového stakovaného etheru. Tyto útoky obecně spoléhají na to, že útočník zadrží některé informace před ostatními validátory a poté je uvolní nějakým rafinovaným způsobem a/nebo v nějakém vhodném okamžiku. Obvykle se zaměřují na vytlačení některých poctivých bloků z kanonického řetězce. Neuder a kol. 2020opens in a new tab ukázali, jak může útočící validátor vytvořit a atestovat blok (B) pro konkrétní slot n+1, ale zdržet se jeho šíření ostatním uzlům v síti. Místo toho si ponechá atestovaný blok až do dalšího slotu n+2. Poctivý validátor navrhne blok (C) pro slot n+2. Téměř současně může útočník uvolnit svůj zadržený blok (B) a své zadržené atestace pro něj a také atestovat B jako hlavu řetězce svými hlasy pro slot n+2, čímž účinně popře existenci poctivého bloku C. Když je uvolněn poctivý blok D, algoritmus volby větve vidí, že D postavený na B má větší váhu než D postavený na C. Útočník tedy dokázal odstranit poctivý blok C ve slotu n+2 z kanonického řetězce pomocí ex ante reorganizace jednoho bloku. Útočník s 34%opens in a new tab staku má velmi dobrou šanci na úspěch v tomto útoku, jak je vysvětleno v této poznámceopens in a new tab. Teoreticky by se však tento útok mohl pokusit i s menšími staky. Neuder a kol. 2020opens in a new tab popsali tento útok fungující s 30% stakem, ale později se ukázalo, že je životaschopný s 2 % celkového stakuopens in a new tab a poté znovu pro jednoho validátoraopens in a new tab pomocí vyrovnávacích technik, které prozkoumáme v další části.
Koncepční diagram útoku reorganizací jednoho bloku popsaný výše (převzato z https://notes.ethereum.org/plgVdz-ORe-fGjK06BZ_3A#Fork-choice-by-block-slot-pairopens in a new tab)
Sofistikovanější útok může rozdělit sadu poctivých validátorů do diskrétních skupin, které mají různé pohledy na hlavu řetězce. To je známé jako vyrovnávací útok. Útočník čeká na svou šanci navrhnout blok, a když se naskytne, provede ekvivokaci a navrhne dva. Jeden blok pošle jedné polovině sady poctivých validátorů a druhý blok druhé polovině. Ekvivokace by byla detekována algoritmem výběru větve a navrhovatel bloku by byl potrestán (slashed) a vyloučen ze sítě, ale oba bloky by stále existovaly a měly by asi polovinu sady validátorů atestujících pro každou větev. Mezitím zbývající škodliví validátoři zadržují své atestace. Poté selektivním uvolněním atestací ve prospěch jedné či druhé větve právě pro dostatek validátorů v okamžiku, kdy se spustí algoritmus volby větve, převáží kumulativní váhu atestací ve prospěch jedné či druhé větve. To může pokračovat neomezeně, přičemž útočící validátoři udržují rovnoměrné rozdělení validátorů mezi oběma větvemi. Vzhledem k tomu, že žádná větev nemůže přilákat dvoutřetinovou nadpoloviční většinu, síť by se nefinalizovala.
Odrazové útoky jsou podobné. Hlasy jsou opět zadrženy útočícími validátory. Místo uvolnění hlasů, aby se udrželo rovnoměrné rozdělení mezi dvěma větvemi, používají své hlasy ve vhodných okamžicích k ospravedlnění kontrolních bodů, které se střídají mezi větví A a větví B. Toto přeskakování ospravedlnění mezi dvěma větvemi brání tomu, aby existovaly páry ospravedlněných zdrojových a cílových kontrolních bodů, které by mohly být finalizovány na obou řetězcích, což zastaví finalitu.
Odrazové i vyrovnávací útoky spoléhají na to, že útočník má velmi jemnou kontrolu nad časováním zpráv v síti, což je nepravděpodobné. Nicméně v protokolu jsou zabudovány obrany ve formě dodatečného vážení daného rychlým zprávám ve srovnání s pomalými. To je známé jako posílení váhy navrhovateleopens in a new tab. Pro obranu proti odrazovým útokům byl algoritmus volby větve aktualizován tak, aby se nejnovější ospravedlněný kontrolní bod mohl přepnout na alternativní řetězec pouze během první 1/3 slotů v každé epošeopens in a new tab. Tato podmínka brání útočníkovi, aby si šetřil hlasy na pozdější nasazení – algoritmus volby větve jednoduše zůstane věrný kontrolnímu bodu, který si vybral v první 1/3 epochy, během níž by většina poctivých validátorů hlasovala.
Dohromady tato opatření vytvářejí scénář, kdy poctivý navrhovatel bloku vydá svůj blok velmi rychle po začátku slotu, poté následuje období ~1/3 slotu (4 sekundy), kdy tento nový blok může způsobit, že algoritmus volby větve přejde na jiný řetězec. Po uplynutí stejného termínu jsou atestace, které přicházejí od pomalých validátorů, váženy méně než ty, které dorazily dříve. To silně upřednostňuje rychlé navrhovatele a validátory při určování hlavy řetězce a podstatně snižuje pravděpodobnost úspěšného vyrovnávacího nebo odrazového útoku.
Stojí za zmínku, že posilování navrhovatele samo o sobě brání pouze „levným reorganizacím“, tj. těm, o které se pokouší útočník s malým stakem. Ve skutečnosti může být samotné posilování navrhovatele zneužito většími držiteli staku. Autoři tohoto příspěvkuopens in a new tab popisují, jak útočník se 7% staku může strategicky nasadit své hlasy, aby oklamal poctivé validátory, aby stavěli na jeho větvi, a reorganizoval tak poctivý blok. Tento útok byl navržen za předpokladu ideálních podmínek latence, které jsou velmi nepravděpodobné. Šance jsou pro útočníka stále velmi malé a větší stake také znamená větší rizikový kapitál a silnější ekonomickou demotivaci.
Byl také navržen vyrovnávací útok specificky zaměřený na pravidlo LMDopens in a new tab, který byl navržen jako životaschopný navzdory posilování navrhovatele. Útočník nastaví dva konkurenční řetězce tak, že ekvivokuje svůj návrh bloku a každý blok rozšíří asi do poloviny sítě, čímž nastaví přibližnou rovnováhu mezi větvemi. Poté spolupracující validátoři ekvivokují své hlasy a načasují je tak, aby polovina sítě obdržela jejich hlasy pro větev A jako první a druhá polovina obdržela jejich hlasy pro větev B jako první. Protože pravidlo LMD zahodí druhou atestaci a ponechá si pouze první pro každého validátora, polovina sítě vidí hlasy pro A a žádné pro B, druhá polovina vidí hlasy pro B a žádné pro A. Autoři popisují, že pravidlo LMD dává protivníkovi „pozoruhodnou sílu“ k provedení vyrovnávacího útoku.
Tento LMD vektor útoku byl uzavřen aktualizací algoritmu volby větveopens in a new tab tak, aby zcela vyloučil ekvivokující validátory z posuzování volby větve. Ekvivokujícím validátorům je také snížen budoucí vliv algoritmem volby větve. To brání vyrovnávacímu útoku popsanému výše a zároveň udržuje odolnost proti lavinovým útokům.
Další třída útoků, nazývaná lavinové útokyopens in a new tab, byla popsána ve studii z března 2022opens in a new tab. K provedení lavinového útoku potřebuje útočník ovládat několik po sobě jdoucích navrhovatelů bloků. V každém ze slotů pro návrh bloku útočník zadrží svůj blok a sbírá je, dokud poctivý řetězec nedosáhne stejné váhy podstromu jako zadržené bloky. Poté jsou zadržené bloky uvolněny tak, aby maximálně ekvivokovaly. Autoři naznačují, že posilování navrhovatele – primární obrana proti vyrovnávacím a odrazovým útokům – nechrání proti některým variantám lavinového útoku. Autoři však také demonstrovali útok pouze na vysoce idealizované verzi algoritmu volby větve Etherea (použili GHOST bez LMD).
Lavinový útok je zmírněn částí LMD algoritmu volby větve LMD-GHOST. LMD znamená „latest-message-driven“ (řízený poslední zprávou) a odkazuje na tabulku, kterou si každý validátor udržuje a která obsahuje poslední zprávu obdrženou od ostatních validátorů. Toto pole je aktualizováno pouze v případě, že nová zpráva je z pozdějšího slotu než ta, která je již v tabulce pro konkrétního validátora. V praxi to znamená, že v každém slotu je první přijatá zpráva ta, která je akceptována, a jakékoli další zprávy jsou ekvivokace, které se ignorují. Jinými slovy, konsensuální klienti nepočítají ekvivokace – používají první příchozí zprávu od každého validátora a ekvivokace jsou jednoduše zahozeny, což brání lavinovým útokům.
Existuje několik dalších potenciálních budoucích vylepšení pravidla volby větve, které by mohly přidat k bezpečnosti poskytované posílením navrhovatele. Jedním je view-mergeopens in a new tab, kde atestátoři zmrazí svůj pohled na volbu větve n sekund před začátkem slotu a navrhovatel pak pomáhá synchronizovat pohled na řetězec v síti. Dalším potenciálním vylepšením je finalita jednoho slotuopens in a new tab, která chrání proti útokům založeným na časování zpráv finalizací řetězce po jediném slotu.
Zpoždění finality
Stejná studieopens in a new tab, která poprvé popsala levný útok reorganizací jednoho bloku, také popsala útok zpožděním finality (a.k.a „selhání živosti“), který spoléhá na to, že útočník je navrhovatelem bloku na hranici epochy. To je kritické, protože tyto bloky na hranici epochy se stávají kontrolními body, které Casper FFG používá k finalizaci částí řetězce. Útočník jednoduše zadrží svůj blok, dokud dostatek poctivých validátorů nepoužije své FFG hlasy ve prospěch bloku na hranici předchozí epochy jako aktuálního cíle finalizace. Poté uvolní svůj zadržený blok. Atestují svůj blok a zbývající poctiví validátoři také, čímž vytvářejí větve s různými cílovými kontrolními body. Pokud to načasovali správně, zabrání finalitě, protože nebude existovat dvoutřetinová nadpoloviční většina atestující pro žádnou větev. Čím menší je stake, tím přesnější musí být načasování, protože útočník přímo ovládá méně atestací, a tím nižší je pravděpodobnost, že útočník ovládá validátora navrhujícího daný blok na hranici epochy.
Útoky na velkou vzdálenost
Existuje také třída útoků specifických pro blockchainy s důkazem podílem, která zahrnuje validátora, jenž se podílel na genesis bloku, udržujícího oddělenou větev blockchainu vedle té poctivé a nakonec přesvědčujícího poctivou sadu validátorů, aby na ni přešla v nějakém vhodném okamžiku mnohem později. Tento typ útoku není na Ethereu možný kvůli finalizačnímu zařízení, které zajišťuje, že se všichni validátoři shodnou na stavu poctivého řetězce v pravidelných intervalech („kontrolních bodech“). Tento jednoduchý mechanismus neutralizuje útočníky na velkou vzdálenost, protože klienti Etherea jednoduše nebudou reorganizovat finalizované bloky. Nové uzly se připojují k síti tak, že najdou důvěryhodný nedávný haš stavu (kontrolní bod „slabé subjektivityopens in a new tab“) a použijí jej jako pseudo-genesis blok, na kterém staví. To vytváří „důvěryhodnou bránu“ pro nový uzel vstupující do sítě, než si může začít ověřovat informace sám.
Odepření služby
Mechanismus PoS Etherea vybírá jednoho validátora z celkové sady validátorů jako navrhovatele bloku v každém slotu. To lze vypočítat pomocí veřejně známé funkce a je možné, aby protivník identifikoval dalšího navrhovatele bloku s mírným předstihem před jeho návrhem bloku. Poté může útočník spamovat navrhovatele bloku, aby mu zabránil ve výměně informací s jeho vrstevníky. Zbytku sítě by se zdálo, že navrhovatel bloku byl offline, a slot by jednoduše zůstal prázdný. To by mohla být forma cenzury proti konkrétním validátorům, která by jim bránila v přidávání informací do blockchainu. Implementace voleb jediného tajného lídra (SSLE) nebo voleb nejediného tajného lídra zmírní rizika DoS, protože pouze navrhovatel bloku ví, že byl vybrán, a výběr není znám předem. To ještě není implementováno, ale je to aktivní oblast výzkumu a vývojeopens in a new tab.
To vše poukazuje na skutečnost, že je velmi obtížné úspěšně zaútočit na Ethereum s malým stakem. Životaschopné útoky, které zde byly popsány, vyžadují idealizovaný algoritmus volby větve, nepravděpodobné podmínky sítě nebo vektory útoku již byly uzavřeny relativně drobnými záplatami klientského softwaru. To samozřejmě nevylučuje možnost existence zero-day zranitelností, ale ukazuje to extrémně vysokou laťku technické zdatnosti, znalostí konsensuální vrstvy a štěstí, které jsou nutné, aby byl útočník s menšinovým stakem účinný. Z pohledu útočníka by jejich nejlepší sázka mohla být nashromáždit co nejvíce etheru a vrátit se vyzbrojeni větším podílem celkového staku.
Útočníci používající >= 33 % celkového staku
Všechny útoky zmíněné dříve v tomto článku se stávají pravděpodobnějšími, když má útočník více stakovaného etheru k hlasování a více validátorů, kteří mohou být vybráni k navrhování bloků v každém slotu. Škodlivý validátor by se proto mohl zaměřit na ovládnutí co největšího množství stakovaného etheru.
33 % stakovaného etheru je pro útočníka referenční hodnota, protože s čímkoli větším než tímto množstvím má schopnost zabránit finalizaci řetězce, aniž by musel jemně ovládat akce ostatních validátorů. Mohou jednoduše všichni společně zmizet. Pokud 1/3 nebo více stakovaného etheru škodlivě atestuje nebo neprovádí atestaci, pak nemůže existovat dvoutřetinová nadpoloviční většina a řetězec se nemůže finalizovat. Obranou proti tomu je únik nečinnosti. Únik nečinnosti identifikuje ty validátory, kteří neprovádějí atestaci nebo atestují v rozporu s většinou. Stakovaný ether vlastněný těmito neatestujícími validátory postupně ubývá, dokud nakonec společně nepředstavují méně než 1/3 celkového množství, takže se řetězec může znovu finalizovat.
Účelem úniku nečinnosti je znovu zprovoznit finalizaci řetězce. Útočník však také ztratí část svého stakovaného etheru. Trvalá nečinnost u validátorů představujících 33 % celkového stakovaného etheru je velmi drahá, i když validátoři nejsou potrestáni (slashed).
Za předpokladu, že síť Ethereum je asynchronní (tj. dochází ke zpoždění mezi odesláním a přijetím zpráv), útočník ovládající 34 % celkového staku by mohl způsobit dvojí finalitu. Je to proto, že útočník může ekvivokovat, když je vybrán jako producent bloku, a poté dvakrát hlasovat se všemi svými validátory. To vytváří situaci, kdy existuje větev blockchainu, přičemž každá má 34 % stakovaného etheru, který pro ni hlasuje. Každá větev vyžaduje pouze 50 % zbývajících validátorů, aby hlasovali v její prospěch, aby obě větve byly podporovány nadpoloviční většinou, v takovém případě se obě řetězce mohou finalizovat (protože 34 % útočníkových validátorů + polovina zbývajících 66 % = 67 % na každé větvi). Konkurenční bloky by musely být přijaty asi 50 % poctivých validátorů, takže tento útok je životaschopný pouze tehdy, když má útočník určitou míru kontroly nad časováním zpráv šířených po síti, aby mohl nasměrovat polovinu poctivých validátorů na každý řetězec. Útočník by nutně zničil celý svůj stake (34 % z ~10 milionů etherů s dnešní sadou validátorů), aby dosáhl této dvojí finality, protože 34 % jeho validátorů by současně hlasovalo dvakrát – což je trestný čin (slashable) s maximální korelační penalizací. Obranou proti tomuto útoku je velmi vysoká cena zničení 34 % celkového stakovaného etheru. Zotavení z tohoto útoku by vyžadovalo, aby se komunita Etherea koordinovala „mimo pásmo“ a dohodla se, že bude následovat jednu nebo druhou větev a druhou ignorovat.
Útočníci používající ~50 % celkového staku
S 50 % stakovaného etheru by zlomyslná skupina validátorů teoreticky mohla rozdělit řetězec na dvě stejně velké větve a poté jednoduše použít celý svůj 50% stake k hlasování v rozporu s poctivou sadou validátorů, čímž by udržela obě větve a zabránila finalitě. Únik nečinnosti na obou větvích by nakonec vedl k finalizaci obou řetězců. V tomto okamžiku je jedinou možností vrátit se k sociálnímu zotavení.
Je velmi nepravděpodobné, že by nepřátelská skupina validátorů mohla trvale ovládat přesně 50 % celkového staku vzhledem k určité fluktuaci počtu poctivých validátorů, latenci sítě atd. – obrovské náklady na provedení takového útoku v kombinaci s nízkou pravděpodobností úspěchu se zdají být silnou demotivací pro racionálního útočníka, zejména když malá dodatečná investice do získání více než 50 % odemkne mnohem více síly.
S více než 50 % celkového staku by útočník mohl ovládnout algoritmus volby větve. V tomto případě by útočník mohl atestovat s většinovým hlasem, což by mu dalo dostatečnou kontrolu k provádění krátkých reorganizací, aniž by musel klamat poctivé klienty. Poctiví validátoři by následovali, protože jejich algoritmus volby větve by také viděl útočníkem preferovaný řetězec jako nejtěžší, takže by se řetězec mohl finalizovat. To umožňuje útočníkovi cenzurovat určité transakce, provádět krátkodobé reorganizace a extrahovat maximální MEV přeskupováním bloků ve svůj prospěch. Obranou proti tomu je obrovská cena většinového staku (v současnosti téměř 19 miliard USD), který je útočníkem ohrožen, protože sociální vrstva pravděpodobně zasáhne a přijme poctivou menšinovou větev, což dramaticky znehodnotí útočníkův stake.
Útočníci používající >=66 % celkového staku
Útočník s 66 % nebo více celkového stakovaného etheru může finalizovat svůj preferovaný řetězec, aniž by musel nutit poctivé validátory. Útočník může jednoduše hlasovat pro svou preferovanou větev a poté ji finalizovat, jednoduše proto, že může hlasovat s nepoctivou nadpoloviční většinou. Jako držitel nadpoloviční většiny by útočník vždy ovládal obsah finalizovaných bloků, s mocí utrácet, vracet a znovu utrácet, cenzurovat určité transakce a reorganizovat řetězec podle libosti. Nákupem dalšího etheru k ovládnutí 66 % místo 51 % si útočník v podstatě kupuje schopnost provádět ex post reorganizace a vrácení finality (tj. měnit minulost a ovládat budoucnost). Jedinou skutečnou obranou jsou zde obrovské náklady na 66 % celkového stakovaného etheru a možnost vrátit se k sociální vrstvě a koordinovat přijetí alternativní větve. To si můžeme podrobněji prozkoumat v další části.
Lidé: poslední obranná linie
Pokud se nepoctivým validátorům podaří finalizovat svou preferovanou verzi řetězce, komunita Etherea se dostane do obtížné situace. Kanonický řetězec zahrnuje nepoctivou část zapečenou do své historie, zatímco poctiví validátoři mohou být potrestáni za atestování alternativního (poctivého) řetězce. Všimněte si, že finalizovaný, ale nesprávný řetězec by mohl vzniknout také z chyby ve většinovém klientovi. Nakonec je posledním útočištěm spoléhat se na sociální vrstvu – 0. vrstvu – k vyřešení situace.
Jednou ze silných stránek konsensu PoS Etherea je, že existuje řada obranných strategiíopens in a new tab, které může komunita použít tváří v tvář útoku. Minimální odpovědí by mohlo být nucené opuštění sítě útočníkovými validátory bez jakéhokoli dalšího postihu. Pro opětovný vstup do sítě by se útočník musel zařadit do aktivační fronty, která zajišťuje, že se sada validátorů rozrůstá postupně. Například přidání dostatečného počtu validátorů ke zdvojnásobení množství stakovaného etheru trvá asi 200 dní, což poctivým validátorům efektivně kupuje 200 dní, než se útočník může pokusit o další 51%ní útok. Komunita by se však také mohla rozhodnout potrestat útočníka přísněji, a to zrušením minulých odměn nebo spálením části (až 100 %) jeho stakovaného kapitálu.
Ať už je útočníkovi uložen jakýkoli trest, komunita se také musí společně rozhodnout, zda je nepoctivý řetězec, přestože je favorizován algoritmem volby větve zakódovaným v klientech Etherea, ve skutečnosti neplatný a zda by komunita měla místo toho stavět na poctivém řetězci. Poctiví validátoři by se mohli kolektivně dohodnout, že budou stavět na komunitou akceptované větvi blockchainu Etherea, která by se například mohla odpojit od kanonického řetězce před začátkem útoku nebo by mohla mít nuceně odstraněné validátory útočníka. Poctiví validátoři by byli motivováni stavět na tomto řetězci, protože by se vyhnuli trestům, které by jim byly uloženy za (oprávněné) neprovedení atestace útočníkova řetězce. Burzy, on-rampy a aplikace postavené na Ethereu by pravděpodobně preferovaly být na poctivém řetězci a následovaly by poctivé validátory na poctivý blockchain.
To by však byla podstatná výzva pro správu. Někteří uživatelé a validátoři by nepochybně utrpěli v důsledku přechodu zpět na poctivý řetězec, transakce v blocích validovaných po útoku by mohly být potenciálně vráceny, což by narušilo aplikační vrstvu, a jednoduše to podkopává etiku některých uživatelů, kteří mají tendenci věřit, že „kód je zákon“. Burzy a aplikace budou s největší pravděpodobností mít propojené offchain akce s onchain transakcemi, které mohou být nyní vráceny, což spustí kaskádu odvolání a revizí, které by bylo těžké spravedlivě rozplést, zejména pokud byly neoprávněně získané zisky smíchány, uloženy do DeFi nebo jiných derivátů se sekundárními účinky pro poctivé uživatele. Nepochybně někteří uživatelé, možná i institucionální, by již profitovali z nepoctivého řetězce buď díky prozíravosti, nebo náhodě, a mohli by se postavit proti větvi, aby ochránili své zisky. Objevily se výzvy k nácviku reakce komunity na >51%ní útoky, aby bylo možné rychle provést rozumnou koordinovanou mitigaci. Užitečnou diskusi od Vitalika na ethresear.ch najdete zdeopens in a new tab a zdeopens in a new tab a na Twitteru zdeopens in a new tab. Cílem koordinované sociální reakce by mělo být velmi cílené a specifické potrestání útočníka a minimalizace dopadů na ostatní uživatele.
Správa je již sama o sobě složitým tématem. Řízení nouzové reakce 0. vrstvy na nepoctivý finalizující řetězec by pro komunitu Etherea bylo nepochybně náročné, ale v historii Etherea se to stalo – dvakrát).
Nicméně je něco docela uspokojivého na tom, že poslední útočiště spočívá v reálném světě. Nakonec, i s touto fenomenální technologickou soustavou nad námi, pokud by se kdy stalo to nejhorší, skuteční lidé by se z toho museli koordinovaně dostat.
Shrnutí
Tato stránka prozkoumala některé způsoby, jak by se útočníci mohli pokusit zneužít konsensuální protokol Etherea s důkazem podílem. Byly prozkoumány reorganizace a zpoždění finality pro útočníky s rostoucím podílem celkového stakovaného etheru. Celkově má bohatší útočník větší šanci na úspěch, protože jeho stake se promítá do hlasovací síly, kterou může použít k ovlivnění obsahu budoucích bloků. Při určitých prahových hodnotách stakovaného etheru se síla útočníka zvyšuje:
33 %: zpoždění finality
34 %: zpoždění finality, dvojí finalita
51 %: zpoždění finality, dvojí finalita, cenzura, kontrola nad budoucností blockchainu
66 %: zpoždění finality, dvojí finalita, cenzura, kontrola nad budoucností i minulostí blockchainu
Existuje také řada sofistikovanějších útoků, které vyžadují malé množství stakovaného etheru, ale spoléhají na velmi sofistikovaného útočníka, který má jemnou kontrolu nad časováním zpráv, aby ovlivnil poctivou sadu validátorů ve svůj prospěch.
Celkově je navzdory těmto potenciálním vektorům útoku riziko úspěšného útoku nízké, rozhodně nižší než u ekvivalentů s důkazem prací. Je to kvůli obrovským nákladům na stakovaný ether, který je ohrožen útočníkem, jenž se snaží přemoci poctivé validátory svou hlasovací silou. Zabudovaná vrstva pobídek „cukru a biče“ chrání před většinou zločinného jednání, zejména u útočníků s nízkým stakem. Jemnější odrazové a vyrovnávací útoky také pravděpodobně neuspějí, protože reálné podmínky sítě činí jemnou kontrolu doručování zpráv konkrétním podmnožinám validátorů velmi obtížně dosažitelnou a týmy klientů rychle uzavřely známé vektory odrazových, vyrovnávacích a lavinových útoků jednoduchými záplatami.
Útoky s 34 %, 51 % nebo 66 % by pravděpodobně vyžadovaly sociální koordinaci mimo pásmo k vyřešení. I když by to pro komunitu pravděpodobně bylo bolestivé, schopnost komunity reagovat mimo pásmo je pro útočníka silnou demotivací. Sociální vrstva Etherea je konečnou pojistkou – technicky úspěšný útok by stále mohl být neutralizován, pokud by se komunita dohodla na přijetí poctivé větve. Dojde k závodu mezi útočníkem a komunitou Etherea – miliardy dolarů utracené za 66% útok by pravděpodobně byly zničeny úspěšným sociálním koordinačním útokem, pokud by byl proveden dostatečně rychle, a útočníkovi by zůstaly těžké pytle nelikvidního stakovaného etheru na známém nepoctivém řetězci ignorovaném komunitou Etherea. Pravděpodobnost, že by to pro útočníka bylo ziskové, je dostatečně nízká na to, aby to bylo účinným odstrašujícím prostředkem. Proto je investice do udržování soudržné sociální vrstvy s pevně sladěnými hodnotami tak důležitá.
Další čtení
- Podrobnější verze této stránkyopens in a new tab
- Vitalik o finalitě vypořádáníopens in a new tab
- Studie o LMD GHOSTopens in a new tab
- Práce na Casper-FFGopens in a new tab
- Práce na Casperopens in a new tab
- Specifikace konsensu pro posílení váhy navrhovateleopens in a new tab
- Odrazové útoky na ethresear.chopens in a new tab
- Výzkum SSLEopens in a new tab
