許可鏈:屬性,技術及應用
摘要
區(qū)塊鏈的獨特功能,如不可更改性、透明度、出處和真實性,已經(jīng)被許多大規(guī)模的數(shù)據(jù)管理系統(tǒng)用來部署廣泛的分布式應用,包括供應鏈管理、醫(yī)療保健和人群工作的許可設置。與無權限設置不同,例如比特幣,網(wǎng)絡是公開的,任何人都可以在沒有特定身份的情況下參與,有權限的區(qū)塊鏈系統(tǒng)由一組已知的、有身份的節(jié)點組成,這些節(jié)點可能不完全信任對方。雖然許可區(qū)塊鏈的特點對各種大規(guī)模的數(shù)據(jù)管理系統(tǒng)有吸引力,但這些系統(tǒng)必須滿足四個主要要求:保密性、可驗證性、性能和可擴展性。工業(yè)界和學術界已經(jīng)開發(fā)了各種方法來滿足這些要求,假設和成本各不相同。本教程的重點是介紹這些技術中的許多,同時強調(diào)它們之間的權衡。我們通過介紹三種不同的應用,即供應鏈管理、大規(guī)模數(shù)據(jù)庫和多平臺眾包環(huán)境,來證明這些技術在現(xiàn)實生活中的實用性,并展示如何利用這些技術來滿足這些應用的要求。
簡介
區(qū)塊鏈是一種分布式數(shù)據(jù)結(jié)構,用于記錄交易,由幾個節(jié)點維護,沒有中央機構[18]。在區(qū)塊鏈系統(tǒng)中,節(jié)點在一個由不信任的參與者組成的大型網(wǎng)絡中就其共享狀態(tài)達成一致。區(qū)塊鏈最初是為比特幣加密貨幣設計的[47],然而,最近的系統(tǒng)專注于其獨特的功能,如透明度、來源、容錯和真實性,以支持廣泛的分布式應用。比特幣和其他加密貨幣是無許可區(qū)塊鏈系統(tǒng)。在無許可區(qū)塊鏈中,網(wǎng)絡是公開的,任何人都可以參與,無需特定身份。許多其他分布式應用,如供應鏈管理和醫(yī)療保健,被部署在有許可的區(qū)塊鏈系統(tǒng)上,該系統(tǒng)由一組已知的、確定的節(jié)點組成,這些節(jié)點仍然可能不完全信任對方。本教程的重點是支持跨協(xié)作企業(yè)的分布式應用的許可區(qū)塊鏈系統(tǒng)。然而,這些合作企業(yè)不一定相互信任。因此,我們解決了關于分布式應用的保密性、可驗證性、性能和可擴展性要求的四個不同挑戰(zhàn),以使許可的區(qū)塊鏈系統(tǒng)在現(xiàn)實生活中實用。
在許多協(xié)作性的分布式應用中,數(shù)據(jù)的保密性是必需的,例如,供應鏈管理,其中多個企業(yè)按照服務水平協(xié)議(SLA)進行合作,提供不同的服務。為了在不同的合作企業(yè)之間部署分布式應用,區(qū)塊鏈系統(tǒng)需要支持每個企業(yè)的內(nèi)部交易,以及代表企業(yè)間合作的跨企業(yè)交易。雖然跨企業(yè)交易訪問的數(shù)據(jù)對所有企業(yè)來說都是不可見的,但每個企業(yè)的內(nèi)部交易訪問的內(nèi)部數(shù)據(jù)卻可能是保密的。
除了保密性,在許多跨企業(yè)系統(tǒng)中,例如,眾包應用,參與者需要驗證由其他企業(yè)發(fā)起的交易,以確保滿足整個系統(tǒng)的一些預定的全球約束。例如,一個工人每周的總工作時間不得超過40小時,以遵循公平勞動標準法1(FLSA)。因此,如果一個工人為多個眾包平臺工作,例如,一個同時為Uber和Lyft工作的司機,驗證這種全局約束需要訪問其他企業(yè)擁有的數(shù)據(jù)。因此,該系統(tǒng)需要支持驗證能力,同時保持交易的保密性。
除了保密性和可驗證性,分布式應用,例如金融應用,在吞吐量和延遲方面需要高性能,例如,雖然Visa支付服務每秒處理數(shù)千筆交易,但許可區(qū)塊鏈的幼稚實現(xiàn)每秒只處理數(shù)百筆交易。一般來說,"訂單 "和 "執(zhí)行 "是許可區(qū)塊鏈處理交易的兩個主要階段。許可區(qū)塊鏈需要在訂單或執(zhí)行階段對不同的交易進行并行處理,以提高系統(tǒng)的整體性能。
最后,可擴展性是企業(yè)采用區(qū)塊鏈系統(tǒng)的主要障礙之一。為了支持分布式應用,例如大規(guī)模數(shù)據(jù)庫,區(qū)塊鏈系統(tǒng)應該能夠通過向系統(tǒng)添加更多的節(jié)點來有效地擴展。將數(shù)據(jù)劃分為多個分片,由不同的節(jié)點子集維護,是一種成熟的方法,可以提高數(shù)據(jù)庫的可擴展性[23]。在這種方法中,數(shù)據(jù)庫的性能隨著節(jié)點數(shù)量的增加而線性擴展。雖然數(shù)據(jù)庫系統(tǒng)使用分片技術來提高數(shù)據(jù)庫在純碰撞節(jié)點網(wǎng)絡中的可擴展性[23],但由于網(wǎng)絡中的節(jié)點可能不受信任,該技術不容易被區(qū)塊鏈系統(tǒng)所利用。
在本教程中,我們的目標是向數(shù)據(jù)庫社區(qū)展示對設計高效許可區(qū)塊鏈系統(tǒng)的最先進解決方案的深入理解。我們首先討論了幾個大規(guī)模的數(shù)據(jù)管理應用,這些應用促使人們對許可區(qū)塊鏈作為基礎設施的需求不斷上升。然后,我們對許可區(qū)塊鏈模型及其基本加密和分布式系統(tǒng)組件進行了詳細描述。鑒于不同應用的不同需求,我們詳細描述了現(xiàn)有許可區(qū)塊鏈系統(tǒng)設計的各種基礎技術,以解決保密性、可驗證性、性能和可擴展性等基本挑戰(zhàn)。教程的每個部分最后都會討論所介紹的各種技術之間的權衡,以及實際系統(tǒng)在支持大規(guī)模數(shù)據(jù)時面臨的挑戰(zhàn)。
2 教程大綱
保密性、可驗證性、性能和可擴展性是大規(guī)模數(shù)據(jù)管理應用的主要要求,需要通過許可的區(qū)塊鏈系統(tǒng)來實現(xiàn)。在供應鏈管理和眾包等跨企業(yè)應用中需要保密性和可驗證性(以保護企業(yè)數(shù)據(jù)的機密性,并驗證其他企業(yè)發(fā)起的交易,同時保護其數(shù)據(jù)的機密性),而在單企業(yè)和跨企業(yè)應用中都需要性能和可擴展性。
在本節(jié)中,我們首先介紹了幾個實際的大規(guī)模數(shù)據(jù)管理應用,以激勵許可區(qū)塊鏈。接下來我們介紹許可區(qū)塊鏈,并介紹許可區(qū)塊鏈系統(tǒng)提出的不同技術,以滿足大規(guī)模數(shù)據(jù)管理應用的要求。
2.1 應用
我們現(xiàn)在簡要地討論幾個大規(guī)模的數(shù)據(jù)管理應用,以激勵許可區(qū)塊鏈。
2.1.1 供應鏈管理
不同方之間缺乏信任是供應鏈管理中最重要的問題之一。為了解決這個問題,可以使用許可區(qū)塊鏈來監(jiān)控合作過程的執(zhí)行,并檢查執(zhí)行和SLA之間的一致性。所使用的區(qū)塊鏈系統(tǒng)需要支持內(nèi)部和跨企業(yè)的交易,與所有參與者可見的跨企業(yè)交易不同,每個企業(yè)的內(nèi)部交易是保密的,例如,制造商的內(nèi)部交易展示了其生產(chǎn)產(chǎn)品的內(nèi)部流程,制造商可能打算將其作為一個秘密。最后,區(qū)塊鏈系統(tǒng)還必須解決性能方面的問題。
2.1.2 大規(guī)模的數(shù)據(jù)庫
分片技術被廣泛用于分布式數(shù)據(jù)庫,如谷歌的Spanner[23]和Facebook的Tao[17],以解決可擴展性問題。這類系統(tǒng)主要是假設一個崩潰的故障模型,并依靠一個可信的協(xié)調(diào)者來處理跨分片交易。在存在不受信任的基礎設施,即拜占庭節(jié)點的情況下,區(qū)塊鏈系統(tǒng)可以用來實現(xiàn)可擴展性,同時容忍惡意的故障。如果需要對數(shù)據(jù)分片進行保密,可擴展性技術也可以與保密性技術相結(jié)合。
2.1.3 多平臺眾籌
眾籌賦予了互聯(lián)網(wǎng)上的開放合作。一個眾籌系統(tǒng)包括平臺、請求者和工人,請求者提交他們的任務,工人將他們對某一特定任務的貢獻發(fā)送到平臺上。一個眾籌系統(tǒng)可能需要每秒執(zhí)行數(shù)千次交易,因此,必須是高性能的。此外,一個多平臺的眾籌系統(tǒng)應該隨著平臺、工人和請求者數(shù)量的增加而適當?shù)財U展。此外,該系統(tǒng)必須根據(jù)預先定義的全球約束條件提供交易的可驗證性。例如,一個可能為多個眾籌平臺工作的工人每周的總工作時間不得超過40小時,以遵循《公平勞動標準法》2(FLSA);在加州,加州第223號提案對健康福利的最低工作時間做出了自己的規(guī)定,例如,如果一個司機每周工作至少25小時,公司(即平臺)必須提供醫(yī)療補貼??傊?,一個多平臺的眾籌系統(tǒng)需要所有四個保密性、可驗證性、性能和可擴展性的特性。
2.2 有許可的數(shù)據(jù)庫
區(qū)塊鏈系統(tǒng)是全球規(guī)模的點對點系統(tǒng),整合了密碼學、分布式系統(tǒng)和數(shù)據(jù)庫的許多技術和協(xié)議。在區(qū)塊鏈系統(tǒng)中,節(jié)點在一個由可能不信任的參與者組成的大型網(wǎng)絡中就其共享狀態(tài)達成一致。比特幣[47]和其他加密貨幣是無許可區(qū)塊鏈系統(tǒng)。無許可區(qū)塊鏈系統(tǒng)是公開的,沒有先驗已知身份的計算節(jié)點可以在任何時候加入或離開區(qū)塊鏈網(wǎng)絡。另一方面,有權限的區(qū)塊鏈系統(tǒng)使用先驗已知和確定的節(jié)點網(wǎng)絡來管理區(qū)塊鏈。區(qū)塊鏈系統(tǒng)的主要底層數(shù)據(jù)結(jié)構是區(qū)塊鏈賬本,這是一個僅有附錄的完全復制的結(jié)構,在所有參與者之間共享,并保證系統(tǒng)中所有參與者對所有用戶交易的一致看法。區(qū)塊鏈賬本中的每個區(qū)塊都包括一批交易,區(qū)塊鏈賬本中交易區(qū)塊的總順序是通過將區(qū)塊鏈在一起來獲取的,也就是說,每個區(qū)塊都包括前一個區(qū)塊的加密哈希值。圖1展示了一個由五個節(jié)點組成的許可區(qū)塊鏈系統(tǒng)的例子,其中每個節(jié)點都維護著區(qū)塊鏈賬本的副本。

