區(qū)塊鏈安全問題: 研究現(xiàn)狀與展望
發(fā)布時(shí)間:2019-07-12 12:59:15
區(qū)塊鏈?zhǔn)潜忍貛诺讓拥暮诵募夹g(shù),展示了在自組織模式下實(shí)現(xiàn)大規(guī)模協(xié)作的巨大潛力,為解決分布式網(wǎng)絡(luò)中的一致性問題提供了全新的方法.隨著比特幣的廣泛流通和去中心化區(qū)塊鏈平臺(tái)的蓬勃發(fā)展,區(qū)塊鏈應(yīng)用也逐漸延伸至金融、物聯(lián)網(wǎng)等領(lǐng)域,全球掀起了區(qū)塊鏈的研究熱潮.然而,區(qū)塊鏈為無信任的網(wǎng)絡(luò)環(huán)境提供安全保障的同時(shí),也面臨安全和隱私方面的嚴(yán)峻挑戰(zhàn).本文定義了區(qū)塊鏈系統(tǒng)設(shè)計(jì)追求的安全目標(biāo),從機(jī)制漏洞、攻擊手段和安全措施三方面對(duì)區(qū)塊鏈各層級(jí)的安全問題進(jìn)行全面分析,提出了區(qū)塊鏈的平行安全概念框架,并總結(jié)未來區(qū)塊鏈安全問題的研究重點(diǎn).本文致力于為區(qū)塊鏈研究提供有益的安全技術(shù)理論支撐與借鑒.
【摘 要】區(qū)塊鏈?zhǔn)潜忍貛诺讓拥暮诵募夹g(shù),展示了在自組織模式下實(shí)現(xiàn)大規(guī)模協(xié)作的巨大潛力,為解決分布式網(wǎng)絡(luò)中的一致性問題提供了全新的方法.隨著比特幣的廣泛流通和去中心化區(qū)塊鏈平臺(tái)的蓬勃發(fā)展,區(qū)塊鏈應(yīng)用也逐漸延伸至金融、物聯(lián)網(wǎng)等領(lǐng)域,全球掀起了區(qū)塊鏈的研究熱潮.然而,區(qū)塊鏈為無信任的網(wǎng)絡(luò)環(huán)境提供安全保障的同時(shí),也面臨安全和隱私方面的嚴(yán)峻挑戰(zhàn).本文定義了區(qū)塊鏈系統(tǒng)設(shè)計(jì)追求的安全目標(biāo),從機(jī)制漏洞、攻擊手段和安全措施三方面對(duì)區(qū)塊鏈各層級(jí)的安全問題進(jìn)行全面分析,提出了區(qū)塊鏈的平行安全概念框架,并總結(jié)未來區(qū)塊鏈安全問題的研究重點(diǎn).本文致力于為區(qū)塊鏈研究提供有益的安全技術(shù)理論支撐與借鑒.
【關(guān)鍵詞】區(qū)塊鏈, 可證明安全, 隱私保護(hù), 安全威脅, 監(jiān)管
引用格式 韓璇, 袁勇, 王飛躍. 區(qū)塊鏈安全問題: 研究現(xiàn)狀與展望. 自動(dòng)化學(xué)報(bào), 2019, 45(1): 206—225
區(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ū)塊鏈的安全性, 有助于提高智能合約的安全性和模塊化, 簡(jiǎn)化開發(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é)簡(jiǎn)要介紹區(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é)全文.
1 區(qū)塊鏈概述
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ā)行1 700 余萬枚比特幣, 總市值超過1 100億美元. 比特幣是迄今為止區(qū)塊鏈技術(shù)最成功的應(yīng)用, 是眾多區(qū)塊鏈平臺(tái)的開發(fā)基礎(chǔ), 也是學(xué)術(shù)界的研究重點(diǎn). 本節(jié)以比特幣為例, 簡(jiǎn)要介紹比特幣區(qū)塊鏈的工作原理、區(qū)塊鏈的定義、特點(diǎn)、分類和面臨的安全技術(shù)挑戰(zhàn)等基本內(nèi)容.
1.1 比特幣的工作原理
比特幣運(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)爭(zhēng)完成PoW求解的過程被稱為挖礦, 這些節(jié)點(diǎn)被稱為礦工. 礦工通過挖礦來競(jìng)爭(zhē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,1 Satoshi = 10-8 BTC) 不能再減半為止, 后續(xù)挖礦不再發(fā)行比特幣, 總量約2 100 萬.
比特幣通過哈希函數(shù)將交易區(qū)塊按時(shí)間順序前后相連, 形成鏈?zhǔn)浇Y(jié)構(gòu), 區(qū)塊鏈結(jié)構(gòu)如圖1 所示. 每個(gè)區(qū)塊包含交易信息和區(qū)塊頭部?jī)刹糠? 交易信息是區(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ù)等信息.
新用戶生成公私鑰對(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í)的礦工將在最長(zhǎng)的有效區(qū)塊鏈上達(dá)成共識(shí), 并在尾部繼續(xù)挖礦.
1.2 區(qū)塊鏈的基本概念
區(qū)塊鏈?zhǔn)且环N典型的分布式賬本技術(shù), 通過共識(shí)等多邊自治技術(shù)手段支持?jǐn)?shù)據(jù)驗(yàn)證、共享、計(jì)算、存儲(chǔ)等功能. 在不同應(yīng)用場(chǎng)景下, 區(qū)塊鏈可以存儲(chǔ)并處理不同數(shù)據(jù). 為了簡(jiǎn)化表述, 本文以交易作為區(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è)試階段.
1.3 區(qū)塊鏈的安全挑戰(zhàn)
區(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)容傳播的溫巢.
2 區(qū)塊鏈的安全目標(biāo)
根據(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.1 數(shù)據(jù)安全
數(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ù).
2.2 共識(shí)安全
共識(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)行.
2.3 隱私保護(hù)
隱私保護(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)系.
2.4 智能合約安全
根據(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)遭受攻擊.
2.5 內(nèi)容安全
內(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) 和反洗錢(Antimoney 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ā)展.
3 區(qū)塊鏈的安全性問題
盡管區(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.1 數(shù)據(jù)層
數(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)成威脅, 但是從長(zhǎng)遠(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ū)塊鏈.
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)安全密鑰管理的主流研究方向.
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ò)展性差、簽名長(zhǎng)度長(zhǎng)也影響其在區(qū)塊鏈中的應(yīng)用.2013 年, Miers 等利用零知識(shí)證明技術(shù)設(shè)計(jì)了匿名代幣Zerocoin[33], 可以將比特幣兌換成Zerocoin 后進(jìn)行匿名交易, 實(shí)現(xiàn)對(duì)用戶身份的隱私保護(hù), 但是不能隱藏交易金額, 支付效率低. 2014 年, Sasson等在Zerocoin 的基礎(chǔ)上利用簡(jiǎn)潔非交互零知識(shí)證明(Zero-knowledge succinct noninteractive 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].
3.2 網(wǎng)絡(luò)層
網(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ù)?
節(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ù)洹⒓用艿燃夹g(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)失效和成本高等問題, 操作簡(jiǎn)單, 在數(shù)字貨幣領(lǐng)域中有廣泛應(yīng)用. 但是去中心化混幣存在惡意滲入, 混幣成員惡意泄露混幣過程的問題, 無法抵御DoS 攻擊, 無法兼顧效率和隱私保護(hù)需求.
3.3 共識(shí)層
共識(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ū)塊鏈增長(zhǎng)速率等多變量因素. 由于共識(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]. Ki-ayias 等也在一系列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ī)制一致性的攻擊有雙重支付攻擊和長(zhǎng)程攻擊(Long-range attack). 雙重支付攻擊是破壞共識(shí)機(jī)制一致性的典型攻擊方式, 是數(shù)字貨幣方案設(shè)計(jì)中需要解決的首要安全性問題. 在比特幣中,雙重支付攻擊的目的是重復(fù)花費(fèi)自己已經(jīng)使用過的一筆比特幣. 在一般區(qū)塊鏈中, 雙重支付攻擊是指攻擊者企圖在區(qū)塊鏈上記錄一筆與現(xiàn)有區(qū)塊鏈上的交易相違背的無效交易. 常用的方法是產(chǎn)生一條更長(zhǎng)的區(qū)塊鏈分叉, 使包含原交易的區(qū)塊鏈被大多數(shù)礦工丟棄. 長(zhǎng)程攻擊是PoS 中潛在的攻擊行為. 由于PoS 中礦工挖礦需要付出的代價(jià)極低, 具有權(quán)益優(yōu)勢(shì)的節(jié)點(diǎn)有可能從創(chuàng)世塊開始產(chǎn)生一條完全不同的區(qū)塊鏈分叉, 即為長(zhǎng)程攻擊.
目前, 區(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)爭(zhē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ì)這些合法交易的交易雙方造成利益損失.
3.4 激勵(lì)層
在無許可區(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ū)塊, 仍然可能形成長(zhǎng)度為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]. 為了獲得更高的長(zhǎng)遠(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)通貨膨脹. 長(zhǎng)此以往, 區(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ì)分配缺乏公平性與合理性.
3.5 合約層
智能合約是合約層的核心, 是一種可自動(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)用棧深度為1 024, 攻擊者可以先迭代調(diào)用合約1 023 次再發(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ā)展的主要因素.
3.6 應(yīng)用層
區(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ù)將長(zhǎng)久地成為區(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ù).
4 區(qū)塊鏈的平行安全
區(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)估、管理與控制.
區(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é)同演化等問題.
5 未來區(qū)塊鏈安全方面研究重點(diǎn)
區(qū)塊鏈的創(chuàng)新性在于實(shí)現(xiàn)了分布式共識(shí), 其上運(yùn)行的智能合約也可實(shí)現(xiàn)豐富的業(yè)務(wù)功能, 具有重要的研究?jī)r(jià)值和廣闊的應(yīng)用前景. 盡管區(qū)塊鏈的理論研究和應(yīng)用發(fā)展日新月異, 但是目前區(qū)塊鏈體系架構(gòu)中的各個(gè)層面均存在安全缺陷, 還需要在共識(shí)機(jī)制、隱私保護(hù)、監(jiān)管機(jī)制、跨鏈技術(shù)等方面進(jìn)一步研究探索.
5.1 打破“不可能三角”
共識(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ā)展要解決的重要問題.
5.2 隱私保護(hù)與可控監(jiān)管
隱私保護(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)管體系.
5.3 區(qū)塊鏈互聯(liá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í)行效率和跨鏈操作的原子性問題.
5.4 系統(tǒng)級(jí)安全體系
區(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ù)措施.
6 結(jié)束語
區(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ā)展.
References
1 Nakamoto S. Bitcoin: a peer-to-peer electronic cash system [Online], available: https://bitcoin.org/bitcoin.pdf, October 5, 2018
2 Dwork C, Naor M. Pricing via processing or combatting junk mail. In: Proceedings of the 12th Annual International Cryptology Conference. California, USA: CRYPTO, 1992. 139?147
3 Yuan Yong, Wang Fei-Yue. Blockchain: the state of the art and future trends. Acta Automatica Sinica, 2016, 42(4): 481?494
(袁勇, 王飛躍. 區(qū)塊鏈技術(shù)發(fā)展現(xiàn)狀與展望. 自動(dòng)化學(xué)報(bào), 2016, 42(4): 481?494)
4 Walport M. Distributed ledger technology: beyond blockchain [Online], available: https://www.gov.uk/ government/news/distributed-ledger-technology-beyondblock-chain, October 5, 2018
5 Ministry of Industry and Information Technology. Chinese blockchain technology and application development white paper2016 [Online], available: http:// www.fullrich.com/Uploads/article/?le/2016/1020/580866e 374069.pdf, October 5, 2018
6 McWaters R, Bruno G, Galaski R, Chaterjee S. The future of ?nancial infrastructure: an ambitious look at how blockchain can reshape ?nancial services [Online], available: https://www.weforum.org/reports/thefuture- of -?nancial- infrastructure-an-ambitious-look-at how-blockchain-can-reshape-?nancial-services, October 5, 2018
7 Takemoto Y, Knight S. Mt. Gox ?les for bankruptcy, hit with lawsuit [Online]. available: http://www. reuters. com/article/us-bitcoin-mtgox-bankruptcy-idUSBREA1R 0FX20140228, October 5, 2018
8 Hon M T W K, Palfreyman J, Tegart M. Distributed ledger technology & Cybersecurity [Online]. available: https://ec.europa.eu/futurium/en/content/distributedledger-technology-cybersecurity, October 5, 2018
9 Yaga D, Mell P, Roby N, Scarfone K. Blockchain technology overview [Online]. available: https://csrc.nist. gov/publications/detail/nistir/8202/draft, October 5, 2018
10 De Prisco R, Lampson B, Lynch N. Revisiting the Paxos algorithm. In: Proceedings of the 11th International Workshop on Distributed Algorithms. Saarbr¨ ucken, Germany: Springer 1997. 111?125.
11 Lamport L. The part-time parliament. ACM Transactions on Computer Systems, 1998, 16(2): 133?169
12 Castro M, Liskov B. Practical Byzantine fault tolerance. In: Proceedings of the 3rd Symposium on Operating Systems Design and Implementation. New Orleans, USA: OSDI, 1999. 173?86
13 Ongaro D, Ousterhout J K. In search of an understandable consensus algorithm. In: Proceedings of the USENIX Annual Technical Conference. Philadelphia, PA, USA: USENIX ATC, 2014. 305?119
14 Oki B M, Liskov B H. Viewstamped replication: a new primary copy method to support highly-available distributed systems In: Proceedings of the 7th Annual ACM Symposium on Principles of Distributed Computing. Toronto, Ontario, Canada: ACM, 1988. 8?17
15 King S, Nadal S. Ppcoin: peer-to-peer crypto-currency with proof-of-stake [Online], available: https:// bitcoin.org/bitcoin.pdf, October 5, 2018
16 Buterin V. A next-generation smart contract and decentralized application platform [Online], available: https://github.com/ethereum/wiki/wiki/White-Paper, October 5, 2018
17 Yuan Yong, Wang Fei-Yue. Blockchain and cryptocurrencies: model, techniques, and applications. IEEE Transactions on Systems, Man, and Cybernetics: Systems, 2018, 48(9): 1421?1428
18 Peters G W, Panayi E. Understanding modern banking ledgers through blockchain technologies: future of transaction processing and smart contracts on the internet of money. Banking Beyond Banks and Money. Berilin: Springer, 2016. 239?278
19 Vukoli´cM. Rethinking permissioned blockchains. In: Proceedings of the ACM Workshop on Blockchain, Cryptocurrencies and Contracts. Abu Dhabi, United Arab Emirates: ACM, 2017. 3?7
20 Danezis G, Meiklejohn S. Centrally banked cryptocurrencies [Online]. available: https://arxiv.org/abs/1505.06895, October 5, 2018
21 Halpin H, Piekarska M. Introduction to security and privacy on the blockchain. In: Proceedings of the 2017 Security and Privacy Workshops (EuroS&PW). Paris, France: IEEE, 2017. 1?3
22 Heilman E, Kendler A, Zohar A, Goldberg S. Eclipse attacks on bitcoin0s peer-to-peer network. In: Proceedings of 24th USENIX Security Symposium. Washington, D.C, USA: USENIX, 2015: 129?144
23 Delmolino K, Arnett M, Kosba A, Miller A, Shi E. Step by step towards creating a safe smart contract: lessons and insights from a cryptocurrency lab. In: Proceedings of the International Conference on Financial Cryptography and Data Security. Christ Church, Barbados: Springer, 2016. 79?94
24 Bernstein D J. Introduction to Post-quantum Cryptography. Berlin: Springer-Verlag, 2009. 1?14
25 Qin Bo, Chen Li Chang-Hao, Wu Qian-Hong, Zhang YiFeng, Zhong Lin, Zheng Hai-Bin. Bitcoin and digital ?at currency. Journal of Cryptologic Research, 2017, 4(2): 176?186
(秦波, 陳李昌豪, 伍前紅, 張一鋒, 鐘林, 鄭海彬. 比特幣與法定數(shù)字貨幣. 密碼學(xué)報(bào), 2017, 4(2): 176?186)
26 Garay J, Kiayias A, Leonardos N. The bitcoin backbone protocol: analysis and applications. In: Proceedings of the 34th Annual International Conference on the Theory and Applications of Cryptographic Techniques. So?a, Bulgaria: EUROCRYPT, 2015. 281?310
27 Chen L, Jordan S, Liu Y K, Moody D, Peralta R C, Perlner R A. Report on post-quantum cryptography [Online], available: https://www.nist.gov/publications/report-postquantum-cryptography, October 5, 2018
28 Torres W A A, Steinfeld R, Sakzad A, Liu J K, Kuchta V, Bhattacharjee N, et al. Post-quantum one-time linkable ring signature and application to ring con?dential transactions in blockchain (lattice ringCT v1. 0). In: Proceedings of the 23rd Australasian Conference on Information Security and Privacy. Wollongong, NSW, Australia: ACISP, 2018. 558?576
29 Jarecki S, Kiayias A, Krawczyk H, Xu J. Highly-e?cient and composable password-protected secret sharing (or: how to protect your bitcoin wallet online). In: Proceedings of 2016 IEEE European Symposium on Security and Privacy (EuroS&P). Saarbrucken, Germany: IEEE, 2016. 276?291
30 Fleder M, Kester M S, Pillai S. Bitcoin transaction graph analysis [Online]. available: https://arxiv.org/ abs/1502.01657, October 5, 2018
31 Saberhagen N. CryptoNote v 2.0 [Online]. available: https://static.coinpaprika.com/storage/cdn/whitepapers/ 1611.pdf, October 5, 2018
32 Noether S. Ring signature con?dential transactions for Monero [Online]. available: https://eprint.iacr.org/2015/ 1098, October 5, 2018
33 Miers I, Garman C, Green M, Rubin A D. Zerocoin: anonymous distributed e-cash from bitcoin. In: Proceedings of the 2013 IEEE Symposium on Security and Privacy. Berkeley, CA, USA: IEEE, 2013. 397?411
34 Bitansky N, Chiesa A, Ishai Y, Paneth O, Ostrovsky R. Succinct non-interactive arguments via linear interactive proofs. In: Proceedings of the 2013 Theory of Cryptography. Tokyo, Japan: Springer, 2013. 315?333
35 Sasson E B, Chiesa A, Garman C, Green M, Miers I, Tromer E, et al. Zerocash: decentralized anonymous payments from bitcoin. In: Proceedings of the 2014 IEEE Symposium on Security and Privacy. CA, USA: IEEE, 2014. 459?474
36 Decker C, Wattenhofer R. Bitcoin transaction malleability and MtGox. In: Proceedings of the 2014 European Symposium on Research in Computer Security. Wroclaw, Poland: ESORICS, 2014. 313?326
37 Karame G O, Androulaki E, Roeschlin M, Gervais A, ? Capkun S. Misbehavior in bitcoin: a study of doublespending and accountability. ACM Transactions on Information and System Security (TISSEC), 2015, 18(1): No.2
38 Rajput U, Abbas F, Heekuck O. A solution towards eliminating transaction malleability in bitcoin. Journal of Information Processing Systems, 2018, 14(4): 837?850
39 Lewenberg Y, Bachrach Y, Sompolinsky Y, Zohar A, Rosenschein J S. Bitcoin mining pools: a cooperative game theoretic analysis. In: Proceedings of the 2015 International Conference on Autonomous Agents and Multiagent Systems. Istanbul, Turkey: AAMAS, 2015. 919?927
40 Nayak K, Kumar S, Miller A, Shi E. Stubborn mining: generalizing sel?sh mining and combining with an eclipse attack. In: Proceedings of the 2016 IEEE European Symposium on Security and Privacy (EuroS&P). Saarbrucken, Germany: IEEE, 2016. 305?320
41 Reed M G, Syverson P F, Goldschlag D M. Anonymous connections and onion routing. IEEE Journal on Selected areas in Communications, 1998, 16(4): 482?494
42 Bonneau J, Narayanan A, Miller A, Clark J, Kroll J A, Felten E W. Mixcoin: anonymity for bitcoin with accountable mixes. In: Proceedings of the 2014 International Conference on Financial Cryptography and Data Security. Christ Church, Barbados: Springer, 2014. 486?504
43 Valenta L, Rowan B. Blindcoin: blinded, accountable mixes for bitcoin. In: Proceedings of the 2015 International Conference on Financial Cryptography and Data Security. San Juan, Puerto Rico: Springer, 2015. 112?126
44 Maxwell G. CoinJoin: bitcoin privacy for the real world [Online]. available: https://bitcointalk. org/index. php, October 5, 2018
45 Ru?ng T, Moreno-Sanchez P, Kate A. CoinShu?e: practical decentralized coin mixing for bitcoin. In: Proceedings of the 2014 European Symposium on Research in Computer Security. Wroclaw, Poland: ESORICS, 2014. 345?364
46 Ziegeldorf J H, Grossmann F, Henze M, Inden N, Wehrle K. Coinparty: secure multi-party mixing of bitcoins. In: Proceedings of the 5th ACM Conference on Data and Application Security and Privacy. New York, USA: ACM, 2015. 75?86
47 Yuan Yong, Ni Xiao-Chun, Zeng Shuai, Wang Fei-Yue. Blockchain consensus algorithms: the state of the art and future trends. Acta Automatica Sinica, 2018, 44(11): 2011?2022
(袁勇, 倪曉春, 曾帥, 王飛躍. 區(qū)塊鏈共識(shí)算法的發(fā)展現(xiàn)狀與展望. 自動(dòng)化學(xué)報(bào), 2018, 44(11): 2011?2022)
48 Kiayias A, Panagiotakos G. Speed-security tradeo?s in blockchain protocols [Online]. available: https://eprint. iacr.org/2015/1019.pdf, October 5, 2018
49 Sompolinsky Y, Zohar A. Secure high-rate transaction processing in bitcoin. In: Proceedings of the 2015 International Conference on Financial Cryptography and Data Security. San Juan, Puerto Rico: Springer, 2015. 507?527
50 Pass R, Seeman L, Shelat A. Analysis of the blockchain protocol in asynchronous networks. In: Proceedings of the 2017 Annual International Conference on the Theory and Applications of Cryptographic Techniques. Paris, France: EUROCRYPT, 2017. 643?673
51 Kiayias A, Russell A, David B, Oliynykov R. Ouroboros: a provably secure proof-of-stake blockchain protocol. In: Proceedings of the 2017 Annual International Cryptology Conference. Santa Barbara, USA: CRYPTO, 2017. 357?388
52 Bentov I, Lee C, Mizrahi A, Rosenfeld M. Proof of activity: extending bitcoin0s proof of work via proof of stake [extended abstract]. ACM SIGMETRICS Performance Evaluation Review, 2014, 42(3): 34?37
53 Duong T, Fan L, Zhou H S. 2-hop blockchain: combining proof-of-work and proof-of-stake securely [Online]. available: https://eprint.iacr.org/2016/716.pdf, October 5, 2018
54 Gilad Y, Hemo R, Micali S, Vlachos G, Zeldovich N. Algorand: scaling byzantine agreements for cryptocurrencies. In: Proceedings of the 26th Symposium on Operating Systems Principles. Shanghai, China: ACM, 2017. 51?68
55 Chen L, Xu L, Shah N, Gao Z, Lu Y, Shi W. On security analysis of proof-of-elapsed-time (poet). In: Proceedings of the 2017 International Symposium on Stabilization, Safety, and Security of Distributed Systems. MA, USA: Springer, Cham, 2017. 282?297
56 Milutinovic M, He W, Wu H, Kanwal M. Proof of luck: an e?cient blockchain consensus protocol[Online], available: https://eprint.iacr.org/2017/249.pdf, October 5, 2018
57 Zeng Shuai, Yuan Yong, Ni Xiao-Chun, Wang Fei-Yue. Scaling blockchain towards bitcoin: key technologies, constraints and related issues. Acta Automatica Sinica, DOI:10.16383/j.aas.c180100
(曾 帥, 袁 勇, 倪 曉 春, 王 飛 躍. 面 向 比 特 幣 的 區(qū) 塊 鏈 擴(kuò) 容: 關(guān) 鍵 技 術(shù), 制 約 因 素 與 衍 生 問 題. 自 動(dòng) 化 學(xué) 報(bào), DOI:10.16383/j.aas.c180100)
58 Luu L, Narayanan V, Zheng C, Baweja K, Gilbert S, Saxena P. A secure sharding protocol for open blockchains. In: Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security. New York, USA: ACM, 2016. 17?30
59 Kokoris-Kogias E, Jovanovic P, Gasser L, Gailly N, Ford B. Omniledger: a secure, scale-out, decentralized ledger via sharding. In: Proceedings of the 2018 IEEE Symposium on Security and Privacy (SP). CA, USA: IEEE, 2018. 583?598
60 Eyal I, Sirer E G. Majority is not enough: Bitcoin mining is vulnerable. Communications of the ACM, 2018, 61(7): 95?102
61 Bag S, Ruj S, Sakurai K. Bitcoin block withholding attack: analysis and mitigation. IEEE Transactions on Information Forensics and Security, 2017, 12(8): 1967?1978
62 Kiayias A, Koutsoupias E, Kyropoulou M, Tselekounis Y. Blockchain mining games. In: Proceedings of the 2016 ACM Conference on Economics and Computation. Maastricht, The Netherlands: ACM, 2016. 365?382
63 Carlsten M, Kalodner H, Weinberg S M, Narayanan A. On the instability of bitcoin without the block reward. In: Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security. Vienna, Austria: ACM, 2016. 154?167
64 Luu L, Chu D H, Olickel H, Saxena P, Hobor A. Making smart contracts smarter. In: Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security. Vienna, Austria: ACM, 2016: 254?269
65 Atzei N, Bartoletti M, Cimoli T. A survey of attacks on ethereum smart contracts (sok). In: Proceedings of the 2017 International Conference on Principles of Security and Trust. Uppsala, Sweden:Springer, 2017. 164?186
66 Zhang F, Cecchetti E, Croman K, Juels A, Shi E. Town crier: an authenticated data feed for smart contracts. In: Proceedings of the 2016 ACM SIGSAC conference on computer and communications security. Vienna, Austria: ACM, 2016. 270?282
67 Peterson J, Krug J, Zoltu M, Williams A K, Alexander S. Augur: a decentralized oracle and prediction market platform [Online]. available: http://media. abnnewswire. net/media/en/whitepaper/rpt/93144-Augur Whitepaper.pdf, October 5, 2018
68 Grishchenko I, Ma?ei M, Schneidewind C. A semantic framework for the security analysis of ethereum smart contracts. In: Proceedings of the 2018 International Conference on Principles of Security and Trust. Thessaloniki, Greece: Springer, 2018. 243?269
69 Kosba A, Miller A, Shi E, Wen Z, Papamanthou C. Hawk: The blockchain model of cryptography and privacypreserving smart contracts. In: Proceedings of the 2016 IEEE Symposium on Security and Privacy (SP). CA, USA: IEEE, 2016. 839?858
70 Yuan Yong, Zhou Tao, Zhou Ao-Ying, Duan Yong-Chao, Wang Fei-Yue. Blockchain technology: from data intelligence to knowledge automation. Acta Automatica Sinica, 2017, 43(9): 1485?1490 (袁勇, 周濤, 周傲英, 段永朝, 王飛躍. 區(qū)塊鏈技術(shù): 從數(shù)據(jù)智能到 知識(shí)自動(dòng)化. 自動(dòng)化學(xué)報(bào), 2017, 43(9): 1485?1490)
71 Yuan Yong, Wang Fei-Yue. Parallel blockchain: concept, methods and issues. Acta Automatica Sinica, 2017, 43(10): 1703?1712
(袁勇, 王飛躍. 平行區(qū)塊鏈: 概念, 方法與內(nèi)涵解析. 自動(dòng)化學(xué)報(bào), 2017, 43(10): 1703?1712)
72 Thomas S, Schwartz E. A protocol for interledger payments [Online]. available: https://interledger.org/interledger. pdf, October 5, 2018
73 Collberg C, Davidson J, Giacobazzi R, Gu Y X. Toward digital asset protection. IEEE Intelligent Systems, 2011, 26(6): 8?13
74 Wang Fei-Yue. Computational experiments for behavior analysis and decision evaluation of complex systems. Journal of System Simulation, 2004, 16(5): 893?897
(王飛躍. 計(jì)算實(shí)驗(yàn)方法與復(fù)雜系統(tǒng)行為分析和決策評(píng)估. 系統(tǒng)仿真 學(xué)報(bào), 2004, 16(5): 893?897)
75 Wang Fei-Yue. Arti?cial societies, computational experiments, and parallel systems: a discussion on computational theory of complex social-economic systems. Complex Systems and Complexity Science, 2004, 1(4): 25?35
(王飛躍. 人工社會(huì)、計(jì)算實(shí)驗(yàn)、平行系統(tǒng): 關(guān)于復(fù)雜社會(huì)經(jīng)濟(jì)系統(tǒng) 計(jì)算研究的討論. 復(fù)雜系統(tǒng)與復(fù)雜性科學(xué), 2004, 1(4): 25?35)
后記:本文于2019年發(fā)表于《自動(dòng)化學(xué)報(bào)》第45卷第1期
/Uploads/image/file/20190712/20190712125218_80635.pdf
來源:王飛躍科學(xué)網(wǎng)博客