Wielu użytkowników przeniosło się do sieci L2 (Arbitrum, Optimism, Base), licząc na tańsze transakcje oraz „ochronę przed botami”, o której tak dużo mówiono na początku ery rollupów. Rzeczywistość jest jednak bardziej brutalna: MEV (Maximal Extractable Value) na L2 nie zniknęło — ono po prostu ewoluowało.
Jeśli wykonujesz swap na kwotę około 10 000 USD w puli o niskiej płynności, jesteś idealnym celem dla „ataku kanapkowego” (sandwich attack). W tym artykule wyjaśnimy, jak działają współcześni „drapieżcy” i jak zabezpieczyć swoje środki, nawet jeśli nie jesteś profesjonalnym deweloperem.
Czym jest „atak kanapkowy” w prostych słowach
Wyobraź sobie, że chcesz kupić rzadką monetę kolekcjonerską na aukcji i jesteś gotów zapłacić maksymalnie 110 USD, podczas gdy aktualna cena wynosi 100 USD. Bot-drapieżnik widzi Twoją ofertę w kolejce (mempoolu), natychmiast kupuje monetę za 100 USD tuż przed Tobą, podbijając cenę do 109 USD. Następnie realizowane jest Twoje zlecenie po 110 USD. Zaraz potem bot sprzedaje monetę za 110 USD.
Efekt: bot zarabia 10 USD praktycznie z powietrza, a Ty otrzymujesz mniej aktywów, niż mógłbyś.
Mit „bezpiecznych L2”
Panuje przekonanie, że na L2 nie ma MEV, ponieważ stosowany jest mechanizm FIFS (First-In-First-Out) poprzez scentralizowany sequencer. Dlaczego to nie do końca prawda:
- Wyścig opóźnień (Latency Games): Boty rywalizują szybkością wysyłania transakcji (kto jest bliżej serwera sequencera), aby mimo wszystko wcisnąć się przed Ciebie.
- Współdzielone sequencery (Shared Sequencers): W przyszłości sequencery mogą zostać zdecentralizowane, co przywróci klasyczne aukcje o miejsce w bloku.
- Base i Optimism: Te sieci korzystają z architektury OP Stack, w której nadal istnieją możliwości specyficznej ekstrakcji wartości na poziomie zmiany kolejności transakcji.
Praktyczne narzędzia ochrony
1. Korzystanie z MEV-Share i prywatnych węzłów RPC
Najprostszy i najskuteczniejszy sposób dla użytkowników detalicznych to zmiana domyślnego RPC w MetaMask na chroniony. Zamiast wysyłać transakcję do publicznego mempoola, trafia ona bezpośrednio do walidatorów.
- Flashbots Protect: Klasyczny standard rynkowy.
- MEVBlocker: Bardzo dobre rozwiązanie, które nie tylko chroni przed atakami kanapkowymi, ale może również zwrócić część zysku, który w innym przypadku przejąłby searcher.
- LlamaNodes: Oferuje szybkie i prywatne endpointy RPC dla głównych sieci L2.
Jak to skonfigurować:
Wejdź w ustawienia MetaMask -> Sieci -> Wybierz sieć (np. Arbitrum) -> Zmień adres RPC URL na https://rpc.mevblocker.io.
2. Agregatory z „trybem prywatnym”
Przy większych kwotach nie korzystaj bezpośrednio z interfejsów DEX. Agregatory takie jak 1inch czy CowSwap mają wbudowane mechanizmy ochronne.
- CowSwap (Coincidence of Wants): To obecnie protokół anty-MEV numer jeden. Twoje zlecenia nie trafiają od razu do blockchaina. Są zbierane poza łańcuchem i dopasowywane do innych zleceń. Jeśli nie ma bezpośredniego dopasowania, profesjonalni „solverzy” realizują je na DEX-ach z ochroną przed nadmiernym poślizgiem cenowym.
- 1inch Fusion: Wykorzystuje aukcje holenderskie. Cena stopniowo spada, aż zlecenie zostanie wypełnione przez profesjonalnego market makera. Atak kanapkowy w takim modelu jest technicznie niemożliwy.
Ustawienie slippage — subtelna sztuka
Większość użytkowników pozostawia włączone „Auto-Slippage” (zwykle 0,5% – 1,0%). Przy dużym swapie to praktycznie zaproszenie do ataku.
Mało znany trik:
Jeśli wymieniasz stablecoiny (USDC na USDT) w dużych pulach płynności (Curve, Uniswap V3), ustaw slippage na poziomie 0,01% - 0,05%. Jeśli wymieniasz aktywo zmienne, oblicz slippage tak, aby potencjalny zysk bota po opłaceniu kosztów sieci (gas) był ujemny.
Przykładowa logika w Solidity (dla zobrazowania warunku):
// Przykład sprawdzania slippage w smart kontrakcie uint256 minAmountOut = expectedAmount * (10000 - slippageBps) / 10000; require(receivedAmount >= minAmountOut, "Slippage too high: Sandwich detected");
Jeśli minAmountOut jest ustawione zbyt nisko, zostawiasz przestrzeń na zysk dla bota.
Mniej oczywiste kwestie: MEV na styku L2–L1
Przy wypłacie środków z L2 do L1 przez oficjalne mosty (szczególnie w Optimistic Rollups) istnieje ryzyko tzw. „Finality MEV”. W trakcie 7-dniowego okna na zgłoszenie sprzeciwu teoretycznie możliwe są manipulacje, jeśli kwota transakcji jest bardzo duża. Dla użytkowników detalicznych ma to mniejsze znaczenie, ale przy swapach przez mosty cross-chain (Hop, Stargate) zawsze sprawdzaj Destination Slippage — to często pomijany parametr, na którym można zostać „złapanym” po stronie docelowej.
Checklista bezpiecznego swapa:
- Kwota > 5 000 USD? Zapomnij o bezpośrednim interfejsie Uniswap. Skorzystaj z CowSwap.
- Sprawdź RPC: Czy masz ustawiony MEVBlocker albo Flashbots Protect?
- Podziel zlecenie: Jeśli płynność jest niska, rozbij swap na 3–4 części w odstępach 10–15 minut. To sprawia, że atak na każdą część przestaje być opłacalny ze względu na koszty gazu.
- Unikaj szczytów zmienności: Podczas listingów nowych tokenów lub gwałtownych ruchów BTC boty działają w „trybie turbo”. Odczekanie pięciu minut może zaoszczędzić Ci setki dolarów.
Zaawansowane strategie i „pułapki” architektury L2
Jeśli baza (RPC i agregatory) chroni przed 80% ataków, pozostałe 20% to specyficzne luki w samych łańcuchach L2 i mostach.
3. Ukryte zagrożenie: Cross-Chain MEV
Gdy przesyłasz dużą kwotę z Arbitrum do Optimism przez most (np. Stargate lub Hop), napotykasz podwójne ryzyko. Bot może zobaczyć Twoją transakcję wychodzącą w jednej sieci i „zasadzić się” na płynność w sieci docelowej.
Praktyczna wskazówka:
Korzystając z mostów, zawsze ustawiaj parametr Deadline (czas wygaśnięcia transakcji) na minimum (np. 5–10 minut). Jeśli transakcja „utknie” w mempoolu sieci docelowej z powodu skoku gazu, bot może manipulować ceną w puli mostu, zanim Twój transfer zostanie potwierdzony.
4. Anatomia „Sandwicha” na Uniswap V3 (L2)
W sieciach typu Arbitrum płynność na Uniswap V3 jest bardzo skoncentrowana. To miecz obosieczny.
- Plus: Mniejsze poślizgi dla uczciwych transakcji.
- Minus: Botowi łatwiej „popchnąć” cenę do następnego ticka, aby wykonać Twój zlecenie po gorszej cenie.
Mało znany fakt: Na L2 boty często używają Just-In-Time (JIT) Liquidity. To nie do końca sandwich, ale jest to forma MEV. Bot dodaje ogromną płynność tuż przed Twoją wymianą i usuwa ją zaraz po niej. Ty otrzymujesz wykonanie, ale bot zabiera prawie wszystkie opłaty, które powinny trafić do zwykłych dostawców płynności. Dla użytkowników detalicznych wpływ jest mniejszy, ale długoterminowo szkodzi ekosystemowi.
5. Kod wykrywający: Jak sprawdzić, czy zostałeś „zsandwiczowany”
Jeśli dokonałeś transakcji i czujesz, że otrzymałeś podejrzanie mało, sprawdź bloki w eksploratorze (Arbiscan/Optimistic Etherscan). Szukaj wzoru trzech transakcji w jednym bloku:
- Swap (od Bota A -> B)
- Swap (Twój od A -> B)
- Swap (od Bota B -> A)
Aby zautomatyzować sprawdzanie swoich wcześniejszych transakcji, możesz użyć prostego skryptu w Pythonie (web3.py), który szuka podejrzanych dopasowań sender i amount wokół Twojej transakcji.
# Pseudokod do wykrywania sandwicha
def check_sandwich(block_number, my_tx_index):
block = w3.eth.get_block(block_number, full_transactions=True)
my_tx = block.transactions[my_tx_index]
# Szukamy transakcji PRZED nami z tą samą parą handlową
front_run = block.transactions[my_tx_index - 1]
# Szukamy transakcji PO nas od tego samego nadawcy co front_run
back_run = block.transactions[my_tx_index + 1]
if front_run.from == back_run.from:
print(f"Uwaga! Prawdopodobny atak z adresu: {front_run.from}")
6. Specyfika konkretnych sieci
Arbitrum: FCFS i „wyścig zbrojeń”
Arbitrum stosuje zasadę First-Come, First-Served. Nie ma tu publicznego mempoolu w tradycyjnym sensie (transakcje idą od razu do sekwencera). Jednak duzi market makerzy utrzymują węzły jak najbliżej sekwencera, aby widzieć nadchodzący ruch.
- Ochrona: Używaj Arbitrum Nova do bardzo małych i częstych transakcji lub specjalnych RPC, które opóźniają transmisję w celu ochrony.
Base (Coinbase L2)
Ponieważ Base jest zbudowana na OP Stack, dziedziczy wiele cech Optimism. Jednak tu występuje wysoka koncentracja detaliczna, co przyciąga „drapieżników”.
- Wskazówka: Na Base często pojawiają się „sandwiche” w meme coinach. Jeśli handlujesz tokenem z podatkiem od sprzedaży (Tax tokens), standardowa ochrona agregatorów może zawieść. W takich przypadkach CowSwap jest jedyną niezawodną opcją.
7. Końcowa strategia „Profesjonalnego detalisty”
Jeśli operujesz kwotami od $1,000 do $50,000 na L2:
- Nigdy nie klikaj "Swap" na pierwszym DEX-ie, który zobaczysz. Korzystaj z meta-agregatorów (LlamaSwap, Matcha), które porównują ścieżki i pokazują ukryte opłaty.
- Używaj "Limit Orders". Zlecenie limitowe to 100% ochrona przed sandwiczami. Twoja transakcja zostanie wykonana po Twojej cenie (lub lepiej) albo wcale.
- Obserwuj "Gas Price". W okresach drogiego gazu na L1 boty stają się bardziej agresywne, bo potrzebują większych nagród, żeby się opłacało.
Mało znany bonus: architektura „oparta na intencjach”
Przyszłość ochrony to Intents. Nie wysyłasz transakcji typu „kup mi 1 ETH za 2500 USDC”. Podpisujesz wiadomość: „Chcę otrzymać minimum 1 ETH i nie obchodzi mnie, jak”. Profesjonalni wykonawcy (Solvers) konkurują, aby zrealizować Twoją intencję w najbardziej korzystny sposób. To całkowicie eliminuje ryzyko, że bot Cię okradnie.
Spróbuj: UniswapX lub CowSwap — to są systemy oparte na intencjach dostępne już dziś.