🇨🇿 Uvidíme MEV problem na Cardanu?

Termín MEV je zkratkou pro Miner Extractable Value (Minery extrahovatelná hodnota). Producenti bloků nebo jiné subjekty mohou dosáhnout zisku díky své schopnosti ovlivnit pořadí transakcí v novém bloku. Producenti bloků mají právo zahrnout, vyloučit nebo změnit pořadí transakcí v blocích k čemuž mohou být ekonomicky motivováni. MEV je jedním z největších problémů Etherea, které od uživatelů odčerpalo hodnotu ve výši více než stovek milionů USD. Vysvětlíme si tento problém a probereme, zda můžeme stejný problém očekávat i u Cardana.

Co je MEV?

Každý producent bloků udržuje seznam nepotvrzených transakcí v takzvaném mem-poolu. Pokaždé, když uživatel zadá novou transakci, přijde tato transakce do mem-poolu, kde čeká na přidání do bloku. Totéž platí pro transakce vytvořené prostřednictvím decentralizovaných aplikací, jako jsou burzy. Když uzel získá právo vytvořit nový blok, vybere transakce z mem-poolu podle pravidel protokolu a vloží je do nového bloku. Pokud uzel obdrží nový blok, který byl vytvořen jiným uzlem, podívá se na transakce v bloku a může stejné transakce ve svém mem-poolu smazat. Pokud jsou transakce v bloku, je velká šance, že budou následně potvrzeny. Uzel nemusí transakce smazat okamžitě, ale až po nějaké době (po několika potvrzeních), protože si nemůže být jistý, zda nový blok bude přijat většinou uzlů v síti a stane se navždy součástí blockchainu. Toto je obecný popis toho, jak uzly obvykle zpracovávají transakce v jakékoli blockchainové síti.

V ideálním světě by producenti bloků neznali význam transakcí, nezajímali se o něj a vkládali by je do bloku poctivě v pořadí, v jakém přišly. V případě Etherea však máme k tomuto ideálu daleko.

MEV je pro producenty bloků podvodnou příležitostí, která jim umožňuje maximalizovat svůj zisk tím, že určují pořadí transakcí v novém bloku ve svůj prospěch. To zahrnuje libovolnou změnu pořadí, zařazení nebo vyloučení transakcí v rámci bloku na úkor uživatelů.

Nevyhnutelnou součást MEV vykonávají autonomní účastníci sítě zvaní vyhledávači. Vyhledávače jsou obsluhovány uživateli, kteří obsluhují složité algoritmy detekující dostupné ziskové příležitosti MEV. Snaží se pochopit význam transakce. Vědí například, že na Uniswapu probíhá obrovská swap transakce. Na základě této a dalších znalostí vyhledávají příležitosti. Všimněte si, že vyhledávače nemusí nutně provozovat výrobci bloků. Vyhledávače jsou boti, kteří automaticky odesílají profitabilní transakce do sítě, jakmile najdou příležitost.

Když vyhledávači najdou “bezpečnou” ziskovou příležitost, jsou schopni platit vysoké poplatky za transakce. Vysoký poplatek motivuje producenty bloků a validátory k přijetí jimi navrženého pořadí transakcí. Ethereum umožňuje uživatelům nastavit libovolně vysoký transakční poplatek. Když vyhledávači najdou vhodnou příležitost, jsou schopni nastavit mnohem vyšší poplatek než uživatelé. Protože boti jsou schopni najít příležitost velmi rychle a odeslat transakci v řádu mikrosekund, jejich transakce přeskočí transakce uživatelů v mem-poolu. Přesněji řečeno, pokud výrobci bloků vybírají transakce podle velikosti poplatků, je pro ně ekonomicky výhodné vybrat jako první transakci s vyšším poplatkem. Velikost poplatku má přednost před dobou doručení transakce.

Tomuto postupu se říká front-running. Jedná se o sledování nepotvrzených transakcí v mem-poolu, vyhledávání ziskových příležitostí a následné předbíhání původních transakcí předkládáním jejich kopií, ale s vyššími poplatky.

