摘要
智慧合約安全稽核也可以對專案的智慧合約進行詳細分析。這些措施對於保障合約投資資金非常重要。由於區塊鏈上的所有交易都是最終交易,因此一旦資金被盜將無法找回。通常情況下,審計員會檢查智能合約的代碼,產生一份報告,並將報告交予專案組使用。然後會發布一份最終報告,並詳細說明所有懸而未決的錯誤,以及為解決效能或安全性問題所做的工作。
智慧合約安全審計在去中心化金融 (DeFi) 生態系統中十分普遍。如果您投資了區塊鏈項目,那麼您的決定可能會在一定程度上受到智慧合約程式碼審查的影響。
雖然大部分人都明白審計對網路安全的重要性,但深入研究一行行程式碼的卻寥寥無幾。我們來看看智能合約安全審計中常用的方法、工具和結果,方便您做出更明智的決定。
智慧合約安全審計會對專案的智慧合約程式碼進行檢查和評論。通常情況下,這些合約會用 Solidity 程式語言編寫,並由 GitHub 提供。若 DeFi 專案要處理的區塊鏈交易價值數百萬美元或有大量參與者,則安全審計尤其有價值。審計通常遵循以下四個步驟:
1. 將智慧合約提供給審計小組進行初步分析。
2. 審計小組將他們的發現提交給專案組,供其採取行動。
3. 專案組根據發現的問題進行修改。
4. 審計組會將新的修改和懸而未決的錯誤考慮在內,然後發布最終報告。
對於許多加密使用者而言,在投資新的 DeFi 專案時,智能合約審計不可或缺。它已經成為了重要項目的標準。某些審計機構也成為了行業領導者,提高了其審計工作在投資者眼中的價值。
大量的價值透過智能合約進行交易或鎖定在智能合約中,它們極易成為駭客攻擊的目標。即使小小的編碼錯誤也可能導致巨額資金被盜。例如,以太坊區塊鏈上的 DAO 駭客攻擊奪走了價值約 6,000 萬美元的以太幣,甚至導致了以太坊網路硬分叉。
由於區塊鏈交易無法撤銷,因此確保專案程式碼的安全至關重要。區塊鏈技術的高度安全性使得事後難以取回資金和解決問題,因此最好不惜一切代價預防可能出現的漏洞。
智能合約審計的過程在審計機構之中相當標準。雖然每個審計員的方法可能略有不同,但一般的流程如下所示:
1. 確定審計範圍。智能合約和專案規範是由專案(其預期目的)和整體架構定義的。專案規格有助於稽核組在編寫和使用程式碼時了解專案目標。
2. 根據所需的工作量提供初步報價。
3. 運行測試。其確切性質將根據審計組、他們的分析工具和方法而改變。通常情況下,會採用手動和自動兩種測試方式。
4. 建立包含了所發現錯誤的報告初稿,提供給專案組以獲得回饋和後續修正。
5. 考慮團隊為解決提出的問題所採取的行動,然後發布最終報告。
智能合約審計並不只關注區塊鏈安全,也著眼於效率和優化。有些合約會透過一連串複雜的交易來完成預期功能。由於以太坊這樣的網路燃料費用相對較高,高效率的合約可以節省大量交易成本。
優化其效能也是開發人員的技能指標。低效率的步驟會存在更多的故障點,應盡量避免。燃料成本高時,智慧合約可能無法執行,使用燃料低成本限制時更是如此。
審計中的大部分工作涉及檢查合約的安全漏洞。雖然有些問題很容易看到,但許多漏洞運用了先進的技術和策略來抽走資金。例如,市場操縱可以結合弱勢智能合約進行閃電貸款攻擊。為了發現這些問題,稽核員會開始破解測試過程,模擬對智能合約的惡意攻擊。常見漏洞包括:
1. 可重入性問題:當一個智能合約在任何影響得到解決之前對另一個外部合約進行外部呼叫。然後,由於該原始合約的餘額尚未更新,外部合約可以遞歸調用該原始智能合約並以它不應該的方式與之互動。
2. 整數上溢與下溢:智能合約進行算術運算,但輸出超過了儲存容量(通常是小數點後 18 位元)。這可能導致計算金額出錯。
搶先交易機會:結構不良的程式碼可以為市場的購買或銷售提供預警。這反過來又會使其他人利用這些訊息,為謀取私利而進行交易。
大多數審計包括查看託管合約的網絡,甚至還包括用於與 DApp 互動的 API。如果一個專案可能容易受到 DDoS 攻擊,或者其網站 UI 遭到破壞,這意味著用戶實際上會將他們的錢包連接到惡意的區塊鏈應用程式。
審計報告是審計結束時所發出的報告。為了提高透明度,專案組應與社區分享其發現。大多數報告會以嚴重程度對問題進行分類,如嚴重、重大、輕微等。報告也會將問題的狀態列出,因為在最終報告發布之前,專案仍會有時間解決這些問題。
除執行摘要外,標準報告還將包含建議、冗餘程式碼範例以及編碼錯誤所在位置的完整細節。在最終版本發布之前,該專案有時間對報告的調查結果採取行動。
許多智能合約審計服務機構已經因服務出眾而聲名鵲起。其中有兩個特別受歡迎,從他們那裡獲得審計將需要提供初步報價和移交資訊。
在智慧合約審計方面,CertiK 是業界領導者。成百上千個項目已經透過他們對智能合約進行了審計。 BSC 最大的自動化做市商 (AMM) PancakeSwap 就是其中一個例子。以下是 Certik 為 PancakeSwap 所做審計的截圖。
此外,幣安孵化器支援的絕大多數項目都透過 CertiK 對合約進行了審計。 CertiK 發布了一個審計項目排行榜,並附有安全評分,您可以對每個項目進行比較。請注意,除了以太坊,CertiK 還承接 BSC 和 Polygon 專案。
ConsenSys 由以太坊聯合創始人Joseph Lubin 經營,是加密貨幣行業在區塊鏈開發方面的知名品牌之一。在 ConsenSys Diligence,該公司提供以太坊智慧合約審計。他們還提供自動化服務,以檢查以太坊虛擬機器(EVM) 合約中常見的錯誤。
確切的審計費用取決於需要檢查的智慧合約數量。通常情況下,審計費用約為數千美元。若是特定的大型項目,費用很容易超過 10,000 美元。負責審計工作的審計公司及其聲譽也會影響您要支付的費用。
幸好對投資人和使用者來說,智慧合約稽核已經成為了一個黃金標準。然而,如果每個項目都有智慧合約審計,它就不再是一個簡單的價值指標了。因此學會自己閱讀審計非常重要。即使您缺乏技術知識,查看評論和潛在問題的嚴重性亦會有所幫助。
當您遇到審計時,至少應該更容易理解其內容。像往常一樣,在做出任何投資決策時,務必著眼於全局並考慮到所有資訊。