DeFi security Summit 2023 - Session 1: DeFi Protocols 1 - Eugene Pshenichnyy
三句話摘要
Lido V2 升級的安全管理:工程流程、組織決策與風險控制,而非代碼層面的安全技巧。 協議升級的安全不在於寫出零漏洞的代碼,而在於通過規範設計、多層測試、協調審計、嚴密部署與應急準備構築分層防禦體系,其中人員與文化是最底層的基礎。 規範設計從邊界情況反推:初期規範只涵蓋主流程,後來發現 MEV 攻擊者可比普通質押者獲得更好收益的邊界情況,因此引入 Turbo Mode(正常)和 Bunker Mode(應急)兩套協議模式應對。
重點整理
重點- 1
規範設計從邊界情況反推:初期規範只涵蓋主流程,後來發現 MEV 攻擊者可比普通質押者獲得更好收益的邊界情況,因此引入 Turbo Mode(正常)和 Bunker Mode(應急)兩套協議模式應對。
- 2
測試組合策略:驗收測試確保功能符合預期,快照測試驗證升級前後行為一致(如同樣質押應得同樣代幣),並在本地測試網模擬實際投票和升級流程,而非僅在開發環境測試。
- 3
多輪審計的協調成本:並行進行多輪審計雖能縮短時間,但需要專人協調、反復傳達發現給所有審計方、處理重複發現與衝突建議,順序審計雖慢但成本更低、更易管理。
- 4
應急停止優於多簽:開發 Gate Seal 替代傳統多簽,限制停止持續時間(6天)和使用次數(一次),減少權力風險且保留應急能力讓 DAO 有時間反應。
實用技巧與重點
乾貨- 規模數據
- Lido 是最大液態質押協議
- V2 開發週期:7個月
- 貢獻者:25人
- V1 代碼:3個合約(Solidity 0.4,Aragon 框架)
- V2 代碼:V1 的 3 倍大小,多個新合約(Solidity 0.8)
- 升級交易成本:800萬 gas
- MEV 前置:升級交易在區塊中被 MEV Hunter 前置
- V2 三大功能特性
- 提現取款(Withdrawals)— 啟用後置提現
- 質押托管與驗證器集合擴展 — 去中心化驗證器集合
- 預言機擴展
- 升級方式
- 通過代理模式單筆交易完成
- Aragon 投票腳本(EVM scripts):三元組陣列 [who to call, which function, what params]
- 需要 Aragon voting contract 簽名執行
- 測試策略
- 驗收測試(Acceptance tests):功能符合預期
- 快照測試(Snapshot tests):升級前後行為一致性
- 本地測試網:使用實際升級腳本,模擬投票流程
- 安全審計
- 並行審計:多輪同步進行(非順序)
- 正式驗證:Certora 進行,使用不變量基思維
- 專人協調審計流程
- 部署驗證
- Ops 團隊:確保外部可驗證性
- 額外審計:檢查部署前合約與審計版本匹配
- Bug Bounty:針對未部署代碼
- diviscon 工具:驗證合約版本
- 應急機制
- Gate Seal:替代多簽
- 時間限制:6 天
- 使用次數:1 次
結論
結論“協議升級的安全不在於寫出零漏洞的代碼,而在於通過規範設計、多層測試、協調審計、嚴密部署與應急準備構築分層防禦體系,其中人員與文化是最底層的基礎。”
完整解析
詳細Lido 是以太坊生態最大的液態質押協議,V2 升級代表協議從架構到實現的全面演進。Eugene 的演講重點不在安全代碼撰寫技巧,而在升級過程中的工程管理與風險控制——這些往往決定了升級的真正成敗。
V2 升級的複雜性可從規模數據反映:歷時 7 個月、25 名貢獻者參與、代碼量增長至 V1 的 3 倍。從架構層面,V1 採用 Aragon 框架的 Solidity 0.4,限制了現代安全特性的使用;V2 完全改寫,使用 Solidity 0.8,引入更多合約模組。升級不能部署為獨立協議再遷移流動性,而必須透過代理模式在線升級——單筆交易、DAO 投票控制,確保操作連續性。這筆交易花費 800 萬 gas,最後被 MEV 獵人前置在區塊中。
安全管理的核心是從規範階段開始。Eugene 團隊起初的規範只涵蓋主流程,後來發現了關鍵的邊界情況:MEV 攻擊者可能在升級期間比普通質押者獲得更好的收益。這促使他們引入雙協議模式——Turbo Mode 用於正常狀態,Bunker Mode 用於應急(停止取款直到懲罰社會化)。這種由邊界情況反推規範的方法展現了深度思考的重要性。
測試階段採用多層次策略:驗收測試確保功能符合規範,快照測試驗證升級前後的關鍵指標(如質押 1 ETH 獲得等量 stETH)保持一致。最關鍵的是在本地測試網模擬真實升級流程——運行實際的投票腳本、模擬 DAO 持有者投票、執行升級後再跑驗收測試。這避免了「代碼在開發環境正常但生產環境有問題」的常見陷阱。Certora 的正式驗證補充了這一層,驗證關鍵不變量,副作用是開發團隊開始以不變量思維設計代碼。
安全審計採用並行策略以趕上時間表(在 Shapella 硬分叉後及時部署),但這帶來了協調成本:需要專人轉發不同審計機構的發現、應對重複發現的不同建議、逐輪修復。Eugene 坦言,若有充裕時間應採用順序審計,給團隊空間消化上輪發現再進入下輪。
部署前的驗證包括 Ops 團隊確保外部可驗證性、額外審計檢查部署版本與審計版本匹配、針對未部署代碼的 Bug Bounty,以及自開發的 diviscon 工具。應急層面,團隊開發了 Gate Seal——比傳統多簽簽名更優雅的應急停止機制,限制時間(6 天內只能停止)和次數(一次性),既保留應急能力又限制權力濫用風險。
Eugene 最後提出的「分層蛋糕」模型總結了協議安全的全景:最底層是人員(招聘、教育、文化)——這是被嚴重低估的一層,直接影響所有上層決策;其上是代碼安全、規範安全、測試、部署安全、應急響應各層相互支撐。人員不夠好,其他層都會失效;而最堅實的安全來自把人員當成基礎、把流程當成堡壘、把代碼當成最後防線。
關鍵時刻
Pipeline v2帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。
事實查核
Pipeline v2說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。

