新技術(shù)往往也意味著新風(fēng)險(xiǎn)。
智能合約是運(yùn)行在區(qū)塊鏈上的程序,由于區(qū)塊鏈不可篡改,智能合約也具有不可更改的特性——一旦部署上線就無法再進(jìn)行修改。
也就是說,智能合約一旦出現(xiàn)漏洞,就可能會(huì)造成重大損失,有時(shí)候損失甚至多達(dá)數(shù)億美元。2016年6月17日,區(qū)塊鏈業(yè)界最大的眾籌項(xiàng)目 The DAO 智能合約由于存在漏洞而遭到黑客攻擊,造成了總價(jià)值超過 5000 萬美元的損失。2017年7月和11月,以太坊多重簽名錢包 Parity 的智能合約先后爆出兩個(gè)重大漏洞,導(dǎo)致千萬美元被盜、上億美元被凍結(jié)。

由此可見,部署智能合約之前,必須要對(duì)其進(jìn)行全面深入的代碼安全審計(jì),盡可能消除漏洞、降低風(fēng)險(xiǎn)。
為了最大程度地保障智能合約安全,對(duì)合約代碼的審計(jì)成了一個(gè)不容小覷的專業(yè)領(lǐng)域。一般來說,智能合約審計(jì)有兩種基本方法:手動(dòng)和自動(dòng)。
手動(dòng)代碼分析由一個(gè)經(jīng)驗(yàn)豐富的開發(fā)者團(tuán)隊(duì)對(duì)合約代碼進(jìn)行審查,檢查其編碼、重入錯(cuò)誤和安全等問題。而自動(dòng)代碼分析是用市場上的一些代碼審計(jì)工具,快速發(fā)現(xiàn)漏洞,可以節(jié)約大量人力和時(shí)間。
目前,以太坊上已有超過 120 萬個(gè)應(yīng)用在使用一款免費(fèi)的安全審查工具。該工具可以自動(dòng)掃描查找智能合約代碼中的常見漏洞,并對(duì) dApp(去中心化應(yīng)用)進(jìn)行安全評(píng)級(jí)(如A級(jí)、B級(jí)、C級(jí)等)。
這款免費(fèi)的工具由初創(chuàng)公司 Amberdata 與去年 10 月推出,每個(gè)人都可以無門檻了解以太坊上活躍的應(yīng)用的安全狀況。Amberdata 是用于監(jiān)控、搜索和分析多個(gè)區(qū)塊鏈的領(lǐng)先 SaaS 平臺(tái),對(duì)區(qū)塊鏈的健康和智能程度進(jìn)行分析,提供對(duì)區(qū)塊鏈指標(biāo)、搜索和區(qū)塊鏈數(shù)據(jù)驗(yàn)證的實(shí)時(shí)監(jiān)控和見解。

Amberdata 首席執(zhí)行官 Shawn Douglass 強(qiáng)調(diào),Amberdata 安全評(píng)級(jí)工具的愿景,是提供“更好的智能合約訪問體驗(yàn)及提高智能合約的透明度。”
他還說道:“我們希望為以太坊社區(qū)提供的這些工具可以減輕社區(qū)成員對(duì)外部工具的依賴,讓他們更快更安全地進(jìn)行開發(fā)工作?!?/p>
那么 Amberdata 這款工具是如何運(yùn)作的呢?其評(píng)級(jí)依據(jù)又是什么?
Amberdata 首席技術(shù)官 Joanes Espanol 指出,該工具可以自動(dòng)掃描 13 種漏洞,檢測到的漏洞越多,該 dApp 獲得的等級(jí)評(píng)定就越低,等級(jí)從 A+ 到 F 不等。
Joanes 表示,常見嚴(yán)重等級(jí)較低的漏洞有“用戶地址委托調(diào)用”(delegate call to a user-supplied address)和“外部合約消息調(diào)用”(message call to external contract)。前者通常被用于將智能合約代碼分成多個(gè)子合約,可能被用于替換掉能改變?cè)紤?yīng)用行為的合約;后者不是一種會(huì)影響智能合約本身的漏洞,而是可能會(huì)調(diào)用其他有錯(cuò)誤代碼的合約,從而帶來潛在風(fēng)險(xiǎn)。
因此,如果檢測到某個(gè)智能合約有這兩個(gè)漏洞,那么 Amberdata 這款審計(jì)工具就會(huì)發(fā)出“警告”。
而嚴(yán)重程度較高的兩個(gè)漏洞分別是:整數(shù)溢出——在智能合約的操作中可能產(chǎn)生超出代碼限制的值,從到出現(xiàn)不可預(yù)測的行為,甚至是導(dǎo)致資金損失;整數(shù)下溢——低于定義范圍的值可能會(huì)導(dǎo)致錯(cuò)誤輸出。
根據(jù) Amberdata 的評(píng)級(jí)系統(tǒng),以太坊著名養(yǎng)成類游戲應(yīng)用加密貓(CryptoKitties)由于沒有以上四種漏洞中的任意一種,其安全等級(jí)被評(píng)為 A+。加密貓的軟件工程師 Fabiano Soriani 稱,原因是“我們盡可能多地進(jìn)行了測試。”

他還表示,進(jìn)行審計(jì)工作的人會(huì)為智能合約指出某些漏洞或者錯(cuò)誤,這是非常好的補(bǔ)充資源。
由于智能合約本質(zhì)上是一串代碼,而由人編寫出來的代碼不可避免地存在某些錯(cuò)誤和紕漏。如果跳過安全審計(jì)這一環(huán)節(jié)直接將其部署到以太坊或者其他公鏈上,可能會(huì)出現(xiàn)嚴(yán)重的損失和一系列問題。
正如 Amberdata 首席執(zhí)行官 Shawn 所說,“區(qū)塊鏈?zhǔn)窍乱粋€(gè)浪潮,是下一次革命,一次關(guān)于信任和去中心化的革命?!?/p>
所謂的智能合約其實(shí)并沒有那么“智能”,安全審計(jì)道阻且長。Amberdata 的安全審計(jì)工具與千千萬萬個(gè)智能合約一起,踏上了這次“信任和去中心化的革命”之路。
Amberdata是新一代區(qū)塊鏈資源管理器,并且用于監(jiān)測、搜索、分析及保護(hù)公鏈和私鏈的高級(jí)數(shù)據(jù)分析平臺(tái)。
如果您想了解更多Amberdata.io相關(guān)信息,
我們的網(wǎng)站:https://amberdata.io/
我們的官方推特賬號(hào)Amberdataio
我們的官方微信公眾號(hào):Amberdata(amberdata_china)