Documentation Index
Fetch the complete documentation index at: https://docs.raydium.io/llms.txt
Use this file to discover all available pages before exploring further.
本頁內容由 AI 自動翻譯,所有內容以英文版本為準。查看英文版 →
Solana 上的「MEV」與以太坊的記憶池驅動型 MEV 並不相同。區塊領導者看到的是交易包到達時的順序,而非有序的記憶池;搶先交易發生在領導者端重新排序或共置搜索器的方式,三明治攻擊由監視池狀態並用更高費用競速你交易的機器人執行。相應地,緩解措施也不同。
分路由入門
「分路由」是指將一次邏輯交換拆分到多個池中,使邊際價格均衡——與在各自池的價格下交易每一片的輸出相同。當任何單個池相對於交易規模都很淺時,它可以減少有效價格影響。 問題陳述:給定池P_1, ..., P_n,其函數 f_i(x) 將輸入 x 映射到輸出,找到分配 x_1 + ... + x_n = X 以最大化 Σ f_i(x_i)。由於每個 f_i 都是凹函數,最優值滿足 f'_1(x_1) = f'_2(x_2) = ... = f'_n(x_n)(邊際價格相等)。
貪心實現
一個在實踐中能達到最優值 ~1% 的簡單方法:step → 更接近最優,更多迭代。在實踐中,100–500 片是合理的甜蜜點。
凸優化實現
對於生產級聚合器,直接求解優化。每個池有一個閉形式f'_i(x):
- 恆積(CPMM / AMM v4):
f'(x) = y * R_y / (R_x + x)^2,其中R_x, R_y是儲備,y = R_x * R_y / (R_x + x) - R_y…(更簡單的推導:邊際價格是R_y / (R_x + x),所以分配以均衡邊際價格是一次 1D 搜索)。 - CLMM:分段光滑——在一個 tick 內,
f'(x)是sqrt_price的有理函數;跨 tick,它離散步進。使用小步求解器進行分配,或將每個連續 tick 視為其自身的「池」。
[(pool_1, x_1), (pool_2, x_2), ...],你的交易組裝步驟將其轉換為一系列交換指令。
分路由何時有幫助
| 交易規模與 TVL | 分路由有幫助? |
|---|---|
<0.1% | 否——單池主導 |
| 0.1–1% | 邊際有幫助 |
| 1–5% | 是,10–50 bps 改進 |
>5% | 是,大幅改進 |
<$10k 的深度池交換,不要費力分割——gas 開銷會超過改進。對於聚合器報價機構流動,始終分割。
多跳路由
當不存在直接池時,或直接池的影響巨大時,通過中介進行中繼:- 其自身的滑點界限(直接中繼上較低;多跳上按中繼)。
- 其自身支付的費用。
- 其自身的價格影響。
(1 - impact_1) * (1 - impact_2)。1% 影響中繼兩次是 1.99% 總計,而非 2%。
永遠不要通過同一池中繼兩次。 通過同一 CLMM 進行 A → B → A → B 只是燃燒費用和滑點。聚合器應在生成時篩選此類路由。(注意:這是同對循環,不是多跳一般情況——通過不同池路由 A → USDC → B 是標準、有用的模式,在上面得到認可。)
按中繼與端到端最小值。 使用 CPI 組合(integration-guides/cpi-integration),你可以將每個中繼的 minimum_amount_out 設置為 0,並在你的代理中實施單一端到端最小值。沒有 CPI,每個中繼實施其自身最小值,這要求計算合理的中間邊界——通常按中繼 quote_i * (1 - slippage_bps/10000)。
三明治攻擊
機制
一個機器人監視交易八卦流。當它看到你的交換時:- 搶先交易:機器人在你之前購買相同令牌,將池價格推高。
- 受害者交易:你以更差的價格交換。
- 逆向交易:機器人以升高的價格賣出,捕捉差價。
緩解措施
緊滑點。 如果你的最小輸出比報價低 0.5%,移動價格超過 0.5% 的三明治會撤銷你但機器人的前交易仍以你的舊價格執行。他們虧錢。三明治機器人針對寬滑點(≥1–2%);sub-0.3% 滑點在很大程度上是免疫的。 私有記憶池提交(Jito)。 將你的交易作為 Jito 組合的一部分提交。組合不會出現在公開八卦流中;機器人在飛行中看不到交易並搶先交易。權衡:組合需要驗證者端小費,並非每個領導者都啟用 Jito(雖然大多數都是)。 較小的交易規模。 跨多個交易分割交易,使沒有單個交易移動足夠的價格成為有利可圖的三明治目標。增加總 gas 成本。 時間隨機化。 如果可能,在低交易量時提交。不適用於互動用戶交換但適用於計劃的機器人流量。 Raydium 的 CLMM 池通常比 CPMM 看到的三明治活動少,因為單 tick 流動性結構意味著小型交易根本不移動價格(它們保持在 tick 內)。深 CLMM 池是最好的三明治抵抗場所。Jito 組合
Jito 是一個修改的 Solana 驗證者客戶端,接受組合——原子級登錄的有序交易組。機器人使用 Jito 進行 MEV 提取;普通用戶使用 Jito 保護自己免受相同機器人的侵害。組合如何工作
- 連接到 Jito 區塊引擎端點(例如
https://mainnet.block-engine.jito.wtf)。 - 將 1–5 個交易的組合加上小費提交到 Jito 的小費帳戶之一。
- 如果當前領導者運行 Jito,你的組合會被考慮。此插槽的拍賣贏家(每 CU 小費最高的組合)登錄;其他人則被丟棄。
調整小費
小費大小遵循最近組合分佈。Jito 發佈實時百分位:構建組合
- 小費必須在組合內。 將
SystemProgram.transfer包含到 Jito 小費帳戶作為組合的一個交易內的指令(通常是最後一個)。不是組合一部分的單獨小費交易被忽略。 - 領導者未啟用 Jito。 ~75% 的領導者運行 Jito;~25% 不運行。當非 Jito 領導者持有插槽時提交的組合被丟棄。客戶端將自動重試。
- 過期。 組合使用與常規交易相同的區塊哈希過期模型。快速組裝和發送;~60s 窗口。
組合與優先費
優先費賄賂領導者更快地包含你的交易。Jito 組合還從公開記憶池中隱藏交易。使用優先費以確保緊急性;使用組合以防止三明治。雙重保險:在高價值用戶交換上同時使用兩者。 參見integration-guides/priority-fee-tuning 以調整優先費大小。
MEV 共享 / 撤銷保護 RPC
某些 RPC 提供商提供「MEV 共享」或「撤銷保護」端點,內部通過 Jito 組合或等效私有路徑路由你的交易:- Helius —— 質押連接,組合支持。
- QuickNode —— 「Revert Protect」端點;自動在提交的交易周圍形成組合。
- Triton —— 私有流層。
擁塞處理
在高交易量窗口期間(主網啟動、主要上市、持續上漲),領導者包隊列填滿。症狀:- 交易保持未確認 60+ 秒,然後以「blockhash not found」過期。
- 昨天有效的優先費今天不足。
- 模擬成功但執行從未登錄。
- 過期時的激進重試。 在
TransactionExpiredBlockheightExceeded上,以新區塊哈希重建並重新提交。不要在撤銷上重試——撤銷是確定性的。 - 多 RPC 廣播。 同時向多個 RPC 提交相同交易;先到達領導者的獲勝。
- 優先費提升。 從 50th 百分位開始;如果第一次嘗試過期,在 75th 重試,然後 95th。
- Jito 組合作為後備。 Jito 領導者往往不那麼擁塞,因為區塊引擎按每 CU 小費排序組合;高小費組合獲得優先級。
- 模擬較少。 在擁塞下,模擬一次前期;不要在重試上重新模擬,因為池狀態無論如何都會轉變。在擁塞期間重新模擬經常會虛假失敗。
按產品 MEV 考慮
CPMM。 在低 TVL 池上高度可被三明治化。恆積曲線放大甚至小型機器人前交易。建議對任何 CPMM 交易 >0.5% 池 TVL 使用 Jito 組合。 CLMM。 在深池上不那麼可被三明治化,因為 tick 內交易不移動價格。但跨 tick 交易絕對可以;針對 tick 交叉的三明治攻擊是已知模式。緊滑點(<0.3%)是最好的防禦。
AMM v4 + OpenBook。 OpenBook 訂單簿填充通過同一交易運行,所以不知道訂單簿狀態的三明治機器人低估價格影響並經常失敗。因此有機低 MEV 場地。
LaunchLab。 在早期結合曲線階段,搶先交易在炒作的啟動中猖獗。曲線移動快速,滑點寬。強烈建議使用 Jito 組合。畢業後,生成的 CPMM 遵循正常 CPMM 動態。
Farms。 收穫和質押操作不是交換,不可被三明治化。無需特殊處理。
檢查清單
對於生產聚合器 / 錢包交換 UI:- 滑點默認值在正常對上 ≤0.5%;用戶可以覆蓋。
- Jito 組合提交對 >$1k USD 價值的交換默認啟用。
- 優先費來自實時估計(不硬編碼)。
- 重試邏輯區分撤銷(不重試)與過期(使用新區塊哈希重試)。
- 多跳路由設置按中繼最小值,而非端到端。
- 分路由對 >1% 任何單個池 TVL 的交易有效。
- 池新鮮度:在提交前立即重新獲取狀態;如果陳舊重新報價。
- 在淺池上對三明治有抵抗:要麼僅 Jito,要麼如果滑點 >1% 則拒絕。
指標
integration-guides/aggregator—— 池發現、報價、交易組裝。integration-guides/priority-fee-tuning—— CU 和優先費調整。integration-guides/cpi-integration—— 單滑點門多跳組合。algorithms/slippage-and-price-impact—— 正式定義。
- Jito docs
- Solana validator docs on priority fees
- jito-ts — TypeScript 組合客戶端。


