KeyFrame內部研究專用

Why Audits Aren’t Enough - Part 3: Mitigating Risk Beyond Audits

Olympix, Inc·1月9日週五·13 min英文

三句話摘要

Web3 智能合約安全不能只靠外部審計,必須建立以靜態分析、單元測試、突變測試與模糊測試為核心的主動防禦體系。 主動安全工具(靜態分析、單元測試、突變測試、模糊測試)不是審計的替代品,而是讓審計發揮最大效益的前提,缺少這一層,審計費用只是在幫你找出本可自己發現的問題。 審計只是安全拼圖的一塊:傳統審計受限於人為錯誤、範圍、時間與程式碼理解深度,許多漏洞在事後驗屍中被靜態分析工具輕易找出。若將審計視為唯一防線,風險極高。

重點整理

重點
  • 1

    審計只是安全拼圖的一塊:傳統審計受限於人為錯誤、範圍、時間與程式碼理解深度,許多漏洞在事後驗屍中被靜態分析工具輕易找出。若將審計視為唯一防線,風險極高。

  • 2

    審計準備度直接影響審計品質:帶著大量未處理漏洞進入審計,審計員會優先處理低難度問題,反而錯過高複雜度漏洞;更糟的是,審計報告問題過多會讓 VC 要求重做,形成雙倍審計費用與時間延誤。

  • 3

    Web3 缺乏監管,安全文化必須由內部驅動:Web2 靠法規強制執行安全最佳實踐,Web3 沒有這個機制,責任落在創辦人與董事會身上。講者觀察到,安全記錄最好的團隊,都是從第一天起就將安全內化為開發文化的核心。

  • 4

    工具應分層嵌入開發生命週期:從開發者本地工具(CLI、IDE 擴充套件)到 CI/CD pipeline,每一層都應有對應的安全檢查閘門,讓安全思維在程式碼推送前就已啟動。

實用技巧與重點

乾貨
  • 工具與方法
  • 靜態分析(Static Analysis):執行時間不到 1 秒,應同時部署於開發者本地與 CI 層
  • 單元測試(Unit Testing):最低要求 90% 分支覆蓋率(Branch Coverage)
  • 突變測試(Mutation Testing):建議覆蓋率 90–95%,在單元測試後於同一 CI pipeline 執行
  • 模糊測試(Fuzzing):白盒、黑盒、基於屬性(Property-based)皆可,特別適用於複雜代幣經濟模型
  • 突變測試運作流程
  • 在程式碼中引入微小變更(如移除 `onlyOwner` 修飾器、將 `+` 換成 `-`)
  • 執行原有測試套件
  • 預期:測試套件應偵測到該變更並失敗
  • 若測試未失敗,代表測試套件對該邏輯的覆蓋不足
  • CI/CD 整合建議
  • 高嚴重性靜態分析問題:工程師必須逐一確認或修復,否則封鎖合併
  • 低於 90% 分支覆蓋率:禁止推送至 release branch
  • 突變覆蓋率低於 90–95%:視為未達標
  • 成本案例
  • 未準備好進入審計 → 審計報告問題過多 → VC 要求重做 → 雙倍審計費用
  • Web2 對比參考
  • 突變測試大量應用於編譯器(Compilers)與銀行業關鍵軟體
  • Web2 安全最佳實踐由監管機構強制執行,Web3 目前無此機制

結論

結論

主動安全工具(靜態分析、單元測試、突變測試、模糊測試)不是審計的替代品,而是讓審計發揮最大效益的前提,缺少這一層,審計費用只是在幫你找出本可自己發現的問題。

完整解析

詳細

Web3 協議的安全防線長期被簡化成「做一次外部審計」,但這集播客正是要拆解這個迷思。主持人與來賓 Hani 和 Aneesh 從三個維度論述:為什麼主動安全是必要的、歷史上有哪些佐證、以及具體該怎麼做。

首先從現實數據說起。講者團隊在每一起 Web3 駭客事件後都會進行事後分析,持續用自家靜態分析工具驗證:這些被審計員遺漏的漏洞,本可在審計之前就被發現。這不是在指責審計員失職,而是在說明審計本質上受到人力、時間與理解深度的結構性限制。更關鍵的是,帶著大量未處理漏洞進入審計,審計員被迫花時間處理低難度問題,無暇深入挖掘高複雜度漏洞。結果是審計報告滿是問題,VC 拒絕接受,要求重做,最終團隊支付了兩次審計費用,卻只發布第二份——第一份等於白費。

Hani 從 Web2 的視角補充了制度面的洞察。Web2 的安全最佳實踐之所以廣泛執行,是因為有監管機構強制要求;Web3 目前完全缺乏這個外部壓力,責任因此落到 CEO 與董事會身上。他觀察到,安全記錄最優秀的合作團隊,無論是來自 Web2 背景還是受過 Web2 思維薰陶,都有一個共同特質:他們在部署前已經想清楚每一個環節——審計前的內部測試、審計本身、上線後的漏洞賞金計畫(Bug Bounty)、鏈上監控(On-chain Monitoring)。這套思維不是一個工具,而是一種文化,而且必須從第一天起就嵌入團隊敘事中。

Aneesh 則聚焦於具體工具。他提出四層防禦架構,按複雜度遞增排列:第一層是靜態分析,執行時間不到一秒,真陽性與假陽性易於判斷,沒有理由不用。第二層是單元測試,最低標準是 90% 分支覆蓋率,這不是說分支覆蓋率等於品質,而是說連這個基線都未達到,代表開發者根本沒有認真思考過測試。第三層是突變測試,做法是系統性地對每一行程式碼引入微小變異(例如移除存取控制修飾器、或將加法改成減法),再執行現有測試套件,若測試未能偵測到這個變異,就代表測試套件本身有盲區。這在銀行業與編譯器開發中是標準做法,Web3 應當跟進,建議覆蓋率達 90–95%。第四層是模糊測試,特別適用於涉及複雜代幣經濟的協議,能找出邊緣案例中的潛在漏洞。

這四層工具的整合方式同樣重要。開發者本地應有 CLI 或 IDE 擴充套件,在推送前即可快速執行;CI/CD pipeline 應設置硬性閘門,高嚴重性靜態分析問題必須逐一確認、分支覆蓋率與突變覆蓋率未達標則阻止合併。這樣的設計讓安全不再只是「審計前的準備工作」,而是每一次程式碼提交的日常一部分。

關鍵時刻

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