Jinými slovy, ziskový obchod provede majitel bota místo uživatele. Uživatelova transakce buď selže, nebo je ekonomicky méně zisková, než když byla transakce submitnutá do stíě. Tímto způsobem výrobce bloku získává od uživatele ekonomickou hodnotu.

Příklad front-runningu

On-chain likvidita je roztříštěna do mnoha poolů, které spolu nekomunikují. Roztříštěná likvidita vytváří možnost nakupovat nízko a prodávat vysoko napříč pooly likvidity.

Představte si, že obchodník najde arbitrážní příležitost. Chce nakoupit WBTC v hodnotě 10 milionů dolarů na Uniswapu za 20 200 dolarů za 1 WBTC. Poté chce prodat všechny WBTC na Sushiswapu, kde je hodnota 20 250 USD za 1 WBTC. Musí tedy nakoupit WBTC za nižší cenu na Uniswapu a pak je rychle prodat za vyšší cenu na Sushiswapu. Aby obchodník z této příležitosti profitoval, musí odeslat transakci, která bude čekat v mem-poolu, až si ji vybere producent bloku a provede ji.

Problém je v tom, že submitnutí transakce otevírá okno pro front-runner bota, který se může vkrást a příležitost využít. Boti mohou analyzovat obsah transakce a dojít k závěru, že je ekonomicky výhodné transakci uživatele přeskočit. Zatímco transakce uživatele čeká v mem-poolu na provedení, bot rychle zkopíruje transakci a nastaví vyšší poplatek. Transakce bota tak bude provedena dříve než transakce uživatele. Tím obchodníka efektivně připraví o možnost arbitráže a profituje na jeho intelektuální, peněžní a kreativní úkor.

Na rozdíl od tradičního světa nemůže Ethereum zpracovávat on-chain transakce paralelně a umožňuje pouze sekvenční zpracování. To znamená, že všechny transakce v bloku mají pevné pořadí a toto pořadí musí být při validaci zachováno. To poskytuje producentům bloků velkou moc, která může být zneužita. I když se producenti chovají férově a sledují pouze ekonomické zájmy, mohou boti kdykoli předložit transakce s vyšším poplatkem a ovlivnit tak pořadí transakcí v blocích.

Je možné, aby si boti zdarma půjčili 10 milionů USDC z lending platformy Aave za předpokladu, že na konci transakce vrátí zpět do půjčovny přesně 10 milionů USDC. Tomu se říká blesková půjčka. To lze provést pomocí vlastního chytrého kontraktu, který je předem nasazen v blockchainu. Majitel bota ani nepotřebuje potřebný kapitál pro front-runningový útok. Bot vytvoří transakci, která si dočasně vypůjčí potřebný kapitál a provede oba obchody na Uniswapu a Sushiswapu. Z pohledu sítě se bude jednat o atomickou operaci.

Dodejme, že na podobném principu je založeno více typů útoků, například útok typu back-run, sendvičový útok a další.

Dočkáme se v Cardanu MEV útoku?

Problém MEV se v ekosystému Cardano zatím neobjevil. Cardano však nemá žádná aktivní opatření, která by MEV zabránila. V zásadě nic nemůže zabránit provozovatelům poolu, aby rychle vytvořili a vložili transakci do bloku a zároveň záměrně vynechali jinou transakci. Je tedy teoreticky možné spáchat front-running útok podobně jako v případě Etherea. Proč k tomu zatím nedošlo v praxi?

Jedním z důvodů je, že protokol Cardano stanovuje poplatky deterministicky. Pokud někdo vytvoří kopii transakce, která je stejná nebo velmi podobná té původní, bude poplatek za transakci stejný. Navíc získání transakčního poplatku není přímo vázáno na vytvoření bloku. Všechny transakční poplatky jsou sdruženy a rozděleny všem operátorům (a stakerům) jednou za 5 dní na konci epochy. I kdyby hypoteticky operátor preferoval transakci s velkým poplatkem, tento poplatek nezíská celý.

