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