Auditing with Machines: A Practical Exploration of AI-Augmented Security Work
三句話摘要
OpenZeppelin 區塊鏈安全研究員分享如何用 AI 工具加速智能合約審計流程。 AI 最大的價值在於壓縮「讀懂代碼」的時間成本,但驗證正確性的責任與複雜邏輯的判斷仍屬人類審計員,context 品質決定 AI 上限。 AI 擅長快速理解複雜架構:透過 Cursor / Windsurf 等 IDE 整合工具,審計員可用自然語言在數十秒內掌握大型協議(如 Uniswap v4)的設計模式、核心合約與執行流程,大幅縮短熟悉代碼庫的時間。
重點整理
重點- 1
AI 擅長快速理解複雜架構:透過 Cursor / Windsurf 等 IDE 整合工具,審計員可用自然語言在數十秒內掌握大型協議(如 Uniswap v4)的設計模式、核心合約與執行流程,大幅縮短熟悉代碼庫的時間。
- 2
組合語言等低層代碼的理解速度大幅提升:AI 能將看似複雜的 assembly 二分搜尋邏輯解釋為步驟清單,並說明為何用 `or/and` 節省 gas,審計員仍需對照 opcode 確認正確性,但速度遠快於手動閱讀。
- 3
AI 適合找簡單漏洞樣板,不適合複雜邏輯漏洞:對於「文件描述步驟 vs. 實作不符」、「跨鏈訊息缺少 sender 綁定」等結構性問題效果良好;但對需要深度跨合約上下文理解的漏洞,需透過 primer document 或 context 專化來補強。
- 4
Context window 的品質決定 AI 表現:應將代碼庫按功能拆分,移除測試檔、輔助庫、view 函式等低密度資訊,讓 token 預算集中在核心邏輯,同時注意 prompt injection 風險(惡意合約可能透過代碼內容操控 AI 行為)。
實用技巧與重點
乾貨- Context window:最大 400,000 tokens
- 工具:Windsurf、Cursor(自動擷取代碼庫 + heuristic 搜尋)
- 測試案例:30 秒生成含 `deployFreshManager`、router helper 的 Uniswap v4 swap 測試
- Primer document 技巧:預先列出 ERC-4626 Vault 已知漏洞清單餵入 AI,提升回答準確度
- 可識別漏洞類型:密碼學函式步驟缺漏、configuration 參數錯誤、跨鏈 sender 未綁定、參數順序錯誤、gas 優化機會
- Uniswap v4 示範:singleton 設計、PoolManager 核心合約、5 大操作、Hook 系統(lifecycle callback)
- assembly 範例:`mostSignificantBit(uint256)`,二分搜尋、5 次 check(因為 2^5=32)、`or/and` 節省 gas
- 安全警示:AI 易受用戶偏見影響(堅持「2+2=3」可能讓 AI 同意);prompt injection 風險(Red Guild 同場有相關 presentation)
結論
結論“AI 最大的價值在於壓縮「讀懂代碼」的時間成本,但驗證正確性的責任與複雜邏輯的判斷仍屬人類審計員,context 品質決定 AI 上限。”
完整解析
詳細本場演講由 OpenZeppelin 區塊鏈安全研究員 Yonus Vorel Gangu 主講,核心問題是:審計員如何在不降低品質的前提下,用 AI 工具處理大量重複性理解工作,把省下來的時間集中在 AI 無法處理的複雜邏輯上。
AI 的幾項能力使其適合嵌入審計流程:內部多步推理可將複雜問題拆解為子問題、400,000 tokens 的大上下文窗口能容納完整協議代碼、Cursor 與 Windsurf 等 wrapper IDE 還加入啟發式搜尋與摘要機制。講者以 Uniswap v4 為例,一個問題在 30 秒內拿到了「singleton 設計、PoolManager 合約、5 大核心操作、Hook lifecycle 系統」的完整架構說明,接著可繼續追問每個組件直到掌握完整執行路徑。
在代碼理解層面,講者展示了 Uniswap v4 core 內一段用 assembly 實作的 `mostSignificantBit` 函式。這段代碼乍看複雜,AI 卻能立刻解釋這是 uint256 上的二分搜尋,共 5 次條件判斷(對應 2^5=32),並說明 `or/and` 操作是為了讓邏輯更節省 gas。審計員仍需自行對照 opcode 確認細節,但理解速度遠超傳統方式。
在漏洞識別方面,AI 最擅長處理「有文件描述、代碼卻實作錯誤」的情境:密碼學函式的步驟缺漏或 configuration 錯誤、跨鏈訊息中目標鏈沒有驗證來源 sender 身份、函式參數順序顛倒等。對於需要跨越多份合約深度理解的複雜漏洞,AI 表現較差,解法是用「primer document」——預先整理已知漏洞清單(如 ERC-4626 的歷史問題)注入 context,讓 AI 回答時已具備領域知識背景。測試生成同樣實用,30 秒內 AI 即寫出完整 Uniswap v4 swap 測試,並自動識別並使用代碼庫內的 `deployFreshManager` 等自訂 helper。
最後講者提醒三件事:AI 給的所有答案都需要人工驗證,最終責任在審計員;AI 極易被偏見引導(堅持錯誤觀點可能讓 AI 妥協同意);放入 context 的資訊品質比問題本身更關鍵,應移除測試、view 函式等低密度檔案以節省 token,同時警惕惡意合約透過 prompt injection 操控 AI 行為。
關鍵時刻
Pipeline v2帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。
事實查核
Pipeline v2說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。


