淺談:智能合約安全審計的重要性

發布時間 :2020-12-28 11:04:42 作者:

智能合約本質是一段運行在區塊鏈網路中的代碼,它完成用戶所賦予的業務邏輯。以以太坊體系的代幣爲例,其業務邏輯是代幣發幣和交易。以太坊在設計之初,將智能合約設計成了一旦部署就不能修改的模式,這種設計有可能是爲了提高智能合約的可信性。但我們也知道,只要是由人編寫的程式,就一定會出現錯誤和缺陷。如果智能合約存在安全漏洞問題,攻擊者就可以通過發布包含惡意代碼的“智能合約”,經過一系列操作,控制區塊鏈網路中的所有節點,進而對項目造成毀滅性打擊。

毀滅性打擊實例

比如著名的THE DAO事件,黑客就利用了一個簡單的遞歸函數漏洞,成功盜走價值2億美元數字資産,直接導致明星項目The DAO夭折。在2018年4月,有這樣一個黑客侵襲重大事件,黑客利用以太坊 ERC-20智能合約中BatchOverFlow漏洞攻擊BEC(美鏈的代幣“美蜜”)智能合約,成功向兩個地址轉出了天量級別的 BEC代幣,導致市場上海量BEC被拋售,使得當日BEC的價值幾乎歸零,64億人民幣瞬間蒸發。由此,智能合約的代碼審計和驗證就顯得尤爲重要,只有在安全性和可執行性上獲得了充分的審查,智能合約才能在未來執行的時候發揮既定的作用。

大量智能合約存在安全漏洞

倫敦大學學院電腦科學系副教授伊利亞·謝爾蓋在研究論文《Finding The Greedy , Prodigal , and Suicidal Contractsat Scale》中,通過對將近 100 萬份智能合約進行每份合約 10 秒分析時間的分析後發現,其中有 34200 份智能合約容易受到黑客攻擊。同時他們又對 3759 份智能合約抽樣調查,在這之中,3686 份智能合約有 89% 的概率含有漏洞。有專家亦表示,當前區塊鏈智能合約中可能出現的漏洞至少有20餘種。鑒此,最切實可行的做法就是:在智能合約上線之前,對其進行全面深入的代碼安全審計,盡可能的消除漏洞,降低安全風險。

合約審計的目的

合約審計的目的主要是檢查代碼規範性、常規漏洞、安全漏洞、業務邏輯漏洞等,最關鍵是減少因代碼導致的業務無法按預期正常運轉,其次是保障資金的安全;第三方面也是體現智能合約部署後的“公平、公開、公正、透明”等。同時,也是以此減少遭受黑客攻擊的可能性。除此之外,還能將産品上線前將風險降到最低。“沒有一個絕對的安全系統”,這是網路安全領域的一句警語,也是黑客對安全防護的戲謔。區塊鏈自帶金融屬性,近年來,上到交易所,下至錢包、DAPP應用,無一不是黑客的目標,其抓住這些平台代碼的漏洞,進行攻擊甚至勒索。這些平台一旦發生“盜幣”事件,便很難找回資産。因此,代碼安全審計尤爲重要。

Super Trister通過第三方安全審計

據Super Trister推特公告顯示:TLC智能合約於10月30日通過Beosin鏈安科技安全審計所有檢測項,合約審計結果爲通過。

成都BEOSIN鏈安科技安全審計的內容包含譯器版本安全審計、棄用項審計、冗餘代碼審計、require/assert使用審計、gas消耗審計、整型溢出審計、重入攻擊審計、僞隨機數生成審計、交易順序依賴審計、拒絕服務攻擊審計、函數調用權限審計、call/delegatecall安全審計、返回值安全審計、tx.origin使用安全審計、重放攻擊審計、變數覆蓋審計、業務邏輯審計、業務實現審計等,合約審計結果爲全部通過。

CERTIK官網公告資訊:美國當地時間11月6日,美國區塊鏈安全審計公司CERTIK完成Super Trister去中心化借貸協議TLC智能合約代碼審計,並發布安全審計報告,審計結果未發現重大或關鍵或主要漏洞。

基於對平台技術安全的高要求,Super Trister將去中心化借貸協議TLC智能合約提交CERTIK進行安全審計。此次審計,CERTIK充分利用了動態分析,靜態分析和人工覆核等技術,對項目協議進行了全面檢查。審計結果並未發現重大或關鍵或主要漏洞,CERTIK已將優化建議提交至Super Trister,這些建議已應用於代碼庫的完善過程中。

總結

DeFi賽道因其可組合、可拓展、可落地的一系列金融屬性,成爲了傳統金融接軌區塊鏈技術的焦點領域,Super Trister作爲DeFi技術創新應用,選擇CERTIK與BEOSIN鏈安科技兩家全球頂級的對智能合約進行“雙審計”,預防潛在風險威脅,保障用戶資産安全的舉措,也是爲DeFi技術領域樹立一個典範。



上壹章