Not Quite Water Under the Bridge, Jan Gorzny - DeFi Security Summit 2022
三句話摘要
區塊鏈跨鏈橋接協議的安全漏洞與攻擊向量分析——從託管合約到通信層的多維度威脅。 跨鏈橋接的三層架構(託管、資產發行、通信)每一層都存在系統性漏洞,低成本且高收益的攻擊向量已被實踐驗證,強化驗證邏輯、唯一性檢查和權限隔離是防禦的關鍵。 跨鏈橋接的架構脆弱性:橋接器本質上無法真正轉移資產,只能創建包裝表示,這導致需要三層協調系統(託管合約、資產發行、鏈下通信)。任何一層出現驗證漏洞都會導致資金被盜。
重點整理
重點- 1
跨鏈橋接的架構脆弱性:橋接器本質上無法真正轉移資產,只能創建包裝表示,這導致需要三層協調系統(託管合約、資產發行、鏈下通信)。任何一層出現驗證漏洞都會導致資金被盜。
- 2
函數選擇器碰撞與權限提升:攻擊者可以精心構造跨鏈函數調用,利用以太坊四字節函數簽名編碼的模糊性,使橋接器誤認為權限變更指令來自合法簽名者,從而獲得金庫管理權限。
- 3
資產發行方的驗證邏輯缺陷:去中心化橋接器為支持任意代幣,常採用通用驗證模式,但若驗證合約被污染(例如總是返回true),攻擊者可無限鑄造目標資產,由於鑄造本身合法,還能將贓款橋接回原鏈。
- 4
通信層的事件污染與重放:鏈下系統監聽事件以確認存款,但若未正確校驗事件唯一性,攻擊者可重複觸發相同事件或複製事件簽名,導致單次存款被多次計算,造成超額鑄造。
實用技巧與重點
乾貨- 架構組件:L1託管合約 + L2資產發行合約 + 鏈下通信器
- 攻擊案例:函數選擇器碰撞攻擊、證明重放攻擊(證明字節未檢查)、事件複製攻擊(相同事件重複觸發21次)、權限簽名重放
- ERC20漏洞:permit 備用方案(fallback)永不回退,被橋接器調用時直接竊取資金
- 經濟成本:L1重組成本約100萬美元;若橋接700萬資金後發生重組,攻擊者可獲利(700萬減去重組成本)
- 缺失檢查機制:銷毀證明的某些字節未驗證,允許重複提現;事件監聽未校驗唯一性
結論
結論“跨鏈橋接的三層架構(託管、資產發行、通信)每一層都存在系統性漏洞,低成本且高收益的攻擊向量已被實踐驗證,強化驗證邏輯、唯一性檢查和權限隔離是防禦的關鍵。”
完整解析
詳細區塊鏈生態中的跨鏈橋接技術旨在讓用戶將資產從一條鏈轉移到另一條鏈,例如將比特幣轉到以太坊套利或將資產轉到Rollup降低Gas費用。然而嚴格來說,橋接無法真正轉移資產——以太坊上的ETH和Arbitrum上的ETH在本質上不同,橋接系統只能鎖定原資產並在目標鏈創建包裝表示。這種包裝機制涉及三個協調層:首先是L1的託管合約,負責接收並鎖定用戶資金;其次是L2的資產發行合約,負責根據託管確認鑄造等量的包裝資產;最後是鏈下通信器,監控L1事件並向L2發送執行指令。正因為跨鏈通信無法原生實現(至少以太坊不支援),這個鏈下中介層成為了最脆弱的環節。
託管層的主要漏洞來自權限管理。許多橋接器採用模組化設計,將資金存放在單獨的金庫合約中,由金庫運營者控制。攻擊者可以利用跨鏈函數呼叫功能,精心構造一筆交易:在目標鏈上執行權限變更函數,這個函數調用被通信器簽署並轉發回L1。由於以太坊對函數的編碼方式是四字節選擇器,攻擊者可以透過位元操作找到碰撞簽名,使得不同的函數呼叫落在相同的選擇器上。當簽署者認為自己簽署的是某個無害操作,實際上卻授權了權限變更,金庫管理權就此轉移。類似的漏洞還包括證明重放——若銷毀證明的某些字節未被驗證,攻擊者可重複使用同一證明進行多次提現。
資產發行方層面,去中心化橋接器為了支援任意ERC20代幣採用通用驗證架構,但這帶來了致命弱點。若驗證邏輯被污染或配置錯誤,攻擊者可以注入一個驗證合約,其verify函數永遠返回true。只要橋接系統被欺騙調用這個驗證合約,攻擊者就能以任何人的名義無限鑄造代幣。由於鑄造本身在鏈上是合法的,攻擊者甚至可以將贓款橋接回原鏈,完成從無到有的資金掠奪。
通信層是最直接可利用的環節。與智能合約不同,鏈下系統不在公開審計中,但它充當了預言機角色——從L1讀取事件以通知L2。若事件監聽機制未做唯一性校驗,攻擊者可以部署惡意合約,在單筆交易中重複觸發存款事件21次。通信器會記錄為21筆獨立存款,L2將相應鑄造21倍資產,攻擊者隨後利用合法的橋接流程將贓款提現。此外,ERC20的permit備用方案常見於橋接中——若授權總是不回退,橋接器呼叫permit時即使授權失敗也會繼續,實際上淪為了資金掠奪機制。
關鍵時刻
Pipeline v2帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。
事實查核
Pipeline v2說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。

