Bu, “Havuzdaki Yırtıcılar: JIT Likiditesinin Sanatı ve Matematiği” serimizin ikinci makalesidir. Burada “hırsızlık” teorisinden soğuk hesaplamaya geçiyoruz: bir algoritmanın 200 milisaniyede oyuna girmenin değerli olup olmadığına nasıl karar verdiğini inceliyoruz.
Eğer ilk makale “bu nedir” ile ilgiliyse, bu makale “bu ne kadar maliyetli” ile ilgilidir. Bir JIT saldırısının madencilere/validatörlere bağışa dönüşmemesi için, botun beş bilinmeyenli denklemi blok oluşmadan önce çözmesi gerekir.
1. Likidite (L): Ana Değişken
Uniswap v3’te likidite sadece token miktarı değildir; L katsayısıdır ve fiyat değiştiğinde kaç varlığın hareket edeceğini belirler. Swap formülü (invariant):

JIT botu için kritik olan, belirli bir fiyat aralığındaki (tick) toplam $L$’nin ne kadarını kapsaması gerektiğini hesaplamaktır.
Komisyon payı formülü (Fshare):
Fshare = Ljit / Lpool + Ljit
Burada:
- Ljit — bot tarafından sağlanan likidite.
- Lpool — hedef tick’teki mevcut pasif LP likiditesi.
Pratik kural: Komisyonun %95’ini almak için, bot likiditesi bu aralıktaki mevcut pool likiditesinin 19 katı olmalıdır.
2. Swap Getirisini Hesaplama (Gross Profit)
Bot, mempool’da $S$ değerinde bir kullanıcı işlemi görür. Pool komisyon kategorisini ($\phi$, ör. %0,05 veya %0,3) bildiğinde, toplam işlem ücretini hesaplar:

Botun beklenen brüt kazancı (Pgross):

3. “Gas Vergisi”ni Hesaba Katma (Operasyonel Maliyetler)
Pasif LP tek seferlik gaz öderken, JIT botu aynı blokta iki kez gaz öder (veya birden çok çağrı ile tek pahalı işlem yapar).
Gas maliyeti (Cgas):
mint(): ~150k–200k gas.decreaseLiquidity()+collect(): ~120k–180k gas.- Bloka kesin girmek için Flashbots öncelik ücreti.
Ethereum Mainnet’te 30 gwei gaz fiyatı ile toplam maliyet $50–$150 olabilir. L2 (Arbitrum/Polygon) için maliyet çok düşük ($0,10–$0,50), ancak mikro-swap rekabeti daha yüksektir.
4. Kırılma Noktasını Hesaplama (Break-even Point)
Saldırı yalnızca şu durumda mantıklıdır:

Burada Cslippage likidite çekme kaybı (tek swap süresince impermanent loss), Copportunity ise sermaye maliyetidir (ör. Flash Loan faizi).
Az bilinen detay: Deneyimli botlar “Shadow Slippage”i dikkate alır. Bot büyük likidite eklediğinde, fiyat “daha sert” olur. Kullanıcı swap’ı çok büyükse, bot fiyat daha fazla hareket etsin diye daha az likidite ekleyebilir ve bir sonraki blokta arbitraj planlar. Ama saf JIT için — ne kadar fazla likidite, o kadar iyi.
5. Pratik Hesaplama Örneği (Mainnet)
- Pool: ETH/USDC (0,05%)
- Kullanıcı swap’ı: $500,000.
- Mevcut Lpool tick’te: $2,000,000.
- Bot ekliyor Ljit: $18,000,000.
- Toplam komisyon: $500,000 x 0.0005 = $250.
- Bot payı: 18M / 18M + 2M = 90%.
- Bot geliri: $250 x 0.9 = $225.
- Gas maliyeti: $120 (ortalama koşullarda).
- Net kar: $225 - $120 = $105 blok başına.
Az görünüyor mu? En iyi botlar günde 500–1000 bu tür saldırı yapar. Bu, neredeyse piyasa riski olmadan günlük $50,000–$100,000 net kazanç demektir.
6. Teknik İnce Nokta: Tick Genişliği Seçimi
Bot asla geniş bir aralık belirlemez. Aralık (tickler) ne kadar dar olursa, sermaye yoğunluğu o kadar yüksek ve aynı token miktarında L o kadar büyük olur.
JIT Standardı: tickLower ve tickUpper, minimum adım farkı ile (ör. 0.05% pool için 10 puan).
Token miktarından likidite hesaplama (TypeScript/Ethers):
import { LiquidityAmounts } from '@uniswap/v3-sdk';
import { JSBI } from '@uniswap/sdk-core';
function calculateJitLiquidity(amount0, amount1, currentPrice, tickLower, tickUpper) {
const sqrtRatioX96 = encodePriceSqrt(currentPrice);
const sqrtRatioAX96 = TickMath.getSqrtRatioAtTick(tickLower);
const sqrtRatioBX96 = TickMath.getSqrtRatioAtTick(tickUpper);
return LiquidityAmounts.getLiquidityForAmounts(
sqrtRatioX96,
sqrtRatioAX96,
sqrtRatioBX96,
amount0,
amount1,
false
);
}
Makale Özeti
JIT matematiği verimlilik için bir savaştır. Eğer %1 komisyonlu bir pool’da getiri aniden düşerse — mempool’u kontrol edin. Muhtemelen, kendi L’sini sizinkinden 50 kat daha verimli hesaplayan bir bot vardır.
Sonraki makalede: Formüllerden donanım ve koda geçeceğiz. Bu hesaplamaları gerçek zamanlı yapan smart contract mimarisini inceleyecek ve Rust’ın neden bu alandaki diğer tüm dilleri geride bıraktığını öğreneceğiz.
JIT Likidite Ustalığı: Uniswap'te MEV İçin Tam Kılavuz: 5 Bölümden 1. Bölüm