KeyFrame內部研究專用

Building a Solid Mindset for Auditing Move Contracts | DeFi Security Summit 2025

DeFi Security Summit - DSS·12月10日週三·5 min英文

三句話摘要

從 EVM 安全觀轉向 Move 語言:Move 智能合約的架構差異與特有漏洞模式。 Move 智能合約審計的核心在於掌握其資料模型差異,並針對 Capability Object 可被強制建立、Hot Potato 可被隱式丟棄這兩個 Move 特有攻擊面進行系統性驗證。 Move 的資料模型根本上不同於 EVM:EVM 以合約為中心儲存狀態;Aptos 將資料存於帳戶,Sui 將資料存於獨立物件。這意味著 EVM 的安全思維不能直接套用。

重點整理

重點
  • 1

    Move 的資料模型根本上不同於 EVM:EVM 以合約為中心儲存狀態;Aptos 將資料存於帳戶,Sui 將資料存於獨立物件。這意味著 EVM 的安全思維不能直接套用。

  • 2

    Move 的類型系統是安全的核心工具:Move 編譯器在編譯期就拒絕類型錯誤,加上物件與函式皆可攜帶類型能力(abilities),讓許多 EVM 常見漏洞在語言層面就被阻擋。

  • 3

    語言無關的審計方法仍然必要:無論哪種語言,都要以狀態機框架思考協議(開放 → 活躍 → 高風險 → 關閉),並定義不變量(invariants),找到能使其失效的反例即為漏洞。

  • 4

    Capability Object 與 Hot Potato 是 Move 特有的攻擊面:前者若能被強制建立即可繞過權限控制;後者若存在可隱式丟棄的路徑,則閃電貸等機制的還款強制邏輯會失效。

實用技巧與重點

乾貨
  • 平台:Aptos、Sui(Move 生態)、EVM(對比基準)
  • EVM vs Move 資料儲存:EVM 存於合約本身;Aptos 存於帳戶;Sui 存於獨立物件(Object)
  • Move 編譯器特性:編譯期攔截執行時錯誤,合約部署後無此類 runtime error
  • 重入(Reentrancy):Move 傳統上不可重入;EVM 的重入防護在演講數天前才推出
  • Transaction 可見性差異:EVM 在交易執行時才知道修改了哪些資料;Move 在建立交易時即已知道所有涉及物件
  • Capability Object 模式:Sui 用能力物件門控函式,初始化時建立,僅管理員持有;攻擊向量:是否有函式可被強制建立能力物件
  • Hot Potato 模式:無法被 drop 的物件,強制呼叫特定消耗函式(如還款);攻擊向量:是否存在可讓物件被隱式丟棄的錯誤路徑
  • 審計框架:定義不變量(invariants)→ 尋找反例 → 確認漏洞
  • 狀態機審計:分析協議在各狀態(開放/活躍/風險/關閉)下的邊界行為

結論

結論

Move 智能合約審計的核心在於掌握其資料模型差異,並針對 Capability Object 可被強制建立、Hot Potato 可被隱式丟棄這兩個 Move 特有攻擊面進行系統性驗證。

完整解析

詳細

本場演講的核心命題是:傳統 EVM 安全工程師在轉向 Move 生態(Aptos、Sui)時,若照搬既有思維,將會錯過 Move 獨有的漏洞模式。講者將內容分為兩大部分:語言無關的通用漏洞方法論,以及 Move 架構本身帶來的特殊攻擊面。

首先從架構差異切入。EVM 以合約為中心,狀態資料直接存於合約本身;而 Aptos 將資料與合約分開,儲存在帳戶層級;Sui 則更進一步,將資料封裝為獨立存在於鏈上的物件(Object),這些物件不從屬於任何智能合約。這種資料模型的根本差異,直接影響了攻擊路徑的分析方式。此外,Move 的編譯器會在編譯期就攔截潛在的執行時錯誤,這讓許多 EVM 常見的執行期漏洞在 Move 中從源頭被消除。至於重入攻擊,Move 傳統上也因為其執行模型而天然免疫——而 EVM 的重入防護機制甚至直到演講前數天才正式推出,突顯了兩者的設計哲學差距。

在語言無關的審計方法論上,講者強調必須以狀態機框架來分析去中心化協議。一個 DeFi 協議通常會經歷「開放 → 活躍 → 高風險 → 關閉」等狀態,審計員需要在每個狀態轉換邊界上窮舉異常情境。配合狀態機分析的,是不變量(invariant)的定義:先明確列出協議的核心不變量(例如「總抵押物永遠大於總借款」),再系統性地尋找能使其失效的反例,找到的即為漏洞所在。

進入 Move 特有漏洞,講者重點介紹兩個模式。第一是 Capability Object:Sui 使用能力物件來門控特定函式,概念上等同於 EVM 的 `onlyOwner` modifier,但以物件傳遞而非地址比對實現。能力物件通常在合約初始化時建立,且只有管理員能持有。安全審計的關鍵問題是:是否存在某條程式路徑可以「強制建立」這類能力物件?若有,攻擊者便能繞過所有權限控制。第二是 Hot Potato 模式:這是 Move 用來強制回調的設計——建立一個無法被丟棄(drop)的物件,要求呼叫方必須呼叫特定函式來消耗它。閃電貸即是典型應用:借款時建立 Hot Potato 物件,還款函式消耗該物件以完成交易。審計重點在於:是否存在某個錯誤的程式路徑,讓該物件被隱式丟棄?若有,攻擊者便可借款而不還款。

關鍵時刻

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