KeyFrame內部研究專用

Common Vulnerabilities in Bridges | Kirk Baird (Sigma Prime)

DeFi Security Summit - DSS·12月22日週日·10 min英文

三句話摘要

區塊鏈跨鏈橋接中的常見安全漏洞與防護要點。 正確處理隨機數、禁止未限制外部調用、關注 ERC20 細節差異,以及保護多簽共識層,是防止橋接資金被盜的四大支柱。 隨機數處理的致命漏洞:許多橋接用隨機數防止重放攻擊,但開發者將 U256 強制轉換成 U32 納入默克樹時,剩餘 200 多位未使用,攻擊者可利用這些位元變動多次執行同一筆交易,導致客戶面臨橋接全額被盜的風險,該漏洞的白帽回報獲得約 100 萬美元的賞金。

重點整理

重點
  • 1

    隨機數處理的致命漏洞:許多橋接用隨機數防止重放攻擊,但開發者將 U256 強制轉換成 U32 納入默克樹時,剩餘 200 多位未使用,攻擊者可利用這些位元變動多次執行同一筆交易,導致客戶面臨橋接全額被盜的風險,該漏洞的白帽回報獲得約 100 萬美元的賞金。

  • 2

    未限制外部調用的用戶體驗陷阱:為改善使用體驗,某些橋接允許任意外部調用,但這開放攻擊面讓任何人可呼叫任意代幣地址並轉移資金。Arbitrum 橋接至今仍存在此漏洞,攻擊者定期無須許可地從橋接排空被卡的代幣。

  • 3

    ERC20 小數位數不一致性:同一代幣在不同鏈上的小數位數差異(USDC 在以太坊主網為 6 位但在其他鏈為 18 位)容易被忽視,若橋接假設小數位數相同,用戶轉入後轉出會使餘額增加 10^12 倍。

  • 4

    共識層多簽的線下攻擊風險:多簽和拜占庭容錯機制容易被線下攻擊所破解,攻擊者可直接接觸簽署者或造偽可信根,如 Ronin 橋接事件所示,整個橋接資金池會被竊取。

實用技巧與重點

乾貨
  • 重放保護
  • 隨機數機制是最基本防護
  • 禁止將 U256 強制轉為 U32 用於默克樹
  • 應在狀態修改後才記錄隨機數,防止重入
  • 未限制外部調用
  • Arbitrum 橋接存在實際漏洞
  • 允許呼叫任意地址、任意數據
  • 用於排空被卡的代幣
  • ERC20 相關
  • USDC/USDT:以太坊主網 6 位小數、其他鏈 18 位小數
  • 單個異常代幣會導致整批交易失敗(DoS 攻擊)
  • 暫停代幣、黑名單地址都會造成訊息無法執行
  • 返回 Gas 炸彈可耗盡交易 Gas
  • 索引與默克樹
  • OpenZeppelin 實現:提供超過樹大小的索引時只讀取與證明等長的位數
  • 剩餘位元可被攻擊者利用進行重放
  • ZK EVM 限制
  • 某些指令在單筆交易/區塊內有調用次數上限
  • 例:ADD 指令限制 1,000 次
  • 外部調用可消耗所有指令配額,導致批次中後續訊息無法執行
  • 費用計算
  • L2 需同時計算 L1 和 L2 費用
  • 計算不精確會導致橋接營運方虧損
  • 多簽攻擊
  • Ronin 橋接因此遭攻擊損失全額
  • 攻擊者線下直接接觸簽署者或造偽可信根

結論

結論

正確處理隨機數、禁止未限制外部調用、關注 ERC20 細節差異,以及保護多簽共識層,是防止橋接資金被盜的四大支柱。

完整解析

詳細

跨鏈橋接是連結不同區塊鏈的核心基礎設施,用戶在 A 鏈存入資金到橋接合約,橋接經由預言機或可信節點記錄交易,在 B 鏈提交可信根,用戶再提交證明領取資金。這個過程看似簡單,但大多數橋接採用鎖定釋放機制,即資金集中存放在單一合約中,成為攻擊者的巨大目標,可能涉及數億美元。

Sigma Prime 安全團隊通過多年橋接審計發現,最常見的漏洞來自重放保護不當。開發者為防止同一筆交易被多次執行,通常使用隨機數機制。但許多人犯了一個致命錯誤:將 256 位隨機數強制轉換成 32 位後納入默克樹,導致超過 200 位未被利用。攻擊者可以變動這些多餘位元,偽造不同的隨機數來重複執行同一筆訊息,從而竊取橋接中的全部資金。這類漏洞曾導致某客戶面臨風險,幸好以白帽形式報告並獲得約 100 萬美元的 Bug Bounty。

第二類漏洞涉及未限制的外部調用。為改善用戶體驗,某些橋接設計允許從橋接合約呼叫任意地址與任意數據。但這開放了攻擊面:任何人都可以利用此功能呼叫任意 ERC20 代幣合約並轉移資金到自己的地址。Arbitrum 橋接正式上線後至今仍存在此漏洞,攻擊者定期利用這個未限制調用排空被誤轉入橋接合約的代幣。

ERC20 實現的差異也帶來風險。同一代幣在不同鏈上的小數位數可能不同(例如 USDC 在以太坊主網為 6 位小數但在其他鏈為 18 位小數),若橋接假設兩端小數位數相同,用戶轉入後再轉出就會增長 10^12 倍。此外,批量轉移代幣時若遇到暫停代幣、黑名單地址或返回 Gas 炸彈,整批訊息都會失敗。ZK EVM 鏈對計算指令的限制也是隱患:若某條指令在一筆交易內只能調用 1,000 次,惡意代幣或接收者的外部調用可耗盡這些指令配額,導致批次中後續訊息無法執行。

最危險的漏洞來自共識層。橋接需要在鏈 B 上提交來自鏈 A 的可信根,多數橋接使用多簽或拜占庭容錯機制。但歷史上的 Ronin 橋接和其他多起事件證明,攻擊者可以線下直接接觸多簽成員或造偽可信根,進而竊取整個橋接的資金池。講者強調,應視這份內容為安全檢查清單,涵蓋隨機數處理、外部調用隔離、ERC20 差異、指令配額管理和多簽安全防護等要點。

關鍵時刻

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