KeyFrame內部研究專用

Price Manipulation Exploits, Christoph Michel - DeFi Security Summit 2022

DeFi Security Summit - DSS·10月20日週四·19 min英文

三句話摘要

借貸協議如何從價格預言機的設計漏洞中反覆被攻擊,以及每一代協議是如何試圖修復前一代的漏洞。 借貸協議的漏洞史警示我們:安全不在於公式本身的優雅,而在於對底層資產機制的深刻理解和謹慎的風險設計選擇。 閃電貸攻擊的原理:攻擊者存入抵押品後,在AMM上進行大額交易臨時改變價格,以虛假低價借出代幣,再反向交易恢復價格,損失僅限手續費但獲利巨大。這被稱為「價格操縱漏洞」的起源,促使協議從現貨價格改用時間加權平均價格。

重點整理

重點
  • 1

    閃電貸攻擊的原理:攻擊者存入抵押品後,在AMM上進行大額交易臨時改變價格,以虛假低價借出代幣,再反向交易恢復價格,損失僅限手續費但獲利巨大。這被稱為「價格操縱漏洞」的起源,促使協議從現貨價格改用時間加權平均價格。

  • 2

    LP代幣定價的隱藏風險:雖然LP代幣價格公式看似簡單(資金池價值÷總供應量),但在Uniswap的恆定乘積曲線上,沿著曲線移動(即交易)不改變K值卻會改變池中代幣總量,進而操縱LP代幣價值。What Finance和Cream Finance都因此被利用。

  • 3

    超額抵押的數學陷阱:雖然借貸協議要求超額抵押(抵押品價值>借出金額),但攻擊者可用兩個賬戶形成閉環——賬戶A借LP代幣給B,B再存入A借出的代幣作新抵押品,循環反覆直到存入LP數量超過流動池總供應量,再操縱價格翻倍,使虛假抵押品變成真實借貸力。

  • 4

    現代應對策略:現代協議(如Aave)理解到預言機安全性取決於資產本身特性,因此嚴格限制高流動性資產作為抵押品、避免將LP代幣作為抵押品、並注意Uniswap V3流動性集中帶來的新漏洞表面。

實用技巧與重點

乾貨
  • 時間軸與被攻擊協議
  • 2020年初:V1漏洞(現貨價格),Uniswap V2出現
  • 2020年中:What Finance遭LP代幣價格操縱攻擊
  • 2021年10月:Cream Finance被牆椅代幣價格操縱攻擊
  • 關鍵概念
  • 恆定乘積公式:x × y = K
  • Uniswap V2現貨價格:邊際交換比率(隨交易量動態變化)
  • 時間加權平均價格(TWAP):防止單筆大交易操縱
  • LP代幣V2定價:池價值 ÷ LP總供應量
  • LP代幣V3公式:2 × √(P0 × P1 × K) ÷ 總供應量(其中P0、P1為代幣對TWAP,K為常數)
  • 攻擊步驟細節
  • 攻擊者用兩個賬戶(A和B)配合
  • 賬戶A進行閃電貸,存入作抵押品
  • 賬戶A借入所有可用LP代幣,轉給賬戶B
  • 賬戶B將收到的LP代幣再存入作抵押品
  • 賬戶A再次借入同一批LP代幣,迴圈操作
  • 循環持續到存入LP數量 > 總供應量 ÷ (2 × 抵押因子 - 1)
  • 向Uniswap拋售代幣,操縱LP價格翻倍
  • 以膨脹的LP抵押品價值借出ETH等高價值資產
  • 可選:清算自己賬戶獲折扣
  • 償還閃電貸,淨獲利
  • 抵押因子設定
  • 所有提到的協議抵押因子 < 100%(即超額抵押要求)
  • 這使循環借貸數學上可行(總供應量本身成為上限)

結論

結論

