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 自動翻譯,所有內容以英文版本為準。查看英文版 →
AMM 是對抗性代碼的絕佳目標:LP 資金被放在完全可見的池中;每次交換都會以確定的方式改變價格。本頁列舉了已在任何地方針對 AMM 展示過的攻擊類別、它們如何適用於 Raydium,以及 Raydium(和集成商)採取的防禦措施。
1. 三明治攻擊 / MEV 攻擊
攻擊
機器人監視記憶池 / 流言流,看到使用者的交換,以同方向的購買進行搶先交易(推高價格),讓使用者的交易以更差的價格執行,然後以相反方向的賣出進行回溯交易。機器人獲利於價差。暴露風險
- 風險最高:低 TVL CPMM 池和 AMM v4 池 — 即使是很小的交換也會有意義地改變價格。
- 風險較低:深度 CLMM 池 — 同價格內的交換不會改變價格。
- 無風險:農場收穫、LP 存款(比例強制,方式不同於價格敏感)。
防禦
- Jito 綑綁 (
integration-guides/routing-and-mev) 隱藏公開記憶池中的交易。 - 嚴格的滑點 — 最小輸出接近預期使三明治攻擊無利可圖。在 ~0.3% 以下,大多數三明治攻擊會虧錢。
- 較小的交換規模 — 將 $100k 交換分成 10 × $10k;每一個移動價格更少。
Raydium 的立場
Raydium 的核心程序不強制執行反 MEV 保護 — 它們在程序級別是中立的。保護發生在提交層(Jito、錢包的內建保護)。UI 預設滑點為 0.5%,這對大多數池來說是合理的。2. 價格操縱
攻擊
大型交易者暫時移動池的價格(通過閃貸或自籌資金的鯨魚),觸發某些依賴於價格的下游行動(清算、受 Oracle 影響的借貸、衍生品支付),然後將價格恢復正常。暴露風險
- 原生 Raydium 操作:無風險。來回交換只會產生往返費用;交易者虧錢。
- 集成程序:如果它們天真地讀取 Raydium 池價格,則暴露。
防禦
- 使用 TWAP,而不是現貨價格,用於組合性(見
security/oracle-and-token-risks)。 - CLMM ObservationState 提供短窗口 TWAP,無法在沒有持續資本承諾的情況下被操縱。
- 多 Oracle 共識:如果你的程序讀取 Raydium、Pyth、Jupiter,只有在它們在 1% 內達成一致時才行動,任何單一來源的閃貸操縱都不夠。
Raydium 的立場
CLMM 配有 ObservationState TWAP 支援;忽略它並使用現貨價格的集成商需要自己應對。Raydium 的前端使用多個價格來源進行 USD 顯示。3. 捐獻 / 通膨攻擊
攻擊
首個 LP 在新池中存入微小金額(例如,6 位小數鑄幣的各 1 個代幣 → 發行 1 個 LP 單位)。然後攻擊者通過 SPL Token 轉帳直接「捐獻」1,000,000 個代幣到池金庫。現在 1 個 LP 單位代表各 500,000 個鑄幣。任何後續存款少於該金額的 LP 被四捨五入為 0 個 LP 單位並失去存款。暴露風險
- CPMM / AMM v4:在新創建的低流動性池中可能暴露。
- CLMM:無風險(無共享 LP 鑄幣;每個頭寸都是其自己的 NFT,具有明確的流動性價值)。
防禦
CPMM 的initialize 指令將最小 LP 金額鎖定到池中(受 Uniswap V2 的 MINIMUM_LIQUIDITY 模式啟發)。這意味著第一個 LP 會收到 sqrt(x × y) - MINIMUM_LIQUIDITY,其中 MINIMUM_LIQUIDITY(1000 單位)被銷毀到空。捐獻攻擊要求攻擊者捐獻 >> 初始存款,這變得無經濟效益。
此外,Raydium 的 SDK 在初始存款微小時大聲警告並引導使用者朝著合理金額。
Raydium 的立場
MINIMUM_LIQUIDITY 鎖定在 CPMM 中配有;AMM v4 有類似的機制。創建池的使用者應該為每個鑄幣種子至少 10,000+ 單位,以使捐獻攻擊無論如何都無經濟效益。
4. Token-2022 轉賬 Hook 濫用
攻擊
鑄幣的轉賬 Hook 是可升級的。攻擊者在鑄幣推出時部署一個無害的 Hook,在 Raydium 上上市,從使用者積累 LP。稍後,升級 Hook 以阻止所有轉賬(實際上是軟地毯 — 使用者無法提取)。攻擊者使池只能在一個方向上交易,廉價地買上 LP,解鎖 Hook,勝利。暴露風險
包含轉賬 Hook 鑄幣的池。防禦
- 程序級別:Raydium 程序在交換期間調用 Hook;如果 Hook 阻止,交換會反轉。這不能機械地防止攻擊。
- UI 級別:Raydium 標記具有轉賬 Hook 鑄幣的池。
- 集成商級別:聚合器預設應跳過轉賬 Hook 鑄幣,僅允許列表已驗證的 Hook。
Raydium 的立場
Raydium 不禁止轉賬 Hook 池(合法的 Hook 存在),但明確標記它們。過濾tags.includes("TRANSFER_HOOK") 的聚合器可以根據需要排除。
5. 組合性 / CPI 漏洞
攻擊
程序通過 CPI 組合 Raydium 並引入錯誤:例如,它傳遞了錯誤的observation_state、CLMM 交換的錯誤 tick 數組,或雙花一個帳戶。攻擊者識別有漏洞的組合並利用它。
暴露風險
- 有漏洞的集成商 — 通常是錯誤的來源。
- Raydium — 僅在錯誤觸發 Raydium 程序本身中的意外行為時。
歷史例子
Raydium 的程序都沒有通過 CPI 被利用 — Raydium 的帳戶驗證器捕捉形狀錯誤的帳戶並反轉。更廣泛的生態系統中的利用已通過組合AMM 但未源於 AMM 的自訂程序錯誤發生。防禦
- 呼叫程序在可能時應使用 Anchor CPI 幫助器(而不是手動構建的指令) — 類型安全捕捉大多數誤用。
- 針對 Mainnet 分叉狀態的集成測試涵蓋組合情況。
6. 管理員 / 密鑰洩露
攻擊
管理員密鑰(升級權限、AmmConfig 管理員、協議費用聲稱)被洩露。攻擊者部署惡意升級以排幹池,或修改 AmmConfigs 以將費用路由到攻擊者錢包,或排幹協議費用。暴露風險
所有角色在security/admin-and-multisig 中記錄。
防禦
- 3/4 多簽 升級權限需要洩露 4 個獨立簽署者。
- 24 小時時間鎖 升級給使用者時間在惡意升級啟動前解除。
- 營運監視 — 通過 Squads 的公開佇列對任何多簽活動發出警報。
歷史事件
AMM v4 的池權限密鑰在 2022 年 12 月被洩露(前多簽)。修復:將所有權限移至 Squads 多簽。修復後,無事件。7. 對 CLMM Tick 數學的經濟攻擊
攻擊
老練的攻擊者利用 CLMM tick 數學中的舍入或費用記帳邊案。在其他 CLMM 實現中發現的例子(不是 Raydium):- 違反使用者進行舍入、積累塵埃的費用增長記帳。
- Tick 交叉,貸記/借記錯誤的 fee_growth delta。
sqrtPrice * liquidity產品中的整數溢位。
暴露風險
複雜的客製化數學。審計和模糊測試是主要防禦。Raydium 的立場
CLMM 已有兩次獨立審計(OtterSec + MadShield)加上持續的基於屬性的模糊測試。迄今為止未發現生產影響的漏洞。sqrt_price_x64 Q64.64 算術使用飽和 128 位數學,單位測試涵蓋邊界 Tick。
8. 頭寸 NFT 混淆
攻擊
使用者被誘騙簽署轉帳其 CLMM 頭寸 NFT 給攻擊者的交易。攻擊者現在擁有頭寸的流動性。暴露風險
任何頭寸 NFT 持有者。防禦
- 錢包 UI 應識別 Raydium 頭寸 NFT 並異樣地顯示它們(不是作為可發送的通用 NFT)。
- 使用者應警惕簽署轉帳 NFT 的交易。
Raydium 的立場
頭寸 NFT 實現 Metaplex 的元資料標準;理解 CLMM 頭寸的錢包應用將它們顯示為流動性頭寸而不是可交易的 NFT。自 2026 年以來,大多數主要 Solana 錢包都特別展示它們。9. 農場獎勵流操縱
攻擊
農場創建者為獎勵金庫提供資金,吸引質押者,然後使用參數呼叫restartRewards 使待定獎勵計算複雜化,竊取收穫價值。
暴露風險
有惡意創建者的農場。Farm v6 緊密限制創建者的權力;此攻擊不適用。防禦
Farm v6 的管理員指令(setRewards、restartRewards、addReward)保留按比例應享權利 — reward_per_share 在變更時刻調整,因此沒有變更前的應計被追溯損壞。
Raydium 的立場
OtterSec 的農場審計特別測試了重啟獎勵情景;無漏洞發現。10. 模擬與執行偏差
攻擊
攻擊者構造一個模擬成功但在執行時反轉的交易(或反之)。用於騷擾依靠模擬進行顯示的錢包。暴露風險
基於模擬顯示「你將收到 X」的錢包。防禦
- 使用具有與真實提交相同區塊雜湊的
simulateTransaction。 - 將預期輸出顯示為「≈」(大約)而不是確切的。
- 在提交前重新模擬。
Raydium 的立場
給定當前池狀態,CLMM 模擬是確定性的;偏差僅在模擬和執行之間狀態改變時發生(正常情況,通過滑點限制處理)。摘要表
| 向量 | Raydium 特定 | 防禦層 | 使用者的殘留風險 |
|---|---|---|---|
| 三明治 / MEV | 是 | 提交層(Jito、滑點) | 低如果使用 Jito |
| 價格操縱 | 僅組合性 | 使用 TWAP | 低如果消費 TWAP |
| 捐獻攻擊 | CPMM | MINIMUM_LIQUIDITY | 低 |
| 轉賬 Hook 濫用 | Token-2022 池 | UI 標記 | 中等未驗證的 Hook |
| CPI 漏洞 | 集成商漏洞 | Raydium 驗證器反轉 | 低(漏洞留在集成商) |
| 管理員洩露 | 所有程序 | 多簽 + 時間鎖 | 低(24 小時反應) |
| CLMM tick 數學 | CLMM | 審計 + 模糊測試 | 低 |
| 頭寸 NFT 混淆 | CLMM | 錢包 UX | 低與現代錢包 |
| 農場操縱 | Farm v6 | 受限創建者權力 | 低 |
| 模擬偏差 | 任何 | 錢包 UX | 低 |
使用者可以做什麼
- 預設嚴格滑點;僅在需要時提高。
- 使用啟用 Jito 的錢包 / 交換流。
- 在 LP 前驗證鑄幣擴展。
- 監視 Squads 多簽以待定升級。
- 在池中多樣化;不要將所有 LP 集中在一個新發布池中。
集成商可以做什麼
- 為衍生品定價使用 ObservationState TWAP。
- 通過 CPI 組合時驗證帳戶約束。
- 按
tags字段過濾池(跳過scam、honeypot、未驗證的轉賬 Hook)。 - 設定合理的滑點限制;不接受來自使用者輸入的 0 滑點。
- 謹慎使用
simulateTransaction— 記錄它是一個估計。
指標
security/oracle-and-token-risks— Token-2022 風險深入。security/admin-and-multisig— 權限結構。security/disclosure— 漏洞賞金計劃。integration-guides/routing-and-mev— MEV 減輕。
- Rekt News — DeFi 驗屍告訴這個列表。
- 審計報告在
security/audits中連結。


