確保智能合約安全的行業標準
確保智能合約安全的行業標準
企業以太坊聯盟發布了智能合約安全審計規範,以確保智能合約安全的一致性。
以太坊生態系統繼續見證一系列活動,個人和組織部署代幣合約,為礦池增加流動性並部署智能合約以支持廣泛的商業模式。雖然值得注意的是,這種增長也充滿了安全漏洞,使得去中心化金融(DeFi)協議容易受到黑客攻擊和詐騙。
例如,World Coin Clear最近的調查結果顯示,從年初到 2022 年 7 月,與加密相關的黑客攻擊增加了 58.3%。
該報告進一步指出,在這段時間內,黑客損失了 19 億美元——這一數字不包括2022 年 8 月 1 日發生的價值 1.9 億美元的 Nomad 橋梁黑客事件。
儘管開源代碼可能對區塊鏈行業有益,但不幸的是,它很容易被網絡犯罪分子研究以尋找漏洞。
智能合約的安全審計旨在解決這些挑戰,但該程序缺乏行業標準,因此產生了複雜性。
企業以太坊聯盟 EthTrust 安全級別工作組主席 Chris Cordi 表示隨著以太坊區塊鏈行業的發展,對評估智能合約安全性的成熟框架的需求也在增加。
為了解決這個問題,Cordi 與幾位具有審計和安全專業知識的 EEA 成員代表於 2020 年 11 月幫助建立了 EthTrust 安全級別工作組。
此後,該組織一直在起草一份智能合約規範或行業文檔草案標準,旨在提高智能聯繫人背後的安全性。
最近,工作組宣布發布 EthTrust 安全級別規範 v1。
EEA 技術項目主管 Chaals Nevile 表示該規範描述了適當的安全審計要求作為最低質量衡量標準的智能合約漏洞
“它與開發人員使用 Solidity 作為編碼語言的所有基於 EVM 的智能合約平台相關。
在 Splunk 最近的一項分析中,這遠遠超過了主網合約的 3/4。
但是,也有一些私有網絡和項目基於以太坊技術堆棧但運行自己的鏈。
該規範對他們和對主網用戶幫助保護他們的工作一樣有用。”
從技術角度來看,Nevile 解釋說,新規範概述了組織在進行智能合約安全審計時應考慮的三個級別的測試。
“Level [S] 的設計是為了在大多數情況下,按照眾所周知的模式使用 Solidity 的常見功能,測試代碼可以通過自動化的'靜態分析'工具進行認證
他補充說,[M] 級測試要求進行更嚴格的靜態分析,並指出這包括要求人工審核員確定是否需要使用某個功能,或者關於代碼安全屬性的聲明是否合理。
Nevile 進一步解釋說,Level [Q] 測試提供了對測試代碼實現的業務邏輯的分析。
“這是為了確保代碼不會出現已知的安全漏洞,同時還要確保它正確地實現了它聲稱的內容
還有一個可選的“推薦的良好實踐”測試可以幫助增強智能合約背後的安全性。
“使用最新的編譯器是‘推薦的良好做法’之一。
在大多數情況下,這是一個非常簡單的方法,但是有很多原因導致合約可能沒有使用最新版本部署。
其他良好做法包括報告新漏洞,以便可以在更新規範中解決這些漏洞,以及編寫乾淨易讀的代碼。”
總體而言,整個規範中有 107 項要求。
根據 Nevile 的說法,其中大約 50 個是由olidity 編譯器中的錯誤引起的級別 [S] 要求。
行業標準會幫助組織和開發人員嗎?
行業標準會幫助組織和開發人員嗎?
Nevile 指出,EthTrust 安全級別規範的最終目的是幫助審計師向客戶證明他們正在以適合行業的級別運營,“審計師可以指出這個行業標準來建立基本的可信度。
區塊鏈安全公司 CertiK 的首席執行官兼聯合創始人 Ronghui Gu 闡明了這一點,他表示,擁有這樣的標準有助於確保預期的流程和指導方針。
這些標準絕不是表明智能合約完全安全的“橡皮圖章”:
“重要的是要了解並非所有智能合約審計員都是平等的。
智能合約審計始於對智能合約被審計的特定生態系統的理解和經驗,以及所使用的技術堆棧和代碼語言。
並非所有代碼或鏈都是平等的,在這裡,經驗對於報導和發現很重要。”
鑑於此,認為,希望對其智能合約進行審計的公司應該超越審計員聲稱擁有的認證,並考慮審計員的質量、規模和聲譽。
因為這些標準是指導方針,認為這個規範是一個很好的起點。
從開發人員的角度來看,這些規範可能被證明是非常有益的。
新興的基於區塊鏈的社交網絡 Myco 的聯合創始人 Mark Beylin 表示,這些標準對於幫助智能合約開發人員更好地了解安全審計的期望將非常有價值。
“目前,智能合約安全性有許多分散的資源,但審計人員在評估項目安全性時並沒有具體的規則手冊。使用該規範,安全審計員和他們的客戶可以在同一頁面上檢查什麼樣的安全要求。”
該規範的開發者和貢獻者 Michael Lewellen 進一步表示,這些規範通過提供一個已知安全問題的清單來幫助檢查。
“許多 Solidity 開發人員最近沒有接受過 Solidity 開發的安全方面的正規教育或培訓,但安全性仍然值得期待。
擁有這樣的規範可以更容易地弄清楚如何更安全地編寫代碼。
Lewellen 還指出,大多數規範要求都以簡單明了的方式編寫,便於開發人員理解。
但是,他評論說,並不總是很清楚為什麼包含要求。
“有些有漏洞的外部文檔鏈接,但有些沒有。
如果開發人員有更清晰的示例來說明合規和不合規代碼的外觀,他們會更容易理解。”
智能合約安全標準的演進
智能合約安全標準的演進
綜合考慮,安全級別的規範通過建立智能合約審計指南來幫助推進以太坊生態系統。
然而,Nevile 指出,前進中最具挑戰性的方面是預測漏洞如何發生。
“這個規範並沒有完全解決這些挑戰。不過,規範所做的是確定某些步驟,例如記錄合同背後的架構和業務邏輯,這對於實現徹底的安全審計很重要。”
隨著 Web3 的發展,不同的鏈將開始製定類似的標準。
例如,以太坊行業的一些開發人員正在提出自己的智能合約要求來幫助其他人。
例如,RTFKT 的首席技術官塞繆爾·卡迪略(Samuel Cardillo)最近表示,他已經創建了一個系統,供開發人員根據開發方面的好壞元素公開評估智能合約
儘管所有這些都是朝著正確方向邁出的一步,但顧指出,標準需要時間才能被廣泛採用。
此外,內維爾解釋說,安全從來都不是一成不變的。
因此,他解釋說,個人可以向編寫規範的工作組發送問題。
“我們將接受這些反饋,並查看更廣泛的公共空間中的討論內容,因為我們希望更新規範,”內維爾說。他補充說,新版本的規範將在 6 到 18 個月內產生。