Transakce čekají ve frontě a někdo rozhoduje, v jakém pořadí půjdou do bloku. To pořadí má hodnotu, protože v něm jde vydělat. Zkratka MEV označuje zisk, který se dá vytěžit ze zařazení, přeuspořádání nebo vynechání transakcí.
Není to chyba. Je to důsledek toho, že fronta je veřejná a pořadí určuje ten, kdo staví blok.
Odkud se ten zisk bere
Když pošleš transakci, uvidí ji celá síť dřív, než se provede. Kdo umí ovlivnit pořadí, může na to reagovat.
Tři základní podoby:
- Předběhnutí. Vidí, že chceš něco koupit, a koupí to první, aby ti to prodal dráž.
- Sendvič. Koupí těsně před tebou a prodá těsně za tebou. Ty dostaneš horší cenu a rozdíl je jeho zisk.
- Arbitráž a likvidace. Ta poctivější část: kdo první uvidí nesoulad cen nebo likvidovatelnou pozici, může na tom vydělat. Tenhle druh je pro systém prospěšný, protože ceny srovnává.
Proč to nejde prostě zakázat
Pořadí musí někdo určit. Ať je to miner, validátor nebo specializovaný stavitel bloků, vždycky má tu možnost a vždycky se mu vyplatí ji použít. Zakázat by to znamenalo vynutit konkrétní pořadí, jenže spravedlivé pořadí ve světě bez společných hodin neexistuje.
Odtud plyne, že se s MEV nebojuje zákazem, ale návrhem:
| Přístup | Co dělá |
|---|---|
| Soukromé odeslání | transakce jde přímo staviteli bloku a neobjeví se ve veřejné frontě |
| Dávkové aukce | transakce v jednom okně se vypořádají za jednu cenu, takže pořadí uvnitř nehraje roli |
| Limit skluzu | nastavíš, o kolik horší cenu ještě přijmeš, a víc ti sendvič nevezme |
| Šifrovaný mempool | obsah se odhalí až po zafixování pořadí |
Co to znamená prakticky
U běžného převodu se tě to netýká. Poslat prostředky z adresy na adresu není z čeho vytěžit.
U směny na burze uvnitř řetězu se tě to týká vždycky. Proto má každé rozhraní nastavení tolerance skluzu, a proto je nebezpečné ho nastavit vysoko: říkáš tím, že akceptuješ výrazně horší cenu, a přesně tolik ti někdo vezme.
Čím větší obchod v menším bazénu, tím zajímavější cíl. Velké obchody se proto posílají soukromými kanály nebo se dělí na části.
Cvičení
- Proč tolerance skluzu nastavená na 20 % prakticky zve k sendviči?
- Proč se MEV nedá odstranit tím, že se transakce budou řadit podle času přijetí?
- Které formy MEV jsou pro systém prospěšné a proč?
Náčrt řešení: rozbal, až si cvičení zkusíš sám
- Protože říkáš, o kolik smí být cena horší, a přesně o tolik ji útočník posune. Sendvič funguje tak, že se před tvůj obchod vloží nákup, který cenu zvedne, a za něj prodej. Kolik se dá vytěžit, je omezené jen tvou tolerancí: při dvaceti procentech je zisk útočníka dvacetiprocentní z tvého obchodu. Nastavuje se proto nejmenší hodnota, při které obchod ještě spolehlivě projde, typicky desetiny procenta až jednotky procent podle likvidity.
- Protože v distribuované síti neexistuje objektivní čas přijetí. Transakce dorazí ke každému uzlu v jiném pořadí, hodiny se liší a časové značky si píše odesílatel. Jakékoli pravidlo založené na čase by šlo obejít lhaním o něm. Řadit podle poplatku má aspoň tu výhodu, že je to ověřitelné a nedá se předstírat.
- Arbitráž a likvidace. Arbitráž srovnává ceny mezi místy, takže bez ní by se bazény rozcházely od trhu a uživatelé by dostávali horší ceny. Likvidace zajišťuje, že se nedostatečně kryté pozice uzavřou včas, jinak by v systému zůstal nekrytý dluh. V obou případech je zisk odměnou za užitečnou práci, kterou by jinak musel dělat provozovatel. Předbíhání a sendviče naopak jen přenášejí hodnotu od uživatele.
Shrnutí
- MEV je zisk plynoucí z možnosti určit pořadí transakcí v bloku.
- Vzniká proto, že fronta je veřejná a někdo o pořadí rozhodovat musí.
- Předbíhání a sendviče berou hodnotu uživateli, arbitráž a likvidace jsou pro systém užitečné.
- Nejde to zakázat, protože spravedlivé pořadí bez společných hodin neexistuje.
- Prakticky se brání nízkou tolerancí skluzu, soukromým odesláním a dělením velkých obchodů.
Proč MEV vzniká a proč se nedá jednoduše zakázat?
Protože transakce čekají ve veřejné frontě a někdo musí určit jejich pořadí v bloku. Tomu, kdo pořadí určuje, se vždy vyplatí ho využít. Zakázat by to znamenalo vynutit určité pořadí, jenže v síti bez společných hodin neexistuje objektivní pořadí příchodu, o které by se dalo opřít.
Jak souvisí tolerance skluzu se sendvičovým útokem?
Tolerance říká, o kolik horší cenu ještě přijmeš, a přesně o tolik může útočník cenu posunout, aniž by obchod selhal. Vysoká tolerance je proto pozvánka: čím víc povolíš, tím víc se dá vytěžit. Nastavuje se nejnižší hodnota, při které obchod ještě spolehlivě projde.
Které formy MEV jsou pro systém prospěšné?
Arbitráž a likvidace. Arbitráž srovnává ceny mezi obchodními místy, bez čehož by se bazény rozcházely od trhu. Likvidace včas uzavírá nedostatečně kryté pozice, jinak by v systému zůstával nekrytý dluh. Zisk je zde odměnou za práci, kterou by jinak musel dělat provozovatel.
