KeyFrame內部研究專用

DeFi Security 101 2023 - 11 - Ernesto Boado

DeFi Security Summit - DSS·7月14日週五·38 min英文

三句話摘要

區塊鏈協議開發中的形式驗證應用:從被動審計到主動保證。 形式驗證的核心價值在於從「被動發現已知漏洞」轉變為「主動防範未知風險」,通過定義與驗證系統的不變性在開發流程中早期發現隱蔽錯誤,並提升整個團隊對代碼安全性的信心。 Aave 系統的複雜性超出想像:協議不僅是流動性提供,還整合治理系統、智能合約部署、激勵管理、安全模組和穩定幣。開發團隊上線後才意識到只理解系統的 50%,剩餘部分由真實用戶使用方式決定,這使傳統測試無法窮盡所有可能。

重點整理

重點
  • 1

    Aave 系統的複雜性超出想像:協議不僅是流動性提供,還整合治理系統、智能合約部署、激勵管理、安全模組和穩定幣。開發團隊上線後才意識到只理解系統的 50%,剩餘部分由真實用戶使用方式決定,這使傳統測試無法窮盡所有可能。

  • 2

    形式驗證填補了測試與審計的根本缺口:即使經頂級安全公司審計,也會遺漏開發者從未想到的邊界情況。形式驗證通過定義系統必須滿足的數學性質(屬性),自動驗證代碼是否違反,從而發現這些「隱蔽錯誤」。

  • 3

    改變開發實踐的三大效果:開發者被迫提前定義自然語言屬性,促進更好的文檔與內部溝通;屬性檢查在開發過程中執行,能在 PR 階段發現破壞系統不變性的改動;對於可升級系統(如 Aave Token),明確的屬性定義給團隊足夠信心進行大幅改動。

  • 4

    適用性有明確邊界:最佳場景是有會計邏輯(代幣轉帳)和複雜資產流動的系統;不適用於純任意邏輯、跨鏈互操作複雜、或小型治理提案。應精準選擇應用範圍,而非盲目全面投入。

實用技巧與重點

乾貨
  • Aave 協議架構:流動性協議、治理系統、智能合約部署系統、激勵管理系統、安全模組、穩定幣
  • 安全檢查完整流程
  • 單元測試 → 集成測試 → 同行評審 → 外部安全審計 → 形式驗證
  • 形式驗證三大適用場景
  • 記賬系統(代幣、流動性協議)— 邊界情況難以測試,屬性檢查可保證會計正確性
  • 複雜資產流動系統(五協議間的資金轉移)— 可定義清晰的平衡約束
  • 非對稱系統(用戶可選啟用/停用抵押品)— 狀態組合呈指數增長,手工測試覆蓋不全
  • 不適用場景:純任意邏輯、跨鏈互操作性複雜、小型治理提案
  • 實際案例
  • Aave Token 升級:移除快照機制降低 Gas 費,用形式驗證確保委託與會計正確
  • Governance V3:跨鏈狀態機,需驗證七個狀態間的所有可能轉移
  • 驗證效能:單個屬性檢查可覆蓋與 100 個不同測試場景相同的效用
  • 開發流程改進:屬性檢查在 PR 審查階段執行,能立即發現代碼改動是否破壞不變性

結論

結論

形式驗證的核心價值在於從「被動發現已知漏洞」轉變為「主動防範未知風險」,通過定義與驗證系統的不變性在開發流程中早期發現隱蔽錯誤,並提升整個團隊對代碼安全性的信心。

完整解析

詳細

Aave 協議的複雜性遠超大眾對「流動性協議」的認知。它不僅提供借貸功能,而是一個完整的金融生態,包含五大子系統:核心流動性協議讓用戶質押資產並借貸;治理系統控制協議升級和決策;智能合約部署系統執行治理決議;激勵管理系統分配獎勵;安全模組在協議遭攻擊時通過扣除代幣來補償。這種多層結構加上用戶可選擇啟用/停用抵押品這類非對稱性設計,導致系統的狀態空間呈指數級增長。開發團隊的坦誠承認是關鍵:系統上線後,他們對自己構建的系統的理解度只有 50%,剩下的 50% 由真實用戶的使用方式決定。

正因為這種根本的不可預測性,傳統的安全檢查流程——單元測試、集成測試、同行評審、外部審計——都陷入了同一個窘境:它們依賴開發者和審計者主動想象邊界情況。但在指數級的狀態空間中,這種「想象式」檢查必然遺漏。即使是頂級安全公司也會遺漏某些場景,因為那些邊界情況往往源自開發者從未想過的狀態組合——這被稱為「隱蔽錯誤」。

形式驗證提供了根本不同的保證機制。它要求開發者不是預測邊界情況,而是定義系統在任何情況下都必須滿足的數學性質(例如「代幣總供應量不變」「用戶余額非負」)。然後工具自動驗證代碼是否可能違反這些性質。這種方法的妙處在於:它不依賴於開發者的想象力,而是依賴於系統的根本約束。一個屬性檢查可以替代數百個手工編寫的測試場景,因為它覆蓋的是所有可能的代碼執行路徑,而非枚舉式的測試用例。

採用形式驗證還改變了開發實踐本身。在編寫代碼之前,開發者被迫用自然語言定義系統應該滿足的屬性。這似乎是額外工作,但實際上它促進了更清晰的思維:團隊成員圍繞屬性進行討論,達成對系統行為的共識。更重要的是,屬性檢查不是事後的驗收測試,而是整合在開發流程中的——每當有人提交 PR,屬性檢查會立即運行,若發現改動破壞了某個屬性,整個團隊會立即知道。這種「早期發現」的威力在複雜系統中尤其明顯。開發者在高層次思考時往往忽視低層次的狀態轉移細節(比如遺漏某個鍵的初始化),但屬性檢查會毫不留情地指出每一個不變性違反。對於需要頻繁升級的系統(如 Aave Token),這種保證尤其寶貴,因為大規模重構時開發者有信心知道自己是否意外破壞了什麼。

然而,形式驗證並非銀彈。演講者強調了明確的適用邊界。首先是記賬系統(代幣轉帳、流動性池):這類系統的邊界情況有限但難以測試——例如浮點精度問題、溢出、餘額不一致。形式驗證可以數學上保證這些永遠不會發生。其次是複雜的資產流動系統(如 Aave 內部五個協議間的資金轉移):可以定義清晰的全局平衡約束(「流入=流出」),形式驗證會確保任何代碼改動都不會破壞這個約束。相反,三類場景不值得投入:純任意邏輯系統(無法定義有意義的屬性,因為什麼都可能發生);跨鏈互操作性複雜的系統(設置本身就複雜,邊界難以定義);小型治理提案的執行邏輯(成本高但收益低)。這要求開發者精準評估,而非盲目全面應用。

關鍵時刻

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