借貸協議的漏洞史警示我們:安全不在於公式本身的優雅,而在於對底層資產機制的深刻理解和謹慎的風險設計選擇。

完整解析

詳細

借貸協議的核心問題是:如何安全地從去中心化交易所(如Uniswap)獲取資產價格,以決定用戶能借多少錢?這個看似簡單的問題,在過去四年裡反覆擊敗了業界最聰慧的開發者。

最初的第一代協議採用現貨價格——即AMM當下的邊際交換比率。這在2020年初被一個致命的新機制破壞:閃電貸。攻擊者在同一筆交易內進行攻擊,存入一筆抵押品,立刻在AMM上進行巨額交易臨時改變價格(因為AMM的價格由池深度決定,交易量越大價格滑點越大),然後以這個虛假低價借出目標代幣,再反向交易恢復價格。整個過程只損失交易手續費,卻能借到本應更貴的代幣。這種「靴子掉下來」的攻擊徹底改變了整個領域,促使第二代協議改用時間加權平均價格(TWAP),這個價格基於過去一段時間的交易均值,攻擊者無法在單筆交易內改變它。

但修復現貨價格問題後,新需求出現了:用戶想用LP代幣(Uniswap流動性供應者代幣)作為抵押品。LP代幣代表對底層資金池的索取權,其價值應該等於「池中所有代幣的總價值÷LP代幣總供應量」。這個公式看起來簡單,但 What Finance在2020年因此被攻擊。問題根源於人們對Uniswap運作機制的誤解:雖然恆定乘積公式(x × y = K)意味著K值不變,但沿著這條曲線移動意味著池中代幣的實際數量在變化。攻擊者發現,他們可以操縱池中代幣的比例,進而改變LP代幣對應的底層資產組成,最終操縱LP代幣的價值。

第三代協議試圖透過數學推導解決這個問題。他們發現可以推導出一個只依賴於「各代幣的TWAP、初始價格和K值」的公式:LP代幣價格 = 2 × √(P0 × P1 × K) ÷ 總供應量。因為K值在交易中不變,TWAP和初始價格理論上也不受單筆交易影響,這個新公式應該無法被操縱。但Cream Finance在2021年10月證明了這個理論有致命漏洞。

攻擊者發現,雖然LP代幣價格公式無法被傳統的價格操縱擊敗,但他們可以操縱一個更根本的東西:被存入的LP代幣數量本身。借貸協議使用超額抵押(要求抵押品價值 > 借出金額),所以理論上用戶無法存入超過LP代幣總供應量的數量。但攻擊者用兩個賬戶巧妙地繞過這個限制:賬戶A進行大額閃電貸並存入作抵押品,再借出LP代幣轉給賬戶B;賬戶B將收到的LP代幣再存入作新的抵押品;賬戶A再次從賬戶B的新抵押品中借出同一批LP代幣。這個循環可以無限重複,直到存入的LP代幣數量超過原始總供應量。一旦達到這個狀態,攻擊者向Uniswap拋售大量代幣操縱價格翻倍,此時那些被「複製」出來的超額LP代幣在公式中就代表更大的池價值。攻擊者以這個膨脹的抵押品價值借出真實資產(如ETH),償還閃電貸後獲利。

從這些反覆的攻擊中,業界逐漸理解到三個根本教訓。首先,攻擊者總能在同一筆交易內操縱價格,所以協議應該設計成「可以在同一交易內被操縱的預言機會帶來攻擊者自身的風險」——比如要求攻擊者在整個區塊內持續操縱價格,這樣就存在套利者的對沖風險。其次,預言機的安全性取決於具體的資產特性,沒有通用的萬能公式。最重要的是,現代協議理解到應該限制哪些資產可以作為抵押品,特別是LP代幣這類容易被結構化操縱的資產應該被排除。現代協議如Aave嚴格控制抵押資產的範圍,優先選擇高流動性的基礎資產,而非衍生品或LP代幣。

關鍵時刻

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