V důsledku toho je obtížné spáchat útoky MEV pro subjekty, které nejsou operátory, protože nemohou využít velikosti poplatku k vynucení změny pořadí transakcí.

Vysoká decentralizace protokolu Cardano brání útokům MEV, protože je může provádět pouze uzel, který je aktuálně vedoucím slotu. Šance, že uzel najde výhodné příležitosti MEV a zároveň bude lídrem slotu, existuje, ale je relativně malá. S rostoucí decentralizací se šance snižují, takže pokud má daný pool například 1% podíl, má podobnou šanci být lídrem slotu, když se mu to zrovna hodí.

Pokud by se pool podílel na útocích MEV, mohlo by to delegáty odradit. Provozovatel poolu si musí rozmyslet, zda se mu útok MEV vyplatí, protože riskuje ztrátu stake poolu, a tedy i podílu na produkci bloku. Existuje velká pravděpodobnost, že pokud by se podařilo útok MEV odhalit a informace zveřejnit komunitě delegátů, pool by ztratil vliv. Ukazuje se jako výhodné, že delegáti mohou přímo ekonomicky ovlivňovat férové chování provozovatelů poolu. Ti si musí svých delegátů vážit a nezradit ekosystém využitím příležitostí MEV.

Určitá šance na úspěšné využití příležitostí MEV by existovala, kdyby se spojilo více velkých provozovatelů poolů. Tím by se zvýšila šance, že se někdo ze skupiny stane ve vhodnou dobu vedoucím slotu. Nemyslím si, že by k tomu v praxi došlo, ale nelze to vyloučit. Teoreticky je možné, že by se provozovatelé poolů o vytěženou hodnotu dělili s delegáty. Delegáti by pak nadále podporovali pool svými mincemi ADA a v podstatě by se podíleli na podvodu. Pokud by se provozovatel poolu musel o zisk dělit s delegáty, ekonomická motivace by byla pro všechny zúčastněné strany nižší.

Útok MEV je na Cardanu poněkud složitější vzhledem k modelu EUTXO a skutečnosti, že transakce nejsou závislé na globálním stavu a pořadí transakcí v bloku. To však nezajišťuje 100% odolnost vůči tomuto jevu.

Existují nějaká účinná opatření, která by útokům MEV zabránila?

Z našeho pohledu by mohla pomoci anonymita transakcí. Pokud by nebylo možné analyzovat obsah transakcí, nebylo by možné hledat příležitosti k MEV. Obsah transakcí by mohl být veřejný až po zveřejnění bloku.

Pomoci by mohlo i zvýšení paralelizace zpracování transakcí, při kterém by asistovaly druhé vrstvy. Ouroboros Leios umožní zpracovávat transakce v podstatě okamžitě po jejich odeslání, čímž se zkrátí čas potřebný k analýze transakcí a rychlému předložení konkurenčních podvodných transakcí.

Závěr

Čím více uživatelů ekosystém Cardano přijme, tím větší zájem budou mít útočníci o zneužití systému ve svůj prospěch. Ekonomická motivace může být zajímavá i pro interní aktéry, tj. provozovatele poolů. Ti riskují ztrátu důvěry a odliv stakerů do jiného poolu. Je možné, že provozovatel poolu podstoupí jednorázové riziko. Pokud bude útok MEV odhalen a prokázán, měla by komunita adekvátně reagovat.

MEV je jistě zajímavým fenoménem, o kterém by měl přemýšlet i tým IOG, který by se měl zamyslet nad tím, jak vytvořit účinnou obranu. V ekosystému Cardano jsme se s MEV zatím nesetkali, což nás může těšit, ale to neznamená, že na MEV můžeme zapomenout. O potenciálních problémech musíme mluvit a hledat řešení již dnes.

Článek připravili Cardanians s podporou Cexplorer.

Článek v AJ: Will we see the MEV problem on Cardano? | Cardano Explorer