發(fā)布時(shí)間:所屬分類:科技論文瀏覽:1次
摘 要: 摘要:作為支撐比特幣實(shí)現(xiàn)無(wú)中心高可信的賬本管理的技術(shù),區(qū)塊鏈在金融領(lǐng)域得到了廣泛關(guān)注.區(qū)塊鏈實(shí)現(xiàn)了不完全可信環(huán)境中的可信數(shù)據(jù)管理,具有去中心化、防篡改、不可抵賴、強(qiáng)一致和完整性等特性,但同時(shí)也存在高延遲和低吞吐率的性能問題.在互聯(lián)網(wǎng)技術(shù)發(fā)展
摘要:作為支撐比特幣實(shí)現(xiàn)無(wú)中心高可信的賬本管理的技術(shù),區(qū)塊鏈在金融領(lǐng)域得到了廣泛關(guān)注.區(qū)塊鏈實(shí)現(xiàn)了不完全可信環(huán)境中的可信數(shù)據(jù)管理,具有去中心化、防篡改、不可抵賴、強(qiáng)一致和完整性等特性,但同時(shí)也存在高延遲和低吞吐率的性能問題.在互聯(lián)網(wǎng)技術(shù)發(fā)展、新型應(yīng)用層出不窮的大背景下,借鑒區(qū)塊鏈在數(shù)字加密貨幣應(yīng)用中的成功經(jīng)驗(yàn),探索可信數(shù)據(jù)管理的理論、技術(shù),并設(shè)計(jì)、實(shí)現(xiàn)系統(tǒng),是學(xué)術(shù)界所面·l各的重要問題.從可信數(shù)據(jù)管理角度,介紹了區(qū)塊鏈相關(guān)的技術(shù)和研究進(jìn)展,包括分布式共識(shí)、智能合約、數(shù)據(jù)溯源等,并分析了應(yīng)用對(duì)可信數(shù)據(jù)管理所提出的需求和研究挑戰(zhàn).
關(guān)鍵詞:區(qū)塊鏈;可信數(shù)據(jù)管理;智能合約;數(shù)據(jù)溯源;分布式共識(shí)
區(qū)塊鏈(blockchain或blockchain)是指通過數(shù)據(jù)加密、數(shù)據(jù)鏈?zhǔn)姐^稽、多副本存儲(chǔ)和分布式共識(shí)等機(jī)制,實(shí)現(xiàn)去中心化的分布式數(shù)據(jù)管理技術(shù).它最早是由中本聰提出,并在比特~J(bitcoin)O0)JH以實(shí)現(xiàn)和應(yīng)用.隨著比特幣應(yīng)用的快速發(fā)展,區(qū)塊鏈技術(shù)所具有的防篡改、不可抵賴、強(qiáng)一致和完整性等特性,特別是它的對(duì)等網(wǎng)~(peer—to—peernetwork)去中心化本質(zhì),得到了工業(yè)界和學(xué)術(shù)界的廣泛關(guān)注.在加密貨幣”、分布式賬本[21、單據(jù)管理[引、首次代幣發(fā)售(ICo)和眾籌[4】、慈善[等領(lǐng)域,區(qū)塊鏈技術(shù)得到了廣泛的探索和應(yīng)用.
另一方面,最早的區(qū)塊鏈技術(shù)被設(shè)計(jì)用于比特幣這一特殊的虛擬貨幣應(yīng)用.它與應(yīng)用緊密結(jié)合,所能提供的數(shù)據(jù)管理功能簡(jiǎn)單,同時(shí)基于工作量證明(proof-of-work,簡(jiǎn)稱PoW)的共識(shí)機(jī)制的計(jì)算量耗費(fèi)巨大,導(dǎo)致極低的系統(tǒng)吞吐率和很長(zhǎng)的系統(tǒng)延遲.如何提供豐富的數(shù)據(jù)管理和數(shù)據(jù)處理功能,提高系統(tǒng)性能,成為區(qū)塊鏈研究、開發(fā)和應(yīng)用所關(guān)心的熱點(diǎn).以以太坊fEthereum)[6]和Hyperledger[】等為代表的開源項(xiàng)目則提供了相對(duì)完善的區(qū)塊鏈的開發(fā)與應(yīng)用基礎(chǔ),推動(dòng)了區(qū)塊鏈普及、應(yīng)用的快速增長(zhǎng),以及新問題的發(fā)現(xiàn)與研究.
從數(shù)據(jù)管理角度看,區(qū)塊鏈的本質(zhì)是一個(gè)構(gòu)建在對(duì)等網(wǎng)絡(luò)上、提供了可信數(shù)據(jù)管理功能的數(shù)據(jù)庫(kù)系統(tǒng).一個(gè)可信數(shù)據(jù)庫(kù)管理系統(tǒng)從3個(gè)層面確保系統(tǒng)的可信性,即存儲(chǔ)的可信性、處理的可信性以及外部訪問的可信性,如圖1所示.
存儲(chǔ)可信性是指數(shù)據(jù)處理結(jié)果一旦被確認(rèn),不會(huì)丟失或被篡改.它要求系統(tǒng)提供傳統(tǒng)數(shù)據(jù)庫(kù)管理系統(tǒng)[8]和事務(wù)處理[9】中所要求的事務(wù)持久性(durability),但同時(shí)也要求系統(tǒng)在存儲(chǔ)、通信故障,甚至在蓄意攻擊時(shí),仍能確保數(shù)據(jù)存儲(chǔ)的正確性.
處理可信性一方面是指數(shù)據(jù)處理的正確性。另一方面是指處理過程和結(jié)果可審計(jì)與可溯源.前者要求事務(wù)的并發(fā)控制,而后者則要求系統(tǒng)不僅保存數(shù)據(jù)的最終狀態(tài),還要保存數(shù)據(jù)處理的過程.數(shù)據(jù)處理的正確性是對(duì)傳統(tǒng)數(shù)據(jù)管理系統(tǒng)的基本要求.但是,傳統(tǒng)的數(shù)據(jù)庫(kù)管理系統(tǒng)是集中式的,保持事務(wù)的ACID屬性已有成熟并相對(duì)高效的技術(shù)is,.對(duì)等網(wǎng)絡(luò)環(huán)境中的數(shù)據(jù)管理,大都專注于查詢處理的性能[1O,H】.雖然已有大量關(guān)于分布式系統(tǒng)中的共~(consensus)機(jī)制研究[12,13】,但在數(shù)據(jù)管理系統(tǒng)中,由于性能問題,共識(shí)機(jī)制和跨節(jié)點(diǎn)的協(xié)調(diào)通常只被用于選舉主控節(jié)點(diǎn),而較少被直接應(yīng)用于事務(wù)處理或被盡量避免IH】.因此,在區(qū)塊鏈這樣的去中心化對(duì)等網(wǎng)絡(luò)環(huán)境中,如何在確保系統(tǒng)“正確”的同時(shí)。實(shí)現(xiàn)高效事務(wù)處理,就成為一個(gè)突出的問題.
處理過程和結(jié)果的可審計(jì)及可追溯也是重要的研究問題.在傳統(tǒng)的數(shù)據(jù)庫(kù)管理系統(tǒng)中,數(shù)據(jù)庫(kù)中存儲(chǔ)、維護(hù)的是當(dāng)前的數(shù)據(jù)狀態(tài),處理過程和數(shù)據(jù)的歷史信息通常存儲(chǔ)在數(shù)據(jù)庫(kù)日志中,僅被用于故障恢復(fù)『8I9],并不直接提供查詢服務(wù);在系統(tǒng)無(wú)故障正常運(yùn)行的情況下,也不參與查詢的處理.在節(jié)點(diǎn)不可信的對(duì)等網(wǎng)絡(luò)環(huán)境中,一些查詢和事務(wù)在處理時(shí)需要驗(yàn)證數(shù)據(jù)的歷史狀態(tài),以確保當(dāng)前狀態(tài)的正確性.因此,傳統(tǒng)的數(shù)據(jù)管理技術(shù)無(wú)法被直接應(yīng)用于這一場(chǎng)景.
數(shù)據(jù)溯源(dataprovenance)是數(shù)據(jù)管理中的一項(xiàng)重要技術(shù),在科學(xué)數(shù)據(jù)管理和數(shù)據(jù)倉(cāng)庫(kù)中有著廣泛的應(yīng)用ll.然而,很多數(shù)據(jù)溯源技術(shù)僅針對(duì)集中式數(shù)據(jù)庫(kù)或節(jié)點(diǎn)可信的分布式環(huán)境,在區(qū)塊鏈的應(yīng)用場(chǎng)景下無(wú)法直接應(yīng)用.
外部訪問可信性是指對(duì)用戶訪問的認(rèn)證.在實(shí)現(xiàn)機(jī)制上,它依賴于分布式身份認(rèn)證等技術(shù),也與具體的應(yīng)用場(chǎng)景和業(yè)務(wù)緊密相關(guān).本文的綜述不涉及外部訪問可信性。
.與已有的從數(shù)字貨幣【】、安全[17]、協(xié)議、系統(tǒng)架構(gòu)【、私有鏈和研究挑戰(zhàn)【角度所進(jìn)行的區(qū)塊鏈技術(shù)綜述不同,本文從可信數(shù)據(jù)管理的角度梳理區(qū)塊鏈與相關(guān)數(shù)據(jù)管理技術(shù)的關(guān)聯(lián).介紹在不完全可信的對(duì)等網(wǎng)絡(luò)環(huán)境中的數(shù)據(jù)管理問題和相關(guān)技術(shù),并分析它們?cè)谛滦蛻?yīng)用場(chǎng)景中的適用性.由于外部可信性一方面與應(yīng)用的具體模式緊密關(guān)聯(lián),另一方面又可以部分地依賴于分布式認(rèn)證[22】技術(shù)解決,因此,本文聚焦于存儲(chǔ)可信性和處理可信性技術(shù).
本文第1節(jié)簡(jiǎn)單介紹區(qū)塊鏈的基本數(shù)據(jù)結(jié)構(gòu)和概念.第2節(jié)從分布式共識(shí)的角度介紹存儲(chǔ)可信性保障技術(shù).第3節(jié)介紹處理可信性,包括智能合約及其問題、數(shù)據(jù)溯源技術(shù)以及可認(rèn)證查詢處理.第4節(jié)簡(jiǎn)要介紹主要的區(qū)塊鏈系統(tǒng)和應(yīng)用.最后,第5節(jié)對(duì)可信數(shù)據(jù)管理技術(shù)所面臨的研究挑戰(zhàn)進(jìn)行分析.
1區(qū)塊鏈基礎(chǔ)
區(qū)塊鏈的基本數(shù)據(jù)結(jié)構(gòu)包括兩部分,即區(qū)塊內(nèi)結(jié)構(gòu)與區(qū)塊問鏈?zhǔn)浇Y(jié)構(gòu),分別如圖2(a)~il圖2(b)所示.一個(gè)區(qū)塊包含頭信息和體信息.頭信息是區(qū)塊的元數(shù)據(jù),用于驗(yàn)證區(qū)塊,并與其前驅(qū)和后繼區(qū)塊建立關(guān)聯(lián).通常,頭信息包含自身時(shí)間戳、前驅(qū)區(qū)塊的簽名值、一個(gè)特殊值(稱為nonce)、驗(yàn)證要求(如難度目標(biāo)).體信息則是交易的序列.
只有當(dāng)一個(gè)區(qū)塊的簽名結(jié)果滿足驗(yàn)證要求時(shí),一個(gè)區(qū)塊才能通過驗(yàn)證.例如,在比特幣中,區(qū)塊散列(簽名)后的結(jié)果值必須小于某個(gè)特定值(該值由難度目標(biāo)決定,隨著時(shí)問的變化,難度逐漸增加)¨].當(dāng)一個(gè)區(qū)塊需要與其前驅(qū)建立關(guān)聯(lián)時(shí),其體信息、前驅(qū)區(qū)塊簽名值、自身時(shí)問戳、驗(yàn)證要求等信息都已經(jīng)確定,唯一能調(diào)整以獲得不同自身簽名值的變量就是nonce值.只有當(dāng)獲得了合法的nonce值后。區(qū)塊才能通過驗(yàn)證,與前驅(qū)區(qū)塊進(jìn)行鏈接.
區(qū)塊內(nèi)的交易序列常通過特殊的數(shù)據(jù)結(jié)構(gòu),如Merkle.tree[,進(jìn)行組織.Merkle.tree是一種樹型數(shù)據(jù)結(jié)構(gòu),最初提出時(shí)為二叉樹,但可被拓展為多叉樹,其葉子節(jié)點(diǎn)為數(shù)據(jù)項(xiàng)或數(shù)據(jù)項(xiàng)的散列值,每一個(gè)內(nèi)部節(jié)點(diǎn)的值為其所有子節(jié)點(diǎn)的散列值,從而根節(jié)點(diǎn)的值可被視為整棵樹的簽名.利用這一性質(zhì),Merkle—tree可被方便地用來(lái)實(shí)現(xiàn)數(shù)據(jù)集相等測(cè)試、定位修改以及零知識(shí)證明.因此,Merkle—tree在區(qū)塊鏈中被用于檢測(cè)區(qū)塊副本是否相同.
區(qū)塊鏈的邏輯結(jié)構(gòu)確保區(qū)塊間的關(guān)系可驗(yàn)證.在系統(tǒng)中,一個(gè)區(qū)塊存儲(chǔ)于多個(gè)節(jié)點(diǎn),以應(yīng)對(duì)由于節(jié)點(diǎn)或網(wǎng)絡(luò)故障所引起的區(qū)塊副本丟失問題.
需要注意的是,對(duì)于區(qū)塊(1),可能存在多個(gè)區(qū)塊1,,...,,都能通過驗(yàn)證,成為(1)的后繼.如何讓參與區(qū)塊鏈的所有節(jié)點(diǎn)對(duì)區(qū)塊鏈結(jié)構(gòu)達(dá)成一致,其本質(zhì)是分布式共識(shí)(consensus)2_問題.通常,區(qū)塊鏈僅承認(rèn)鏈最長(zhǎng)的那條鏈.下一節(jié)將對(duì)區(qū)塊鏈中的分布式共識(shí)機(jī)制進(jìn)行介紹.
區(qū)塊鏈系統(tǒng)的另一個(gè)重要方面是其提供服務(wù)的接口.在比特幣應(yīng)用中,區(qū)塊鏈僅提供轉(zhuǎn)賬,即事務(wù)的執(zhí)行與查詢.而隨著應(yīng)用需求以及以太坊和HyperLedger等系統(tǒng)的發(fā)展,新的區(qū)塊鏈平臺(tái)提供了稱為“智能合約(smartcontract)”的用戶代碼執(zhí)行機(jī)制.從可信性角度看,智能合約不僅可被執(zhí)行,且其執(zhí)行歷史將被記錄,執(zhí)行過程和結(jié)果可審計(jì)、可追溯.第3.1節(jié)將介紹區(qū)塊鏈中的智能合約處理機(jī)制,而對(duì)于數(shù)據(jù)溯源這一特殊問題則在第3.2節(jié)中加以介紹.
推薦閱讀:《軟件學(xué)報(bào)》創(chuàng)刊于1990年,由中國(guó)科學(xué)院軟件研究所和中國(guó)計(jì)算機(jī)學(xué)會(huì)聯(lián)合主辦。是一本刊登計(jì)算機(jī)軟件各領(lǐng)域原創(chuàng)性研究成果的期刊,所刊登的論文均經(jīng)過嚴(yán)格的同行專家評(píng)議。注重刊登反映計(jì)算機(jī)科學(xué)和計(jì)算機(jī)軟件新理論、新方法和新技術(shù)以及學(xué)科發(fā)展趨勢(shì)的文章,主要涉及理論計(jì)算機(jī)科學(xué)、算法設(shè)計(jì)與分析、系統(tǒng)軟件與軟件工程、模式識(shí)別與人工智能、數(shù)據(jù)庫(kù)技術(shù)、計(jì)算機(jī)網(wǎng)絡(luò)、信息安全、計(jì)算機(jī)圖形學(xué)與計(jì)算機(jī)輔助設(shè)計(jì)、多媒體技術(shù)及其他相關(guān)的內(nèi)容。
2存儲(chǔ)可信性
2.1工作量證明機(jī)制
如前所述,存儲(chǔ)可信性解決區(qū)塊的容錯(cuò)一致問題,其本質(zhì)是分布式共識(shí)問題.比特幣中的區(qū)塊鏈采用了被稱為工作量證明(proofofwork,簡(jiǎn)稱PoW)~機(jī)制來(lái)解決這一問題.PoW基于如下技術(shù)和假設(shè):根據(jù),t和hk-1計(jì)算使h滿足驗(yàn)證要求的nonce需要耗費(fèi)算力,每次計(jì)算nonce所需的算力在一定時(shí)間段內(nèi)相當(dāng).這一計(jì)算過程被稱為“挖礦”.因此,如果需要篡改或偽造記錄,則需要構(gòu)造一條比當(dāng)前被公認(rèn)的區(qū)塊鏈(主鏈)更長(zhǎng)的鏈,因此需要的算力需要超過整個(gè)區(qū)塊鏈中的其他(正在進(jìn)行正常挖礦運(yùn)算的)算力.或者,更準(zhǔn)確地說,在考慮網(wǎng)絡(luò)延遲時(shí),攻擊者的算力接近50%就會(huì)破壞比特幣區(qū)塊鏈的正確性[鍆.而當(dāng)考慮“自私挖礦(selfishmining)”一一也就是當(dāng)自身“挖礦”所獲得的鏈比別人的鏈長(zhǎng)時(shí),不發(fā)布自己的鏈,在自己的鏈上繼續(xù)挖;當(dāng)自身的鏈和別人己發(fā)布的鏈相比等長(zhǎng)或者更短時(shí),立即發(fā)布自己的鏈,并在別人已發(fā)布的鏈上繼續(xù)“挖礦”,那么,攻擊者接近1/4算力即會(huì)危及比特幣的正確性.
pow共識(shí)機(jī)制的另一個(gè)問題是其性能問題.如Vukolic]]和Tseng]”]對(duì)PoW和傳統(tǒng)的拜占庭容錯(cuò)問題進(jìn)行了詳細(xì)的對(duì)比分析所述,由于比特幣區(qū)塊鏈為“公有鏈”,即其參與讀取、交易以及共識(shí)機(jī)制的用戶是開放的,其用戶規(guī)模是動(dòng)態(tài)的,參與者是匿名的.這直接導(dǎo)致了PoW機(jī)制的低吐率和高延遲.但從另一個(gè)角度看,PoW機(jī)制實(shí)現(xiàn)了系統(tǒng)的高可擴(kuò)展性,支持從數(shù)干到數(shù)十萬(wàn)個(gè)參與者,這一網(wǎng)絡(luò)規(guī)模遠(yuǎn)遠(yuǎn)大于絕大多數(shù)金融機(jī)構(gòu)信息系統(tǒng)的規(guī)模.
2.2實(shí)用拜占庭容錯(cuò)機(jī)制
并非所有區(qū)塊鏈應(yīng)用的需求和對(duì)環(huán)境的假設(shè)都與比特幣相同.例如,在私有鏈(privateblockchain或permissionedblockchain)或聯(lián)盟鏈(consortiumblockchain)中,節(jié)點(diǎn)(參與者)就不再是匿名的,節(jié)點(diǎn)規(guī)模遠(yuǎn)小于公有鏈.且可信程度也遠(yuǎn)比在公有鏈中要高.實(shí)用拜占庭容錯(cuò)機(jī)$1](practicalByzantinefaulttolerance,簡(jiǎn)稱PBFT)可被用于該場(chǎng)景[27,28].與PoW不同,采用PBFT時(shí),區(qū)塊僅有被選舉出的唯一主控節(jié)點(diǎn)生成.PBFT由請(qǐng)求、預(yù)準(zhǔn)備、準(zhǔn)備、提交這4個(gè)階段構(gòu)成.預(yù)準(zhǔn)備由主控節(jié)點(diǎn)發(fā)起,準(zhǔn)備階段各節(jié)點(diǎn)分別驗(yàn)證主控節(jié)點(diǎn)發(fā)起的共識(shí)請(qǐng)求的正確性,并將驗(yàn)證結(jié)果返回給主控節(jié)點(diǎn),并由主控節(jié)點(diǎn)匯總后在提交階段確定是否提交.與PoW相比,PBFT適用于節(jié)點(diǎn)數(shù)少于20個(gè)的場(chǎng)景,可拜占庭容錯(cuò)少于1/3的節(jié)點(diǎn)的攻擊,即有少于1/3的節(jié)點(diǎn)存在漏發(fā)、錯(cuò)發(fā)或選擇性錯(cuò)發(fā)消息情況,主要開銷在于網(wǎng)絡(luò)消息傳輸帶寬,吞吐率可達(dá)數(shù)干,并將延遲降到毫秒級(jí).此外,PBFT可確保系統(tǒng)的最終一致性.由于具有這些特性,PBFT被應(yīng)用于HyperLedgerFabric.
2.3Paxos和BVP
PoW和PBFT考慮的都是拜占庭容錯(cuò)問題.在私有鏈的場(chǎng)景下,若假設(shè)節(jié)點(diǎn)或參與者不進(jìn)行攻擊,則可進(jìn)一步放寬假設(shè).Paxos是重要的非拜占庭場(chǎng)景下的共識(shí)機(jī)~lJ[29,30],可被用于私有鏈場(chǎng)景.與PBFT相比,Paxos的吞吐率可進(jìn)一步提升到超過4萬(wàn)tps[].
Paxos的改進(jìn)版本也能處理拜占庭容錯(cuò)場(chǎng)景,被稱為拜占庭PaXos[32].Abraham和Malkhi提出了BVP[,用以利用TPM(trustedplatformmodule1加密處理器[34J提供高性能的拜占庭容錯(cuò).
2.4其他面向區(qū)塊鏈的共識(shí)機(jī)制
PoW、PBFT和Paxos分別是3個(gè)典型的可用于區(qū)塊鏈的共識(shí)機(jī)制.除此以外,不同的區(qū)塊鏈項(xiàng)目也采用它們的改進(jìn)版本或其他機(jī)制.PPCoin采用權(quán)益證明(proofofstake,簡(jiǎn)稱PoS),面向公有鏈,避免了PoW導(dǎo)致的算力消耗和能源消耗[35】.PoS通過獎(jiǎng)勵(lì)機(jī)制鼓勵(lì)參與節(jié)點(diǎn)成為驗(yàn)證者節(jié)點(diǎn),區(qū)塊的產(chǎn)生由隨機(jī)選取的驗(yàn)證者節(jié)點(diǎn)或驗(yàn)證者節(jié)點(diǎn)集合驗(yàn)證獲批.PoS避免了PoW導(dǎo)致的大量算力和電力消耗.Ripple為另一個(gè)公有鏈平臺(tái),采用其自身的RPCA機(jī)制實(shí)現(xiàn)共識(shí)p們.RPCA首先將共識(shí)問題歸結(jié)到系統(tǒng)中的一組“受信任”節(jié)點(diǎn),然后采用類似于PBFT的投票選取主控節(jié)點(diǎn)方式,實(shí)現(xiàn)共識(shí).
此外,還有Proof-of-Luck[、Raft]】等共識(shí)機(jī)制被應(yīng)用于區(qū)塊鏈系統(tǒng)或應(yīng)用.