智能合約安全稽核是什麼?
首頁
文章
智能合約安全稽核是什麼?

智能合約安全稽核是什麼?

中等
發佈時間 Mar 1, 2022更新時間 Apr 27, 2023
8m

摘要

智能合約安全稽核提供了對專案智能合約的詳細分析。這些對於保護透過其投資的資金來說非常重要。由於區塊鏈上的所有交易都是最終的交易,如果資金被盜,將無法收回。通常情況下,稽核人員會檢查智能合約的程式碼,產生一份報告,並將報告提供給專案以供他們使用。然後發佈一份最終報告,詳細說明任何未解決的錯誤,以及為解決性能或安全問題所做過的工作。


前言

智能合約安全稽核在去中心化金融 (DeFi) 生態系中非常常見。如果您投資了一個區塊鏈專案,那麼您的決定可能在一定程度上是基於智能合約程式碼審查的結果。

雖然大多數人都明白稽核對網路安全的重要性,但沒有多少人會去深入研究程式碼行數。讓我們來看看智能合約安全稽核中常見的方法、工具和結果,這樣您就可以做出更明智的決定。


智能合約稽核是什麼?

智能合約安全稽核是針對專案的智能合約程式碼來進行檢查和評論。通常,這些合約是用 Solidity 程式語言編寫的,並透過 GitHub 提供。對於準備處理價值數百萬美元的區塊鏈交易,或大量玩家的 DeFi專案來說,安全稽核特別有價值。稽核工作通常分為四個步驟:

1. 智能合約提供給稽核團隊進行初步分析。

2. 審核組將其發現提交給專案,以便他們採取行動。

3. 專案組根據發現的問題進行修改。

4. 稽核小組發佈其最終報告,其考慮任何新的修改或未解決的錯誤。

對於許多加密貨幣用戶來說,在投資新的 DeFi 專案時,智能合約稽核是必不可少的。對於那些想要被認真對待的專案來說,這已經成為了一個標準。某些稽核提供者也被視為產業領導者,使他們的稽核在投資者眼中更具有價值。


為什麼我們需要智能合約稽核?

隨著大量的價值透過智能合約進行交易或鎖定,它們成為吸引駭客惡意攻擊的目標。小小的編碼錯誤可能導致巨額資金被盜。例如, 以太坊區塊鏈上的 DAO 駭客攻擊盜取了價值約 6000 萬美元的 ETH,甚至導致了以太坊網路的硬分叉。

由於區塊鏈交易是不可逆的,因此確保專案程式碼的安全至關重要。區塊鏈技術的高度安全性使得事後取回資金和解決問題變得很困難,所以最好不惜一切代價防止出現漏洞。


智能合約稽核是如何進行的?

智能合約稽核的程序在稽核提供者中是相當標準的。雖然每個稽核人員的方法可能略有不同,但典型的流程如下:

1. 確定稽核的範圍。智能合約和專案規範是由專案(其預期目的)和整體架構定義的。當編寫和使用程式碼時,規範可以幫助稽核團隊理解專案的目標。

2. 根據所需的工作量,提供初步報價。

3. 進行測試。確切性質將視乎稽核團隊、他們的分析工具及其方法而有所差異。通常情況下,手動和自動測試都會進行。

4. 建立報告的初稿,其中包括發現的錯誤,並提供給專案團隊,以獲得回饋和後續的修復。

5. 發佈最終報告,考慮團隊為解決提出的問題所採取的任何行動。


智能合約稽核方法

燃料效率 

智能合約稽核不只是關注於區塊鏈安全。他們還會關注效率和最佳化。有些合約透過一系列複雜的交易來完成其預期的功能。由於像以太坊這樣的網路上的燃料費用相對昂貴,高效的合約可以節省大量的交易成本

最佳化其效能也是開發人員技能的一個指標。低效的步驟會出現更多的故障點,應該加以避免。當燃料成本高時,智能合約可能無法執行,當使用低燃料限制時更是如此。

