KeyFrame內部研究專用

Token Burning Wrong = Pool Drained | AMM Reserve Crisis

0xUnstuck·7月4日週六·6 min英文

三句話摘要

燒毀邏輯漏洞導致代幣操縱 AMM 價格並掏空流動性池的原理與防禦。 代幣的燒毀和轉賬邏輯必須只操作交易發起者的餘額,永遠不能直接接觸流動性池或調用其內部函數,否則攻擊者可通過人為縮小儲備來操縱價格並掏空資金。 AMM 的價格由儲備比例決定,sync 函數使池信任其真實餘額。這個設計在正常情況下是安全的,但前提是沒有人能隨意改變池內代幣數量。

重點整理

重點
  • 1

    AMM 的價格由儲備比例決定,sync 函數使池信任其真實餘額。這個設計在正常情況下是安全的,但前提是沒有人能隨意改變池內代幣數量。

  • 2

    代幣的燒毀邏輯漏洞在於一行代碼的方向錯誤:應該從賣家(msg.sender)扣除,但實際從流動性池扣除。這讓攻擊者能無償地減少池中的代幣供應,進而操縱價格。

  • 3

    價格操縱的機制是物理的而非抽象的:當池中代幣數量劇減,比例失衡,池會過度補償用來維持常數乘積,導致虛假定價。攻擊者因此能用小額輸入換取超額輸出。

  • 4

    防禦的核心原則是:燒毀和轉賬邏輯只能涉及交易的實際參與方(發送者和接收者),永遠不能接觸第三方如流動性池,也不能調用其 sync 函數。

實用技巧與重點

乾貨
  • 具體攻擊案例數據:
  • 初始池狀態:100 WBNB : 1,000,000 ADC
  • 攻擊者燒毀 990,000 ADC(來自池本身)
  • sync 後 ADC 儲備從 1,000,000 降至 10,000
  • ADC 價格被人為提升約 100 倍
  • 攻擊者輸入 10,000 ADC,獲得 50 WBNB(正常應得 ~1 WBNB)
  • 實際事件:從 PancakeSwap 池中掏空約 220 WBNB
  • 技術實現:
  • 漏洞位置:代幣合約的 burn 函數
  • 錯誤邏輯:`burn(pool, amount)` 而非 `burn(sender, amount)`
  • 觸發機制:調用 sync 更新儲備記錄
  • 測試網絡:Sepolia(已驗證部署)
  • 修複方案:
  • burn 函數只操作 `msg.sender` 的餘額
  • 永不調用流動性池的任何內部函數
  • 燒毀的前置條件:用戶實際持有足夠代幣

結論

結論

代幣的燒毀和轉賬邏輯必須只操作交易發起者的餘額,永遠不能直接接觸流動性池或調用其內部函數,否則攻擊者可通過人為縮小儲備來操縱價格並掏空資金。

完整解析

詳細

在自動做市商(AMM)的設計中,價格由兩種代幣儲備的比例決定,就像一個天秤的兩端各放著不同重量的硬幣堆。池內有一個 sync 函數負責更新內部記錄的儲備量,使其與實際餘額匹配。這個設計通常是安全的,因為假設沒有人能隨意改變池內代幣數量。

但在這個案例中,有問題的代幣合約包含一個費用轉賬機制,進行轉賬時會自動燒毀一部分代幣。問題在於燒毀邏輯:開發者本應從賣家的賬戶中扣除代幣,卻錯誤地寫成從流動性池本身扣除。這一行代碼的方向錯誤讓攻擊者找到了操縱價格的入口。

攻擊流程極其簡單。攻擊者呼叫燒毀函數,從池中摧毀大量代幣(比如 990 萬中的 99 萬個),然後立即調用 sync。由於池內的代幣數量確實減少了,sync 信任這個新的真實狀態並更新記錄。結果是代幣的儲備從 100 萬崩潰到 1 萬,使其相對於另一種代幣顯得極其稀缺。根據 AMM 的常數乘積公式,代幣價格會虛假上升約 100 倍。此時攻擊者只需投入少量代幣,就能換取遠超公平價值的另一種資產,完整掏空池中的流動性。在實際事件中,攻擊者從一個 PancakeSwap 池中成功提取了約 220 個 WBNB。

防禦思路非常清晰:燒毀邏輯必須嚴格限制在交易的實際參與方。當修改後的合約執行燒毀時,它從發送者(攻擊者)自己的餘額中扣除,而不是從池中。由於攻擊者持有的代幣遠少於需要燒毀的數量,操作會直接回滾,池的儲備保持完整。因此任何後續的交換都會按公平價格執行,攻擊無法進行。

關鍵時刻

Pipeline v2

帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。

事實查核

Pipeline v2

說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。

更多「Web3 安全」的內容

IF YOU OWN XRP YOU NEED TO SEE THIS PRICE MANIPULATION! ⚠️
8 min
Web3 安全英文8月14日

IF YOU OWN XRP YOU NEED TO SEE THIS PRICE MANIPULATION! ⚠️

Zach Humphries

  • 機構支撐的積極意義:價格操縱常被視為負面,但Ripple掌握大量XRP供應與escrow,在熊市期間提高價格下限,實際上替零售投資者鎖定了低風險的積累區間,這不是剝削而是市場穩定機制。
  • 歷史模式驗證:2024年7月至11月XRP在50美分附近橫盤整理,低點觸及42美分(wick),高點65美分;隨後11月5日至12月5日單月上漲456%,年底到2025年初累計漲幅534%,這個歷史周期正在1美元價位重演。
  • 比特幣聯動邏輯:講者在4-5月就預測「如果比特幣跌至60k以下,XRP會跌至1美元或更低」,此預測精準應驗,反映出熊市中兩者的明確連動關係。
Minimmit, Multimmit and the New Consensus Frontier with Patrick O'Grady
72 min
Web3 安全英文PODCAST8月5日

Minimmit, Multimmit and the New Consensus Frontier with Patrick O'Grady

Zero Knowledge

  • 反向 Linux 架構:Commonware 刻意暴露棧各層級控制,讓開發者自訂執行環境、共識機制、密碼學實現,而非像 Cosmos SDK 只允許應用層以上定制。2-3 個月能組裝一條定製鏈,代價是額外深度但回報是長期維護成本降低及效能優化彈性。
  • 容錯假設的典範轉移:Alpine Glow(Solana 2025)實現單輪投票定終的關鍵是將容錯預算分離為獨立的 Byzantine 和 Crash 容限。傳統系統把 33% 當一個整體預算;新模型允許 20% 惡意加 20% 崩潰,打破了 PBFT 理論界線,釋放單輪設計空間。
  • Minimet 與 Multimet 的遞進:Minimet 是 5F+1 設定下的乾淨構造,實現更短視圖延遲;Multimet(剛發布)進一步允許並行 mini-commits 且驗證者可推翻領導者審查,使用者交易在全球分布式網路達到 200-300 毫秒端到端定終。
Private Information Retrieval (PIR) with Alex Hoover
64 min
Web3 安全英文PODCAST7月29日

Private Information Retrieval (PIR) with Alex Hoover

Zero Knowledge

  • PIR 保護的是訪問模式,不是資料本身
  • PIR 與加密不同,它關注的是隱藏「客戶端查詢了什麼」,而非「資料是否加密」。在公開資料庫(如區塊鏈)上,客戶端可以在不洩露查詢對象給伺服器的情況下檢索特定條目,解決了輕量級客戶端的隱私和防審查問題。
  • 客戶端預處理方案是突破瓶頸的關鍵