KeyFrame內部研究專用

Formal Verification with the Certora Prover, Michael George - DeFi Security Summit 2022

DeFi Security Summit - DSS·10月19日週三·6 min英文

三句話摘要

Certora Prover 是一套形式驗證工具,透過邏輯推理而非測試執行,找出智能合約中的所有可能漏洞。 Certora Prover 用數學邏輯推理取代隨機測試,為智能合約提供完整且高效的漏洞驗證能力。 規格定義比單元測試強大許多倍。 CVL 規格只需一條就能取代無限多個傳統單元測試,因為規格檢驗涵蓋所有可能的輸入與儲存狀態組合,而測試永遠只能驗證有限個案例。

重點整理

重點
  • 1

    規格定義比單元測試強大許多倍。 CVL 規格只需一條就能取代無限多個傳統單元測試,因為規格檢驗涵蓋所有可能的輸入與儲存狀態組合,而測試永遠只能驗證有限個案例。

  • 2

    邏輯推理取代隨機執行。 模糊測試透過產生大量範例並觀察執行結果來尋找漏洞;Certora 則將程式碼與規格轉換為數學邏輯公式,由 SMT solver 判斷是否存在違反條件的情況,可產生具體反例或證明不可能違反。

  • 3

    CVL 語言提供超越 Solidity 的推理能力。 支援任意值推理、儲存狀態變化追蹤、回滾測試、內部狀態存取、不變量寫法、回滾撤銷等功能,使規格能表達更複雜的合約行為要求。

  • 4

    驗證時間換取完整性保證。 模糊測試跑數天仍無法確保發現所有漏洞;Certora 驗證通常在兩小時內完成,若逾時則提供簡化技術協助開發者改進規格。

實用技巧與重點

乾貨
  • 工具名稱:Certora Prover
  • 規格語言:CVL(Certora Verification Language)
  • 驗證引擎:多個 SMT solver(第三方)
  • 可能的輸出結果:(1) 具體反例,(2) 完整證明,(3) 逾時
  • 典型驗證時間:最長約 2 小時
  • CVL 支援的語法:require(前置條件)、assert(正確行為)、internal 狀態存取、storage 回滾、任意方法呼叫語法
  • 整數型別:math int(無溢出整數)

結論

結論

Certora Prover 用數學邏輯推理取代隨機測試,為智能合約提供完整且高效的漏洞驗證能力。

完整解析

詳細

Certora Prover 是一套智能合約安全工具,解決傳統單元測試無法窮盡所有邊界情況的問題。開發者不需寫成千上萬的測試案例,只需用 CVL 域特定語言撰寫一份規格,用自然的程式碼語法描述合約應有的行為——例如指定前置條件、記錄狀態變化、寫出斷言。單一條規格便能涵蓋無限多個測試情境。

其驗證原理與模糊測試截然不同。模糊測試採取試錯法:產生隨機輸入、執行程式碼、觀察是否出錯,重複數天後累積信心。Certora 則採形式驗證策略:將合約程式碼與規格共同轉換為邏輯公式,由 SMT(Satisfiability Modulo Theories)求解器判斷是否存在違反規格的情況。求解器可給出三種答案:(1) 一組具體變數值組合,導致規格失敗,轉換為可執行的交易反例;(2) 數學證明,說明無論如何賦值都不可能違反規格;(3) 逾時。典型驗證耗時最多兩小時,相較模糊測試的多日執行有顯著效率優勢。

CVL 語言設計兼具易用與表達力。語法貼近 Solidity,開發者直觀上手,卻支援 Solidity 無法做到的推理能力:任意值推理(聲明變數不初始化,驗證器遍歷所有可能值)、儲存狀態追蹤與修改、任意方法呼叫語法(如檢驗「任何增加額度的方法」是否滿足某性質)、內部狀態存取、回滾撤銷交易後重新執行的對比測試、不變量的簡潔語法、以及明確的不可回滾路徑規格。

講者舉例說明:ERC20 transfer 方法的規格聲明發送者、接收者、金額三個任意值,記錄轉帳前後的餘額,assert 發送者餘額減少、接收者餘額增加。驗證器發現規格違反並給出反例——發送者與接收者相同。加上前置條件排除此情況後,規格通過驗證。這說明驗證品質取決於規格質量,Certora 正開發工具檢驗規格本身的完整性。

關鍵時刻

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