AMM exploit
Atak wykorzystujący błąd w matematyce, księgowaniu albo kodzie AMM, aby wyciągnąć wartość z puli płynności.
Czym jest AMM exploit
AMM exploit to atak na pulę płynności albo mechanizm wyceny w automated market makerze. Atakujący nie musi kraść kluczy użytkowników. Wystarczy, że znajdzie błąd w tym, jak protokół liczy cenę, płynność, opłaty albo saldo puli.
Najgroźniejsze exploity działają szybko. Atakujący może w jednej serii transakcji zmanipulować stan puli, wykonać swap po błędnej cenie albo sprawić, że protokół uzna jego płynność za większą, niż jest naprawdę.
Dla użytkownika efekt bywa prosty: pula, która chwilę wcześniej wyglądała normalnie, nagle ma zaburzone ceny, braki w aktywach albo całkowicie wyczyszczoną płynność.
Co zwykle jest celem ataku
AMM ma kilka krytycznych miejsc, w których mały błąd może przełożyć się na dużą stratę.
- Kalkulacja ceny swapu, szczególnie przy niestandardowej krzywej albo skomplikowanych zakresach cen.
- Księgowanie płynności, czyli to, ile udziału w puli naprawdę ma dany LP.
- Naliczanie i wypłata opłat dla liquidity providerów.
- Obsługa granic zakresów w concentrated liquidity.
- Kod odpowiedzialny za przenoszenie tokenów do i z puli.
Dlaczego concentrated liquidity zwiększa złożoność
W prostym AMM płynność jest rozłożona po całej krzywej. W concentrated liquidity LP wybiera konkretny zakres cen, w którym jego kapitał ma pracować.
To poprawia efektywność kapitału, ale dodaje znacznie więcej matematyki. Protokół musi poprawnie obsługiwać ticki, granice zakresów, aktywną płynność i naliczanie opłat tylko tam, gdzie pozycja faktycznie pracuje.
Im bardziej złożona logika, tym więcej edge case’ów. Exploit może pojawić się nie w samej idei AMM, tylko w szczególe implementacji biblioteki albo kontraktu.
Rodzaje ryzyka w AMM
- Błąd wyceny
- Swap rozlicza się po cenie, która nie odpowiada realnemu stanowi puli.
- Błąd płynności
- Protokół błędnie uznaje, że użytkownik ma większy udział w puli, niż powinien.
- Błąd opłat
- Opłaty są naliczane lub wypłacane w sposób, który pozwala wyciągnąć wartość z puli.
- Błąd transferu
- Kod przenoszący tokeny nie obsługuje poprawnie nietypowego tokena albo sekwencji wywołań.
- Błąd zewnętrznej biblioteki
- Współdzielony kod używany przez wiele pul zawiera lukę, która wpływa na cały zestaw rynków.
Jak taki exploit może wyglądać
- Atakujący wykorzystuje flash loan, żeby chwilowo uzyskać duży kapitał.
- Wykonuje serię swapów albo operacji płynnościowych, które trafiają w błąd matematyczny puli.
- Protokół błędnie księguje cenę, opłaty albo udział atakującego w płynności.
- Atakujący wypłaca więcej aktywów, niż powinien.
- Po transakcji pula ma zaburzone saldo, a LP zostają z utratą wartości.
Najczęstsze błędne założenia
- Duża płynność nie oznacza automatycznego bezpieczeństwa. Płynność pomaga tylko wtedy, gdy logika puli działa poprawnie.
- AMM exploit nie musi wyglądać jak klasyczne włamanie. Często jest legalną sekwencją transakcji wykorzystującą błędne założenie w kodzie.
- Concentrated liquidity nie jest tylko wydajniejszą wersją zwykłej puli. Ma więcej księgowania, zakresów i edge case’ów.
- Audyt zmniejsza ryzyko, ale nie daje gwarancji, że matematyka i wszystkie integracje są bezbłędne.
- Jeżeli kilka protokołów korzysta z tej samej biblioteki, jeden błąd może dotknąć wiele pul naraz.
LP bierze na siebie ryzyko kodu puli
Dostarczanie płynności to nie tylko ryzyko ceny i impermanent loss. To także ryzyko, że kontrakt albo biblioteka AMM ma błąd. W takim scenariuszu wysoki APY nie rekompensuje utraty środków, jeśli pula zostanie wyczyszczona exploitem.