區(qū)塊鏈架構由異步的大型分布式系統(tǒng)中的一組節(jié)點組成。系統(tǒng)中的節(jié)點可能會崩潰,即當一個節(jié)點失敗時,它完全停止處理,也可能會有惡意行為,即當一個節(jié)點失敗時,它可能會任意行事,通常被稱為拜占庭失敗模型。為了確保在不同節(jié)點上復制的數(shù)據(jù)之間的一致性,區(qū)塊鏈系統(tǒng)使用狀態(tài)機復制(SMR)算法[39],其中節(jié)點同意對傳入的交易進行排序,以確保分布式賬本的副本是相同的。SMR調(diào)節(jié)客戶交易在不同節(jié)點上的確定性執(zhí)行,這樣每個非故障節(jié)點都會以相同的順序執(zhí)行每筆交易[53][39]。在有權限的區(qū)塊鏈系統(tǒng)中,節(jié)點使用異步容錯協(xié)議,如Paxos[40]或PBFT[19],就交易被追加到區(qū)塊鏈賬本的這個唯一順序建立共識。
2.3 技術
在過去的幾年里,許可的區(qū)塊鏈系統(tǒng)提出了各種技術來解決大規(guī)模數(shù)據(jù)管理系統(tǒng)的四個主要要求。在本節(jié)中,我們將詳細討論這些技術,并介紹利用這些技術來解決四個主要要求的系統(tǒng):保密性、可驗證性、性能和可擴展性
2.3.1 保密性
在許多協(xié)作性的分布式應用中,例如供應鏈管理,需要數(shù)據(jù)的保密性,其中多個企業(yè)按照服務水平協(xié)議(SLA)協(xié)作,提供不同的服務。為了在不同的合作企業(yè)間部署分布式應用,區(qū)塊鏈系統(tǒng)需要支持每個企業(yè)的內(nèi)部交易以及代表企業(yè)間合作的跨企業(yè)交易。雖然跨企業(yè)交易訪問的數(shù)據(jù)對所有企業(yè)來說都是不可見的,但每個企業(yè)的內(nèi)部數(shù)據(jù),即內(nèi)部交易訪問的數(shù)據(jù),可能是重要的。特別是在協(xié)作式分布式應用中,每個企業(yè)都可以維護自己獨立的不相干的區(qū)塊鏈,并使用原子式跨鏈交易[34][62]或Interledger協(xié)議[58]等技術來支持跨企業(yè)協(xié)作。這樣的技術通常是昂貴的、復雜的,而且主要是為無權限區(qū)塊鏈去簽名的。另一方面,支持單個區(qū)塊鏈上的協(xié)作企業(yè)的技術要么不支持企業(yè)的內(nèi)部交易,導致數(shù)據(jù)整合問題,要么存在保密性問題,因為整個賬本對所有企業(yè)都是可見的,例如,單通道織物[15]。
為了實現(xiàn)保密性,人們提出了加密和基于視圖(即基于分片)的技術。在加密技術中,數(shù)據(jù)被加密或散列,因此,不相關的各方無法訪問數(shù)據(jù)。另外,基于視圖的技術被用來實現(xiàn)保密性,其中每一方(即一個企業(yè)或一組企業(yè))只維護自己的數(shù)據(jù)視圖(包括該方可訪問的記錄),因此,沒有必要使用加密技術。我們提出了Caper[8]、多通道Hyperledger Fabric[16]和私人數(shù)據(jù)集合[6](在Hyperledger Fabric的每個通道內(nèi)使用)。
基于視圖的方法。我們首先討論了基于視圖的方法。在Caper[8]中,每個企業(yè)維護兩種類型的私有和公共數(shù)據(jù),系統(tǒng)支持內(nèi)部和跨企業(yè)交易,其中內(nèi)部交易由單個企業(yè)執(zhí)行,而跨企業(yè)交易由所有企業(yè)執(zhí)行。在Caper中,每個企業(yè)在本地訂購和執(zhí)行其內(nèi)部交易,而跨企業(yè)交易是公開的,每個企業(yè)都可以看到。此外,Caper的區(qū)塊鏈賬本是一個有向無環(huán)圖,包括每個企業(yè)的內(nèi)部交易和所有跨企業(yè)交易。盡管如此,為了保密起見,區(qū)塊鏈賬本不由任何節(jié)點維護。事實上,每個企業(yè)都維護自己的本地賬本視圖,包括其內(nèi)部和所有跨企業(yè)交易。由于訂購跨企業(yè)交易需要所有企業(yè)之間達成全球協(xié)議,Caper引入了不同的共識協(xié)議,以便在全球范圍內(nèi)訂購跨企業(yè)交易。
Hyperledger Fabric[15][16]引入了通道來保護機密性。一個多通道的Hyperledger Fabric由多個通道組成,每個通道都有自己的一組企業(yè)。在每個通道中,每個企業(yè)都有自己的一組執(zhí)行者(即認可者)節(jié)點,企業(yè)的交易由其認可者節(jié)點執(zhí)行。然而,通道內(nèi)的企業(yè)共享相同的區(qū)塊鏈賬本和區(qū)塊鏈狀態(tài)(即數(shù)據(jù)存儲),因此,通道內(nèi)的任何交易都會被復制到所有通道成員(即企業(yè))的賬本上。另一方面,不同的通道是完全分離的,既不能訪問區(qū)塊鏈賬本也不能訪問其他通道的區(qū)塊鏈狀態(tài)。不同的通道仍然可能共享同一組訂購者節(jié)點。下單者就一個通道的交易順序建立共識。由于下單者能夠訪問交易數(shù)據(jù),他們應該得到所有渠道成員的信任。還應注意的是,一個企業(yè)可能是不同渠道的成員,例如,一個參與不同供應鏈管理場景的制造商。此外,在兩個通道之間處理一個(公共)交易,需要參與者之間有一個可信的通道或一個原子提交協(xié)議。
加密技術。當在一個跨企業(yè)的應用中,一個企業(yè)的子集想要進行保密交易,并對其他企業(yè)的交易數(shù)據(jù)保密時,就可以使用加密技術。特別是,在Hyperledger fabric中,如果一個通道上的企業(yè)子集需要對同一通道上的其他企業(yè)進行數(shù)據(jù)保密,他們可以選擇創(chuàng)建一個新的通道,只包括需要訪問數(shù)據(jù)的企業(yè)。然而,創(chuàng)建獨立的通道會導致額外的管理開銷和數(shù)據(jù)完整性(公共和私人數(shù)據(jù)之間)問題。Hyperledger Fabric[15]提出了私有數(shù)據(jù)集合[6],以管理單個通道上的兩個或多個企業(yè)希望對同一通道上的其他企業(yè)保密的機密數(shù)據(jù)。私有數(shù)據(jù)集合使用散列,這是一種加密技術。通過定義一個私有數(shù)據(jù)集合,一個通道上的企業(yè)子集將他們的機密數(shù)據(jù)存儲在一個復制在每個授權對等體上的私有數(shù)據(jù)庫中。私人數(shù)據(jù)的哈希值仍然被附加到通道上每個對等體的區(qū)塊鏈賬本上。該哈希值作為交易的證據(jù),并被用于狀態(tài)驗證。使用該哈希值,其他企業(yè)仍然能夠在驗證階段檢查讀寫沖突。一個企業(yè)可能涉及不同的私人數(shù)據(jù)集合,其中每個私人數(shù)據(jù)庫都在其對等體上進行復制。
討論。綜上所述,基于視圖的技術在管理視圖方面成本很高,例如,在Hyperledger Fabric中配置通道。此外,處理公共交易需要在所有參與的視圖(如企業(yè)、通道)之間建立共識。與Hyperledger Fabric相比,Caper在企業(yè)層面上保留了保密性(包括邏輯和數(shù)據(jù))。另一方面,加密技術雖然降低了管理視圖的成本,但卻導致了維護區(qū)塊鏈賬本中的數(shù)據(jù)和不相關企業(yè)的區(qū)塊鏈狀態(tài)的開銷。
2.3.2 可驗證性
在許多跨企業(yè)系統(tǒng)中,企業(yè)需要驗證由其他企業(yè)發(fā)起的交易行為,以確保以保護隱私的方式滿足全球約束。這可能出現(xiàn)在一個眾包環(huán)境中,在這個環(huán)境中,多個互不信任的平臺需要集體執(zhí)行全球規(guī)定,例如,一個工人每周最多可以工作40小時。可驗證性在具有增強隱私的加密貨幣中也是需要的,例如Zcash[7][35],其中交易數(shù)據(jù)是保密的,節(jié)點需要在不知道發(fā)送者、接收者或交易金額的情況下驗證交易。
為了實現(xiàn)可驗證性,人們提出了加密技術(零知識證明[26])。在密碼學中,零知識證明是一種方法,通過這種方法,一方(證明者)可以向另一方(驗證者)證明他們知道一個數(shù)值??,除了他們知道這個數(shù)值之外,不需要傳遞任何信息。可驗證性也可以通過基于令牌的技術來實現(xiàn),其中一個集中的實體根據(jù)全局約束生成可驗證的令牌,并將其分配給相應的參與者。我們介紹了Quorum[20]和Separ[12],并討論了在這兩個系統(tǒng)中是如何解決可驗證性的。
密碼學技術。Quorum[20]作為一個基于以太坊[3]的許可區(qū)塊鏈,引入了兩個共識協(xié)議:一個是基于Raft[49]的崩潰容錯協(xié)議,一個是名為Istanbul BFT的拜占庭容錯協(xié)議[5][50]。Quorum支持公共和私人交易,公共和私人交易都使用相同的共識協(xié)議進行排序。Quorum使用零知識證明技術來確保私人交易的可驗證性。零知識證明使數(shù)字資產(chǎn)在分布式賬本上的轉(zhuǎn)移不會透露任何關于發(fā)送者、接收者或資產(chǎn)數(shù)量的信息,同時確保:發(fā)送者被授權轉(zhuǎn)移資產(chǎn)的所有權,資產(chǎn)之前沒有被花費(重復花費),以及交易的投入等于其產(chǎn)出(質(zhì)量守恒)。零知識證明也被用于眾籌平臺,例如ZebraLancer[41]、ZKCrowd[64]和Prio[24],在單一平臺的背景下提供可驗證性。
基于代幣的技術。Separ[12]是一個基于區(qū)塊鏈的多平臺眾包系統(tǒng),使用基于代幣的技術來確??沈炞C性。在Separ中,一個中心化的可信機構使用匿名代幣建立了全局法規(guī)模型,并將其分發(fā)給參與者。例如,如果一個全局性的約束宣布一個工人每周的總工作時間不得超過40小時,以遵循FLSA,那么權威機構就會給每個工人分配40個代幣,只要工人對一項任務做出貢獻,就可以消耗其代幣。分離,包括在各平臺共享的區(qū)塊鏈賬本之上的基于隱私保護的代幣系統(tǒng),其中系統(tǒng)的全局狀態(tài)在眾工平臺之間使用分布式共識協(xié)議進行管理。
討論。總之,加密技術是真正的解密,因此,不需要一個受信任的實體。然而,零知識保護有相當大的開銷[15]。特別是在大多數(shù)交易可能是本地的環(huán)境中,由于其開銷,使用這種技術是沒有好處的。另一方面,基于令牌的技術需要一個集中的機構來生成令牌。這個中心化的機構必須得到所有參與者的信任。然而,沒有必要在每個節(jié)點上復制所有交易,從而提高性能。
2.3.3 性能
許多大規(guī)模的數(shù)據(jù)管理應用在吞吐量和延遲方面需要高性能,例如金融應用。允許的區(qū)塊鏈系統(tǒng)使用樂觀或悲觀的方法處理交易。這些方法根據(jù)交易之間的競爭和沖突的程度和頻率,提供了性能上的權衡。在樂觀的方法中,節(jié)點執(zhí)行交易,而不需要運行共識協(xié)議來明確建立排序,而在悲觀的方法中,交易首先被排序,然后被執(zhí)行。從架構的角度來看,已經(jīng)為許可區(qū)塊鏈系統(tǒng)提出了三種主要架構。訂單執(zhí)行(OX)和訂單并行執(zhí)行(OXII)架構遵循悲觀的方法,而執(zhí)行-訂單-驗證(XOV)架構遵循樂觀的方法。我們展示了Tendermint[38]、ParBlocckhain[10]、Hyperledger Fabric[15]、Fast Fabric[28]、Fabric++[54]、FabricSharp[52]和XOX Fabric[27]如何解決許可區(qū)塊鏈系統(tǒng)的性能挑戰(zhàn)。
悲觀的方法。在訂單執(zhí)行許可的區(qū)塊鏈中,一組節(jié)點(即訂購者)使用容錯協(xié)議就傳入交易的唯一順序建立了協(xié)議。根據(jù)節(jié)點的故障模型,可以使用拜占庭式的,如PBFT[19],Hotstuff[61],崩潰式的,如Paxos[40],Raft[49],甚至混合式的,如SeeMoRe[14],UpRight[22]的容錯協(xié)議。訂購者節(jié)點然后生成并多播塊給其他節(jié)點(即執(zhí)行者)。執(zhí)行者節(jié)點以相同的順序依次執(zhí)行一個區(qū)塊的交易,將交易附加到區(qū)塊鏈賬本上,并更新區(qū)塊鏈狀態(tài)(即數(shù)據(jù)存儲)。訂單執(zhí)行架構被廣泛用于不同的許可區(qū)塊鏈系統(tǒng),如Tendermint[38]、Quorum[20]、Multichain[29]、Chain Core[1]、Hyperledger Iroha[4]和Corda[2]。特別是,Tendermint[38]使用了一個基于PBFT的共識協(xié)議,它在幾個方面與原始PBFT不同。首先,只有一個子集的節(jié)點,稱為驗證者,參與共識協(xié)議,其中要成為驗證者,節(jié)點需要鎖定他們的硬幣。第二,Tendermint使用領導輪換技術,在每一輪(即每次試圖構建區(qū)塊)后以輪流的方式切換領導。第三,Tendermint實現(xiàn)了 "取證 "共識機制。事實上,在Tendermint中,驗證者在共識協(xié)議中的 "權重 "并不相同,一個驗證者的投票權與它所綁定的硬幣數(shù)量相對應。因此,三分之一或三分之二的驗證人是根據(jù)總投票權的比例而不是驗證人的數(shù)量來定義的。
順序并行執(zhí)行(OXII)架構,類似于順序執(zhí)行架構,遵循悲觀的方法。在OXII架構中,一組互不相干的節(jié)點(訂購者)就傳入事務的順序建立協(xié)議并構建塊。一旦構建了一個區(qū)塊,訂購者節(jié)點為區(qū)塊內(nèi)的交易生成一個依賴圖。依賴關系圖根據(jù)交易之間的沖突給出了一個部分順序,并使不沖突的交易得以平行執(zhí)行。然后,交易由執(zhí)行者節(jié)點按照生成的依賴圖來執(zhí)行。ParBlockchain[10]遵循OXII架構,能夠支持多企業(yè)系統(tǒng)。在多企業(yè)系統(tǒng)中,每個企業(yè)都有自己的執(zhí)行器節(jié)點集,每個企業(yè)的交易都由相應的執(zhí)行器節(jié)點執(zhí)行。
樂觀的方法。最后,Hyperledger Fabric[15]通過切換執(zhí)行和排序階段的順序,提出了樂觀的XOV架構(由Eve[36]在拜占庭容錯SMR的背景下首次提出)。在Fabric中,不同企業(yè)的交易首先由每個企業(yè)的執(zhí)行節(jié)點(即認可者)并行執(zhí)行。然后,交易被一個共識協(xié)議(目前是基于Raft的[49]協(xié)議)排序,并組播到所有認可者節(jié)點。背書者然后驗證交易,并將其追加到賬簿中。
雖然Fabric通過并行執(zhí)行交易來提高性能,并支持交易的非確定性執(zhí)行,但在工作負載中存在任何競爭,即沖突的交易(這在分布式應用中很常見),它必須無視沖突交易的影響,這對區(qū)塊鏈的性能有負面影響。發(fā)生這種情況是因為Fabric在第一步執(zhí)行交易,并在最后一步驗證它們,因此,如果同一區(qū)塊的交易之間存在任何讀寫依賴,直到最后一步才被發(fā)現(xiàn)。已經(jīng)提出了不同的技術來提高Fabric的性能,同時仍然遵循其XOV架構[27][28][51][52][54][55][56][57][60] 。
FastFabric[28]使用不同的數(shù)據(jù)結(jié)構和緩存技術,并將交易驗證管道并行化,以提高Fabric在無沖突交易工作負載中的吞吐量。Fabric++[54]采用了數(shù)據(jù)庫的并發(fā)控制技術,以早期中止交易或在排序階段后重新排序,以調(diào)和潛在的沖突。FabricSharp[52]更進一步,提出了一種算法來提前過濾掉那些永遠不能被重新排序的事務,還提出了一種重排序技術來消除不必要的中止(由Fabric++的強可序列化保證導致,而Fabric需要可序列化保證)。最后,XOX Fabric[27]模型包括一個預排序和一個后排序執(zhí)行步驟,其中后排序執(zhí)行是在驗證步驟之后添加的,以重新執(zhí)行因讀寫沖突而無效的事務
討論。綜上所述,OX架構由于所有事務的順序執(zhí)行而導致性能低下,而OXII和XOV架構都能夠并行地執(zhí)行事務。OXII還支持有爭議的工作負載,在訂單階段檢測沖突的事務并生成依賴圖,而XOV最后驗證讀寫沖突,導致性能不佳。另一方面,XOV通過先執(zhí)行事務并在早期檢測任何不一致的地方來支持事務的非確定性執(zhí)行,而在OXII中,事務是在最后一步執(zhí)行的,因此,如果結(jié)果不一致,中止事務將是昂貴的。
2.3.4 可擴展性
可擴展性是企業(yè)采用區(qū)塊鏈系統(tǒng)的主要障礙之一,特別是在金融和大規(guī)模數(shù)據(jù)庫系統(tǒng)中。允許的區(qū)塊鏈系統(tǒng)主要使用聚類來提高可擴展性。在聚類方法中,例如Blockplane[48],節(jié)點被劃分為容錯集群,每個集群處理(或至少訂購)一組不相交的交易。在單賬本技術中,整個賬本被復制到所有集群上,所有節(jié)點都執(zhí)行每個交易。另一方面,在分片式賬本技術中,賬本被分割成多個分片,由不同的集群維護。分片式賬本許可的區(qū)塊鏈系統(tǒng)處理兩種類型的內(nèi)分片和跨分片交易??鐓^(qū)交易可以用基于協(xié)調(diào)者的方法以集中的方式處理,也可以用扁平化的方法以分散的方式處理。我們詳細討論了ResilientDB[31][32][33]、AHL[25]、SharPer[11]、Saguaro[13]和多通道結(jié)構[16]。
單一賬本的方法。ResilientDB[32]使用了一種拓撲感知的集群方法,將網(wǎng)絡劃分為本地容錯集群,以盡量減少全球通信的成本。然而,所有集群都在每個節(jié)點上復制整個賬本,在每一輪中,每個集群都在本地建立對單一交易的共識,然后將本地復制的交易多播給其他集群。然后,所有集群按照預先確定的順序執(zhí)行該輪的所有交易。由于所有交易都由所有集群執(zhí)行,因此ResilientDB中沒有內(nèi)部和跨區(qū)交易的概念。
分片式賬本方法。AHL[25]使用分片技術來提高可擴展性。在AHL中,與無權限區(qū)塊鏈Elastico[42]、OmniLedger[37]和Rapidchain[63]相似,節(jié)點被隨機分配到集群(稱為委員會)。為了確保高概率的安全,每個委員會必須包括至少80個節(jié)點(而不是OmniLedger的~600個節(jié)點)。為了減少每個委員會內(nèi)所需的節(jié)點數(shù)量,AHL采用了可信的硬件(在[21][59]中提出的技術),限制了節(jié)點的惡意行為。使用可信硬件,惡意節(jié)點不能多播不一致的消息,例如,序列號不一致的消息到不同的節(jié)點,AHL通過依靠一組額外的節(jié)點(稱為參考委員會)來扮演協(xié)調(diào)者的角色,以集中的方式處理跨區(qū)交易。參考委員會使用經(jīng)典的兩階段提交(2PC)和兩階段鎖定(2PL)協(xié)議處理所涉及的集群的跨碎片交易。
SharPer[11][9]是另一個分片許可的區(qū)塊鏈系統(tǒng),該系統(tǒng)由一組容錯集群組成,每個集群維護區(qū)塊鏈賬本的一個分片。與AHL相比,SharPer通過考慮預先確定的容錯集群或假設節(jié)點數(shù)量遠大于故障數(shù)量來提供確定性的安全保證。SharPer使用分散的扁平化共識協(xié)議,在參與的集群之間以分散的方式處理跨碎片交易(不需要參考委員會)。
在Saguaro[13]中,節(jié)點被組織在一個分層結(jié)構中,遵循廣域網(wǎng)基礎設施,從邊緣設備到邊緣、霧和云服務器,每個級別的節(jié)點被進一步分組為容錯的集群。在較低層次,Saguaros與SharPer相似,在每個集群上維護區(qū)塊鏈賬本的一個碎片。然而,Saguaro在處理跨分片交易時得益于網(wǎng)絡的分層結(jié)構。對于每個跨分片交易,選擇與所涉及集群的總距離最小的內(nèi)部集群,即所有涉及集群的最低com-mon祖先,作為協(xié)調(diào)者,從而降低延遲。
最后,雖然在多通道Fabric[15][16]中,通道的引入主要是為了加強保密性,但它們也可以被用來分流系統(tǒng)和數(shù)據(jù)。一個通道實際上是整個系統(tǒng)的一個分片,由一組(邏輯上)獨立的節(jié)點自主管理,但仍然知道它所屬的大系統(tǒng)[16]。使用通道,F(xiàn)abric使用容錯協(xié)議有效地處理分片內(nèi)的交易。多通道Fabric中的跨區(qū)交易是以集中的方式處理的,需要在參與者中存在一個可信的通道來扮演協(xié)調(diào)者的角色,或者一個原子提交協(xié)議[16]。
討論。 分片式賬本方法主要在如何處理跨片交易方面有所不同。集中式處理跨區(qū)交易比較簡單,更接近于傳統(tǒng)的兩相承諾,也就是說,不需要一個協(xié)調(diào)人節(jié)點,而是需要一個協(xié)調(diào)人clus-ter來容忍拜占庭式故障,然而,需要大量的集群內(nèi)和跨集群的通信階段。另一方面,分散式方法不需要額外的節(jié)點,在所涉及的集群中處理交易的階段數(shù)量較少,并且能夠并行處理與非重疊集群的跨碎片交易。然而,如果所涉及的集群距離較遠,在所涉及的集群之間建立跨區(qū)共識需要多輪消息傳遞,這將導致高延遲。另一方面,單賬本方法,例如Re-silientDB,通過在每個集群上復制整個數(shù)據(jù),不存在處理跨碎片交易的延遲問題。然而,為每一個交易在所有集群之間交換信息仍然會導致高延遲。
3 輔導信息
這是一個三小時的教程,針對對許可區(qū)塊鏈及其在大規(guī)模數(shù)據(jù)管理系統(tǒng)中的應用感興趣的研究人員、設計師和從業(yè)人員。具有區(qū)塊鏈和分布式系統(tǒng)基本背景的目標受眾應從本教程中受益最多。對于普通觀眾和新人,本教程解釋了大規(guī)模數(shù)據(jù)管理系統(tǒng)中許可區(qū)塊鏈的設計空間。
本教程與之前數(shù)據(jù)庫會議上的同一主題的教程不同。Maiyya等人在VLDB 2018[43]上發(fā)表的教程主要是關于無權限區(qū)塊鏈的,涵蓋了比特幣、PoW共識的細節(jié)和幾個比特幣的替代品,以提高比特幣的吞吐量。隨后,該教程提出了原子交換和閃電網(wǎng)絡等解決方案,以解決多個區(qū)塊鏈系統(tǒng)的興起所帶來的挑戰(zhàn)。該教程的下一個版本在SIGMOD 2019[44]上提出,部分涵蓋了許可區(qū)塊鏈,其中幾個系統(tǒng),如Hyperledger Fabric、ParBlockhain和Caper,只是作為許可區(qū)塊鏈的例子提出。然而,在本教程中,介紹了20多個許可區(qū)塊鏈及其基礎技術,以滿足大規(guī)模數(shù)據(jù)管理系統(tǒng)的要求,并討論了各種技術之間的不同權衡。本教程也不同于C. Mohan在VLDB 2017[45]和ICDE 2018[46]上的教程,他明確指出,他的教程范圍 "是一般性的,沒有涉及到諸如加密算法或分布式共識協(xié)議的細枝末節(jié)"。最后,本教程與Gupta等人[30]在VLDB 2020上發(fā)表的教程不同,該教程的重點是探索許可區(qū)塊鏈的高吞吐量共識協(xié)議。
4 傳記簡述
Mohammad Javad Amiri是賓夕法尼亞大學計算機和信息科學系的博士后研究員。他于2020年在加州大學圣巴巴拉分校獲得博士學位。他的研究主要是在數(shù)據(jù)管理和分布式系統(tǒng)的交叉領域。他目前的研究重點是管理大規(guī)模數(shù)據(jù),包括云基礎設施和區(qū)塊鏈。他目前的興趣是在云計算環(huán)境中的可擴展數(shù)據(jù)管理和數(shù)據(jù)分析,云中數(shù)據(jù)的安全和隱私,大數(shù)據(jù)的可擴展分析,以及區(qū)塊鏈。Agrawal教授是ACM杰出科學家(2010年),ACM研究員(2012年),IEEE研究員(2012年),以及AAAS研究員(2016年)。El Abbadi教授是ACM院士、AAAS院士和IEEE院士。2007年至2011年,他是加州大學圣巴巴拉分校計算機科學系的主席。他曾擔任多個數(shù)據(jù)庫雜志的編輯,并擔任多個數(shù)據(jù)庫和分布式系統(tǒng)會議的程序主席。他在數(shù)據(jù)庫和分布式系統(tǒng)方面發(fā)表了400多篇文章,并指導了40多名博士生。