Do 2025 roku Uniswap v3 był „statyczną” twierdzą: zasady gry były zakodowane na stałe. Z nadejściem Uniswap v4 i architektury Singleton świat DeFi się zmienił. Teraz każdy pool może mieć swoją własną „duszę” w postaci Hooks — smart kontraktów, które wykonują się w kluczowych momentach cyklu życia poola.
Dla JIT-botów oznacza to koniec ery łatwych zysków. Dla LP to szansa na przetrwanie.
1. Hooks: Antidotum na JIT
W Uniswap v4 można wdrożyć logikę, która uruchamia się beforeModifyLiquidity (przed zmianą płynności) lub afterSwap (po swapie). Otwiera to trzy podstawowe sposoby walki z atakami JIT:
A. Wymuszone opóźnienie (Withdrawal Locks)
Najprostsza i najskuteczniejsza metoda. Hook może zabronić wycofania płynności (Burn) w tym samym bloku, w którym została dodana (Mint).
- Jak to działa: Jeśli bot nie może natychmiast wypłacić środków, musi utrzymać pozycję przynajmniej 1–2 bloki.
- Efekt: Bot narażony jest na ryzyko Impermanent Loss i wahania rynku. Atak JIT przestaje być bez ryzyka.
B. Dynamiczne opłaty
Hook może analizować zmienność w obrębie bloku. Jeśli w bieżącym bloku nastąpi nagłe dodanie płynności i duży swap, hook może automatycznie podnieść opłatę wyjścia (Exit Fee) dla nowych pozycji.
Mało znany szczegół: W v4 można wdrożyć „podatek anty-JIT”, który rozdziela część zysków z krótkoterminowych pozycji między długoterminowych LP.
C. Whitelist płynności
Hooks pozwalają tworzyć „VIP-pool’e”, w których prawo do dostarczania płynności mają tylko zweryfikowane kontrakty lub użytkownicy z określonym scoringiem.
2. Kod ochronny: Przykład hooka anty-JIT
Poniżej znajduje się konceptualny przykład tego, jak mogłaby wyglądać logika ochrony w Uniswap v4 (używając interfejsów IPoolManager).
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
import {BaseHook} from "v4-periphery/BaseHook.sol";
import {IPoolManager} from "v4-core/interfaces/IPoolManager.sol";
import {Hooks} from "v4-core/libraries/Hooks.sol";
contract AntiJITHook is BaseHook {
// Przechowujemy numer bloku ostatniego dodania płynności dla każdego LP
mapping(address => uint256) public lastMintBlock;
constructor(IPoolManager _poolManager) BaseHook(_poolManager) {}
function getHookPermissions() public pure override returns (Hooks.Permissions memory) {
return Hooks.Permissions({
beforeAddLiquidity: true,
afterAddLiquidity: false,
beforeRemoveLiquidity: true,
afterRemoveLiquidity: false,
beforeSwap: false,
afterSwap: false,
beforeDonate: false,
afterDonate: false,
beforeSwapReturnDelta: false,
afterSwapReturnDelta: false,
afterAddLiquidityReturnDelta: false,
afterRemoveLiquidityReturnDelta: false
});
}
function beforeAddLiquidity(address sender, ...) external override returns (bytes4) {
lastMintBlock[sender] = block.number;
return BaseHook.beforeAddLiquidity.selector;
}
function beforeRemoveLiquidity(address sender, ...) external override returns (bytes4) {
// Blokujemy wypłatę, jeśli następuje w tym samym bloku co wpłata
require(lastMintBlock[sender] < block.number, "JIT detected: Withdrawal locked until next block");
return BaseHook.beforeRemoveLiquidity.selector;
}
}
3. Prognoza: Czy wszyscy LP staną się botami?
Do 2026 roku granica między „pasywnym inwestorem” a „MEV-botem” całkowicie się zatarje.
- Aktywne zarządzanie (ALM): Protokoly typu Gamma czy Arrakis same zaczną korzystać z mechanik podobnych do JIT, aby chronić zyski swoich użytkowników.
- Integracja pionowa: Duzi LP będą zawierać bezpośrednie umowy z budowniczymi bloków (Block Builders), aby ich płynność nie mogła być „rozmyta” przez ataki JIT (tzw. Private Liquidity Pools).
Wskazówka dla LP: W erze v4 nie szukajcie pooli tylko z najwyższą opłatą. Szukajcie pooli z przemyślanymi hookami. Pool’e bez ochrony będą całkowicie „odkradane” przez boty, natomiast pool’e z opóźnieniem wypłaty 1-blokowym staną się bezpiecznym schronieniem dla realnego kapitału.
4. Etyka MEV: Zło czy bodziec?
Płynność JIT to szczyt kapitalizmu w kodzie. Jest surowa dla leniwych pieniędzy, ale sprawia, że rynek jest niezwykle płynny.
- Paradoks etyczny: Bot JIT „okrada” LP, ale daje traderowi idealną cenę.
- Z perspektywy Uniswap jako platformy — to sukces. Z perspektywy ekosystemu — wyzwanie, które zmusza nas do tworzenia bardziej złożonych narzędzi finansowych.
5. Praktyczne porady na przetrwanie w 2026 roku
- Unikaj „naked” pooli: Omijaj Uniswap v3/v4 pool’e bez ochronnych hooków w parach o ogromnym wolumenie (np. USDC/WETH). Tam Twój zysk to jedzenie dla botów.
- Używaj agregatorów Hooków: Szukaj platform, które automatycznie rebalance’ują Twój kapitał tylko w „chronione” pule.
- Diversyfikacja po L2: Ataki JIT są najskuteczniejsze na Mainnet z powodu Flashbots. Na L2 (Base, Optimism) z szybkim blokiem, botom JIT trudniej złapać okno okazji, a opłaty często są niższe, co czyni atak mniej opłacalnym.
Zakończenie cyklu
Cykl „Predatory Pools” dobiegł końca. Omówiliśmy płynność JIT od pierwszej transakcji do architektury przyszłości. DeFi nie stanie się prostsze — stanie się szybsze. A teraz, gdy wiesz, jak działają drapieżniki, sam decydujesz: być ich ofiarą czy projektować zasady gry.
Mistrzostwo Płynności JIT: Kompletny przewodnik po MEV w Uniswap: Część 5 z 5