פיתוח מערכת נזילות JIT
נזילות JIT היא אסטרטגיית MEV ש-Uniswap Labs מכנים "MEV ישר" בניגוד להתקפות סנדוויץ'. המכניקה: באותו בלוק של עסקה גדולה, ספק מוסיף נזילות מרוכזת סביב המחיר הנוכחי, מרוויח עמלות מאותה עסקה, ומסיר את הנזילות באותו בלוק — שלוש פעולות on-chain בתוספת עמלות בעסקה אחת. לפי בדיקות החזרה שלנו, אסטרטגיית JIT מייצרת פי 3–5 יותר עמלות מאשר מתן נזילות פסיבית באותו טווח. ברשת Ethereum הראשית ב-30 gwei גז ועמלת בריכה של 0.3%, ההכנסה הממוצעת ממחזור JIT יחיד על ETH/USDC היא כ-$50–200, עם עלויות גז של $10–30. ב-L2, כמו Arbitrum, הגז זול פי 10–20, מה שהופך את JIT לרווחי עבור עסקאות מ-$100.
הצוות שלנו מתמחה במערכות JIT turnkey: מניתוח mempool ועד פריסת חוזים מותאמי גז. במהלך עבודתנו, השלמנו יותר מ-20 פרויקטים עבור לקוחות מתחומי שיפוט שונים.
כיצד JIT מיירט עמלות
נזילות מרוכזת וחלוקת עמלות. ב-Uniswap v3, עמלות עסקה מחולקות באופן יחסי לנזילות בטווח ה-tick הפעיל. אם פוזיציית JIT מוסיפה $1M נזילות בטווח צר ברגע העסקה, בעוד שכל שאר ה-LPs מחזיקים $500k באותו טווח, JIT מקבל 66.7% מעמלת העסקה.
האסטרטגיה רווחית כאשר:
- העסקה גדולה מספיק (אחרת העמלות לא מכסות את הגז עבור שלוש פעולות).
- טווח ה-tick צר מספיק (חלק גדול יותר, פחות הפסד זמני בזמן החזקה).
- הפוזיציה מוחזקת בלוק אחד (אפס סיכון להפסד בלתי-קבוע).
גודל עסקה מינימלי לאיזון תלוי ברשת ובגז: ברשת Ethereum הראשית בעמלת 0.3% ומחיר גז ממוצע, נדרשת עסקה באלפי דולרים; ב-L2 (Arbitrum), כמה מאות.
למה JIT עובד רק עם הגשת Bundle
JIT דורש לראות את העסקה ב-mempool לפני שהיא נכללת בבלוק. Mempool פרטי דרך Flashbots MEV-Share או mempool ציבורי דרך WebSocket — בין זיהוי העסקה להכללת ה-bundle שלך — שניות.
תשתית אופטימלית:
- Node משל עצמך עם MEV-Geth או reth עם mempool websocket.
- חיבור ל-Flashbots MEV-Share כדי לראות רמזים על עסקאות ממתינות.
- הגשת bundle דרך
eth_sendBundle— הכללה אטומית של כל שלוש העסקאות בבלוק אחד.
ללא הגשת bundle, JIT לא עובד: אם addLiquidity והעסקה מגיעים לבלוקים שונים, האסטרטגיה חסרת טעם ולא רווחית.
ארכיטקטורת מערכת JIT
רכיבי Off-chain
סורק Mempool: מנוי WebSocket ל-node, סינון עסקאות Uniswap v3 לפי exactInputSingle/exactInput selector. פענוח calldata כדי לקבוע בריכה, גודל, slippage.
מחשבון רווחיות: עבור כל מועמד מחשב:
- עמלה צפויה =
swapAmount * feeTier. - חלק עמלה =
depositAmount / (poolLiquidity + depositAmount). - עלות גז של bundle =
(addLiq + removeLiq + collect) * gasPrice. - רווח נקי = (עמלה * חלק) - גז.
אם הרווח הנקי עובר סף (כמה עשרות דולרים), ה-bundle נשלח. בונה Bundle: יוצר שלוש עסקאות עבור Flashbots bundle:
-
tx1:mintפוזיציה בטווח ה-tick הנדרש. -
tx2: העסקה המקורית (backrun). -
tx3:burn+collectפוזיציה.
חוזה חכם לפעולות JIT
החוזה עוטף פעולות נזילות וממזער גז:
function executeJIT(
address pool,
int24 tickLower,
int24 tickUpper,
uint128 liquidity,
bytes calldata swapData
) external onlyOperator {
// tx1: add liquidity
INonfungiblePositionManager(NPM).mint(MintParams({...}));
// tx2: forward swap (в bundle через Flashbots — отдельная tx)
// tx3: remove liquidity + collect
INonfungiblePositionManager(NPM).decreaseLiquidity(...);
INonfungiblePositionManager(NPM).collect(...);
}חשוב: לחוזה חייב להיות יתרה מספקת של שני טוקני הבריכה כדי להוסיף נזילות. ניהול יתרות הוא היבט תפעולי קריטי.
בחירת טווח Tick
טווח צר ממקסם את חלק העמלה אך מגדיל סיכון: אם העסקה מזיזה את המחיר מחוץ לטווח, פוזיציית JIT הופכת ללא פעילה. עבור עסקה ללא השפעת מחיר משמעותית (<0.5%), טווח של ±0.3% מהמחיר הנוכחי מספיק. עבור עסקאות גדולות עם השפעת מחיר של 1–2%, יש להרחיב את הטווח ל-±2%.
| סוג עסקה | השפעת מחיר | טווח מומלץ | חיץ |
|---|---|---|---|
| קטנה | <0.5% | ±0.3% | 20 ticks |
| בינונית | 0.5–1% | ±1% | 30 ticks |
| גדולה | 1–2% | ±2% | 40 ticks |
סיכונים ומגבלות
סיכון Revert של bundle. אם העסקה המקורית חוזרת (למשל, עקב הגנת slippage של הסוחר), כל ה-bundle חוזר. גז עבור function executeJIT( address pool, int24 tickLower, int24 tickUpper, uint128 liquidity, bytes calldata swapData ) external onlyOperator { // tx1: add liquidity INonfungiblePositionManager(NPM).mint(MintParams({...})); // tx2: forward swap (в bundle через Flashbots — отдельная tx) // tx3: remove liquidity + collect INonfungiblePositionManager(NPM).decreaseLiquidity(...); INonfungiblePositionManager(NPM).collect(...); } אבוד. הפחתה: לכלול רק עסקאות עם סובלנות slippage רופפת (>1%).
תחרות עם בוטים אחרים של JIT. על זוגות נזילים מאוד (ETH/USDC), עשרות בוטים מתחרים על אותן עסקאות. מלחמות גז דרך עמלת עדיפות יכולות להרוס רווח. אסטרטגיה רווחית יותר היא על זוגות mid-cap עם תחרות נמוכה.
Uniswap v4 ו-JIT. עם הופעת ה-hooks, בריכות עשויות להציג addLiquidity hook עם זמן החזקה מינימלי — אמצעי נגד ישיר ל-JIT. כמה בריכות כבר בודקות מנגנונים כאלה.
תהליך ולוח זמנים
| שלב | תוכן | משך |
|---|---|---|
| אנליטיקה | זיהוי בריכות יעד, רשתות, נוף תחרותי | יום אחד |
| פיתוח Off-chain | סורק mempool, מחשבון רווחיות, בונה bundle | 4–5 ימים |
| פיתוח On-chain | מבצע JIT, בקרת גישה, אופטימיזציית גז | 2–3 ימים |
| תשתית | Node (reth/geth), MEV-Share, ניטור | 2–3 ימים |
| בדיקות | סימולציה על fork של mainnet, בדיקות חזרה | 2–3 ימים |
סה"כ: 1–2 שבועות עד השקה. העלות מחושבת לאחר ציון בריכות ורשתות יעד. צרו קשר להערכה אישית.
מה כלול
- תיעוד: דיאגרמת ארכיטקטורה, תיאור תצורה, הוראות השקה.
- גישה: מאגר עם קוד, מסמכי פריסה, מפתחות API (אם נדרשים).
- הדרכה: סקירת מערכת, העברת ידע לצוות שלכם.
- תמיכה: שבוע אחד של ניטור לאחר השקה ותיקוני באגים קריטיים.
למהנדסים שלנו יש שנים של ניסיון בפיתוח blockchain ובשוק DeFi. אנו מבטיחים תמיכה שקופה בכל השלבים. קבעו ייעוץ כדי ללמוד כיצד JIT יכול להגדיל את התשואות שלכם על Uniswap v3.







