Zakaz kanapek – jak zapobiegać atakom MEV na AMM
Jest to kontynuacja mojego pierwszego postu na temat tego, jak Carbon (i duże wirtualne opłaty nieodłącznie związane z pozycją Carbon'y) uniemożliwiają ataki MEV w stylu kanapkowym, a także kolejne posty Marka, które to oszacowały i przyjrzały się, co implikują te formuły. Ten post jest bardziej postem w stylu notatek laboratoryjnych, który współpracuje z niektórymi formułami z najnowszego artykułu Marka i szczegółowo je omawia.
Tło
Kluczowymi formułami, nad którymi tutaj pracujemy, są:
z artykułu 1, i
z artykułu 2.
Zanim przejdziemy dalej do tych równań, chcę poświęcić chwilę na zdefiniowanie używanych symboli, ponieważ znacznie ułatwi to zrozumienie wzorów
Q to zysk, jaki atakujący osiąga dzięki atakowi typu „sandwich”, obliczony na podstawie innych poniższych parametrów, oraz
Δxₐ to wielkość transakcji wyprzedzającej, która prowadzi do tej konkretnej wartości Q. Parametry transakcji to:
Δxᵤ, który reprezentuje wielkość transakcji użytkownika wyrażoną w tokenach,
x, który reprezentuje wielkość puli w tych samych jednostkach, co Δx (wielkość wirtualna w przypadku pul lewarowanych, ale w tej analizie ignoruje się konsekwencje zablokowania na granicy płynności lewarowanej), a co najważniejsze
δ oznacza procentową opłatę za pulę (w wartościach dziesiętnych, np. 10 pb = 0,001)
Kluczowym równaniem, któremu się tutaj przyjrzymy, jest drugie równanie powyżej. Otrzymuje się ją z pierwszej, wyprowadzając najpierw po Δxₐ, a następnie wymagając, aby pochodna Q po Δxₐ zniknęła przy Δxₐ=0. Warunek ten zapewnia, że Δxₐ=0 jest optymalne dla potencjalnego atakującego typu „sandwich”, innymi słowy, nie ma zysku z arbitrażu.
Uproszczenie formuły
Widzimy, że powyższy wzór w postaci, w jakiej został napisany, składa się z trzech członów, z których pierwsze dwa są trywialne, ponieważ dają rozwiązania, które nie są interesujące finansowo. Jeden z tych terminów pokazuje, że pusta pula (x=0) nie pozwala na ataki typu „sandwich”, a drugie rozwiązanie ma nieracjonalnie dużą wartość Δxᵤ i dlatego można je odrzucić. Pozostaje zatem część operacyjna równania, która wygląda następująco
Parafrazując to, co Mark omawia w swoim artykule, powyższy warunek nie powinien oznaczać równości, ale nierówności, ponieważ oczywiście napastnicy nigdy nie będą angażować się w transakcje przynoszące straty. Dlatego
δ jest w rzeczywistości inf δ, ponieważ każda opłata > δ również zapobiegnie tworzeniu się kanapek
Δxᵤ jest naprawdę sup Δxᵤ, ponieważ każda transakcja <Δxᵤ zapobiegnie również kanapkom, oraz
x jest tak naprawdę inf x, ponieważ każda płynność puli >x zapobiegnie również tworzeniu się warstw
Mark w swoim artykule rozwiązał powyższe równanie dla δ, Δxᵤ i x, otrzymując następujące wzory
Dla nas najciekawsza jest pierwsza z trzech powyższych formuł – „wskazuje, jak duża musi być opłata za daną transakcję, aby ataki kanapkowe nie miały już sensu. Lekko przepisałem to do nowego zapisu, wskazując, że warunki braku możliwości kanapki obowiązują dla tego poziomu opłaty δ i powyżej
Ta formuła wygląda na rozczarowująco złożoną — ale na szczęście ma ładne asymptotyki dla dużych wartości r=x/Δxᵤ (czyli małych transakcji):
Na poniższym wykresie czerwona linia to rzeczywista krzywa, niebieska linia to asymptotyka mocy 1/r, a zielona linia to (znacznie) ulepszona asymptotyka 2/2r+3
(zobacz tutaj podstawowy kalkulator desmos)
Chociaż r=x/Δxᵤ sprawdza się lepiej w przypadku formuł, z finansowego punktu widzenia bardziej intuicyjną wielkością jest wielkość transakcji znormalizowana pod względem płynności 1/r = Δxᵤ/x. Należy pamiętać, że jest to również procentowy poślizg, tj. kwota, o jaką transakcja o wielkości Δx niekorzystnie podnosi cenę puli o wielkości x.
Dlatego otrzymujemy następujący, ważny wynik:
Minimalny poziom opłat uniemożliwiający atak na transakcje
Małe transakcje (1% wielkości puli lub mniej) nie mogą zostać zaatakowane przez ataki typu „sandwich”, jeśli poziom opłaty jest większy niż poślizg (który jest również wielkością transakcji znormalizowaną pod kątem płynności), tj. δ>Δxᵤ/x. W przypadku nieco większych transakcji – „do około 10% poślizgu” – „przybliżenie δ>2/(2r+3) działa dobrze, a poza tym należy zastosować pełny wzór [2] powyżej.
Maksymalny rozmiar transakcji, którego nie można zaatakować
Podobnie możemy spojrzeć na maksymalną realną wielkość transakcji jako funkcję poziomu opłaty, której nie można zaatakować typu sandwicz. Zaczynamy od równania [3] z artykułu 2 powyżej, ale dzielimy obie strony przez x i δ. Przypominamy, że Δxᵤ/x to (znormalizowana pod względem płynności) wielkość transakcji, dlatego nowa LHS równania Δxᵤ/xδ to znormalizowana wielkość transakcji (też: poślizg) podzielona przez opłaty.
Poniżej narysowaliśmy wykres RHS powyższego równania
(zobacz ten wykres na desmosie)
Sposób interpretacji powyższego wykresu jest następujący: dla danego poziomu opłat (tutaj 0,2 = 20% opłat), jaka jest maksymalna znormalizowana wielkość transakcji jako procent opłat? Dla małych dla małych wartości liczba ta jest jednością, tj. dla małych opłat maksymalna znormalizowana wielkość transakcji niepodlegającej przekładce jest równa poziomowi opłat. Jeśli opłaty są wyższe, możliwa wielkość transakcji wzrasta nieproporcjonalnie. Np. przy opłatach wynoszących 20% wielkość transakcji może wynosić 20%*1,4=28% wielkości puli, zanim będzie można ją przełożyć.
Należy jednak zauważyć, że ten wzrost wielkości transakcji ma miejsce tylko w przypadku dość dużych poziomów opłat. Poniżej nieco rozsądniejszy pogląd na ten wykres z poziomami opłat do 5%, gdzie poprawa jest liniowa przy około 5% na każde 3% opłat, a zatem poniżej 10% przy poziomie opłat 5%, tj. nie jest szczególnie znacząca w porównaniu wartość bazowa wynosząca 100% (i zdecydowanie nie przy opłatach < 1%).
—
Zakaz kanapek – artykuł „Jak zapobiegać atakom MEV” został pierwotnie opublikowany w CarbonDeFi na Medium, gdzie ludzie kontynuują rozmowę, podkreślając tę historię i odpowiadając na nią.