Front-running
Wyprzedzanie transakcji, po angielsku front-running, to wykorzystanie informacji o cudzej oczekującej transakcji do ustawienia własnej transakcji wcześniej w kolejności wykonania.
Czym jest wyprzedzanie transakcji
W krypto transakcje często trafiają najpierw do kolejki oczekujących operacji. Jeśli ktoś widzi, że duża transakcja może zmienić cenę, może spróbować umieścić własną transakcję przed nią.
Front-running jest blisko powiązany z MEV, czyli wartością wynikającą z możliwości wyboru, wstawienia albo zmiany kolejności transakcji w bloku.
Najczęściej użytkownik spotyka ten problem przy swapach na DEX-ach, szczególnie przy niskiej płynności i zbyt wysokim ustawieniu slippage.
Gdzie pojawia się front-running
- DEX
- Bot widzi duży swap i próbuje wejść przed nim, żeby skorzystać ze zmiany ceny.
- NFT mint
- Transakcje mogą konkurować o pierwszeństwo przy ograniczonej podaży.
- Likwidacje
- Boty walczą o pierwszeństwo przy likwidacji pozycji w lendingu.
- Arbitraż
- Boty próbują wykonać transakcję przed innymi arbitrażystami.
- Mempool
- Publiczna kolejka transakcji może ujawniać okazje do wyprzedzenia.
Sandwich attack
Najbardziej znany wariant to sandwich attack. Bot umieszcza jedną transakcję przed swapem użytkownika i drugą po nim.
Pierwsza transakcja przesuwa cenę przeciwko użytkownikowi. Swap użytkownika wykonuje się po gorszym kursie, a druga transakcja bota realizuje zysk z tej różnicy.
W praktyce użytkownik widzi po prostu gorszą cenę wykonania. Problem może wyglądać jak zwykły slippage, choć wynika z celowego ustawienia kolejności transakcji.
Jak ograniczyć ryzyko
Nie da się usunąć całego ryzyka MEV, ale można ograniczyć ekspozycję przy zwykłych swapach.
- Ustawiaj rozsądny slippage.
- Unikaj bardzo płytkich pul płynności.
- Dziel duże transakcje, jeśli ma to sens kosztowo.
- Sprawdzaj price impact przed swapem.
- Korzystaj z narzędzi lub tras, które chronią przed MEV, jeśli są dostępne.
- Nie podpisuj transakcji, której parametry znacząco odbiegają od oczekiwań.
Najczęstsze błędne założenia
- Front-running nie wymaga przejęcia twojego portfela.
- Wysoki slippage może ułatwić sandwich attack.
- Mała pula płynności zwiększa podatność na duży price impact.
- MEV nie dotyczy wyłącznie Ethereum, choć tam jest szczególnie dobrze opisany.
- Szybkie kliknięcie w portfelu nie gwarantuje dobrej kolejności wykonania.
Slippage jest zgodą na zakres gorszej ceny
Jeśli ustawisz bardzo wysoki slippage, dajesz transakcji większy zakres wykonania po gorszej cenie. Przy płytkiej płynności może to zwiększyć podatność na sandwich attack.