合約漏洞

稽核中的大部分工作涉及檢查合約的安全漏洞。雖然有些問題很容易看到,但許多漏洞涉及先進的技術和策略,以此來消耗資金。例如,市場操縱可以與弱智能合約一起使用,以進行閃電貸款攻擊。為了發現這些問題,稽核員開始中斷測試流程,並模擬對智能合約的惡意攻擊。常見的漏洞包括:

1. 重新進入問題:當一個智能合約在任何效應被解決之前,對另一個外部合約進行外部調用。然後,外部合約能夠以遞迴方式調用原始智能合約,並以其不應該有的方式與之互動,因為原始合約的餘額還沒有被更新。
2. 整數溢位和反向溢位:當智能合約進行算術運算,但輸出超過儲存容量 (通常是小數點後 18 位) 時。這可能會導致計算出的金額不正確。
3. 搶先交易機會:結構不良的程式碼可以提供市場購買或銷售的預警。這反過來的話,又可以讓其他人利用這些資訊,為自己的利益進行交易。

平台安全缺陷

大多數的稽核包括查看託管合約的網路,甚至用於與 DApp 互動的 API。一個專案可能容易受到 DDoS 攻擊或其網站使用者介面被破壞,這表示用戶實際上會把他們的錢包連接到惡意的區塊鏈應用程式。


稽核報告是什麼?

稽核報告是在稽核過程結束時提供的。為了提高透明度,這些專案應該與社群分享他們的發現。大多數報告按嚴重程度對問題進行分類,如嚴重、重大、輕微等。報告還會列出問題的狀態,因為在最終報告發佈之前,專案會有時間來解決這些問題。

除了執行摘要,標準報告會包含建議、冗餘程式碼範例,以及存在編碼錯誤的全部細節。在最終版本發佈之前,會給專案時間對報告的發現採取行動。


我可以在哪裡找到智能合約稽核?

許多智能合約稽核服務已經因其服務而聞名。其中有兩家尤其受歡迎,要想從它們那裡獲得稽核,則需要提供初始報價和資訊。

CertiK

在智能合約稽核方面,CertiK 是這行的領導者。已經有數百個專案與他們合作,對智能合約進行了稽核。BSC 最大的自動化做市商 (AMM) PancakeSwap 就是其中一個範例。下面是 Certik 對 PancakeSwap 的稽核部分。


另外,幣安實驗室支援的絕大多數專案都對其與 CertiK 的合約進行了稽核。CertiK 發佈了一個已稽核專案的排行榜,允許您對每個專案進行比較,同時還有一個安全分數。請注意,除了以太坊外,CertiK 還涵蓋 BSC 和 Polygon 專案。


ConsenSys Diligence

由以太坊的聯合創辦人 Joseph Lubin 經營,ConsenSys 是加密貨幣這一行在區塊鏈開發方面最大的名字之一。在 ConsenSys Diligence 下,該公司提供以太坊智能合約的稽核。它們還提供自動化服務,檢查以太坊虛擬機(EVM)合約中常見的錯誤。


智能合約稽核的費用是多少?

稽核的確切費用取決於要檢查的智能合約的數量。一般來說,一次稽核會花費數千美元。特別大的專案可以很容易就花費超過一萬美元。進行稽核的稽核公司及其聲譽,也會影響您所支付的金額。


總結

幸運的是,對於投資者和用戶來說,智能合約的稽核已經成為了一個黃金標準。然而,當每個專案都有一個時,它就不再是一個簡單的價值指標了。這就是為什麼自己閱讀稽核是無比重要的。即使您沒有技術性的知識,看一下潛在問題的評論和嚴重程度也是會很有幫助的。

當您真的遇到稽核時,您現在至少可以更容易理解其內容。和往常一樣,要確保任何投資決策都需要觀看全局,並考慮到所有的資訊。