韓璇 袁勇 王飛躍
區(qū)塊鏈技術(shù)起源于比特幣[1],是以比特幣為代表的眾多數(shù)字貨幣方案的底層核心技術(shù),最初設(shè)計(jì)目的是解決電子支付中過度依賴可信第三方的問題.區(qū)塊鏈將哈希函數(shù)、Merkle樹、工作量證明(Proof of work,PoW)[2]等成熟的技術(shù)進(jìn)行重組,結(jié)合公鑰加密、數(shù)字簽名和零知識(shí)證明等密碼學(xué)技術(shù),成為一種全新的分布式基礎(chǔ)架構(gòu)和計(jì)算范式[3].
區(qū)塊鏈極具潛力,其應(yīng)用已從最初的數(shù)字貨幣延伸至金融、物聯(lián)網(wǎng)、智能制造等多個(gè)領(lǐng)域,引起了產(chǎn)業(yè)界和政府的廣泛關(guān)注.為了推進(jìn)區(qū)塊鏈技術(shù)的研究和應(yīng)用,國內(nèi)外先后成立了R3 CEV、超級(jí)賬本項(xiàng)目(Hyperledger)和中國分布式總賬基礎(chǔ)協(xié)議聯(lián)盟等區(qū)塊鏈聯(lián)盟,關(guān)注區(qū)塊鏈技術(shù)的理論創(chuàng)新和應(yīng)用推廣.各國政府機(jī)構(gòu)也高度關(guān)注區(qū)塊鏈的發(fā)展,加緊部署區(qū)塊鏈發(fā)展戰(zhàn)略與政策.2015年12月,英國政府發(fā)布了《分布式賬本技術(shù):超越區(qū)塊鏈》[4],預(yù)測(cè)區(qū)塊鏈將引起新一輪技術(shù)變革,建議加快區(qū)塊鏈理論推廣與應(yīng)用開發(fā)進(jìn)程.我國工信部于2016年10月發(fā)布了《中國區(qū)塊鏈技術(shù)與應(yīng)用發(fā)展白皮書(2016)》[5].國務(wù)院在《“十三五”國家信息化規(guī)劃》中將區(qū)塊鏈列入戰(zhàn)略性前沿科技之一.同年,世界經(jīng)濟(jì)論壇也對(duì)區(qū)塊鏈在金融場(chǎng)景下的應(yīng)用進(jìn)行預(yù)測(cè)分析,認(rèn)為區(qū)塊鏈將在跨境支付、保險(xiǎn)、貸款等多方面重塑金融市場(chǎng)基礎(chǔ)設(shè)施[6].
隨著理論研究的深入,區(qū)塊鏈展現(xiàn)出蓬勃生命力的同時(shí),自身的安全性問題逐漸顯露.針對(duì)區(qū)塊鏈數(shù)字貨幣應(yīng)用的安全威脅也呈現(xiàn)高發(fā)態(tài)勢(shì).各大交易平臺(tái)被盜事件頻發(fā)、智能合約漏洞凸顯、匿名交易實(shí)施犯罪等安全事件更加引發(fā)公眾對(duì)區(qū)塊鏈安全性的質(zhì)疑和對(duì)其發(fā)展前景的憂慮.2014年2月28日,曾經(jīng)世界規(guī)模最大的比特幣交易平臺(tái)Mt.Gox聲稱遭受交易延展性攻擊(Transaction malleability attack)[7],85萬個(gè)比特幣被盜,損失估計(jì)約4.67億美元,Mt.Gox最終破產(chǎn).2016年6月17日,黑客利用以太坊智能合約漏洞攻擊去中心自治組織(Decentralized autonomous organization,DAO)的眾籌項(xiàng)目The DAO,導(dǎo)致300多萬以太幣資產(chǎn)被分離出The DAO資金池,以太坊被迫進(jìn)行硬分叉彌補(bǔ)損失.2017年5月12日,比特幣勒索病毒W(wǎng)annaCry在全球范圍內(nèi)爆發(fā),百余國家遭到襲擊,其中包括我國部分高校和政府機(jī)構(gòu)網(wǎng)絡(luò).
區(qū)塊鏈的應(yīng)用發(fā)展迫切地需要系統(tǒng)的安全性研究作為指南.各國權(quán)威機(jī)構(gòu)也將研究重點(diǎn)轉(zhuǎn)向區(qū)塊鏈的安全性.2016年12月,歐盟網(wǎng)絡(luò)與信息安全局ENISA發(fā)布《分布式賬本技術(shù)與網(wǎng)絡(luò)安全:加強(qiáng)金融領(lǐng)域的信息安全》[8],結(jié)合傳統(tǒng)網(wǎng)絡(luò)空間安全問題,分析了區(qū)塊鏈面臨的安全技術(shù)挑戰(zhàn).2018年1月,美國國家標(biāo)準(zhǔn)與技術(shù)研究院NIST發(fā)布了《區(qū)塊鏈技術(shù)總覽》[9],總結(jié)了區(qū)塊鏈應(yīng)用在區(qū)塊鏈控制、惡意用戶、無信任和用戶身份等方面的局限性和概念誤區(qū).
區(qū)塊鏈發(fā)展還處于初級(jí)探索階段,研究區(qū)塊鏈的安全性問題具有多方面的意義.第一,研究區(qū)塊鏈的安全性有助于促進(jìn)科學(xué)創(chuàng)新.區(qū)塊鏈不是獨(dú)立而生的技術(shù),其安全性涉及底層加密方案、分布式一致性、網(wǎng)絡(luò)系統(tǒng)安全以及經(jīng)濟(jì)學(xué)激勵(lì)機(jī)制等諸多層面.區(qū)塊鏈的安全性研究給多學(xué)科提出了更高的技術(shù)要求,必將促進(jìn)密碼學(xué)、分布式、網(wǎng)絡(luò)安全、博弈論等學(xué)科的創(chuàng)新發(fā)展.第二,研究區(qū)塊鏈的安全性有助于加速技術(shù)推廣.目前,理論安全性分析不完備、缺乏代碼評(píng)估、安全事件頻發(fā)等不安全因素限制了區(qū)塊鏈的發(fā)展.研究安全高效的區(qū)塊鏈方案可適用于更多的應(yīng)用場(chǎng)景,逐步拓寬的應(yīng)用實(shí)例也將在實(shí)踐中更好地檢驗(yàn)區(qū)塊鏈的安全性.第三,研究區(qū)塊鏈安全性有助于實(shí)現(xiàn)可信的可編程社會(huì).區(qū)塊鏈支持的智能合約具有可編程性和自動(dòng)執(zhí)行性,呈現(xiàn)出一定的智能化特征.研究區(qū)塊鏈的安全性,有助于提高智能合約的安全性和模塊化,簡化開發(fā)過程,增強(qiáng)互操作性.安全的區(qū)塊鏈架構(gòu)和自動(dòng)執(zhí)行的智能合約可以從技術(shù)上強(qiáng)制合約的執(zhí)行,降低違約風(fēng)險(xiǎn),構(gòu)建可信的可編程社會(huì).第四,研究區(qū)塊鏈的安全性有助于實(shí)現(xiàn)可控監(jiān)管.區(qū)塊鏈的不可篡改性和匿名性為實(shí)現(xiàn)監(jiān)管帶來了挑戰(zhàn).監(jiān)管機(jī)制可以預(yù)防、檢測(cè)系統(tǒng)中的不法行為,是系統(tǒng)受攻擊后的安全修復(fù)手段.分析現(xiàn)有區(qū)塊鏈漏洞、潛在攻擊和隱私保護(hù)機(jī)制有利于制定網(wǎng)絡(luò)監(jiān)測(cè)策略,設(shè)計(jì)更高效、安全的監(jiān)管機(jī)制.
本文著眼于區(qū)塊鏈技術(shù)中的安全問題,定義了區(qū)塊鏈系統(tǒng)設(shè)計(jì)的安全目標(biāo),梳理了區(qū)塊鏈各層級(jí)存在的安全隱患,對(duì)現(xiàn)有的安全措施進(jìn)行對(duì)比分析,提出了用于評(píng)估區(qū)塊鏈網(wǎng)絡(luò)攻防策略的平行安全概念框架,并對(duì)未來區(qū)塊鏈安全方向的研究重點(diǎn)進(jìn)行展望,以期對(duì)未來區(qū)塊鏈技術(shù)的理論研究和應(yīng)用發(fā)展有所助益.
本文的組織結(jié)構(gòu)為:第1節(jié)簡要介紹區(qū)塊鏈的基本概念,包括比特幣區(qū)塊鏈的運(yùn)行原理、區(qū)塊鏈的一般定義、特點(diǎn)、分類和面臨的安全技術(shù)挑戰(zhàn);第2節(jié)從安全性和隱私保護(hù)兩方面給出了區(qū)塊鏈的系統(tǒng)級(jí)安全性目標(biāo);第3節(jié)從安全角度剖析區(qū)塊鏈的體系架構(gòu),分析區(qū)塊鏈各層次存在的安全隱患、潛在的攻擊和現(xiàn)有的安全措施;第4節(jié)提出區(qū)塊鏈上的平行安全概念框架;第5節(jié)提出未來區(qū)塊鏈在安全方面的重點(diǎn)研究方向;第6節(jié)總結(jié)全文.
2008年10月,化名為“中本聰”的學(xué)者在密碼學(xué)論壇上公開了《比特幣:一種點(diǎn)對(duì)點(diǎn)的電子現(xiàn)金系統(tǒng)》一文[1],提出了利用PoW和時(shí)間戳機(jī)制構(gòu)造交易區(qū)塊的鏈?zhǔn)浇Y(jié)構(gòu),剔除了可信第三方,實(shí)現(xiàn)了去中心化的匿名支付.比特幣于2009年1月上線并發(fā)布創(chuàng)世塊,標(biāo)志著首個(gè)基于區(qū)塊鏈技術(shù)應(yīng)用的誕生.根據(jù)BTC.com網(wǎng)站數(shù)據(jù)顯示,截至2018年9月20日,已發(fā)行1700余萬枚比特幣,總市值超過1100億美元.比特幣是迄今為止區(qū)塊鏈技術(shù)最成功的應(yīng)用,是眾多區(qū)塊鏈平臺(tái)的開發(fā)基礎(chǔ),也是學(xué)術(shù)界的研究重點(diǎn).本節(jié)以比特幣為例,簡要介紹比特幣區(qū)塊鏈的工作原理、區(qū)塊鏈的定義、特點(diǎn)、分類和面臨的安全技術(shù)挑戰(zhàn)等基本內(nèi)容.
比特幣運(yùn)行在P2P網(wǎng)絡(luò)中,是一種開放的電子現(xiàn)金系統(tǒng),允許節(jié)點(diǎn)自由加入,無需通過可信第三方注冊(cè)認(rèn)證.節(jié)點(diǎn)使用公鑰的哈希值作為自己的數(shù)字假名,也被稱為地址,具備一定的匿名性.交易是比特幣網(wǎng)絡(luò)中傳播和存儲(chǔ)的基本數(shù)據(jù)實(shí)體,常利用數(shù)字簽名實(shí)現(xiàn)代幣等數(shù)字資產(chǎn)所有權(quán)的轉(zhuǎn)移.交易不僅要經(jīng)過驗(yàn)證,還要在打包成區(qū)塊后經(jīng)全網(wǎng)節(jié)點(diǎn)達(dá)成共識(shí),才會(huì)被記錄到比特幣的區(qū)塊鏈中.比特幣中采用的PoW機(jī)制保證網(wǎng)絡(luò)中節(jié)點(diǎn)共同維護(hù)一份相同的區(qū)塊鏈賬本.PoW的實(shí)質(zhì)是求解一個(gè)滿足部分碰撞的哈希值的原像.節(jié)點(diǎn)競(jìng)爭完成PoW求解的過程被稱為挖礦,這些節(jié)點(diǎn)被稱為礦工.礦工通過挖礦來競(jìng)爭記賬權(quán),即對(duì)區(qū)塊鏈進(jìn)行寫操作的權(quán)限.礦工挖礦成功后,可以將打包好的交易區(qū)塊連接到區(qū)塊鏈末尾,并獲得一筆比特幣獎(jiǎng)勵(lì),以coinbase格式保存在區(qū)塊中.比特幣每產(chǎn)生2016個(gè)區(qū)塊,根據(jù)這些區(qū)塊的生成速率來調(diào)整PoW 的難度,保證平均10分鐘生成一個(gè)區(qū)塊.比特幣中首個(gè)區(qū)塊被稱為創(chuàng)世塊,也是區(qū)塊鏈的頭部,最新鏈接到區(qū)塊鏈上的則為尾部.挖礦生成區(qū)塊的過程也是比特幣的發(fā)行過程.初始每個(gè)區(qū)塊獎(jiǎng)勵(lì)50枚比特幣,每4年減半,直至達(dá)到最小的單位聰(Satoshi,1Satoshi=10-8BTC)不能再減半為止,后續(xù)挖礦不再發(fā)行比特幣,總量約2100萬.
比特幣通過哈希函數(shù)將交易區(qū)塊按時(shí)間順序前后相連,形成鏈?zhǔn)浇Y(jié)構(gòu),區(qū)塊鏈結(jié)構(gòu)如圖1所示.每個(gè)區(qū)塊包含交易信息和區(qū)塊頭部兩部分.交易信息是區(qū)塊的主體部分,將交易以Merkle樹結(jié)構(gòu)存儲(chǔ).最終生成Merkle樹的根作為交易摘要被記錄在區(qū)塊頭部中,便于交易的驗(yàn)證和查找.區(qū)塊頭部還記錄了區(qū)塊位置、PoW參數(shù)、時(shí)間戳和填充字段等信息.區(qū)塊通過保存前驅(qū)區(qū)塊的哈希值來實(shí)現(xiàn)區(qū)塊間的連接關(guān)系,標(biāo)識(shí)自己在區(qū)塊鏈中的位置.PoW參數(shù)主要包括比特幣采用的PoW難度和礦工求解得到的隨機(jī)數(shù),用于驗(yàn)證礦工是否挖礦成功.時(shí)間戳表明生成區(qū)塊時(shí)礦工的本地時(shí)間.填充字段內(nèi)包含當(dāng)前區(qū)塊鏈的版本參數(shù)等信息.
圖1 比特幣區(qū)塊鏈結(jié)構(gòu)Fig.1 Structure of bitcoin blockchain
新用戶生成公私鑰對(duì)和地址后加入比特幣網(wǎng)絡(luò),可通過挖礦或者他人轉(zhuǎn)賬的方式獲得比特幣.用戶首先創(chuàng)建并廣播交易.網(wǎng)絡(luò)中的節(jié)點(diǎn)接收交易后,將該交易轉(zhuǎn)發(fā)給相鄰的幾個(gè)節(jié)點(diǎn),通過泛洪式的傳播機(jī)制將交易在整個(gè)比特幣網(wǎng)絡(luò)中進(jìn)行傳播.礦工收到交易首先進(jìn)行驗(yàn)證,若交易有效,則保存在自己本地的交易池中,等待打包成區(qū)塊;若交易無效,則丟棄.之后,礦工按照一定規(guī)則從交易池中選取交易,構(gòu)造Merkle樹.然后將當(dāng)前區(qū)塊鏈尾部區(qū)塊的哈希值、Merkle樹的根和PoW難度作為求解PoW的輸入,通過窮舉的方式得到滿足條件的隨機(jī)數(shù),填充區(qū)塊的頭部信息.隨后,礦工將新生成的區(qū)塊連接到區(qū)塊鏈尾部并廣播新區(qū)塊鏈,等待網(wǎng)絡(luò)節(jié)點(diǎn)達(dá)成共識(shí).其他礦工收到一個(gè)或多個(gè)新區(qū)塊鏈后,會(huì)對(duì)新區(qū)塊鏈中的交易、PoW等進(jìn)行逐一驗(yàn)證,并與本地存儲(chǔ)的區(qū)塊鏈進(jìn)行對(duì)比.最終,誠實(shí)的礦工將在最長的有效區(qū)塊鏈上達(dá)成共識(shí),并在尾部繼續(xù)挖礦.
區(qū)塊鏈?zhǔn)且环N典型的分布式賬本技術(shù),通過共識(shí)等多邊自治技術(shù)手段支持?jǐn)?shù)據(jù)驗(yàn)證、共享、計(jì)算、存儲(chǔ)等功能.在不同應(yīng)用場(chǎng)景下,區(qū)塊鏈可以存儲(chǔ)并處理不同數(shù)據(jù).為了簡化表述,本文以交易作為區(qū)塊鏈存儲(chǔ)和處理的數(shù)據(jù)主體展開介紹.
從區(qū)塊鏈的組織結(jié)構(gòu)和運(yùn)行原理來看,可以狹義地將區(qū)塊鏈視為一種以區(qū)塊為單位的、按照時(shí)間順序前后相連的單向鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu),通過共識(shí)機(jī)制、密碼學(xué)組件和系統(tǒng)容錯(cuò)等技術(shù)保證分布式網(wǎng)絡(luò)中節(jié)點(diǎn)共享數(shù)據(jù)的一致性和安全性.從應(yīng)用角度來看,區(qū)塊鏈?zhǔn)且环N集成了密碼學(xué)算法、分布式網(wǎng)絡(luò)、共識(shí)機(jī)制、博弈論等技術(shù)的復(fù)合分布式網(wǎng)絡(luò)技術(shù),利用鏈?zhǔn)絽^(qū)塊結(jié)構(gòu)存儲(chǔ)數(shù)據(jù),利用共識(shí)機(jī)制實(shí)現(xiàn)交易的更新和共享,利用密碼學(xué)技術(shù)保證交易的安全性,利用自動(dòng)化腳本代碼實(shí)現(xiàn)可編程性和自治性,利用經(jīng)濟(jì)學(xué)激勵(lì)機(jī)制激發(fā)節(jié)點(diǎn)自主維護(hù)系統(tǒng)穩(wěn)定,構(gòu)成了一種全新的、自治的分布式基礎(chǔ)架構(gòu)與計(jì)算范式[3].
如何在分布式網(wǎng)絡(luò)中實(shí)現(xiàn)一致性是區(qū)塊鏈技術(shù)的核心問題之一.歷經(jīng)10年發(fā)展,區(qū)塊鏈先后具備去中心化、可追溯性、不可篡改性、不可偽造性、不可否認(rèn)性和可編程性等特點(diǎn).
去中心化是區(qū)塊鏈發(fā)展伊始最顯著的優(yōu)勢(shì).相比于傳統(tǒng)的分布式一致性協(xié)議,區(qū)塊鏈大多建立在開放網(wǎng)絡(luò)中.PoW 等共識(shí)機(jī)制能有效解決拜占庭將軍問題,允許節(jié)點(diǎn)數(shù)量擴(kuò)展,在部分節(jié)點(diǎn)偏離協(xié)議執(zhí)行甚至實(shí)施惡意攻擊的情況下,仍能保證一致性.而大多數(shù)Paxos系列的分布式一致性算法并不考慮拜占庭將軍問題[10-11],在惡意節(jié)點(diǎn)實(shí)施主動(dòng)攻擊時(shí),Paxos算法無法保證消息傳輸?shù)囊恢滦?雖然實(shí)用的拜占庭容錯(cuò)協(xié)議(Practical Byzantine fault tolerance,PBFT)[12]等拜占庭一致性算法可以在部分節(jié)點(diǎn)實(shí)施惡意攻擊的情況下保持系統(tǒng)穩(wěn)定,但是這些算法在異步網(wǎng)絡(luò)中最多支持1/3容錯(cuò),通信復(fù)雜度高,效率較低,不適用于允許節(jié)點(diǎn)自由加入的開放式網(wǎng)絡(luò)環(huán)境.去中心化的區(qū)塊鏈還可以避免單點(diǎn)失效問題,系統(tǒng)吞吐量不受單一節(jié)點(diǎn)限制.在Raft[13]、VR(Viewstamped replication,VR)[14]等依賴強(qiáng)領(lǐng)導(dǎo)關(guān)系的一致性算法中,如果領(lǐng)導(dǎo)節(jié)點(diǎn)宕機(jī)或者被攻擊者控制,那么整個(gè)系統(tǒng)的安全性和吞吐量都將受到嚴(yán)重影響,系統(tǒng)的恢復(fù)過程也十分復(fù)雜.相比之下,區(qū)塊鏈中PoW、權(quán)益證明(Proof of stake,PoS)[15]等共識(shí)機(jī)制不需要中心節(jié)點(diǎn)或特權(quán)節(jié)點(diǎn),在設(shè)計(jì)上避免了單點(diǎn)失效問題.
區(qū)塊鏈結(jié)合密碼學(xué)技術(shù),可以保證交易的可追溯性、不可篡改性、不可否認(rèn)性和不可偽造性,支持?jǐn)?shù)據(jù)安全共享和大規(guī)模協(xié)同計(jì)算,也可實(shí)現(xiàn)對(duì)用戶身份和機(jī)密數(shù)據(jù)的隱私保護(hù),更適用于需要高隱私性和安全性的分布式應(yīng)用場(chǎng)景中.可追溯性是指交易的每次變更都會(huì)按照時(shí)間順序記錄在區(qū)塊鏈上,前后關(guān)聯(lián),可以查詢交易從發(fā)布源頭到最新狀態(tài)間的整個(gè)變更流程.不可篡改性和不可否認(rèn)性指交易等數(shù)據(jù)一經(jīng)驗(yàn)證達(dá)成共識(shí)被寫入?yún)^(qū)塊鏈后,任何人無法對(duì)數(shù)據(jù)進(jìn)行修改和抵賴.不可偽造性指任何人無法通過有效手段偽造可通過礦工驗(yàn)證的交易,更無法偽造整條交易變更記錄.相比傳統(tǒng)的中心化數(shù)據(jù)庫,利用哈希函數(shù)的單向性和耐碰撞性、數(shù)字簽名的防偽認(rèn)證功能和分布式共識(shí)的容錯(cuò)能力,區(qū)塊鏈極大增加了攻擊者惡意篡改、偽造和否認(rèn)數(shù)據(jù)操作的攻擊難度和成本,有效提升數(shù)據(jù)的安全性.
以太坊(Ethereum)平臺(tái)上支持的智能合約為區(qū)塊鏈增添了可編程屬性[16],將區(qū)塊鏈構(gòu)建成一個(gè)可編程的數(shù)據(jù)共享平臺(tái)[17].具有可編程性的區(qū)塊鏈高效地解決了傳統(tǒng)合約中依賴中介等第三方維系、合約執(zhí)行成本高的問題,降低了合約參與方違約風(fēng)險(xiǎn)和誠實(shí)合約方的經(jīng)濟(jì)損失.
根據(jù)區(qū)塊鏈維護(hù)過程中是否需要中心節(jié)點(diǎn)或者權(quán)限優(yōu)勢(shì)節(jié)點(diǎn)授權(quán),區(qū)塊鏈可以被分為無許可區(qū)塊鏈(Permissionless blockchain)和許可區(qū)塊鏈(Permissioned blockchain)兩類[18].
無許可區(qū)塊鏈?zhǔn)且环N完全去中心的分布式賬本技術(shù),允許節(jié)點(diǎn)自由加入和退出,無須通過中心節(jié)點(diǎn)注冊(cè)、認(rèn)證和授權(quán).網(wǎng)絡(luò)節(jié)點(diǎn)地位平等,共享整個(gè)區(qū)塊鏈賬本,可自由選擇是否參與數(shù)據(jù)驗(yàn)證、挖礦等維護(hù)系統(tǒng)穩(wěn)定的關(guān)鍵環(huán)節(jié).無許可區(qū)塊鏈不依賴中心節(jié)點(diǎn)提供安全保障,需要大量網(wǎng)絡(luò)節(jié)點(diǎn)自主參與,提供數(shù)據(jù)冗余.因此,無許可區(qū)塊鏈要具備支持大規(guī)模網(wǎng)絡(luò)和數(shù)據(jù)擴(kuò)展的能力,對(duì)共識(shí)機(jī)制的擴(kuò)展性、容錯(cuò)能力和效率能耗等方面提出了更高的要求.一般地,無許可區(qū)塊鏈缺乏身份認(rèn)證和隱私保護(hù)機(jī)制,還需要依靠經(jīng)濟(jì)激勵(lì)機(jī)制激勵(lì)網(wǎng)絡(luò)節(jié)點(diǎn)自發(fā)地維護(hù)系統(tǒng),面臨安全隱患多、匿名性弱、激勵(lì)策略不相容等問題.無許可區(qū)塊鏈適用于完全公開的、全民監(jiān)督的、全網(wǎng)自治的應(yīng)用場(chǎng)景中,如食品安全供應(yīng)鏈溯源、知識(shí)產(chǎn)權(quán)管理等.比特幣就是經(jīng)典的無許可區(qū)塊鏈應(yīng)用案例,此類應(yīng)用也是目前區(qū)塊鏈研發(fā)的主流.本文更側(cè)重研究無許可區(qū)塊鏈中的安全性問題.
相比于無許可區(qū)塊鏈,許可區(qū)塊鏈中存在一個(gè)或多個(gè)節(jié)點(diǎn)具有較高權(quán)限,這些節(jié)點(diǎn)可以是可信第三方,也可能幾個(gè)高權(quán)限節(jié)點(diǎn)之間仍然互不信任,需要協(xié)商制定區(qū)塊鏈維護(hù)規(guī)則和訪問控制權(quán)限,僅經(jīng)過相應(yīng)功能授權(quán)的節(jié)點(diǎn)才可訪問數(shù)據(jù)、參與系統(tǒng)維護(hù)[19],與區(qū)塊鏈去中心化的設(shè)計(jì)初衷相違背.許可區(qū)塊鏈?zhǔn)且环N受限共享分布式賬本技術(shù),具有維護(hù)成本低、共識(shí)效率高、匿名性強(qiáng)、數(shù)據(jù)吞吐量大等優(yōu)勢(shì).但是,許可區(qū)塊鏈往往面臨高權(quán)限節(jié)點(diǎn)易受攻擊、信任缺失等問題.多數(shù)許可區(qū)塊鏈共識(shí)不依賴復(fù)雜的計(jì)算問題,計(jì)算敏感度低,降低了攻擊者的攻擊成本.許可區(qū)塊鏈適用于小范圍的、數(shù)據(jù)交互頻繁的組織間或組織內(nèi)部共享數(shù)據(jù)服務(wù)等應(yīng)用場(chǎng)景,如跨行清算、醫(yī)療保險(xiǎn)理賠等.英國央行聯(lián)合倫敦大學(xué)提出的法定數(shù)字貨幣框架RSCoin方案是典型的許可區(qū)塊鏈[20],由央行作為中心節(jié)點(diǎn)負(fù)責(zé)身份認(rèn)證、下層節(jié)點(diǎn)分組和區(qū)塊鏈數(shù)據(jù)整合等操作,現(xiàn)已進(jìn)入實(shí)驗(yàn)測(cè)試階段.
區(qū)塊鏈在數(shù)字貨幣領(lǐng)域的發(fā)展如火如荼,展現(xiàn)出蓬勃生命力的同時(shí),也面臨安全和隱私方面的嚴(yán)峻挑戰(zhàn).
首先,區(qū)塊鏈面臨理論模型與實(shí)際網(wǎng)絡(luò)狀況相差甚遠(yuǎn)的安全性分析的挑戰(zhàn)[21].本質(zhì)上,無中心節(jié)點(diǎn)的區(qū)塊鏈的安全性依賴于大量的數(shù)據(jù)冗余.即使攻擊者有能力控制某節(jié)點(diǎn)進(jìn)而偽造、篡改、刪除該節(jié)點(diǎn)的有效數(shù)據(jù),但是要同時(shí)對(duì)眾多網(wǎng)絡(luò)節(jié)點(diǎn)實(shí)施攻擊是十分困難的.然而,在實(shí)際區(qū)塊鏈網(wǎng)絡(luò)中,由于各節(jié)點(diǎn)具備的安全防護(hù)等級(jí)參差不齊,攻擊者可以利用網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),僅憑少量資源即可成功實(shí)施小范圍攻擊,破壞系統(tǒng)的安全性與穩(wěn)定性[22].
其次,區(qū)塊鏈結(jié)構(gòu)復(fù)雜,缺乏系統(tǒng)級(jí)安全評(píng)估手段.區(qū)塊鏈的發(fā)展仍處于初級(jí)探索階段,它所包含的共識(shí)算法、激勵(lì)機(jī)制、智能合約等關(guān)鍵環(huán)節(jié)的安全性尚待評(píng)估,也缺乏代碼評(píng)估機(jī)制以檢測(cè)系統(tǒng)漏洞[23].區(qū)塊鏈建立在對(duì)等網(wǎng)絡(luò)(Peer to peer,P2P)中,與客戶端/服務(wù)器(Client/Sever,C/S)網(wǎng)絡(luò)系統(tǒng)結(jié)構(gòu)不同,傳統(tǒng)的防火墻、入侵檢測(cè)等網(wǎng)絡(luò)安全技術(shù)不能完全適用.
另外,計(jì)算技術(shù)的發(fā)展為區(qū)塊鏈安全性帶來威脅.隨著量子計(jì)算的發(fā)展,區(qū)塊鏈底層依賴的哈希函數(shù)、公鑰加密算法、數(shù)字簽名、零知識(shí)證明等技術(shù)的安全性也將受到影響[24].
最后,完全去中心的匿名區(qū)塊鏈系統(tǒng)缺乏有效的監(jiān)管手段[25],當(dāng)攻擊者對(duì)系統(tǒng)安全性造成威脅、非法用戶利用區(qū)塊鏈實(shí)施違法行為時(shí),系統(tǒng)無法對(duì)攻擊者和非法用戶進(jìn)行追責(zé).一旦攻擊成功,由于區(qū)塊鏈的不可篡改性,非法交易無法撤回,將給用戶造成不可逆轉(zhuǎn)的經(jīng)濟(jì)損失.匿名的區(qū)塊鏈平臺(tái)也將成為犯罪行為滋生、不良內(nèi)容傳播的溫巢.
根據(jù)網(wǎng)絡(luò)系統(tǒng)的安全需求,結(jié)合區(qū)塊鏈的特點(diǎn),區(qū)塊鏈系統(tǒng)構(gòu)建的基本安全目標(biāo)是通過密碼學(xué)和網(wǎng)絡(luò)安全等技術(shù)手段,保護(hù)區(qū)塊鏈系統(tǒng)中的數(shù)據(jù)安全、共識(shí)安全、隱私保護(hù)、智能合約安全和內(nèi)容安全,各安全目標(biāo)之間的關(guān)系如圖2所示.其中,數(shù)據(jù)安全是區(qū)塊鏈的首要安全目標(biāo).共識(shí)安全、智能合約安全、隱私保護(hù)和內(nèi)容安全等安全目標(biāo)與數(shù)據(jù)安全聯(lián)系緊密,是數(shù)據(jù)安全目標(biāo)在區(qū)塊鏈各層級(jí)中的細(xì)化,也是區(qū)塊鏈設(shè)計(jì)中需要特別考慮的安全要素.
圖2 區(qū)塊鏈安全目標(biāo)Fig.2 Security objectives on blockchain
數(shù)據(jù)安全是區(qū)塊鏈的基本安全目標(biāo).區(qū)塊鏈作為一種去中心化的存儲(chǔ)系統(tǒng),需要存儲(chǔ)包括交易、用戶信息、智能合約代碼和執(zhí)行中間狀態(tài)等海量數(shù)據(jù).這些數(shù)據(jù)至關(guān)重要,是區(qū)塊鏈安全防護(hù)的首要實(shí)體.本文采用CIA信息安全三元組來定義區(qū)塊鏈的數(shù)據(jù)安全,即保密性(Confidentiality)、完整性(Integrity)和可用性(Availability).
保密性:規(guī)定了不同用戶對(duì)不同數(shù)據(jù)的訪問控制權(quán)限,僅有權(quán)限的用戶才可以對(duì)數(shù)據(jù)進(jìn)行相應(yīng)的操作,信息不能被未授權(quán)用戶知曉和使用,引申出隱私保護(hù)性質(zhì).保密性具體要求區(qū)塊鏈設(shè)置相應(yīng)的認(rèn)證規(guī)則、訪問控制和審計(jì)機(jī)制.認(rèn)證規(guī)則規(guī)定了每個(gè)節(jié)點(diǎn)加入?yún)^(qū)塊鏈的方式和有效的身份識(shí)別方式,是實(shí)現(xiàn)訪問控制的基礎(chǔ).訪問控制規(guī)定了訪問控制的技術(shù)方法和每個(gè)用戶的訪問權(quán)限.在無許可區(qū)塊鏈中,如何通過去中心化方式實(shí)現(xiàn)有效的訪問控制尤為重要.審計(jì)監(jiān)管是指區(qū)塊鏈能夠提供有效的安全事件監(jiān)測(cè)、追蹤、分析、追責(zé)等一整套監(jiān)管方案.
完整性:是指區(qū)塊鏈中的任何數(shù)據(jù)不能被未經(jīng)過授權(quán)的用戶或者以不可察覺的方式實(shí)施偽造、修改、刪除等非法操作.具體指用戶發(fā)布的交易信息不可篡改、不可偽造;礦工挖礦成功生成區(qū)塊獲得全網(wǎng)共識(shí)后不可篡改、不可偽造;智能合約的狀態(tài)變量、中間結(jié)果和最終輸出不可篡改、不可偽造;區(qū)塊鏈系統(tǒng)中一切行為不可抵賴,如攻擊者無法抵賴自己的雙重支付(Double spending)攻擊行為.完整性在交易等底層數(shù)據(jù)層面上往往需要數(shù)字簽名、哈希函數(shù)等密碼組件支持.在共識(shí)層面上,數(shù)據(jù)完整性的實(shí)現(xiàn)則更加依賴共識(shí)安全.
可用性:指數(shù)據(jù)可以在任何時(shí)間被有權(quán)限的用戶訪問和使用.區(qū)塊鏈中的可用性包括四個(gè)方面.首先,可用性要求區(qū)塊鏈具備在遭受攻擊時(shí)仍然能夠繼續(xù)提供可靠服務(wù)的能力,需要依賴支持容錯(cuò)的共識(shí)機(jī)制和分布式入侵容忍等技術(shù)實(shí)現(xiàn).其次,可用性要求當(dāng)區(qū)塊鏈?zhǔn)艿焦魧?dǎo)致部分功能受損的情況下,具備短時(shí)間內(nèi)修復(fù)和重構(gòu)的能力,需要依賴網(wǎng)絡(luò)的可信重構(gòu)等技術(shù)實(shí)現(xiàn).另外,可用性要求區(qū)塊鏈可以提供無差別服務(wù).即使是新加入網(wǎng)絡(luò)的節(jié)點(diǎn)依舊可以通過有效方式獲取正確的區(qū)塊鏈數(shù)據(jù),保證新節(jié)點(diǎn)的數(shù)據(jù)安全.可用性亦指用戶的訪問數(shù)據(jù)請(qǐng)求可以在有限時(shí)間內(nèi)得到區(qū)塊鏈網(wǎng)絡(luò)響應(yīng),進(jìn)一步可引申出可擴(kuò)展性的含義.可擴(kuò)展性是指區(qū)塊鏈具有高吞吐量、低響應(yīng)時(shí)延,即使在網(wǎng)絡(luò)節(jié)點(diǎn)規(guī)模龐大或者通信量激增的情況下,仍能提供穩(wěn)定的服務(wù).
共識(shí)機(jī)制是區(qū)塊鏈的核心,共識(shí)安全對(duì)區(qū)塊鏈的數(shù)據(jù)安全起到重要的支撐作用.本文引用比特幣骨干協(xié)議[26]中定義的一致性(Consistency)和活性(Liveness)兩個(gè)安全屬性來衡量和評(píng)估區(qū)塊鏈的共識(shí)安全.
一致性:要求任何已經(jīng)被記錄在區(qū)塊鏈上并達(dá)成共識(shí)的交易都無法更改,即一旦網(wǎng)絡(luò)中節(jié)點(diǎn)在一條區(qū)塊鏈上達(dá)成共識(shí),那么任意攻擊者都無法通過有效手段產(chǎn)生一條區(qū)塊鏈分叉,使得網(wǎng)絡(luò)中的節(jié)點(diǎn)拋棄原區(qū)塊鏈,在新區(qū)塊鏈分叉上達(dá)成共識(shí).一致性是共識(shí)機(jī)制最重要的安全目標(biāo).根據(jù)共識(shí)機(jī)制在達(dá)成共識(shí)的過程中是否出現(xiàn)短暫分叉,一致性又分為弱一致性和強(qiáng)一致性.弱一致性是指在網(wǎng)絡(luò)節(jié)點(diǎn)達(dá)成共識(shí)的過程中有短暫分叉的出現(xiàn).一些情況下,節(jié)點(diǎn)可能會(huì)無法立即在兩個(gè)區(qū)塊鏈分叉中做出選擇,形成左右搖擺的情況.強(qiáng)一致性是指網(wǎng)絡(luò)中新區(qū)塊一旦生成,網(wǎng)絡(luò)節(jié)點(diǎn)即可判斷是否對(duì)它達(dá)成共識(shí),不會(huì)出現(xiàn)階段性分叉.
活性:要求誠實(shí)節(jié)點(diǎn)提交的合法數(shù)據(jù)終將由全網(wǎng)節(jié)點(diǎn)達(dá)成共識(shí)并被記錄在區(qū)塊鏈上.合法數(shù)據(jù)包括誠實(shí)節(jié)點(diǎn)提交的合法交易、正確執(zhí)行的智能合約中間狀態(tài)變量、結(jié)果等.活性保證了誠實(shí)節(jié)點(diǎn)能夠抵抗拒絕服務(wù)攻擊,維護(hù)區(qū)塊鏈持續(xù)可靠運(yùn)行.
隱私保護(hù)是對(duì)用戶身份信息等用戶不愿公開的敏感信息的保護(hù).在區(qū)塊鏈中,主要針對(duì)用戶身份信息和交易信息兩部分內(nèi)容.因此,區(qū)塊鏈的隱私保護(hù)可劃分為身份隱私保護(hù)和交易隱私保護(hù).
身份隱私保護(hù):要求用戶的身份信息、物理地址、IP地址與區(qū)塊鏈上的用戶公鑰、地址等公開信息之間是不關(guān)聯(lián)的.任何未授權(quán)節(jié)點(diǎn)僅依靠區(qū)塊鏈上公開的數(shù)據(jù)無法獲取有關(guān)用戶身份的任何信息,也不能通過網(wǎng)絡(luò)監(jiān)聽、流量分析等網(wǎng)絡(luò)技術(shù)手段對(duì)用戶交易和身份進(jìn)行追蹤.
交易隱私保護(hù):要求交易本身的數(shù)據(jù)信息對(duì)非授權(quán)節(jié)點(diǎn)匿名.在比特幣中特指交易金額、交易的發(fā)送方公鑰、接收方地址以及交易的購買內(nèi)容等其他交易信息.任何未授權(quán)節(jié)點(diǎn)無法通過有效的技術(shù)手段獲取交易相關(guān)的知識(shí).在一些需要高隱私保護(hù)強(qiáng)度的區(qū)塊鏈中,還要求割裂交易與交易之間的關(guān)聯(lián)性,即非授權(quán)節(jié)點(diǎn)無法有效推斷兩個(gè)交易是否具有前后連續(xù)性、是否屬于同一用戶等關(guān)聯(lián)關(guān)系.
根據(jù)智能合約的整個(gè)生命周期運(yùn)作流程,智能合約安全可以被劃分為編寫安全和運(yùn)行安全兩部分.
編寫安全:側(cè)重智能合約的文本安全和代碼安全兩方面.文本安全是實(shí)現(xiàn)智能合約穩(wěn)定運(yùn)行的第一步.智能合約開發(fā)人員在編寫智能合約之前,需要根據(jù)實(shí)際功能設(shè)計(jì)完善的合約文本,避免由合約文本錯(cuò)誤導(dǎo)致智能合約執(zhí)行異常甚至出現(xiàn)死鎖等情況.代碼安全要求智能合約開發(fā)人員使用安全成熟的語言,嚴(yán)格按照合約文本進(jìn)行編寫,確保合約代碼與合約文本的一致性,且代碼編譯后沒有漏洞.
運(yùn)行安全:涉及智能合約在實(shí)際運(yùn)行過程中的安全保護(hù)機(jī)制,是智能合約在不可信的區(qū)塊鏈環(huán)境中安全運(yùn)行的重要目標(biāo).運(yùn)行安全指智能合約在執(zhí)行過程中一旦出現(xiàn)漏洞甚至被攻擊,不會(huì)對(duì)節(jié)點(diǎn)本地系統(tǒng)設(shè)備造成影響,也不會(huì)使調(diào)用該合約的其他合約或程序執(zhí)行異常,包括模塊化和隔離運(yùn)行兩方面.模塊化要求智能合約標(biāo)準(zhǔn)化管理,具有高內(nèi)聚低耦合的特點(diǎn),可移植,可通過接口實(shí)現(xiàn)智能合約的安全調(diào)用.遭受攻擊后的異常結(jié)果并不會(huì)通過合約調(diào)用的方式繼續(xù)蔓延,保證了智能合約的可用性.隔離運(yùn)行要求智能合約在虛擬機(jī)等隔離環(huán)境中運(yùn)行,不能直接運(yùn)行在參與區(qū)塊鏈的節(jié)點(diǎn)本地系統(tǒng)上,防止運(yùn)行智能合約的本地操作系統(tǒng)遭受攻擊.
內(nèi)容安全是在數(shù)據(jù)安全的基礎(chǔ)上衍生出來的應(yīng)用層安全屬性,要求區(qū)塊鏈上傳播和存儲(chǔ)的數(shù)據(jù)內(nèi)容符合道德規(guī)范和法律要求,防止不良或非法內(nèi)容在區(qū)塊鏈網(wǎng)絡(luò)中傳播,保證區(qū)塊鏈網(wǎng)絡(luò)中信息的純凈度.內(nèi)容安全的保障重點(diǎn)是加強(qiáng)區(qū)塊鏈中信息在傳播和存儲(chǔ)過程中的控制和管理.由于區(qū)塊鏈具有不可篡改的特點(diǎn),一旦非法內(nèi)容被記錄在區(qū)塊鏈上,將很難被修改或撤銷,也將影響公眾和政府對(duì)區(qū)塊鏈應(yīng)用的態(tài)度.在區(qū)塊鏈應(yīng)用生態(tài)中需要網(wǎng)絡(luò)監(jiān)測(cè)、信息過濾等技術(shù),保證區(qū)塊鏈的內(nèi)容安全.例如,在基于區(qū)塊鏈的銀行系統(tǒng)中,需要設(shè)置特定的信息內(nèi)容分析和智能化處理機(jī)制來實(shí)現(xiàn)了解你的客戶(Know your customer,KYC)和反洗錢(Anti money laundering,AML)等內(nèi)容監(jiān)管機(jī)制.此外,內(nèi)容安全還需要設(shè)置有效的監(jiān)管機(jī)制對(duì)已經(jīng)記錄在區(qū)塊鏈中的非法內(nèi)容進(jìn)行撤銷、刪除等操作,維護(hù)區(qū)塊鏈網(wǎng)絡(luò)健康發(fā)展.
盡管區(qū)塊鏈在多領(lǐng)域的應(yīng)用層出不窮,但是隨著研究的深入和安全事件頻發(fā),區(qū)塊鏈在安全性方面的缺陷也逐漸顯露.為了更好地解釋區(qū)塊鏈體系結(jié)構(gòu)中提供的安全機(jī)制和出現(xiàn)的安全問題,本文采用《區(qū)塊鏈技術(shù)發(fā)展現(xiàn)狀與展望》[3]中提出的數(shù)據(jù)層、網(wǎng)絡(luò)層、共識(shí)層、激勵(lì)層、合約層和應(yīng)用層六層體系架構(gòu),并以此為基礎(chǔ)從信息安全的角度對(duì)六層體系架構(gòu)進(jìn)行重新解釋.每層可細(xì)分為基礎(chǔ)模塊和安全模塊兩部分,如圖3所示.其中,基礎(chǔ)模塊是用于實(shí)現(xiàn)該層主要功能的基本組件.安全模塊則是用于保障各層安全性,為上層提供安全穩(wěn)定技術(shù)支持的安全組件.
區(qū)塊鏈作為一種多學(xué)科交叉的復(fù)合新技術(shù)在各層次都面臨理論和實(shí)踐上的安全性威脅,如圖4所示.雖然,針對(duì)區(qū)塊鏈各層級(jí)的安全措施相繼出現(xiàn),但還處于初級(jí)探索階段,尚不完善.一些安全技術(shù)可能會(huì)引入新的問題.
圖3 區(qū)塊鏈體系架構(gòu)Fig.3 The basic framework of blockchain
數(shù)據(jù)層既規(guī)定了交易、區(qū)塊、鏈?zhǔn)浇Y(jié)構(gòu)在內(nèi)的狹義區(qū)塊鏈的數(shù)據(jù)結(jié)構(gòu)和存儲(chǔ)形式等基本模塊,也包括了關(guān)于用戶身份、地址的密鑰管理機(jī)制以及區(qū)塊鏈所需的其他密碼學(xué)組件等安全模塊,是實(shí)現(xiàn)其他五層功能的基礎(chǔ).綜合數(shù)據(jù)層各組件特點(diǎn),數(shù)據(jù)層面臨著量子計(jì)算威脅、密鑰管理不當(dāng)、交易關(guān)聯(lián)性緊密和密碼組件代碼漏洞等安全性問題.
3.1.1 量子計(jì)算威脅
區(qū)塊鏈數(shù)據(jù)層中的交易和區(qū)塊實(shí)體都涉及到公鑰加密、數(shù)字簽名、哈希函數(shù)等多種密碼學(xué)組件.為了滿足更高的隱私保護(hù)需求,一些區(qū)塊鏈方案還需要環(huán)簽名、零知識(shí)證明等隱私保護(hù)技術(shù).這些密碼學(xué)組件的安全性直接影響到區(qū)塊鏈數(shù)據(jù)層的安全性.短期來看,數(shù)學(xué)理論、密碼學(xué)解析和計(jì)算技術(shù)的發(fā)展不會(huì)對(duì)一些已經(jīng)形成標(biāo)準(zhǔn)的密碼算法構(gòu)成威脅.但是隨著量子計(jì)算的興起,現(xiàn)有的密碼算法將面臨安全性降低甚至被攻破的危險(xiǎn).NIST發(fā)布的后量子密碼報(bào)告[27]中給出了大規(guī)模量子計(jì)算機(jī)對(duì)一些密碼算法安全性造成的影響,如表1所示.
盡管現(xiàn)階段量子計(jì)算的研究成果還不能對(duì)區(qū)塊鏈中的密碼算法構(gòu)成威脅,但是從長遠(yuǎn)看,區(qū)塊鏈的發(fā)展勢(shì)必要引入可以抵抗量子攻擊的加密系統(tǒng).美國NIST于2018年4月召開后量子密碼算法標(biāo)準(zhǔn)會(huì)議,在全球范圍內(nèi)召集抗量子攻擊的公鑰加密算法.一些研究也利用基于格的后量子簽名等算法替代比特幣中對(duì)應(yīng)的密碼組件[28].隨著量子密碼的興起,俄羅斯量子中心(Russian quantum center,RQC)正積極研究首個(gè)依賴量子加密技術(shù)實(shí)現(xiàn)分布式數(shù)據(jù)存儲(chǔ)和驗(yàn)證的量子區(qū)塊鏈.
表1 量子計(jì)算對(duì)一般密碼算法的影響[27]Table 1 Impact of quantum computing on common cryptographic algorithms[27]
3.1.2 密鑰管理不當(dāng)
區(qū)塊鏈在金融領(lǐng)域的應(yīng)用往往涉及數(shù)字資產(chǎn)交易,直接關(guān)系到用戶的個(gè)人利益,也容易成為貪心攻擊者的攻擊目標(biāo).現(xiàn)代密碼體制的安全是基于密鑰的安全.然而,區(qū)塊鏈應(yīng)用普遍缺乏有效的密鑰管理技術(shù).因使用、存儲(chǔ)不當(dāng)導(dǎo)致的密鑰泄露和丟失都給比特幣用戶帶來巨大利益損失.例如,為了方便記憶,用戶常選用有實(shí)際意義的字符串作為密鑰,有利于攻擊者實(shí)施字典攻擊(Dictionary attack);采用硬件存儲(chǔ)密鑰也容易遭受側(cè)信道攻擊(Side channel attack).尤其是在無許可區(qū)塊鏈中,沒有中心節(jié)點(diǎn)參與為密鑰管理方案設(shè)計(jì)增加了難度.區(qū)塊鏈的不可篡改性也使得密鑰一旦丟失或被盜,用戶將遭受不可逆轉(zhuǎn)的經(jīng)濟(jì)損失,亟需合理的密鑰管理機(jī)制.
目前,區(qū)塊鏈應(yīng)用中的主流密鑰管理方法包括本地存儲(chǔ)、離線存儲(chǔ)、托管錢包和門限錢包.本地存儲(chǔ)將密鑰直接或經(jīng)加密后存儲(chǔ)在本地設(shè)備上,容易被惡意讀取,物理設(shè)備損壞時(shí)也無法恢復(fù).離線存儲(chǔ)將密鑰保存在離線的物理存儲(chǔ)介質(zhì)中,防止惡意軟件攻擊.但是使用時(shí)仍然需要聯(lián)網(wǎng),無法完全避免惡意軟件入侵.區(qū)塊鏈還可以利用第三方托管錢包服務(wù)器為用戶提供密鑰托管服務(wù).但是,托管錢包破壞了區(qū)塊鏈的去中心化.托管錢包可能惡意竊取用戶密鑰,存在后門攻擊和單點(diǎn)失效問題.托管服務(wù)器作為中心節(jié)點(diǎn)也容易成為攻擊目標(biāo).一旦被攻破,大量密鑰失竊將會(huì)造成嚴(yán)重的損失.門限錢包利用門限加密技術(shù)將密鑰分散存儲(chǔ)在多個(gè)設(shè)備中,使用密鑰時(shí)需要多個(gè)設(shè)備參與.即使某個(gè)設(shè)備被攻擊,攻擊者仍然無法恢復(fù)出完整的密鑰,也不影響用戶的使用.但是這種方案在設(shè)計(jì)上存在一定困難,算法復(fù)雜度高,且不可擴(kuò)展.密鑰保護(hù)秘密分享(Password-protected secret sharing,PPSS)是一種線上的門限錢包方案[29],是今后區(qū)塊鏈實(shí)現(xiàn)安全密鑰管理的主流研究方向.
圖4 區(qū)塊鏈的安全問題Fig.4 Security threats on blockchain
3.1.3 交易關(guān)聯(lián)緊密
基于區(qū)塊鏈的數(shù)字貨幣平臺(tái)大多使用數(shù)字假名,允許用戶擁有多個(gè)假名,但是這種方式僅能提供較弱的用戶身份的匿名性,交易之間的關(guān)聯(lián)性和交易金額等信息均公開在區(qū)塊鏈上.一旦用戶的一個(gè)地址暴露,該用戶的所有公鑰地址都可能被推斷出來.通過交易圖譜分析和交易聚類分析[30]也可以根據(jù)交易的統(tǒng)計(jì)特性推斷出交易所有者的真實(shí)身份.
為了提高攻擊者利用交易之間的拓?fù)浣Y(jié)構(gòu)推測(cè)用戶身份的難度,數(shù)據(jù)層利用零知識(shí)證明、環(huán)簽名等密碼學(xué)技術(shù)來實(shí)現(xiàn)交易的混淆.2013年,Saberhagen利用環(huán)簽名和隱蔽地址技術(shù)構(gòu)造了匿名電子現(xiàn)金CryptoNote協(xié)議[31],將實(shí)際交易發(fā)送方身份隱藏在一系列公鑰中,后發(fā)展成門羅幣(Monero)[32]的核心協(xié)議.然而,環(huán)簽名方案面臨攻擊者可偽造環(huán)簽名實(shí)施構(gòu)陷等安全問題.環(huán)簽名的擴(kuò)展性差、簽名長度長也影響其在區(qū)塊鏈中的應(yīng)用.2013年,Miers等利用零知識(shí)證明技術(shù)設(shè)計(jì)了匿名代幣Zerocoin[33],可以將比特幣兌換成Zerocoin后進(jìn)行匿名交易,實(shí)現(xiàn)對(duì)用戶身份的隱私保護(hù),但是不能隱藏交易金額,支付效率低.2014年,Sasson等在Zerocoin的基礎(chǔ)上利用簡潔非交互零知識(shí)證明(Zero-knowledge succinct non-interactive arguments of knowledge,zk-SNARK)[34]構(gòu)造了匿名支付協(xié)議Zerocash[35],實(shí)現(xiàn)了對(duì)交易雙方身份和交易金額的隱私保護(hù),是零幣(ZCash)的核心協(xié)議.zk-SNARK技術(shù)具備抗量子攻擊能力,備受學(xué)術(shù)界關(guān)注.但是,zk-SNARK技術(shù)尚不成熟,存在效率瓶頸,生成證明的過程復(fù)雜,且證據(jù)占據(jù)空間過大,不適用存儲(chǔ)空間有限的區(qū)塊鏈系統(tǒng).
3.1.4 代碼漏洞
一些密碼組件在編譯的過程中也可能存在缺陷和漏洞.交易延展性攻擊[36]就是一種針對(duì)數(shù)據(jù)層代碼漏洞實(shí)施的攻擊,利用比特幣使用數(shù)字簽名構(gòu)造的交易在編譯過程中的延展性,常被用于針對(duì)比特幣交易平臺(tái)進(jìn)行攻擊.攻擊者首先向交易平臺(tái)請(qǐng)求取款.隨后,交易平臺(tái)創(chuàng)建一筆交易支付給攻擊者一筆比特幣.當(dāng)監(jiān)聽到這筆交易時(shí),攻擊者對(duì)這筆交易的簽名部分進(jìn)行字符串填充或者采用其他編碼方式編碼,但不破壞簽名本身,簽名仍然有效.然后,攻擊者根據(jù)更改后的交易重新生成TXID標(biāo)識(shí)符來偽造一筆新的交易,將偽造的交易廣播到網(wǎng)絡(luò)中.網(wǎng)絡(luò)中的礦工會(huì)有一定概率率先將偽造交易寫入?yún)^(qū)塊鏈,使得原有效交易被判為雙重支付[37],導(dǎo)致交易平臺(tái)認(rèn)為原交易并未被礦工驗(yàn)證通過,不得不產(chǎn)生一筆新交易再一次支付給攻擊者.攻擊一旦成功,攻擊者就會(huì)獲得雙倍的比特幣.部分研究嘗試通過修改TXID的結(jié)構(gòu)來應(yīng)對(duì)交易的延展性攻擊[38].
網(wǎng)絡(luò)層的核心是確保區(qū)塊鏈節(jié)點(diǎn)的合法加入和有效通信,具體包括區(qū)塊鏈的組網(wǎng)模式、節(jié)點(diǎn)之間的通信模式、擴(kuò)展網(wǎng)絡(luò)以及必要的匿名網(wǎng)絡(luò)通信技術(shù).區(qū)塊鏈采用P2P聯(lián)網(wǎng)通信方式,過程不依賴可信第三方,通過P2P網(wǎng)絡(luò)的路由查詢結(jié)構(gòu),在全球范圍內(nèi)的網(wǎng)絡(luò)節(jié)點(diǎn)之間建立連接.根據(jù)節(jié)點(diǎn)是否包含全部數(shù)據(jù),區(qū)塊鏈網(wǎng)絡(luò)中的節(jié)點(diǎn)又可分為全節(jié)點(diǎn)和輕節(jié)點(diǎn)兩類.全節(jié)點(diǎn)存儲(chǔ)了包括交易集合、密鑰管理規(guī)定的節(jié)點(diǎn)公鑰和地址、區(qū)塊鏈賬本、網(wǎng)絡(luò)路由等所有數(shù)據(jù).輕節(jié)點(diǎn)則僅存儲(chǔ)區(qū)塊哈希值等區(qū)塊鏈賬本中的部分信息,通過隨機(jī)協(xié)議,與其他節(jié)點(diǎn)建立數(shù)據(jù)傳入和傳出連接.全節(jié)點(diǎn)和輕節(jié)點(diǎn)之間的通訊形成了區(qū)塊鏈中常見的去中心化網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu).除主網(wǎng)絡(luò)之外,根據(jù)功能的不同,網(wǎng)絡(luò)中還會(huì)形成擴(kuò)展網(wǎng)絡(luò).如比特幣中小算力礦工會(huì)選擇加入礦池形成中心化礦池網(wǎng)絡(luò),采用Stratum協(xié)議[39]與礦池通信,共同完成挖礦任務(wù).網(wǎng)絡(luò)層還需要匿名網(wǎng)絡(luò)通信技術(shù)提供匿名通信等安全保障.
網(wǎng)絡(luò)層包含多種網(wǎng)絡(luò)技術(shù),技術(shù)本身的安全問題必然會(huì)對(duì)區(qū)塊鏈網(wǎng)絡(luò)層帶來安全風(fēng)險(xiǎn).總的來說,網(wǎng)絡(luò)層的安全問題主要包括P2P網(wǎng)絡(luò)的安全問題、網(wǎng)絡(luò)拓?fù)浔挥糜诠粢约熬W(wǎng)絡(luò)層面的隱私保護(hù)問題.
3.2.1 P2P網(wǎng)絡(luò)安全漏洞
P2P網(wǎng)絡(luò)為對(duì)等網(wǎng)絡(luò)環(huán)境中的節(jié)點(diǎn)提供一種分布式、自組織的連接模式,缺少身份認(rèn)證、數(shù)據(jù)驗(yàn)證、網(wǎng)絡(luò)安全管理等機(jī)制.攻擊者可以自由發(fā)布非法內(nèi)容,傳播蠕蟲、木馬、病毒,甚至實(shí)施分布式拒絕服務(wù)攻擊(Distributed denial of service,DDoS)、路由攻擊等,具有不易檢測(cè)、傳播迅速等特點(diǎn).由于P2P網(wǎng)絡(luò)采用不同于C/S網(wǎng)絡(luò)的對(duì)等工作模式,無法使用防火墻、入侵檢測(cè)等技術(shù)進(jìn)行有針對(duì)性的防護(hù),網(wǎng)絡(luò)中的節(jié)點(diǎn)更易遭受攻擊.另外,P2P網(wǎng)絡(luò)中節(jié)點(diǎn)也不是完全平等的.節(jié)點(diǎn)的權(quán)限會(huì)因加入網(wǎng)絡(luò)的先后順序而有所差異.越先加入網(wǎng)絡(luò)的節(jié)點(diǎn)占據(jù)的資源越多,越可能限制新加入節(jié)點(diǎn)享有的數(shù)據(jù)資源和操作權(quán)限.因此,在P2P網(wǎng)絡(luò)上建立的區(qū)塊鏈也會(huì)存在各節(jié)點(diǎn)享有資源和權(quán)限不均等的情況,輕節(jié)點(diǎn)容易受到全節(jié)點(diǎn)的限制.
3.2.2 節(jié)點(diǎn)的網(wǎng)絡(luò)拓?fù)?/p>
節(jié)點(diǎn)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)會(huì)為攻擊者尋找攻擊目標(biāo)并實(shí)施攻擊創(chuàng)造便利.攻擊者可以采用主動(dòng)式注入報(bào)文或者被動(dòng)式監(jiān)聽路由間傳輸?shù)臄?shù)據(jù)包來監(jiān)測(cè)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),很容易獲得目標(biāo)節(jié)點(diǎn)的路由信息并控制其鄰居節(jié)點(diǎn),進(jìn)而實(shí)施攻擊.日蝕攻擊(Eclipse attack)[16]就是攻擊者利用節(jié)點(diǎn)間的拓?fù)潢P(guān)系實(shí)現(xiàn)網(wǎng)絡(luò)隔離的一種典型攻擊方式.其基本思想是攻擊者通過網(wǎng)絡(luò)拓?fù)淇刂颇繕?biāo)節(jié)點(diǎn)的數(shù)據(jù)傳入傳出節(jié)點(diǎn),限制目標(biāo)節(jié)點(diǎn)與外界的數(shù)據(jù)交互,甚至將目標(biāo)節(jié)點(diǎn)與區(qū)塊鏈主網(wǎng)絡(luò)隔離,使目標(biāo)節(jié)點(diǎn)僅能接收到攻擊者傳輸?shù)南?導(dǎo)致目標(biāo)節(jié)點(diǎn)保存的區(qū)塊鏈視圖與主網(wǎng)區(qū)塊鏈視圖不一致,破壞局部的一致性.日蝕攻擊可作為其他攻擊的基礎(chǔ)[40].當(dāng)網(wǎng)絡(luò)出現(xiàn)階段性區(qū)塊鏈分叉競(jìng)賽時(shí),攻擊者利用日蝕攻擊迫使目標(biāo)節(jié)點(diǎn)將計(jì)算資源浪費(fèi)在無效的區(qū)塊鏈上.攻擊者還可以針對(duì)算力優(yōu)勢(shì)節(jié)點(diǎn)實(shí)施日蝕攻擊,實(shí)現(xiàn)算力的分離,影響挖礦獎(jiǎng)勵(lì)的分配,降低網(wǎng)絡(luò)中的有效算力,進(jìn)一步降低自私挖礦(Selfish mining)和雙重支付等攻擊的難度.
3.2.3 隱私保護(hù)問題
數(shù)據(jù)層的隱私保護(hù)技術(shù)利用密碼學(xué)技術(shù)從數(shù)據(jù)結(jié)構(gòu)角度為區(qū)塊鏈中用戶與交易提供了基本的隱私保護(hù),卻無法避免交易在網(wǎng)絡(luò)傳輸中與用戶IP地址之間的關(guān)聯(lián)性.用戶創(chuàng)建交易并打包成IP數(shù)據(jù)包,經(jīng)過網(wǎng)絡(luò)路由間傳輸至整個(gè)區(qū)塊鏈網(wǎng)絡(luò).攻擊者可以利用監(jiān)聽并追蹤IP地址的方式推測(cè)出交易之間、交易與公鑰地址之間的關(guān)系,破壞了區(qū)塊鏈追求的隱私保護(hù)目標(biāo).
著名的洋蔥網(wǎng)絡(luò)Tor[41]是比特幣中應(yīng)用最廣泛的匿名通信系統(tǒng),融合了洋蔥代理、網(wǎng)絡(luò)拓?fù)?、加密等技術(shù),防止攻擊者通過監(jiān)聽、流量分析等手段追蹤交易的用戶身份,在一定程度上阻斷了數(shù)據(jù)包與節(jié)點(diǎn)IP地址之間的關(guān)聯(lián)性.為了提高網(wǎng)絡(luò)層的隱私保護(hù),一些節(jié)點(diǎn)采用Tor網(wǎng)絡(luò)通訊系統(tǒng)來隱藏?cái)?shù)據(jù)包的源IP地址.然而,Tor網(wǎng)絡(luò)技術(shù)尚不完善,理論上的威脅模型較弱,僅能抵御非全局的主動(dòng)攻擊和被動(dòng)攻擊.即使通信雙方均使用Tor網(wǎng)絡(luò)進(jìn)行匿名傳輸,攻擊者仍然可以通過時(shí)間攻擊和通訊流攻擊檢測(cè)網(wǎng)絡(luò)中數(shù)據(jù)流的通信延遲、洋蔥代理之間數(shù)據(jù)包的相關(guān)性,判斷數(shù)據(jù)包的匿名路徑,進(jìn)而追蹤到用戶的IP地址.
網(wǎng)絡(luò)層還為數(shù)字貨幣領(lǐng)域中的匿名支付提供了混幣技術(shù)支持.混幣技術(shù)是指網(wǎng)絡(luò)中的不同用戶由中心節(jié)點(diǎn)組織或者自發(fā)地形成短暫的混幣網(wǎng)絡(luò),以混淆交易的方式保證攻擊者難以根據(jù)混幣后的交易推測(cè)出真實(shí)交易雙方的對(duì)應(yīng)關(guān)系,實(shí)現(xiàn)匿名支付.
混幣技術(shù)包括中心化混幣和去中心化混幣兩類.中心化混幣由第三方服務(wù)器來執(zhí)行交易混淆的過程.用戶需要將交易代幣發(fā)送到第三方賬戶上,經(jīng)服務(wù)器多次交易最終發(fā)送給交易接收方.中心化混幣破壞了區(qū)塊鏈的去中心化特點(diǎn),存在第三方設(shè)置后門竊取代幣、單點(diǎn)失效等問題.為了防止第三方惡意泄露混幣過程,Bonneau等于2014年提出Mixcoin混幣協(xié)議[42],引入審計(jì)機(jī)制監(jiān)管第三方.2015年,Valenta等使用盲簽名技術(shù)對(duì)Mixcoin協(xié)議進(jìn)行優(yōu)化,防止第三方泄露混幣過程[43].然而,中心化混幣提供的隱私保護(hù)強(qiáng)度與混幣次數(shù)有關(guān),普遍存在混幣成本高、效率低等問題.
去中心化混幣通過用戶自發(fā)的將多個(gè)交易混合產(chǎn)生一筆新的交易,對(duì)代幣按原交易進(jìn)行再分配,從而實(shí)現(xiàn)匿名支付.2013年,Maxwell提出的Coinjoin協(xié)議是最早的去中心化混幣方案[44].2014年,Ruffing等對(duì)Coinjoin協(xié)議進(jìn)行改進(jìn),提出一種名為CoinShuffle的交易洗牌協(xié)議[45].2015年,Ziegeldorf等利用安全多方計(jì)算構(gòu)造了允許部分節(jié)點(diǎn)失效甚至實(shí)施惡意操作的CoinParty混幣協(xié)議[46].去中心化混幣技術(shù)規(guī)避了中心化混幣協(xié)議單點(diǎn)失效和成本高等問題,操作簡單,在數(shù)字貨幣領(lǐng)域中有廣泛應(yīng)用.但是去中心化混幣存在惡意滲入,混幣成員惡意泄露混幣過程的問題,無法抵御DoS攻擊,無法兼顧效率和隱私保護(hù)需求.
共識(shí)層是區(qū)塊鏈架構(gòu)的核心,主要規(guī)定了區(qū)塊鏈的共識(shí)機(jī)制,確保各節(jié)點(diǎn)在網(wǎng)絡(luò)層提供的網(wǎng)絡(luò)環(huán)境和通信模式中可以共享同一份有效的區(qū)塊鏈視圖(View).區(qū)塊鏈的最大創(chuàng)新在于共識(shí)層支持的共識(shí)機(jī)制提供了一種剔除可信第三方的可信數(shù)據(jù)共享機(jī)制,為上層應(yīng)用提供安全的賬本支持[47].共識(shí)層致力于設(shè)計(jì)高安全性、高效率、低能耗的共識(shí)機(jī)制,根據(jù)采用的基礎(chǔ)協(xié)議不同,可以劃分為5大系列,包括PoW、PoS、拜占庭容錯(cuò)協(xié)議(Byzantine fault tolerance,BFT)、分片技術(shù)、可信硬件.
良好的共識(shí)機(jī)制有助于提高區(qū)塊鏈系統(tǒng)的性能效率,提供強(qiáng)有力的安全性保障,支持功能復(fù)雜的應(yīng)用場(chǎng)景,促進(jìn)區(qū)塊鏈技術(shù)的拓展與延伸.區(qū)塊鏈上的共識(shí)機(jī)制發(fā)展尚不完善,普遍存在安全性證明不完備、安全性假設(shè)不可靠、擴(kuò)展性差、一致性不穩(wěn)定、初始化和重構(gòu)難等問題.不同類型的共識(shí)機(jī)制還面臨不同的攻擊威脅.
3.3.1 安全性證明不完備
共識(shí)機(jī)制在安全性建模時(shí)需要考慮網(wǎng)絡(luò)時(shí)序性、節(jié)點(diǎn)數(shù)量拓展、在線離線切換、算力或權(quán)益的動(dòng)態(tài)分布、共識(shí)難度變更、區(qū)塊鏈增長速率等多變量因素.由于共識(shí)機(jī)制下層的網(wǎng)絡(luò)環(huán)境復(fù)雜,新的共識(shí)機(jī)制不斷涌現(xiàn),傳統(tǒng)的可證明安全框架無法完全適用于區(qū)塊鏈.共識(shí)機(jī)制的安全性面臨建模困難、安全性證明不完備的問題.
2015年,Garay等為PoW構(gòu)建了安全模型,并在靜態(tài)同步網(wǎng)絡(luò)模型中分析了比特幣的安全性[26].Kiayias等在此基礎(chǔ)上引入?yún)^(qū)塊產(chǎn)生速率作為共識(shí)機(jī)制安全性分析的一項(xiàng)因素[48].Sompoinsky等在同一時(shí)期研究了網(wǎng)絡(luò)延遲對(duì)PoW安全性的影響[49].Pass等于2017年從網(wǎng)絡(luò)延遲和PoW難度之間的關(guān)系入手,對(duì)PoW 進(jìn)行可證明安全分析[50].Kiayias等也在一系列PoW可證明安全成果的基礎(chǔ)上,提出了同步網(wǎng)絡(luò)中PoS的安全模型和證明方法[51].現(xiàn)階段對(duì)共識(shí)機(jī)制的可證明安全研究大多集中在PoW和PoS兩類共識(shí)機(jī)制中,缺乏一般性.研究中往往僅考慮單一變量,對(duì)多變量模型下的共識(shí)機(jī)制的安全性分析還不成熟.復(fù)雜的網(wǎng)絡(luò)環(huán)境也為共識(shí)機(jī)制的安全性分析帶來挑戰(zhàn).
3.3.2 安全性假設(shè)不可靠
現(xiàn)代密碼體制的安全性評(píng)估依賴計(jì)算復(fù)雜性理論,常用可證明安全理論將密碼體制的安全性歸約到某個(gè)公開的數(shù)學(xué)困難問題上,如橢圓曲線上的離散對(duì)數(shù)問題.然而,采用PoW 和PoS的共識(shí)機(jī)制的安全性假設(shè)并不依賴計(jì)算困難問題,而是依賴所有的誠實(shí)節(jié)點(diǎn)所擁有的算力或者權(quán)益占多數(shù)這類看似合理的假設(shè).這些安全性假設(shè)在實(shí)際應(yīng)用中很容易被打破.以采用PoW 的比特幣為例,根據(jù)BTC.com 2018年10月發(fā)布的礦池算力分布,如果排名前四的礦池合謀,形成具有絕對(duì)算力優(yōu)勢(shì)的超級(jí)節(jié)點(diǎn),總算力約占全網(wǎng)算力的56.5%,直接打破PoW的安全性假設(shè).礦池合謀可實(shí)施51%攻擊,甚至有針對(duì)性地實(shí)施DoS攻擊,阻止交易的驗(yàn)證和記錄,破壞共識(shí)機(jī)制的活性.
3.3.3 一致性不穩(wěn)定
如何保證共識(shí)機(jī)制可以持續(xù)穩(wěn)定地實(shí)現(xiàn)一致性是目前共識(shí)層的研究重點(diǎn).一致性是衡量共識(shí)機(jī)制安全性強(qiáng)弱的重要性質(zhì).PoW和部分PoS共識(shí)方案在達(dá)成共識(shí)的過程中需要等待后續(xù)區(qū)塊生成才能判斷之前的區(qū)塊是否被大多數(shù)節(jié)點(diǎn)認(rèn)可,會(huì)出現(xiàn)短暫的分叉,僅實(shí)現(xiàn)弱一致性.類似PoA[52]、2-Hop[53]等采用PoW和PoS相結(jié)合的共識(shí)機(jī)制也存在短暫分叉的情況.
為了解決PoW和PoS系列共識(shí)方案存在的弱一致性問題,2017年,Kiayias等將PoS與安全多方計(jì)算(Multi-party computation,MPC)結(jié)合,提出了Ouroboros區(qū)塊鏈共識(shí)方案[51],增強(qiáng)了PoS的一致性,但要求節(jié)點(diǎn)持續(xù)在線,無法保證新節(jié)點(diǎn)的安全加入.Gilad等利用PoS實(shí)現(xiàn)密碼抽簽算法并結(jié)合拜占庭容錯(cuò)協(xié)議,提出了Algorand方案[54],僅能在理想情況下以極高的概率保持一致性.
然而,在實(shí)際應(yīng)用中,節(jié)點(diǎn)通過共識(shí)機(jī)制完成一致性的效果受網(wǎng)絡(luò)影響嚴(yán)重.當(dāng)網(wǎng)絡(luò)同步性較差,即使網(wǎng)絡(luò)中沒有惡意節(jié)點(diǎn)進(jìn)行主動(dòng)攻擊,共識(shí)機(jī)制也無法穩(wěn)定保持強(qiáng)一致性.如果網(wǎng)絡(luò)中存在攻擊者利用網(wǎng)絡(luò)層節(jié)點(diǎn)拓?fù)浣Y(jié)構(gòu)隔離網(wǎng)絡(luò),形成網(wǎng)絡(luò)分區(qū),那么將很容易產(chǎn)生短暫的區(qū)塊鏈分叉,破壞一致性.
針對(duì)共識(shí)機(jī)制一致性的攻擊有雙重支付攻擊和長程攻擊(Long-range attack).雙重支付攻擊是破壞共識(shí)機(jī)制一致性的典型攻擊方式,是數(shù)字貨幣方案設(shè)計(jì)中需要解決的首要安全性問題.在比特幣中,雙重支付攻擊的目的是重復(fù)花費(fèi)自己已經(jīng)使用過的一筆比特幣.在一般區(qū)塊鏈中,雙重支付攻擊是指攻擊者企圖在區(qū)塊鏈上記錄一筆與現(xiàn)有區(qū)塊鏈上的交易相違背的無效交易.常用的方法是產(chǎn)生一條更長的區(qū)塊鏈分叉,使包含原交易的區(qū)塊鏈被大多數(shù)礦工丟棄.長程攻擊是PoS中潛在的攻擊行為.由于PoS中礦工挖礦需要付出的代價(jià)極低,具有權(quán)益優(yōu)勢(shì)的節(jié)點(diǎn)有可能從創(chuàng)世塊開始產(chǎn)生一條完全不同的區(qū)塊鏈分叉,即為長程攻擊.
目前,區(qū)塊鏈共識(shí)機(jī)制的安全性需要依賴良好的網(wǎng)絡(luò)環(huán)境、嚴(yán)格受限的敵手能力和強(qiáng)安全性假設(shè),在實(shí)際應(yīng)用中很難確保穩(wěn)定的一致性.即使消逝時(shí)間證明(Proof of elapsed time,PoET)[55]和運(yùn)氣證明(Proof of luck,PoL)[56]利用可信硬件提供隨機(jī)性,保證共識(shí)機(jī)制的一致性不受網(wǎng)絡(luò)狀況影響.但是如果硬件中設(shè)置后門,整個(gè)區(qū)塊鏈將被完全控制.
3.3.4 擴(kuò)展性差
可擴(kuò)展性是區(qū)塊鏈共識(shí)機(jī)制研究關(guān)注的重要屬性,是區(qū)塊鏈可用性必不可少的一部分[57].比特幣PoW平均每10分鐘產(chǎn)生一個(gè)區(qū)塊,且區(qū)塊內(nèi)包含的交易數(shù)量有限,交易吞吐量低,擴(kuò)展性差.一些研究通過引入分片技術(shù)來提高PoW的可擴(kuò)展性.分片技術(shù)的思想是將網(wǎng)絡(luò)中的節(jié)點(diǎn)進(jìn)行有效分組,從而實(shí)現(xiàn)多組數(shù)據(jù)驗(yàn)證和記錄的并行操作.分片技術(shù)的關(guān)鍵在于設(shè)計(jì)合理的分片方式,支持周期性輪換和新舊節(jié)點(diǎn)更替,同時(shí)還要兼顧跨分片交易的原子性問題.Elastico協(xié)議是區(qū)塊鏈上首個(gè)基于分片思想的共識(shí)機(jī)制[58],利用PoW 對(duì)網(wǎng)絡(luò)中的節(jié)點(diǎn)進(jìn)行分組,不同分組并行處理不同的數(shù)據(jù),再由特定一組進(jìn)行打包記錄.Omniledger利用隨機(jī)數(shù)生成算法RandHound協(xié)議和基于可驗(yàn)證隨機(jī)函數(shù)的抽簽算法實(shí)現(xiàn)定期分組,并提出利用鎖定交易的方式處理跨分片交易[59].此外,英國央行提出的法定數(shù)字貨幣框架RSCoin方案[25]也在許可區(qū)塊鏈中采用分片技術(shù)提高區(qū)塊鏈的擴(kuò)展性.
目前,如何提高區(qū)塊鏈共識(shí)機(jī)制的可擴(kuò)展性仍然是一個(gè)主流研究方向.分片技術(shù)雖然從理論上解決了PoW擴(kuò)展性差的問題,卻引入了跨鏈交易原子性問題,需要強(qiáng)安全假設(shè),降低了區(qū)塊鏈的安全性.另外,區(qū)塊鏈上的共識(shí)機(jī)制還面臨粉塵攻擊、交易的DoS攻擊和空塊攻擊等.粉塵攻擊指攻擊者發(fā)布大量小額交易,增加區(qū)塊鏈網(wǎng)絡(luò)負(fù)載,占據(jù)礦工交易池硬盤空間,造成大量交易排隊(duì)等待驗(yàn)證的情況,進(jìn)而對(duì)網(wǎng)絡(luò)中其他有意義的交易進(jìn)行DoS攻擊,影響共識(shí)效率和系統(tǒng)吞吐量.空塊攻擊則是礦工為了盡快解決PoW問題,僅填充區(qū)塊頭部,而不驗(yàn)證打包任何交易,從而在競(jìng)爭挖礦過程中能夠更快地發(fā)布區(qū)塊并獲得區(qū)塊獎(jiǎng)勵(lì).雖然空塊攻擊不影響區(qū)塊鏈的有效性,卻拖慢了交易驗(yàn)證和記錄的效率,加劇了PoW等共識(shí)機(jī)制擴(kuò)展性差的問題.
3.3.5 初始化難問題
大量研究關(guān)注共識(shí)機(jī)制實(shí)現(xiàn)一致性的過程,往往忽略了區(qū)塊鏈的初始化問題,即如何在P2P網(wǎng)絡(luò)中保證創(chuàng)世塊的安全生成.區(qū)塊鏈的初始化直接關(guān)系到后續(xù)共識(shí)機(jī)制的執(zhí)行過程是否安全可靠,是保證共識(shí)機(jī)制穩(wěn)定可靠的前提.區(qū)塊鏈一直面臨初始化困難的問題.
目前,區(qū)塊鏈的初始化有兩種方式,一種是依賴第三方產(chǎn)生創(chuàng)世塊,另一種由現(xiàn)有的、成熟的區(qū)塊鏈自然過渡得到新區(qū)塊鏈的創(chuàng)世塊.依賴第三方初始化違背了區(qū)塊鏈去中心化的設(shè)計(jì)初衷,無法適用于P2P網(wǎng)絡(luò)中的無許可區(qū)塊鏈方案,也無法確保第三方生成的創(chuàng)世塊的隨機(jī)性與安全性,可能會(huì)左右后續(xù)區(qū)塊的生成.依賴成熟的基于PoW 區(qū)塊鏈過渡產(chǎn)生創(chuàng)世塊的方式增加了初始化的復(fù)雜性.用于初始化的PoW潛在的不安全因素將直接影響創(chuàng)世塊的安全性和后續(xù)區(qū)塊的生成.例如將PoW作為以賬戶余額為權(quán)益的PoS區(qū)塊鏈的初始化,根據(jù)已有的PoW區(qū)塊鏈中的賬戶余額分布來產(chǎn)生PoS區(qū)塊鏈的創(chuàng)世塊.攻擊者可以預(yù)先通過存款、轉(zhuǎn)賬等方式產(chǎn)生權(quán)益優(yōu)勢(shì)節(jié)點(diǎn),以很高的概率獲得產(chǎn)生創(chuàng)世塊的記賬權(quán).另外,初始化過程需要PoW提供隨機(jī)性.在PoW 區(qū)塊鏈中具有較高算力的節(jié)點(diǎn)也可以產(chǎn)生一個(gè)有利于自己的PoW區(qū)塊,從而提升自己獲得PoS創(chuàng)世塊記賬權(quán)的概率.
3.3.6 重構(gòu)困難問題
共識(shí)機(jī)制賦予了區(qū)塊鏈不可篡改性,提升了系統(tǒng)的可信度,但是也增加了區(qū)塊鏈重構(gòu)的難度.一旦出現(xiàn)共識(shí)機(jī)制的安全性假設(shè)被打破、數(shù)據(jù)層密碼組件被攻破、代碼漏洞被利用等嚴(yán)重威脅區(qū)塊鏈安全性的攻擊,在缺少可信第三方或者外界干預(yù)的情況下,區(qū)塊鏈無法有效實(shí)現(xiàn)災(zāi)難恢復(fù),無法自動(dòng)恢復(fù)到被攻擊之前的安全狀態(tài).無效數(shù)據(jù)或違法操作被寫入?yún)^(qū)塊鏈并執(zhí)行,將對(duì)用戶造成不可彌補(bǔ)的損失,甚至影響整個(gè)區(qū)塊鏈的后續(xù)運(yùn)行.
硬分叉是目前區(qū)塊鏈唯一可行的重構(gòu)方式.2016年The DAO事件發(fā)生之后,有89%以太坊成員投票支持采用硬分叉的方式進(jìn)行重構(gòu),自受攻擊位置之前的區(qū)塊后創(chuàng)建一條區(qū)塊鏈分叉,強(qiáng)制退回被竊取的以太幣.但是,硬分叉重構(gòu)存在很多局限性.首先,硬分叉直接破壞了共識(shí)機(jī)制的一致性和不可篡改性的本質(zhì)特點(diǎn),區(qū)塊鏈可信度會(huì)受到影響.其次,判斷是否需要進(jìn)行硬分叉重構(gòu)的投票方式不一定公平,投票成員可能會(huì)支持更有利于自己的決定.最后,硬分叉后網(wǎng)絡(luò)中存在新舊兩條區(qū)塊鏈分叉,舊區(qū)塊鏈分叉無法被徹底消除.由于包含惡意交易的區(qū)塊中還包含一些合法交易,硬分叉的過程必然會(huì)對(duì)這些合法交易的交易雙方造成利益損失.
在無許可區(qū)塊鏈中,激勵(lì)層與共識(shí)層相互依存,共同維護(hù)區(qū)塊鏈系統(tǒng)的安全性與穩(wěn)定性.共識(shí)機(jī)制設(shè)計(jì)直接影響激勵(lì)實(shí)體的選取和激勵(lì)分配策略.相應(yīng)地,激勵(lì)機(jī)制設(shè)計(jì)是否合理也關(guān)系到共識(shí)機(jī)制的安全性和區(qū)塊鏈的穩(wěn)定性.網(wǎng)絡(luò)中的節(jié)點(diǎn)參與交易驗(yàn)證和區(qū)塊生成的目的是為了獲得更高的獎(jiǎng)勵(lì).驅(qū)利的節(jié)點(diǎn)可能會(huì)在這一過程中采取一些不利于區(qū)塊鏈系統(tǒng)維護(hù)的策略來提高自己的收益,甚至對(duì)區(qū)塊鏈的安全性構(gòu)成威脅.因此,激勵(lì)層還需要策略性行為檢測(cè)和動(dòng)態(tài)的獎(jiǎng)勵(lì)機(jī)制優(yōu)化.
激勵(lì)層需要解決的主要問題是經(jīng)濟(jì)學(xué)上的激勵(lì)不相容問題,具體指參與維護(hù)區(qū)塊鏈的礦工不會(huì)實(shí)施危害安全性的惡意攻擊,但是會(huì)以自身利益最大化來指導(dǎo)自己的挖礦策略.這種策略與區(qū)塊鏈整體利益形成沖突,破壞區(qū)塊鏈系統(tǒng)效率和穩(wěn)定性,包括自私挖礦攻擊[60]、Nothing at stake攻擊、扣塊攻擊(Withholding attack)[61]和激勵(lì)不可持續(xù)問題.
3.4.1 自私挖礦攻擊與Nothing at stake攻擊
在理想情況下,基于PoW 的區(qū)塊鏈中節(jié)點(diǎn)能夠獲得的區(qū)塊獎(jiǎng)勵(lì)期望與他所擁有的計(jì)算資源成正比.而在實(shí)際比特幣區(qū)塊生成中,一些節(jié)點(diǎn)可能會(huì)在自己成功完成PoW 產(chǎn)生區(qū)塊后,有策略地廣播自己的區(qū)塊,以獲得高于自己所擁有的計(jì)算資源比例的獎(jiǎng)勵(lì)收益,即實(shí)施自私挖礦攻擊.自私挖礦攻擊是Eyal等于2013年提出的一種針對(duì)PoW的攻擊行為,不易檢測(cè)和預(yù)防.理論上,基于PoW和PoS的無許可區(qū)塊鏈系統(tǒng)都可能遭到自私挖礦攻擊,對(duì)共識(shí)機(jī)制的安全性和激勵(lì)機(jī)制的公平性造成嚴(yán)重威脅.
自私挖礦包含多種挖礦策略,最典型的是當(dāng)某PoW區(qū)塊鏈礦工成功生成一個(gè)區(qū)塊后不立即廣播,而是在這個(gè)新區(qū)塊后繼續(xù)挖礦.當(dāng)監(jiān)測(cè)到網(wǎng)絡(luò)中產(chǎn)生一個(gè)新區(qū)塊時(shí),自私挖礦節(jié)點(diǎn)才公開自己的區(qū)塊,形成區(qū)塊鏈分叉競(jìng)賽.如果自私挖礦節(jié)點(diǎn)可以搶先產(chǎn)生兩個(gè)連續(xù)的區(qū)塊,不僅可以成功獲得區(qū)塊獎(jiǎng)勵(lì),還能消耗掉另一個(gè)分叉區(qū)塊所包含的工作量.即使自私挖礦節(jié)點(diǎn)沒能成功產(chǎn)生連續(xù)的兩個(gè)區(qū)塊,仍然可能形成長度為1的分叉,將網(wǎng)絡(luò)算力進(jìn)行分離,降低網(wǎng)絡(luò)中的有效算力.Eyal等的研究表明,當(dāng)網(wǎng)絡(luò)中的節(jié)點(diǎn)隨機(jī)選擇區(qū)塊鏈分叉進(jìn)行拓展時(shí),擁有1/3算力的自私挖礦節(jié)點(diǎn)即可獲得1/2區(qū)塊獎(jiǎng)勵(lì)期望,直接破壞激勵(lì)機(jī)制的公平性,對(duì)PoW的安全性假設(shè)造成威脅,也影響區(qū)塊鏈的擴(kuò)展性,降低了區(qū)塊鏈的效率.
與自私挖礦類似,Nothing at stake攻擊是針對(duì)PoS激勵(lì)機(jī)制的一種攻擊.由于PoS中節(jié)點(diǎn)生成區(qū)塊的成本較低,當(dāng)出現(xiàn)區(qū)塊鏈分叉時(shí),為了利益最大化,礦工的最佳策略是在兩個(gè)區(qū)塊鏈分叉后均進(jìn)行挖礦.這就使得發(fā)起區(qū)塊鏈分叉的惡意攻擊極容易成功,增加了區(qū)塊鏈分叉和雙重支付的概率.
3.4.2 扣塊攻擊
礦池降低了個(gè)體參與挖礦的成本,人人都可參與維護(hù)區(qū)塊鏈獲得獎(jiǎng)勵(lì)收益.礦池也將節(jié)點(diǎn)集結(jié)起來形成算力或權(quán)益優(yōu)勢(shì)節(jié)點(diǎn),威脅共識(shí)機(jī)制的安全性假設(shè).礦池間的博弈也對(duì)區(qū)塊鏈安全性、效率產(chǎn)生巨大影響.一些礦池為了獲得更高的獎(jiǎng)勵(lì)會(huì)利用目標(biāo)礦池的獎(jiǎng)勵(lì)分配策略來實(shí)施扣塊攻擊,通過委派部分礦工加入到目標(biāo)礦池貢獻(xiàn)無效的工作量,分得目標(biāo)礦池的獎(jiǎng)勵(lì),追求礦池整體獲得更高的獎(jiǎng)勵(lì).扣塊攻擊對(duì)采用PPS(Pay-per-share)模式、PPLNS(Pay per last N shares)模式和PROP(PROPortionately)獎(jiǎng)勵(lì)分配方式的目標(biāo)礦池的攻擊效果明顯,且不易檢測(cè)[62].為了獲得更高的長遠(yuǎn)收益,礦池會(huì)紛紛實(shí)施扣塊攻擊.扣塊攻擊與自私挖礦攻擊類似,在一定程度上削減了網(wǎng)絡(luò)中的有效算力,降低了系統(tǒng)吞吐量,造成交易驗(yàn)證延遲甚至網(wǎng)絡(luò)擁塞的情況,影響區(qū)塊鏈的可擴(kuò)展性.
3.4.3 不可持續(xù)問題
比特幣等數(shù)字貨幣的激勵(lì)機(jī)制包含區(qū)塊獎(jiǎng)勵(lì)和交易費(fèi)兩部分,其中占礦工節(jié)點(diǎn)主要收益的區(qū)塊獎(jiǎng)勵(lì)普遍呈現(xiàn)逐漸減少直至降為0的趨勢(shì).隨著區(qū)塊獎(jiǎng)勵(lì)的降低,這些區(qū)塊鏈必將完全依賴交易費(fèi)驅(qū)動(dòng)系統(tǒng),面臨不可持續(xù)的問題.2016年,Carlsten等研究了在僅依賴交易費(fèi)來激勵(lì)節(jié)點(diǎn)的極端情況下區(qū)塊鏈的穩(wěn)定性[63].Carlsten等認(rèn)為僅依賴交易費(fèi)獎(jiǎng)勵(lì)難以避免形成公地悲劇,產(chǎn)生大量區(qū)塊鏈分叉,影響區(qū)塊鏈的安全性和效率.攻擊者利用節(jié)點(diǎn)都想獲得更高收益的心理產(chǎn)生區(qū)塊鏈分叉,僅打包部分交易,給后續(xù)的區(qū)塊預(yù)留了大量交易費(fèi)獎(jiǎng)勵(lì).其他節(jié)點(diǎn)為了利益最大化必然會(huì)在剩余交易費(fèi)較多的區(qū)塊鏈分叉后面進(jìn)行拓展,而丟棄預(yù)先到達(dá)的區(qū)塊鏈.為此,一些研究人員建議持續(xù)發(fā)行代幣來維護(hù)系統(tǒng)穩(wěn)定.但是,持續(xù)代幣發(fā)行會(huì)出現(xiàn)通貨膨脹.長此以往,區(qū)塊獎(jiǎng)勵(lì)將不再具有吸引力.
此外,多數(shù)激勵(lì)機(jī)制僅獎(jiǎng)勵(lì)成功生成區(qū)塊的節(jié)點(diǎn),對(duì)其他誠實(shí)參與共識(shí)協(xié)議的節(jié)點(diǎn)不予以獎(jiǎng)勵(lì).激勵(lì)機(jī)制無法客觀評(píng)估各節(jié)點(diǎn)維護(hù)系統(tǒng)所貢獻(xiàn)的工作量權(quán)重,對(duì)危害區(qū)塊鏈安全性的攻擊行為也不予以經(jīng)濟(jì)懲罰,獎(jiǎng)勵(lì)分配缺乏公平性與合理性.
智能合約是合約層的核心,是一種可自動(dòng)執(zhí)行的數(shù)字化協(xié)議,包含相關(guān)代碼和數(shù)據(jù)集,部署在區(qū)塊鏈上,也是可按照預(yù)設(shè)合約條款自動(dòng)執(zhí)行的計(jì)算機(jī)程序.智能合約最早由Nick Szabo提出,后經(jīng)以太坊重新定義,并建立完整的開發(fā)架構(gòu).圍繞智能合約,合約層還包括智能合約的運(yùn)行機(jī)制、編寫語言、沙盒環(huán)境和測(cè)試網(wǎng)絡(luò).運(yùn)行機(jī)制描述了智能合約的執(zhí)行規(guī)則.編寫語言包括以太坊平臺(tái)提供的Solidity、Serpent、LLL等圖靈完備語言和Fabric使用的Go、Java等高級(jí)編寫語言.沙盒環(huán)境是一種新型的惡意代碼檢測(cè)和防治技術(shù),為用戶提供一種相對(duì)安全的虛擬運(yùn)算環(huán)境.以太坊以以太坊虛擬機(jī)(Ethereum virtual machine,EVM)為智能合約提供沙盒環(huán)境.此外,為了保證智能合約的安全性,用戶編寫智能合約后還需要在測(cè)試網(wǎng)絡(luò)上進(jìn)行測(cè)試.
以太坊是最早的開源智能合約開發(fā)平臺(tái)[11].本節(jié)主要圍繞以太坊梳理智能合約的安全問題.雖然以太坊為智能合約編寫提供了一些模板和測(cè)試環(huán)境,但是由于智能合約代碼開源、涉及數(shù)字資產(chǎn)轉(zhuǎn)移,一旦代碼漏洞被利用,會(huì)造成不可逆轉(zhuǎn)的損失.除智能合約創(chuàng)建者在設(shè)計(jì)業(yè)務(wù)邏輯時(shí)的文本安全問題以外,合約層還面臨智能合約代碼漏洞、外部數(shù)據(jù)源調(diào)用、缺乏形式化驗(yàn)證、難實(shí)現(xiàn)隱私保護(hù)等問題.
3.5.1 代碼漏洞
由于以太坊采用自制的腳本語言編寫智能合約,尚不成熟,難以避免出現(xiàn)漏洞.根據(jù)智能合約漏洞研究[64-65]總結(jié),常見的智能合約中的代碼漏洞和執(zhí)行過程中存在的攻擊如下:
1)交易依賴攻擊:智能合約執(zhí)行過程中的每次操作都需要以交易的形式發(fā)布狀態(tài)變量的變更信息,不同的交易順序可能會(huì)觸發(fā)不同的狀態(tài),導(dǎo)致不同的輸出結(jié)果.這種智能合約問題被稱為交易順序依賴.惡意的礦工甚至故意改變交易執(zhí)行順序,操縱智能合約的執(zhí)行.
2)時(shí)間戳依賴攻擊:一些智能合約執(zhí)行過程中需要時(shí)間戳來提供隨機(jī)性,或者作為某些操作的觸發(fā)條件.而網(wǎng)絡(luò)中節(jié)點(diǎn)的本地時(shí)間戳略有偏差,攻擊者可以通過設(shè)置區(qū)塊的時(shí)間戳來左右智能合約的執(zhí)行,使結(jié)果對(duì)自己更有利.
3)調(diào)用棧深度攻擊:以太坊EVM設(shè)置調(diào)用棧深度為1024,攻擊者可以先迭代調(diào)用合約1023次再發(fā)布交易觸發(fā)該合約,故意突破調(diào)用棧深度限制,使得合約執(zhí)行異常.
4)可重入攻擊:當(dāng)一個(gè)合約調(diào)用另一個(gè)合約時(shí),當(dāng)前執(zhí)行進(jìn)程就會(huì)停下來等待調(diào)用結(jié)束,這就產(chǎn)生了一個(gè)中間狀態(tài).攻擊者利用中間狀態(tài),在合約未執(zhí)行結(jié)束時(shí)再次調(diào)用合約,實(shí)施可重入攻擊.著名的The DAO事件就是攻擊者實(shí)施可重入攻擊,不斷重復(fù)地遞歸調(diào)用withdrawblance函數(shù),取出本該被清零的以太坊賬戶余額,竊取大量以太幣.
5)整數(shù)溢出攻擊:智能合約中規(guī)定了整數(shù)的范圍,難以避免變量、中間計(jì)算結(jié)果越界,導(dǎo)致整數(shù)溢出.程序中僅保存異常結(jié)果,影響智能合約的執(zhí)行.
6)操作異常攻擊:智能合約的執(zhí)行可能需要調(diào)用其他合約,缺少被調(diào)用合約的狀態(tài)驗(yàn)證或返回值驗(yàn)證將會(huì)對(duì)智能合約的執(zhí)行帶來潛在威脅.部分被調(diào)用合約執(zhí)行異常,異常結(jié)果可能會(huì)傳遞到調(diào)用合約上,影響調(diào)用合約的執(zhí)行.
7)Gas限制:以太坊規(guī)定了交易消耗的Gas上限,如果超過則交易失效.如果Gas消耗設(shè)計(jì)不合理,則會(huì)被攻擊者利用實(shí)施DoS攻擊.Extcodesize和Suicide是DoS攻擊者反復(fù)執(zhí)行降低Gas操作的攻擊實(shí)例,最終導(dǎo)致以太坊交易處理速度緩慢,浪費(fèi)了大量交易池硬盤存儲(chǔ)資源.
3.5.2 外部數(shù)據(jù)源調(diào)用問題
區(qū)塊鏈最初的設(shè)計(jì)是為了在無可信第三方的情況下實(shí)現(xiàn)安全支付,僅能對(duì)區(qū)塊鏈上的數(shù)據(jù)進(jìn)行操作.區(qū)塊鏈和智能合約迫切地需要通過可信技術(shù)訪問外部數(shù)據(jù),建立與外部數(shù)字世界的連接.預(yù)言機(jī)作為可信實(shí)體成為了連接智能合約和Web API之間的橋梁,卻引入了安全問題.TLSnotary和Town-Crier方案[66]利用超文本傳輸協(xié)議安全HTTPS協(xié)議訪問外部數(shù)據(jù),是一種提供加密可檢查信息的預(yù)言機(jī).但是它們不能保證不同節(jié)點(diǎn)訪問的數(shù)據(jù)的一致性與真實(shí)性,也無法避免數(shù)據(jù)提供網(wǎng)站惡意變更數(shù)據(jù)或被攻擊引起單點(diǎn)失效問題.Augur方案[67]通過設(shè)置懲罰機(jī)制,要求特定用戶在特定時(shí)間返回結(jié)果,否則將面臨罰款,但并沒有為用戶提供隨意接入系統(tǒng)的接口,限制了預(yù)言機(jī)的可用性.
3.5.3 形式化驗(yàn)證不完善
以太坊提供的EVM具有錯(cuò)綜復(fù)雜的語義,Solidity語言尚不成熟,暴露出來的安全問題直接危害智能合約的執(zhí)行和用戶的個(gè)人數(shù)字資產(chǎn),需要形式化驗(yàn)證和程序分析工具對(duì)智能合約代碼和執(zhí)行過程進(jìn)行分析.
目前,已有一些針對(duì)智能合約形式化驗(yàn)證的工具出現(xiàn).Oyente提供了一系列針對(duì)EVM 漏洞檢測(cè)的啟發(fā)式引擎驅(qū)動(dòng).Hevm以一種交互式修復(fù)漏洞模式允許智能合約逐步地執(zhí)行操作碼.Manticore是一種符號(hào)化的執(zhí)行引擎,包括EVM在內(nèi)的多種模式,支持具體程序方案、符號(hào)化執(zhí)行驅(qū)動(dòng)和斷言檢測(cè)等.REMIX是一種基于瀏覽器的智能合約編寫和漏洞修補(bǔ)的IDE JavaScript應(yīng)用,內(nèi)嵌的靜態(tài)分析工具可以針對(duì)已知的預(yù)定義漏洞進(jìn)行檢測(cè).F*是一種用于程序驗(yàn)證的通用函數(shù)式編程工具[68],支持驗(yàn)證工具的自動(dòng)執(zhí)行和基于依賴類型證明的表達(dá),可以對(duì)實(shí)際智能合約的語義正確性和運(yùn)行過程的安全性進(jìn)行驗(yàn)證.但是,現(xiàn)有的形式化驗(yàn)證和程序分析工具多是針對(duì)已知漏洞的檢測(cè)和驗(yàn)證.未來的研究將更加關(guān)注現(xiàn)有的智能合約的反模式,構(gòu)造動(dòng)態(tài)檢測(cè)的程序分析工具.
3.5.4 隱私保護(hù)問題
以太坊、超級(jí)賬本項(xiàng)目都是開源的智能合約平臺(tái),上面支持的智能合約普遍都是公開的.智能合約常涉及多用戶的參與,執(zhí)行也需要用戶提供經(jīng)濟(jì)激勵(lì),用戶的賬戶信息、交易、智能合約的狀態(tài)變量等信息都公開于整個(gè)網(wǎng)絡(luò)中,亟需增加隱私保護(hù)機(jī)制.
與數(shù)據(jù)層相似,密碼學(xué)技術(shù)也可以為提高智能合約隱私保護(hù)特性提供強(qiáng)有力的技術(shù)保障.其中,零知識(shí)證明可以隱藏用戶身份和交易內(nèi)包含的知識(shí).Hawk[69]在僅支持匿名交易的Zerocash協(xié)議的基礎(chǔ)上進(jìn)行擴(kuò)展,利用零知識(shí)證明技術(shù)和安全多方計(jì)算實(shí)現(xiàn)了具有隱私保護(hù)的智能合約編寫框架,保證交易和合約參與方身份對(duì)合約以外的人匿名,但是仍然存在合約代碼隱私性的問題.同態(tài)加密技術(shù)也被視為增強(qiáng)智能合約隱私保護(hù)的新興技術(shù),可以為智能合約提供可信執(zhí)行環(huán)境.
然而,引入隱私保護(hù)機(jī)制必然會(huì)增加智能合約執(zhí)行難度,用戶也需要付出更多經(jīng)濟(jì)激勵(lì)成本.一些需要高保密性、功能復(fù)雜的應(yīng)用場(chǎng)景給智能合約的設(shè)計(jì)和編寫提出了挑戰(zhàn).密碼學(xué)技術(shù)在實(shí)際應(yīng)用中也具有局限性.零知識(shí)證明系統(tǒng)和同態(tài)加密方案構(gòu)造困難、效率低、占用區(qū)塊鏈存儲(chǔ)空間,不適用小成本、時(shí)效性要求高的智能合約,是目前制約智能合約隱私保護(hù)發(fā)展的主要因素.
區(qū)塊鏈在金融、供應(yīng)鏈、能源等多領(lǐng)域具有廣泛的應(yīng)用場(chǎng)景[70-71].雖然在不同的應(yīng)用場(chǎng)景下,應(yīng)用層需要反映不同的區(qū)塊鏈的業(yè)務(wù)功能,在設(shè)計(jì)上略顯差異.但是,應(yīng)用層作為直接與用戶交互的區(qū)塊鏈層級(jí),在架構(gòu)設(shè)計(jì)上還具有一定的共同點(diǎn).一般地,應(yīng)用層需要具備API接口、跨鏈異構(gòu)和監(jiān)管技術(shù).從當(dāng)前區(qū)塊鏈應(yīng)用發(fā)展來看,應(yīng)用層設(shè)計(jì)面臨跨鏈操作難、監(jiān)管技術(shù)缺失和應(yīng)用層攻擊等問題.
3.6.1 跨鏈操作難
面對(duì)數(shù)量眾多的異構(gòu)區(qū)塊鏈應(yīng)用,亟需跨鏈技術(shù)將它們連接起來,構(gòu)建互聯(lián)、互通、互信的區(qū)塊鏈應(yīng)用網(wǎng)絡(luò).去中心化的區(qū)塊鏈無法像傳統(tǒng)網(wǎng)絡(luò)系統(tǒng)通過中心節(jié)點(diǎn)實(shí)現(xiàn)互通,如何實(shí)現(xiàn)去中心化區(qū)塊鏈平臺(tái)間的連接、解決跨鏈操作的原子性問題是跨鏈技術(shù)面臨的最大挑戰(zhàn).
區(qū)塊鏈研發(fā)人員意識(shí)到跨鏈技術(shù)的重要性,先后使用公證機(jī)制、側(cè)鏈或中繼網(wǎng)絡(luò)、哈希時(shí)間鎖合約(Hash time lock contract,HTLC)和分布式私鑰控制等技術(shù)實(shí)現(xiàn)異構(gòu)區(qū)塊鏈互聯(lián).
1)公證機(jī)制:通過中間節(jié)點(diǎn)資金托管的方式保證安全支付.2015年,Ripple團(tuán)隊(duì)提出Interledger協(xié)議[72],通過一個(gè)或多個(gè)第三方連接器賬戶進(jìn)行資金托管,形成跨鏈交易路徑,可以保證兩個(gè)異構(gòu)區(qū)塊鏈之間的代幣兌換,卻面臨單點(diǎn)問題.
2)側(cè)鏈或中繼網(wǎng)絡(luò):將側(cè)鏈或中繼區(qū)塊鏈作為異構(gòu)區(qū)塊鏈間的中介網(wǎng)絡(luò),典型代表有Cosmos和Polkadot方案.Cosmos是Tendermint團(tuán)隊(duì)開發(fā)的區(qū)塊鏈互聯(lián)網(wǎng)絡(luò),通過主干網(wǎng)上的中繼器將異構(gòu)的區(qū)塊鏈子網(wǎng)進(jìn)行互聯(lián),從而實(shí)現(xiàn)各數(shù)字資產(chǎn)交易,是價(jià)值互聯(lián)網(wǎng)的代表.Polkadot利用中繼區(qū)塊鏈網(wǎng)絡(luò)實(shí)現(xiàn)了以太坊與其他區(qū)塊鏈之間的跨鏈通信,不僅支持代幣兌換,也嘗試構(gòu)建通用的跨鏈通信技術(shù).
3)哈希時(shí)間鎖合約:要求只有在規(guī)定時(shí)間內(nèi)給出正確的哈希值原像的節(jié)點(diǎn)才可以使用這筆被鎖定的代幣.在閃電網(wǎng)絡(luò)中,若兩個(gè)節(jié)點(diǎn)之間沒有建立通道,則可以通過哈希時(shí)間鎖進(jìn)行安全的鏈下交易.
4)分布式私鑰控制:通過安全多方計(jì)算或者門限密鑰分享等方式實(shí)現(xiàn)對(duì)賬戶資產(chǎn)的鎖定與解鎖.
目前,跨鏈技術(shù)的發(fā)展還處于初級(jí)階段,需要大量理論研究和實(shí)驗(yàn)測(cè)試支撐.跨鏈技術(shù)研究還多限于金融領(lǐng)域的代幣兌換和跨境支付,要實(shí)現(xiàn)異構(gòu)區(qū)塊鏈通信還有待進(jìn)一步研究.
3.6.2 監(jiān)管技術(shù)缺失
比特幣和以太坊先后出現(xiàn)的暗網(wǎng)交易、勒索病毒、數(shù)字資產(chǎn)被盜等安全事件引起了社會(huì)各界對(duì)區(qū)塊鏈平臺(tái)監(jiān)管缺失問題的廣泛討論.監(jiān)管技術(shù)的目標(biāo)是對(duì)于非法行為的檢測(cè)、追蹤和追責(zé),從而保證區(qū)塊鏈平臺(tái)的內(nèi)容安全.然而,區(qū)塊鏈去中心化、不可篡改、匿名等特點(diǎn)卻增加了監(jiān)管機(jī)制設(shè)置的難度.
比特幣作為目前最成熟、市場(chǎng)占有率最高的區(qū)塊鏈數(shù)字貨幣應(yīng)用,自然而然成為監(jiān)管技術(shù)研究的主要場(chǎng)景[19].部分研究提出通過政府設(shè)立專門的執(zhí)法機(jī)構(gòu)或者數(shù)字貨幣交易平臺(tái)等第三方對(duì)比特幣地址進(jìn)行追蹤,對(duì)非法交易進(jìn)行定位.另一個(gè)研究方向是放棄比特幣的匿名性以降低實(shí)施監(jiān)管的難度,或者犧牲去中心化特點(diǎn)構(gòu)造多中心化的替代方案,各中心具有不同的監(jiān)管權(quán)限,共同實(shí)現(xiàn)對(duì)區(qū)塊鏈的監(jiān)管.這些監(jiān)管方案或多或少都犧牲了區(qū)塊鏈的優(yōu)勢(shì)特點(diǎn),方案的可行性還有待評(píng)估.一些第三方企業(yè)和科研機(jī)構(gòu)也專注設(shè)計(jì)區(qū)塊鏈監(jiān)管技術(shù),為政府執(zhí)法機(jī)關(guān)提供比特幣網(wǎng)絡(luò)犯罪監(jiān)控支持,如美國的Chaianalysis公司、加拿大的BIG(Blockchain Intelligence Group)公司和桑迪亞國家實(shí)驗(yàn)室等.
現(xiàn)有的研究成果很難從根本上對(duì)比特幣上出現(xiàn)的洗錢、黑市交易、勒索等違法犯罪行為進(jìn)行有效的防范、分析和追責(zé).雖然已經(jīng)開發(fā)出一些比特幣去匿名化工具,已有的網(wǎng)絡(luò)數(shù)據(jù)分析和監(jiān)管方案普遍采用“一刀切”的監(jiān)管技術(shù)手段,危害正常使用比特幣進(jìn)行合法交易的誠實(shí)用戶的隱私.與跨鏈技術(shù)研究現(xiàn)狀相似,比特幣上現(xiàn)有的監(jiān)管技術(shù)不一定適用于其他區(qū)塊鏈應(yīng)用平臺(tái),如何實(shí)現(xiàn)既保護(hù)誠實(shí)用戶隱私又監(jiān)控非法用戶行為的可控監(jiān)管技術(shù)將長久地成為區(qū)塊鏈應(yīng)用發(fā)展需要突破的關(guān)鍵技術(shù).
3.6.3 其他攻擊
理想情況下,用戶可以直接通過區(qū)塊鏈應(yīng)用層提供的功能接口來調(diào)用相應(yīng)的區(qū)塊鏈服務(wù).然而,多數(shù)應(yīng)用還需要依賴第三方中介機(jī)構(gòu)和區(qū)塊鏈服務(wù)供應(yīng)商.這就為攻擊者從應(yīng)用層進(jìn)行攻擊創(chuàng)造了條件.例如,用戶使用比特幣錢包供應(yīng)商提供的密鑰管理服務(wù)時(shí),就面臨后門攻擊和密鑰泄露的風(fēng)險(xiǎn).在應(yīng)用層開發(fā)過程中同樣存在代碼漏洞問題,尤其在第三方平臺(tái)介入的應(yīng)用場(chǎng)景下,更容易出現(xiàn)越權(quán)漏洞風(fēng)險(xiǎn).釣魚攻擊、中間人攻擊、木馬劫持等傳統(tǒng)網(wǎng)絡(luò)攻擊手段也會(huì)對(duì)上層區(qū)塊鏈應(yīng)用構(gòu)成威脅.另外,在有多方參與的區(qū)塊鏈應(yīng)用中,攻擊者可以在個(gè)人權(quán)限范圍內(nèi)控制應(yīng)用軟件或硬件,實(shí)施MATE攻擊(Man-at-the-end attack)[73],違反應(yīng)用層協(xié)議規(guī)定或行業(yè)規(guī)范,惡意泄露或篡改用戶信息,破壞數(shù)據(jù)的保密性與完整性.在應(yīng)用層的設(shè)計(jì)上還需要充分考慮組織管理上的人員安全,增強(qiáng)應(yīng)用層的軟件保護(hù).
區(qū)塊鏈的平行安全理論是在區(qū)塊鏈生態(tài)環(huán)境中利用平行智能理論和ACP方法(Artificial systems+Computational experiments+Parallel execution,人工系統(tǒng)+計(jì)算實(shí)驗(yàn)+平行執(zhí)行)[74-75]實(shí)現(xiàn)區(qū)塊鏈的安全決策.平行安全理論通過形式化地描述區(qū)塊鏈安全相關(guān)的共識(shí)算法、節(jié)點(diǎn)狀態(tài)、網(wǎng)絡(luò)環(huán)境、激勵(lì)機(jī)制等核心要素的靜態(tài)特征與動(dòng)態(tài)行為來構(gòu)建人工區(qū)塊鏈系統(tǒng),根據(jù)區(qū)塊鏈上已發(fā)現(xiàn)的攻擊以及尚未發(fā)現(xiàn)但理論上潛在的攻擊,利用計(jì)算實(shí)驗(yàn)對(duì)不同區(qū)塊鏈應(yīng)用場(chǎng)景進(jìn)行不同的人工攻擊實(shí)驗(yàn),從容錯(cuò)能力、節(jié)點(diǎn)行為策略、響應(yīng)時(shí)延、交易吞吐量等多維度評(píng)估區(qū)塊鏈的抗攻擊能力,并尋求區(qū)塊鏈的最優(yōu)安全防御策略.人工區(qū)塊鏈系統(tǒng)還需要與實(shí)際區(qū)塊鏈系統(tǒng)進(jìn)行虛實(shí)交互與閉環(huán)反饋,用人工攻擊實(shí)驗(yàn)結(jié)果輔助實(shí)際區(qū)塊鏈系統(tǒng)實(shí)現(xiàn)決策尋優(yōu)與平行調(diào)諧.本質(zhì)上,區(qū)塊鏈的平行安全系統(tǒng)就是以人工區(qū)塊鏈系統(tǒng)作為“計(jì)算實(shí)驗(yàn)室”,利用不同攻擊策略下的人工區(qū)塊鏈系統(tǒng)試錯(cuò)實(shí)驗(yàn)與理性慎思,實(shí)現(xiàn)真實(shí)區(qū)塊鏈系統(tǒng)在遭受安全威脅時(shí)的實(shí)時(shí)管理與決策.
區(qū)塊鏈的平行安全理論框架如圖5所示,其核心思想是基于ACP方法來實(shí)現(xiàn)區(qū)塊鏈系統(tǒng)建模、攻擊模擬實(shí)驗(yàn)與輔助決策,即:利用人工系統(tǒng)(A)方法對(duì)實(shí)際區(qū)塊鏈系統(tǒng)建模,能夠反映實(shí)際系統(tǒng)的運(yùn)行狀態(tài);利用計(jì)算實(shí)驗(yàn)(C)方法,在人工系統(tǒng)中進(jìn)行不同的人工攻擊實(shí)驗(yàn)、分析和評(píng)估,從而掌握對(duì)應(yīng)實(shí)際區(qū)塊鏈系統(tǒng)在各種攻擊下的演化規(guī)律與應(yīng)對(duì)措施,形成完善的“情景-應(yīng)對(duì)”知識(shí)庫;利用平行執(zhí)行(P)方法,通過人工系統(tǒng)和實(shí)際系統(tǒng)在相同攻擊下的平行執(zhí)行與協(xié)同演化,實(shí)現(xiàn)對(duì)實(shí)際區(qū)塊鏈系統(tǒng)的學(xué)習(xí)與培訓(xùn)、實(shí)驗(yàn)與評(píng)估、管理與控制.
圖5 區(qū)塊鏈的平行安全框架Fig.5 A framework of parallel security on blockchain
區(qū)塊鏈的平行安全系統(tǒng)可以實(shí)現(xiàn)區(qū)塊鏈安全決策最優(yōu)化,準(zhǔn)確高效地解決區(qū)塊鏈系統(tǒng)在實(shí)際運(yùn)行中遇到的安全威脅.然而,平行安全更多地是一種指引性安全攻防范式,其落地實(shí)施還需要逐步解決區(qū)塊鏈復(fù)雜生態(tài)系統(tǒng)的整體建模、攻擊模擬、區(qū)塊鏈的計(jì)算實(shí)驗(yàn)與智能解析、人工系統(tǒng)與實(shí)際系統(tǒng)的雙向引導(dǎo)與協(xié)同演化等問題.
區(qū)塊鏈的創(chuàng)新性在于實(shí)現(xiàn)了分布式共識(shí),其上運(yùn)行的智能合約也可實(shí)現(xiàn)豐富的業(yè)務(wù)功能,具有重要的研究價(jià)值和廣闊的應(yīng)用前景.盡管區(qū)塊鏈的理論研究和應(yīng)用發(fā)展日新月異,但是目前區(qū)塊鏈體系架構(gòu)中的各個(gè)層面均存在安全缺陷,還需要在共識(shí)機(jī)制、隱私保護(hù)、監(jiān)管機(jī)制、跨鏈技術(shù)等方面進(jìn)一步研究探索.
共識(shí)機(jī)制是保證區(qū)塊鏈數(shù)據(jù)一致性的關(guān)鍵,也是影響區(qū)塊鏈系統(tǒng)性能效率的主要環(huán)節(jié),在區(qū)塊鏈出現(xiàn)至今的發(fā)展歷程中,一直都是學(xué)術(shù)界和產(chǎn)業(yè)界關(guān)注的焦點(diǎn).雖然共識(shí)機(jī)制的研究取得了一些成果,但是依然面臨去中心化、安全性和可擴(kuò)展性三者不可兼顧的問題.
PoW是最早應(yīng)用在區(qū)塊鏈上的共識(shí)機(jī)制,一直存在效率低、能耗高等問題.低能耗的PoS共識(shí)方案面臨易分叉的安全問題.有相對(duì)完善證明體系的BFT協(xié)議不支持大規(guī)模節(jié)點(diǎn)擴(kuò)展,網(wǎng)絡(luò)開銷較大.分片技術(shù)提高系統(tǒng)效率的同時(shí)也造成安全性弱的問題.利用可信硬件實(shí)現(xiàn)共識(shí)會(huì)有后門風(fēng)險(xiǎn).如何打破“不可能三角”僵局,兼顧去中心化、安全性和可擴(kuò)展性是區(qū)塊鏈共識(shí)機(jī)制發(fā)展要解決的重要問題.
隱私保護(hù)和監(jiān)管機(jī)制都是未來區(qū)塊鏈安全方面需要重點(diǎn)研究的方向.
隱私保護(hù)在開放式網(wǎng)絡(luò)環(huán)境中必不可少.在區(qū)塊鏈體系架構(gòu)中,隱私保護(hù)涉及數(shù)據(jù)層、網(wǎng)絡(luò)層、合約層和應(yīng)用層,依賴零知識(shí)證明、同態(tài)加密等密碼學(xué)技術(shù)、混幣技術(shù)、Tor網(wǎng)絡(luò)等匿名網(wǎng)絡(luò)通訊技術(shù),實(shí)現(xiàn)對(duì)交易數(shù)據(jù)、用戶身份、智能合約和用戶行為信息的保護(hù).各種技術(shù)在實(shí)際應(yīng)用過程中都存在局限性.未來區(qū)塊鏈隱私保護(hù)的發(fā)展既要依賴具有高安全性、高效率的密碼方案,也要關(guān)注用戶身份、交易信息、合約代碼等多方面的隱私保護(hù).
監(jiān)管機(jī)制是區(qū)塊鏈?zhǔn)澜缗c現(xiàn)實(shí)社會(huì)組織結(jié)構(gòu)之間重要的銜接點(diǎn),有助于拓寬區(qū)塊鏈的應(yīng)用范圍,為區(qū)塊鏈應(yīng)用平臺(tái)提供純凈健康的網(wǎng)絡(luò)環(huán)境,是區(qū)塊鏈應(yīng)用層架構(gòu)不可或缺的組件.未來區(qū)塊鏈上的監(jiān)管機(jī)制設(shè)計(jì)將從政策規(guī)定和技術(shù)工具兩個(gè)層面并行發(fā)展,關(guān)注區(qū)塊鏈的內(nèi)容安全.國家要加強(qiáng)制定不同領(lǐng)域區(qū)塊鏈應(yīng)用的合法操作規(guī)則和必要的政策約束.企業(yè)需要根據(jù)具體應(yīng)用設(shè)置適用的政策制度,如銀行必要的KYC和AML政策.政策規(guī)定的制定有利于明確違法行為范疇和技術(shù)層面的設(shè)計(jì)目標(biāo).技術(shù)層面上將更關(guān)注去中心化區(qū)塊鏈平臺(tái)上監(jiān)管技術(shù)的設(shè)計(jì)和實(shí)現(xiàn),研究智能化內(nèi)容抽取、分析、處理技術(shù)和分布式網(wǎng)絡(luò)預(yù)警技術(shù).
在未來區(qū)塊鏈發(fā)展中,如何兼顧隱私保護(hù)和監(jiān)管至關(guān)重要.監(jiān)管機(jī)制一方面要從預(yù)防、檢測(cè)、追蹤、追責(zé)等方面處理區(qū)塊鏈網(wǎng)絡(luò)中的違法數(shù)據(jù),另一方面也要保護(hù)合法用戶的隱私信息,在隱私保護(hù)與監(jiān)管這一對(duì)矛盾體中尋求平衡,建立保護(hù)誠實(shí)用戶隱私、追蹤非法用戶信息的可控監(jiān)管體系.
為了豐富區(qū)塊鏈的功能、完善區(qū)塊鏈生態(tài)、實(shí)現(xiàn)區(qū)塊鏈價(jià)值最大化,區(qū)塊鏈與外部數(shù)字世界、物理世界和異構(gòu)區(qū)塊鏈之間的互聯(lián)將成為未來發(fā)展趨勢(shì).在實(shí)現(xiàn)區(qū)塊鏈互聯(lián)的過程中會(huì)面臨諸多安全問題,也將成為未來區(qū)塊鏈安全方向的研究重點(diǎn).
區(qū)塊鏈應(yīng)用大多針對(duì)數(shù)字貨幣,數(shù)據(jù)流動(dòng)也僅限于區(qū)塊鏈內(nèi)部,形成數(shù)據(jù)孤島.為了使區(qū)塊鏈上數(shù)據(jù)多元化,支持更多功能,區(qū)塊鏈不可避免要引入外部數(shù)據(jù)源,實(shí)現(xiàn)與外部數(shù)字世界的互聯(lián).預(yù)言機(jī)是目前實(shí)現(xiàn)區(qū)塊鏈與外部數(shù)字世界安全互聯(lián)的主流研究方向.在與外部數(shù)字世界互聯(lián)時(shí),區(qū)塊鏈的去中心化與外部數(shù)據(jù)源的中心化運(yùn)營形成對(duì)立.如何保證由第三方服務(wù)器提供的數(shù)據(jù)源真實(shí)可信,是區(qū)塊鏈與外部數(shù)字世界互聯(lián)要解決的核心問題.
區(qū)塊鏈在物聯(lián)網(wǎng)行業(yè)具有可觀的應(yīng)用前景.區(qū)塊鏈與物理世界的安全互聯(lián)有助于加快去中心化物聯(lián)網(wǎng)管理系統(tǒng)的實(shí)現(xiàn),有望解放物理世界中心化負(fù)載嚴(yán)重的問題,顛覆物理世界的組織管理模式.區(qū)塊鏈與物理世界互聯(lián)既要利用區(qū)塊鏈的優(yōu)勢(shì)解決物理世界的信息安全、大規(guī)模存儲(chǔ)和效率等問題,也要平衡去中心化區(qū)塊鏈與中心化物理世界的沖突關(guān)系.
大量區(qū)塊鏈平臺(tái)分立于區(qū)塊鏈生態(tài)體系中,處于相互獨(dú)立狀態(tài).眾多異構(gòu)的區(qū)塊鏈平臺(tái)需要有效的跨鏈技術(shù)實(shí)現(xiàn)互聯(lián).然而,區(qū)塊鏈跨鏈技術(shù)普遍存在效率低的問題.Interledger、Cosmos等主流跨鏈協(xié)議也僅能實(shí)現(xiàn)跨鏈的金融支付交易,協(xié)議移植差,不適用其他應(yīng)用場(chǎng)景.雖然Polkadot跨鏈方案支持更多類型的區(qū)塊鏈互聯(lián),但是方案設(shè)計(jì)尚處于研究階段,不能廣泛應(yīng)用在區(qū)塊鏈平臺(tái)上.跨鏈技術(shù)在設(shè)計(jì)過程中需要更加注意安全性、執(zhí)行效率和跨鏈操作的原子性問題.
區(qū)塊鏈的發(fā)展還需要建立系統(tǒng)級(jí)安全體系,從整體上提升區(qū)塊鏈的安全性,推動(dòng)區(qū)塊鏈安全標(biāo)準(zhǔn)化,為區(qū)塊鏈開發(fā)和使用提供設(shè)計(jì)、管理和使用指南.區(qū)塊鏈系統(tǒng)級(jí)安全體系的構(gòu)建將圍繞數(shù)據(jù)安全、共識(shí)安全、隱私保護(hù)、智能合約安全和內(nèi)容安全等安全目標(biāo),關(guān)注區(qū)塊鏈的物理存儲(chǔ)、密鑰管理、網(wǎng)絡(luò)傳輸、功能應(yīng)用、機(jī)密數(shù)據(jù)和可控監(jiān)管等方面的技術(shù)規(guī)范和保護(hù)措施.
區(qū)塊鏈解決了分布式網(wǎng)絡(luò)中的一致性問題,顛覆了依賴可信第三方實(shí)現(xiàn)大規(guī)模組織管理控制的傳統(tǒng)技術(shù)架構(gòu),應(yīng)用逐漸延伸至金融、物聯(lián)網(wǎng)、智能制造等眾多領(lǐng)域,成為全球?qū)W術(shù)界的研究熱點(diǎn).區(qū)塊鏈行業(yè)風(fēng)風(fēng)火火發(fā)展的同時(shí),技術(shù)本身存在的共識(shí)安全薄弱、隱私泄露、系統(tǒng)漏洞、監(jiān)管缺失、擴(kuò)展性差等問題正阻礙區(qū)塊鏈的發(fā)展.區(qū)塊鏈安全是系統(tǒng)穩(wěn)定發(fā)展的基石,包括數(shù)據(jù)、共識(shí)、內(nèi)容、智能合約和隱私保護(hù)等,自下而上貫穿區(qū)塊鏈整個(gè)體系架構(gòu),需要依賴密碼學(xué)組件、一致性共識(shí)算法、網(wǎng)絡(luò)安全技術(shù)等多方支撐.利用平行智能理論和ACP方法構(gòu)建的區(qū)塊鏈平行安全理論是指導(dǎo)區(qū)塊鏈安全決策的新型理論范式.區(qū)塊鏈安全方面的未來發(fā)展也將圍繞去中心化高閾值容錯(cuò)的可擴(kuò)展共識(shí)機(jī)制設(shè)計(jì)、隱私保護(hù)與可控監(jiān)管機(jī)制之間的平衡、區(qū)塊鏈可信互聯(lián)的實(shí)現(xiàn)和完善的安全體系的構(gòu)建等方向,促進(jìn)區(qū)塊鏈應(yīng)用的健康發(fā)展.