鏈圈必讀:一文看懂區(qū)塊鏈安全6大分類3大問題
編者按:本文來自阿爾法公社(ID:alphastartups),作者:阿爾法公社,星球日報(bào)經(jīng)授權(quán)發(fā)布。
一、導(dǎo)語
2018年8月6日,騰訊安全發(fā)布《2018上半年區(qū)塊鏈安全報(bào)告》,報(bào)告顯示,目前在全球范圍內(nèi),已出現(xiàn)了1600余種加密數(shù)字貨幣,2018年上半年,區(qū)塊鏈領(lǐng)域因安全問題損失超27億美元,而且因區(qū)塊鏈安全事件損失的金額還在不斷攀升。從IOTA“郵件門事件”、USDT“假充值漏洞”、EOS“彩虹攻擊”,到BEC與SMT“整數(shù)溢出攻擊漏洞”、BTG“51%算力攻擊”等等,這一系列的事件引發(fā)了大家的廣泛關(guān)注與思考。
區(qū)塊鏈安全威脅主要有哪些?為什么智能合約的安全問題如此重要,會引起這么多人關(guān)注?智能合約的安全類型有多少種?現(xiàn)在主流的安全監(jiān)測方法有哪些?最有效的方法又是什么?大家如何能獲得安全無漏洞的智能合約代碼?
針對這一系列問題,阿爾法公社對安比實(shí)驗(yàn)室(SECBIT)創(chuàng)始人郭宇進(jìn)行了采訪,為大家系統(tǒng)介紹區(qū)塊鏈行業(yè)安全問題及主流解決方案。
二、區(qū)塊鏈安全六大類型
從安全角度來看,區(qū)塊鏈技術(shù)可分為五層,相應(yīng)安全問題則為六大類。
區(qū)塊鏈2.0版本技術(shù)架構(gòu)
第一層,密碼學(xué)。密碼學(xué)是區(qū)塊鏈最底層的支撐技術(shù),包含了哈希算法、數(shù)字簽名、隨機(jī)數(shù)等,如果這些密碼學(xué)技術(shù)存在問題或者漏洞,那么基于此的整個(gè)區(qū)塊鏈構(gòu)建的信任將會坍塌。
雖然目前密碼學(xué)技術(shù)已經(jīng)頗為成熟,存在巨大漏洞的可能性比較小,但是仍然不排除一些項(xiàng)目存在問題。2017年7月15日,具有“物聯(lián)網(wǎng)世界第一幣”之稱IOTA收到了麻省理工學(xué)院附屬的學(xué)術(shù)研究組DCI的郵件,提醒IOTA團(tuán)隊(duì),IOTA的哈希算法Curl-P存在弱點(diǎn),DCI可以對該系統(tǒng)進(jìn)行成功的攻擊,竊取用戶資金。雖然IOTA隨后對DCI的郵件進(jìn)行了質(zhì)疑和反駁,到目前為止,也沒有用戶因?yàn)榇寺┒炊l(fā)生資金被盜的情況,但這一事件引起了大家對IOTA和其他項(xiàng)目在密碼學(xué)技術(shù)安全上的關(guān)注。
第二層,用戶私鑰的生成、使用與保護(hù)。用戶參與區(qū)塊鏈的憑證是一對公私鑰,每個(gè)人通過區(qū)塊鏈產(chǎn)生交互行為的前提就是他擁有安全的私鑰、并且能保管好自己的私鑰,因此私鑰的生成、試用與保護(hù)問題就非常重要。
今年7月,EOS就因私鑰生成工具存在安全隱患,創(chuàng)建的私鑰被黑客發(fā)現(xiàn)漏洞,并實(shí)施“彩虹”攻擊,導(dǎo)致賬戶數(shù)字資產(chǎn)被盜,造成上千萬數(shù)字資產(chǎn)損失。
第三層,節(jié)點(diǎn)系統(tǒng)安全漏洞。這一問題歸屬于傳統(tǒng)安全范疇,比如區(qū)塊鏈節(jié)點(diǎn)不能存在緩沖區(qū)溢出等傳統(tǒng)的安全漏洞。另外區(qū)塊鏈節(jié)點(diǎn)的實(shí)現(xiàn)要能忠實(shí)地正確實(shí)現(xiàn)區(qū)塊鏈的共識協(xié)議;節(jié)點(diǎn)不能暴露不該暴露的API接口,導(dǎo)致黑客可以無障礙的獲取一些節(jié)點(diǎn)關(guān)鍵信息。無論是以太坊還是EOS都曾經(jīng)被爆出過比較嚴(yán)重的安全漏洞。這一部分安全也是至關(guān)重要的。
第四層,底層共識協(xié)議。目前市場上主流的區(qū)塊鏈共識協(xié)議有以下幾種,POW、POS、DPOS、PBFT。底層共識協(xié)議決定了區(qū)塊鏈整個(gè)架構(gòu)是否可信,能不能真正做到形成一個(gè)具有共識的區(qū)塊鏈。現(xiàn)在真正被證明安全的共識協(xié)議并不多,因?yàn)楣沧R協(xié)議本身無論從理論、還是從技術(shù)實(shí)現(xiàn)上都不簡單。而經(jīng)過長時(shí)間驗(yàn)證的共識協(xié)議是比較安全的,比如像比特幣的POW。 共識協(xié)議有一個(gè)不可能實(shí)現(xiàn)的三角關(guān)系:安全、去中心化和效率,這三者只能同時(shí)實(shí)現(xiàn)兩樣。如果追求效率,要么犧牲去中心化,要么犧牲安全。
一個(gè)區(qū)塊鏈系統(tǒng)的共識協(xié)議是不是安全這個(gè)問題至關(guān)重要。
理論上,基于底層共識協(xié)議創(chuàng)建的所有數(shù)字貨幣都是存在51%算力攻擊風(fēng)險(xiǎn)。今年上半年,就有至少4種數(shù)字貨幣分別受到了51%算力攻擊,分別是Monacoin 、Bitcoin Gold、Verge和Electroneum,給用戶造成數(shù)千萬美元損失。
美劇《硅谷》中“51%算力攻擊”
第五層,智能合約。智能合約是一套以數(shù)字形式定義的承諾(promises),包括合約參與方可以在上面執(zhí)行這些承諾的協(xié)議。任何參與方都能在應(yīng)用層創(chuàng)建合約,也就是所謂的DAPP(去中心化應(yīng)用)。這也是目前出現(xiàn)安全問題最多的地方。
智能合約安全隱患包含了三個(gè)方面:第一,有沒有漏洞。合約代碼中是否有常見的安全漏洞。第二,是否可信。沒有漏洞的智能合約,未必就安全,合約要保證公平可信。 第三,符合一定規(guī)范和流程。由于合約的創(chuàng)建要求以數(shù)字形式來進(jìn)行定義承諾,所以如果合約的創(chuàng)建過程不夠規(guī)范,就容易留下巨大的隱患。
目前市場上很多智能合約均存在安全漏洞問題,比如,6月3日,安比實(shí)驗(yàn)室(SECBIT)發(fā)現(xiàn)Ethereum上出現(xiàn)81個(gè)合約帶有相同錯(cuò)誤,ERC20 Token合約中的transferFrom函數(shù)存在巨大隱患,一旦部署后出現(xiàn)問題,將造成不可挽回的損失;6月6日,安比實(shí)驗(yàn)室(SECBIT)發(fā)現(xiàn)ERC20代幣合約FXE由于業(yè)務(wù)邏輯實(shí)現(xiàn)漏洞,任何人都可以隨意轉(zhuǎn)出他人賬戶中的Token,Token隨時(shí)面臨徹底歸零風(fēng)險(xiǎn)。
作為區(qū)塊鏈行業(yè)從業(yè)者、智能合約使用者或是加密貨幣擁有者,應(yīng)該學(xué)習(xí)相應(yīng)的密碼學(xué)和智能合約編程知識,切不可隨意復(fù)制使用涉及資金安全的合約和公私鑰等的代碼。如果惡意攻擊者,將帶有嚴(yán)重漏洞的代碼公開在網(wǎng)絡(luò)上進(jìn)行傳播,誘導(dǎo)技術(shù)開發(fā)能力欠缺的組織使用,將會給使用者造成毀滅性打擊和不可挽回的損失。
第六層,激勵機(jī)制設(shè)計(jì)。智能合約要完成協(xié)作,通常是要設(shè)計(jì)相應(yīng)的經(jīng)濟(jì)激勵機(jī)制。經(jīng)濟(jì)激勵是區(qū)塊鏈技術(shù)里面非常有突破性的一個(gè)概念。一個(gè)真正健康有活力的區(qū)塊鏈生態(tài),需要一個(gè)很好的激勵機(jī)制。但是經(jīng)濟(jì)激勵設(shè)計(jì)得不夠安全,可能生態(tài)就無法建設(shè)起來,比如典型的類龐氏游戲,這一點(diǎn)大家要警惕。
三、智能合約三大問題
前面介紹的六層區(qū)塊鏈安全問題,都是依托相應(yīng)的技術(shù)層級來劃分的,越底層的技術(shù)越穩(wěn)定,比如密碼學(xué)從一開始選定之后,就不會輕易改動。
智能合約由于比較靈活,任何人都可以創(chuàng)建,所以相對容易出安全問題。
任何用戶都能創(chuàng)建一個(gè)有共識基礎(chǔ)的合約,就好像是每個(gè)老百姓都可以基于某部法律寫一份合同,這個(gè)法律是一種共識機(jī)制(平臺),這個(gè)合同也是有內(nèi)在的約束條款,使用DAPP就像簽訂合同,所有行為都要按照這個(gè)合同條款執(zhí)行。因此,智能合約的安全隱患,直接關(guān)系到用戶的財(cái)產(chǎn)損失。
到目前為止,安比實(shí)驗(yàn)室(SECBIT)發(fā)現(xiàn)了市場上智能合約的三大問題:
第一,以整數(shù)溢出為代表的安全漏洞。安全漏洞通常是被寫代碼的人不小心引入的,它可能引起合約某些功能部件失效,最嚴(yán)重的情況,可能導(dǎo)致黑客攻擊、用戶丟幣、甚至黑客憑空造出來很多的幣。比如BEC、SMT、EDU,曾經(jīng)就因整數(shù)溢出安全漏洞,被黑客攻擊從而導(dǎo)致幣值歸零。
第二,智能合約權(quán)限控制。一般智能合約里會設(shè)置一個(gè)管理員,管理員一般擁有超級權(quán)限,這類合約的安全隱患比較大,因?yàn)橐坏┕芾韱T的私鑰被盜用,很容易造成巨大損失。據(jù)安比實(shí)驗(yàn)室(SECBIT)不完全統(tǒng)計(jì),排名前570名的Token合約中,有342個(gè)合約存在只有管理員能調(diào)用的功能(Only Owner),不少合約更存在管理員任意鑄幣、燒幣、凍結(jié)賬戶、關(guān)停轉(zhuǎn)賬等過高權(quán)限 。
今年7月10日,加密貨幣交易平臺Bancor稱遭到攻擊,丟失了當(dāng)時(shí)折算法幣金額為1250萬美金的以太坊、1000萬美金的Bancor 代幣和100萬美金的Pundix代幣。經(jīng)過我們分析發(fā)現(xiàn),這次Bancor平臺被盜事件就是與BancorConverter合約有關(guān),攻擊者(黑客/內(nèi)鬼)通過獲取了管理員賬戶的私鑰,借用管理員身份盜走用戶的Token,給用戶造成巨大損失。
第三,規(guī)范性問題。現(xiàn)在很多智能合約的實(shí)現(xiàn)并沒有統(tǒng)一的規(guī)范。智能合約是以交互的方式多人協(xié)作,如果合約不規(guī)范,容易導(dǎo)致不同人對合約的行為產(chǎn)生誤解,從而出現(xiàn)大量的安全問題。
比如,今年陸續(xù)爆出的“假充值”事件,包括以太坊代幣、USDT等,根據(jù)一家機(jī)構(gòu)進(jìn)行的不完全統(tǒng)計(jì)顯示,市場上的單代幣合約有3619 份存在“假充值”漏洞風(fēng)險(xiǎn),其中不乏知名代幣。
正常情況下,充值過程中轉(zhuǎn)賬不成功,賬戶將無法充值,賬戶余額仍然是0。但如果合約存在“假充值”漏洞,在轉(zhuǎn)賬不成功的時(shí)候,系統(tǒng)并不會顯示充值失敗(值),交易所就會誤判結(jié)果為充值成功。如果有黑客發(fā)現(xiàn)這一漏洞,就會一直進(jìn)行“假”充值,之后再把這筆錢提出,給交易所帶來直接損失。
四、形式化驗(yàn)證的重要性
目前,市場上針對智能合約安全問題的檢驗(yàn)方式主要有三種,第一是測試,第二是審計(jì),第三是形式化驗(yàn)證。測試需要程序自動跑,通過各種可能性的輸入,檢測是否存在整數(shù)溢出漏洞等問題。但這個(gè)測試通常不可能百分之百覆蓋,一定會有遺漏存在。審計(jì)就是靠專家的專業(yè)知識去審核,但再專業(yè)的專家也可能會有疏漏。前兩種傳統(tǒng)的方式,并不能保證合約中沒有漏洞,但形式化驗(yàn)證能做到這一點(diǎn)。
形式化驗(yàn)證可以解決三類問題,第一類是安全無漏洞:通過數(shù)學(xué)推
責(zé)任編輯:售電衡衡
-
5大重點(diǎn)任務(wù)11個(gè)重點(diǎn)細(xì)分 河北加快構(gòu)建省級能源大數(shù)據(jù)中心
-
能源互聯(lián)網(wǎng)注入數(shù)字經(jīng)濟(jì)新動能 電力大數(shù)據(jù)實(shí)現(xiàn)更多價(jià)值
-
中國首個(gè)100%利用清潔能源運(yùn)營的大數(shù)據(jù)產(chǎn)業(yè)園投運(yùn)
2020-07-21清潔能源,清潔能源消納,青海
-
探索大數(shù)據(jù) 區(qū)塊鏈實(shí)現(xiàn)與能源互聯(lián)網(wǎng)良好契合
2020-06-09區(qū)塊鏈,電力行業(yè),能源互聯(lián)網(wǎng) -
基于區(qū)塊鏈的含安全約束分布式電力交易方法
-
區(qū)塊鏈在能源交易與協(xié)同調(diào)度的應(yīng)用前景:提升電力交易的自由度和實(shí)時(shí)響應(yīng)效率
2019-11-04區(qū)塊鏈在能源交易與協(xié)同