區塊鏈的出現,讓金融有了更多有別於傳統的操作方式,但卻也帶來前所未有的風險與安全問題。這些安全問題可能導致金錢的直接損失。光是 2026 上半年,CertiK 記錄的「程式碼漏洞」事件就有 204 起,損失超過 1.5 億美元!這還只是攻擊者利用程式碼本身缺陷得手的部分,不包含釣魚或私鑰外洩,更顯示了資訊安全在鏈上金融協議中的重要性。
要保護區塊鏈上面的資產安全,智慧合約只是其中的一個部分。從使用者的 OPSEC、錢包安全、環境與供應鏈攻擊,到項目方的治理與升級權限、依賴的對手方與跨鏈橋,甚至數學機制設計本身,都可能直接威脅資金安全。所以說,放在鏈上的錢,需要從各個角度去保護。下面先簡單整理這些風險可能出現在哪裡。
使用者自己怎麼操作,就會影響資金安全。誤點釣魚連結、簽下看不懂的交易,或直接暴露私鑰,都不是合約審計能處理的問題。換成公司或團隊的情境,風險變成有心人士混入內部、多簽錢包的簽署規則沒設計好,或簽署權限外洩,一樣不是合約本身的問題。
錢包除了程式本身,還牽涉私鑰怎麼保存、多簽怎麼設定,以及復原方式是否安全。用熱錢包還是冷錢包,安全模型完全不同,就算選對了,錢包供應商本身的韌體或後端服務出問題,一樣會牽連使用者的資產安全。
開發與部署會依賴外部套件、RPC、CI/CD 與權限設定。只要其中一個環節被污染,最後部署的程式碼就可能不是原本審計過的版本。
項目方握有管理權限,可能升級合約或更改參數。這些權限怎麼管理,以及團隊是否可信,都不是只看合約程式碼就能回答的。
持有夠多治理代幣,甚至用閃電貸暫時借來,就能提案、投票。如果治理流程沒有時間鎖,或門檻設計不足,攻擊者可以「合法地」通過惡意提案,直接動用金庫或修改協議參數。
DeFi 協議常常建立在其他協議、資產與 Oracle 上。自己的合約沒有出錯,不代表依賴的對象也沒有問題。近期 RWA(現實世界資產)興起,這層風險又多了一個維度——依賴的不只是另一個鏈上協議,還有鏈下的託管方跟發行方是否真的照契約在做事。
跨鏈橋讓資產能在不同鏈之間流動,但代價是多了一層驗證者或訊息傳遞機制需要信任。Ronin、Wormhole、Poly Network 這幾起史上最大的損失,都是橋本身的信任機制被打穿,不是任一邊的合約邏輯出錯。
程式碼可能完全照設計執行,但設計本身還是可能有問題,例如價格、清算或獎勵機制在極端情況下失效。數學模型本身也需要嚴謹的回測跟驗證,不是公式推導完就直接上線!
這個系列沒辦法涵蓋上面所有主題,會先把焦點放在 EVM 智慧合約安全。從漏洞類型、靜態與動態工具,到形式化驗證,甚至結合大型語言模型,看看怎麼從既有的智慧合約程式碼中檢查出錯誤。
接下來,我會挑選公開漏洞案例,依序讓 Slither、Foundry、Certora 與 LLM 這四種方法進行比較和合併使用。
將切入主題討論智慧合約的常見安全性問題。