陳先意,王 康+,丁思哲,付章杰,2
1.南京信息工程大學(xué) 數(shù)字取證教育部工程研究中心,南京 210044
2.西安電子科技大學(xué) 綜合業(yè)務(wù)網(wǎng)理論及關(guān)鍵技術(shù)國家重點實驗室,西安 710126
區(qū)塊鏈技術(shù)因其去中心化、不可篡改的優(yōu)良特性引領(lǐng)新一代數(shù)據(jù)存儲技術(shù)。然而,區(qū)塊鏈數(shù)據(jù)賬本的封閉特性限制了鏈間數(shù)據(jù)交流,致使技術(shù)應(yīng)用場景受限。區(qū)塊鏈互操作性技術(shù)旨在打破鏈間通信壁壘,實現(xiàn)跨鏈交互,對區(qū)塊鏈技術(shù)的發(fā)展意義不凡。
目前,區(qū)塊鏈互操作性領(lǐng)域已經(jīng)取得了一些成果,早在2016 年,Buterin、Hardjono 等人[1-2]便闡述了區(qū)塊鏈互操作性的定義、分類及其重要意義,但由于技術(shù)發(fā)展時間較短,該文僅對各類跨鏈方案進(jìn)行大致介紹和設(shè)想。Lohachab 等人[3]首次對區(qū)塊鏈互操作性及其相關(guān)問題給出明確的密碼學(xué)定義,并大概列舉相關(guān)解決方案的技術(shù)特性,但未能對各方案流程給出詳細(xì)說明。Monika等人[4]更新了分類方法,從公證人、側(cè)鏈/中繼、智能合約方案、橋接方案、路由方案分類介紹跨鏈技術(shù),但其對技術(shù)方案的介紹較為精簡,缺少流程分析和特性對比,值得進(jìn)一步擴展。
國內(nèi)關(guān)于區(qū)塊鏈互操作性的相關(guān)研究起步較晚,相關(guān)研究工作較少。李芳等人[5]最早在國內(nèi)總結(jié)了當(dāng)時的跨鏈技術(shù),簡要介紹了2018 年之前的24 種主流跨鏈技術(shù)的原理和實現(xiàn)思路,以及跨鏈技術(shù)面臨的12 項主要問題。但受限于技術(shù)瓶頸,當(dāng)時的跨鏈技術(shù)或協(xié)議多數(shù)僅停留在白皮書階段,無法結(jié)合實際探討及分析,且其中部分技術(shù)已經(jīng)大幅更新。同時期的路愛同等人[6]將主流跨鏈技術(shù)分為四類并從理論上給出解釋——公證人機制、側(cè)鏈/中繼、哈希鎖定、分布式私鑰控制。之后,郭朝等人[7]基于哈希鎖定、公證人、側(cè)鏈中繼三個方向介紹了跨鏈技術(shù),提及了一些更先進(jìn)的跨鏈技術(shù),包括微支付通道、閃電網(wǎng)絡(luò)及簡單支付驗證(simplified payment verification,SPV)雙向錨定等,并結(jié)合實例對Polkadot、Cosmos和Plasma三種方案進(jìn)行流程分析。隨著分布式私鑰控制技術(shù)興起,李洋等人[8]從分層角度分析了區(qū)塊鏈擴容技術(shù),將其分為合約層+應(yīng)用層、數(shù)據(jù)層+網(wǎng)絡(luò)層+共識層+激勵層、網(wǎng)絡(luò)層+傳輸層協(xié)議,對相關(guān)技術(shù)的原理進(jìn)行了詳細(xì)介紹,但未能結(jié)合實例進(jìn)行分析。徐卓嫣等人[9]從安全、連接、信息同步等角度分析了區(qū)塊鏈跨鏈的各種實現(xiàn)方案,具體分析了Interledger、Cosmos和Polkadot三種項目。何帥等人[10]在傳統(tǒng)分類基礎(chǔ)上,對各方案的性能進(jìn)行了詳細(xì)分析對比,做出了一些補充。
區(qū)塊鏈作為一門新興技術(shù),其技術(shù)迭代速度極快,現(xiàn)有的歸總和討論亟需進(jìn)一步更新,尤其需要對項目實例進(jìn)行技術(shù)流程與特性的全面總結(jié)分析。本文將結(jié)合區(qū)塊鏈互操作性技術(shù)的最新進(jìn)展,從最新的技術(shù)發(fā)展對不同結(jié)構(gòu)的區(qū)塊鏈的適用性方面總結(jié)現(xiàn)有的區(qū)塊鏈互操作技術(shù)。
區(qū)塊鏈(Blockchain)是一個可以抽象成由多個數(shù)據(jù)塊依照時間順序串聯(lián)而成的一條單向數(shù)據(jù)鏈,如圖1 所示,其中每個數(shù)據(jù)區(qū)塊內(nèi)部包含多個交易(Transaction)。對每一個交易,區(qū)塊鏈系統(tǒng)采用哈希算法將其轉(zhuǎn)換成固定長度的字符串,然后把各字符串兩兩組合作為輸入生成新的哈希字符串。多次重復(fù)上述流程,直到最后只剩下一個哈希字符串,即Merkle根字符串。
圖1 區(qū)塊結(jié)構(gòu)示意圖Fig.1 Block architecture
依據(jù)哈希算法的特性,攻擊者對已發(fā)布區(qū)塊交易的任何篡改,均會導(dǎo)致Merkle 根字符串不可預(yù)測的變化。從而驗證者只要查驗Merkle 根字符串即可判斷區(qū)塊信息是否遭到篡改,實現(xiàn)對區(qū)塊內(nèi)信息正確性的快速驗證。將上述思路從單個區(qū)塊拓展到整個單向數(shù)據(jù)鏈即可實現(xiàn)整個區(qū)塊鏈系統(tǒng)賬本的防篡改。這里,最經(jīng)典的區(qū)塊鏈系統(tǒng)就是比特幣(bitcoin,BTC)[11]。
進(jìn)入?yún)^(qū)塊鏈2.0 時代,智能合約成為區(qū)塊鏈的重要特性,代表性的系統(tǒng)就是以太坊(ethereum,ETH)[12]。以太坊通過對智能合約的支持,降低對區(qū)塊鏈應(yīng)用開發(fā)的技術(shù)要求,快速豐富了以太坊社區(qū),實現(xiàn)對比特幣的彎道超車,兩種系統(tǒng)的交易量對比可見圖2。智能合約本質(zhì)上是一段可以自動執(zhí)行預(yù)定合約條款的計算機程序。當(dāng)智能合約的滿足條件被觸發(fā)時,合約代碼將自動執(zhí)行。智能合約極大提高了區(qū)塊鏈的運轉(zhuǎn)效率,預(yù)擬定的合約流程也能降低惡意方干預(yù)的概率,節(jié)省信任成本。
圖2 BTC和ETH年平均日交易數(shù)量數(shù)據(jù)圖1)數(shù)據(jù)來源https://bitinfocharts.com/,選取每年每季度第一個月第一個有記錄的數(shù)據(jù)。Fig.2 Annual average daily number of transactions in BTCÐ
現(xiàn)如今,區(qū)塊鏈去中心化、安全性、獨立運作等優(yōu)良特性已經(jīng)得到社會各界的廣泛認(rèn)可,許多區(qū)塊鏈項目已經(jīng)在社會生活的多個方面落地運營。例如美國醫(yī)療保健領(lǐng)域的Patientory[13]使用區(qū)塊鏈搭建醫(yī)患溝通平臺,維護(hù)醫(yī)療記錄;Shipchain[14]使用區(qū)塊鏈追蹤記錄供應(yīng)鏈的物流運輸過程;用于政府選票收集的Voatz[15],使用區(qū)塊鏈保證公民投票的安全性;用于物聯(lián)網(wǎng)[16]設(shè)備的Xage[17],使用區(qū)塊鏈監(jiān)測違規(guī)行為等。我國也在積極探索區(qū)塊鏈的應(yīng)用場景,例如在中國雄安落地的數(shù)字人民幣穿透支付業(yè)務(wù)[18],擴展了區(qū)塊鏈支付場景;最高人民法院加強區(qū)塊鏈在司法取證等方面的應(yīng)用[19]。
區(qū)塊鏈技術(shù)之所以跨領(lǐng)域廣泛流行,主要由于其具有兩個特征:(1)對數(shù)據(jù)賬本采用分布式存儲;(2)實行高度封閉管理。前者能夠解決傳統(tǒng)的單點故障問題,防止數(shù)據(jù)丟失;后者限制數(shù)據(jù)的訪問與修改權(quán)限,防止數(shù)據(jù)篡改,兩者的結(jié)合有力地保障了數(shù)據(jù)賬本的安全性。
然而,這種封閉式的數(shù)據(jù)賬本管理,也極大犧牲了區(qū)塊鏈系統(tǒng)的兼容性和擴展性。目前全球范圍內(nèi)至少有數(shù)十種公共區(qū)塊鏈賬本在廣泛使用(公共區(qū)塊鏈賬本市值占比見圖3),這些賬本及其應(yīng)用相互獨立,各自維護(hù)自己的賬本,不與其他賬本進(jìn)行任何信息交換,導(dǎo)致某一領(lǐng)域的信息始終只在該領(lǐng)域的鏈上流轉(zhuǎn),而無法在更廣泛的領(lǐng)域內(nèi)移植利用,從而限制了數(shù)據(jù)范圍,引發(fā)對區(qū)塊鏈存儲方式的質(zhì)疑。2
圖3 全球區(qū)塊鏈總市值占比圖2)數(shù)據(jù)來源https://www.coincarp.com/zh/,https://bitinfocharts.com/,2023年1月1日。Fig.3 Proportion of global blockchain market capitalization
除此之外,區(qū)塊鏈的封閉性導(dǎo)致舊系統(tǒng)難以實現(xiàn)新功能。以比特幣為例,盡管以太坊智能合約技術(shù)已經(jīng)發(fā)布并流行數(shù)年,然而比特幣至今仍未找到一種完備的兼容智能合約技術(shù)的升級方案,一定程度上導(dǎo)致其存量用戶的流失和新用戶增長遲滯。
在發(fā)展設(shè)想中的區(qū)塊鏈3.0 時期,區(qū)塊鏈技術(shù)將成為“萬物互聯(lián)”的一種底層協(xié)議,它將在社會治理領(lǐng)域全面鋪開,囊括身份認(rèn)證、公證、仲裁、審計、域名、物流、醫(yī)療、郵件、簽證、投票等幾乎全部的社會領(lǐng)域。而單一的區(qū)塊鏈系統(tǒng)不可能承載海量的跨領(lǐng)域信息,因此,發(fā)展現(xiàn)有的區(qū)塊鏈系統(tǒng)并研究鏈間互操作技術(shù)迫在眉睫。
區(qū)塊鏈互操作性[20]技術(shù),又稱為區(qū)塊鏈跨鏈技術(shù),從應(yīng)用目的上可以分為淺層、中層、深層三種類別:
淺層跨鏈方法主要指的是區(qū)塊鏈擴容方法,該類方法面向已經(jīng)大規(guī)模運營的區(qū)塊鏈,在不修改鏈結(jié)構(gòu)的前提下對現(xiàn)存區(qū)塊鏈進(jìn)行擴容、改善吞吐量、增強安全性,幫助區(qū)塊鏈開發(fā)并及時兼容更多的新技術(shù)特性,使其具備更長的生命周期。然而,這類方案通常只針對某個特定的鏈(尤其是公鏈)進(jìn)行改進(jìn),普適性有限。代表性方案包括:用于擴充比特幣功能的BTC-Relay 和提升比特幣吞吐量的Lightning。
中層跨鏈方法是面向已經(jīng)小規(guī)模運營的區(qū)塊鏈的互操作方案,一般為聯(lián)盟鏈或私有鏈,旨在尋找對已有的區(qū)塊鏈僅作少量改動或不做改動的條件下,實現(xiàn)多個同構(gòu)或異構(gòu)區(qū)塊鏈系統(tǒng)之間的信息交換和資產(chǎn)轉(zhuǎn)移等鏈間操作,代表性方案是被加密貨幣交易所青睞的Interledger方案。
深層跨鏈方法對現(xiàn)存區(qū)塊鏈結(jié)構(gòu)的改動較多,通過更改區(qū)塊鏈底層架構(gòu),建立完備的區(qū)塊鏈互聯(lián)生態(tài)系統(tǒng)架構(gòu)并構(gòu)筑下一代區(qū)塊鏈鏈間通信協(xié)議,如Polkadot 構(gòu)建了全新的Parachains 鏈,只通過橋接方式兼容現(xiàn)存的區(qū)塊鏈。
上述淺、中、深三類方法各有側(cè)重,但都是為將區(qū)塊鏈技術(shù)由一條條的獨立鏈,進(jìn)化為跨鏈互聯(lián)、兼收并蓄的多鏈網(wǎng)絡(luò),邁入理想中的區(qū)塊鏈互聯(lián)網(wǎng)時代[21]。
本文將在前述工作之上,就各方案應(yīng)用的主要目的和鏈間結(jié)構(gòu)差異總結(jié)現(xiàn)有的區(qū)塊鏈互操作性技術(shù)路線,并介紹已有的鏈間互操作方案實例,結(jié)合實例說明各技術(shù)的特性和優(yōu)缺點。
當(dāng)前,互聯(lián)網(wǎng)中運行的區(qū)塊鏈賬本眾多,部分區(qū)塊鏈系統(tǒng)只運行于局域網(wǎng)中,用于企業(yè)內(nèi)部數(shù)據(jù)管理等,主要使用私有鏈和聯(lián)盟鏈,它們內(nèi)部的多條鏈之間一般采用相似的結(jié)構(gòu),對區(qū)塊鏈互操作性的要求主要是擴充現(xiàn)有鏈的容量和功能,難度較低。其余區(qū)塊鏈系統(tǒng)如公有鏈一般面向整個互聯(lián)網(wǎng),它們對區(qū)塊鏈互操作性的要求更高,追求在互聯(lián)網(wǎng)內(nèi)不同結(jié)構(gòu)的區(qū)塊鏈間建立一套完備的互操作方法。
為方便介紹,本文按照要互操作的區(qū)塊鏈間結(jié)構(gòu)差異的大小,將互操作技術(shù)分為同構(gòu)擴容技術(shù)和異構(gòu)互操作技術(shù)兩種類型進(jìn)行介紹,細(xì)節(jié)如圖4。
圖4 互操作性技術(shù)概覽圖Fig.4 Overview of interoperability technology
同構(gòu)擴容技術(shù),一般用于特定的某個或某類區(qū)塊鏈,旨在對其實行鏈下擴容,亦或是針對區(qū)塊結(jié)構(gòu)、共識算法等鏈結(jié)構(gòu)相同的公鏈實施互操作。按照提出的時間先后,同構(gòu)擴容技術(shù)主要包含三類:傳統(tǒng)側(cè)鏈技術(shù)、支付通道和哈希時間鎖、基于智能合約的互操作方法。
2.1.1 傳統(tǒng)側(cè)鏈技術(shù)
最先出現(xiàn)的同構(gòu)擴容技術(shù)就是傳統(tǒng)側(cè)鏈技術(shù),Back 等人[22]首先提出并實現(xiàn)用于比特幣擴容。該技術(shù)指的是以某個區(qū)塊鏈作為主鏈,在主鏈之外另外搭建一條或多條與其底層架構(gòu)相似但功能定位不同的子區(qū)塊鏈,這些子鏈被稱為側(cè)鏈。經(jīng)過Kiayias、Ga?i 等人[23-24]從工作量證明(proof of work,PoW)和權(quán)益證明(proof of stake,PoS)兩種共識下分別構(gòu)建原始模型并給出安全性證明,側(cè)鏈的實用性得到肯定。
側(cè)鏈技術(shù)的優(yōu)勢主要在于,可以在不修改原主鏈結(jié)構(gòu)的前提下,通過與主鏈的聯(lián)通,既為主鏈添加其原來不支持的新功能,還可以將主鏈的部分交易流程轉(zhuǎn)移到側(cè)鏈執(zhí)行,實現(xiàn)主鏈的“減負(fù)”,提升主鏈的事務(wù)處理速度。
側(cè)鏈技術(shù)的核心在于,如何實現(xiàn)資產(chǎn)在兩條鏈上的轉(zhuǎn)移。文獻(xiàn)[22]提出了雙向錨定技術(shù)解決這一問題,雙向錨定流程圖見圖5。雙向錨定的思想是,當(dāng)需要將某資產(chǎn)從鏈1 移動到鏈2 時,首先在鏈1 上對需要轉(zhuǎn)移的資產(chǎn)進(jìn)行鎖定,使之不能再繼續(xù)流通,之后在鏈2上將同樣價值的資產(chǎn)解鎖并投入流通,反之亦然。雙向錨定技術(shù)分為對稱式雙向錨定和非對稱式雙向錨定兩種,對稱式雙向錨定要求主鏈和側(cè)鏈均能夠相互驗證對方的信息,這常要求對主鏈進(jìn)行一定的改造,使之能夠識別側(cè)鏈的信息,因此不適用于已經(jīng)投入運營的大型區(qū)塊鏈網(wǎng)絡(luò),一般用于新搭建的區(qū)塊鏈網(wǎng)絡(luò),在搭建主鏈之初即設(shè)計好驗證方式。相應(yīng)地,非對稱式雙向錨定無需對主鏈進(jìn)行額外的改造,一般只要求主鏈的信息能夠被側(cè)鏈完全驗證,這意味主鏈其實并不“知道”自己存在側(cè)鏈,兩者的關(guān)系類似于寄生體之于宿主。這方便主鏈的資產(chǎn)向側(cè)鏈轉(zhuǎn)移,但增加側(cè)鏈資產(chǎn)向主鏈轉(zhuǎn)移的困難性。而且“宿主”的狀態(tài)改變極易影響到“寄生體”的穩(wěn)定性并引發(fā)錯誤。
圖5 雙向錨定流程圖Fig.5 Flow chart of two-way pegging
目前,側(cè)鏈技術(shù)的實現(xiàn)方式,按資產(chǎn)轉(zhuǎn)移的托管方式分為以下幾類:單一托管模式、聯(lián)盟模式、SPV[11]模式、驅(qū)動鏈模式和混合模式。
(1)單一托管模式[25-26],指的是在主鏈上指派某個節(jié)點作為主鏈和側(cè)鏈之間的托管方,資產(chǎn)的鎖定和解鎖均由托管方負(fù)責(zé)。顯然,這會給區(qū)塊鏈網(wǎng)絡(luò)帶來中心化的問題。
(2)聯(lián)盟模式和單一托管模式類似,將托管方由單個節(jié)點擴展到了多個節(jié)點組成的聯(lián)盟[27-28],使用動態(tài)成員多重簽名機制(dynamic members multi signature,DMMS)使聯(lián)盟節(jié)點共同負(fù)責(zé)資產(chǎn)的鎖定和解鎖,一定程度上緩解了中心化問題。上述的單一托管模式和聯(lián)盟模式和下文公證人模式的機制類似,此處不再展開說明。
(3)SPV 模式[22,29-31],意為簡單支付驗證,來源于雙向錨定技術(shù)。資產(chǎn)轉(zhuǎn)出方需要將要轉(zhuǎn)移的鏈上資產(chǎn)發(fā)送到鏈上的一個特殊地址,發(fā)送后等待多個產(chǎn)塊時間確認(rèn)資產(chǎn)確實被轉(zhuǎn)出并鎖定(在比特幣中,一般為六個區(qū)塊后確認(rèn)該交易有效),之后該地址發(fā)送一份SPV 證明給側(cè)鏈,證明資產(chǎn)被鎖定,側(cè)鏈接收到該SPV 證明后,再次驗證主鏈上被鎖定的資產(chǎn),確認(rèn)無誤后解鎖對應(yīng)的資產(chǎn)。SPV 使用規(guī)范化的跨鏈流程,有效避免前兩種托管模式下可能存在的托管方信任問題,目前得到廣泛使用。
(4)驅(qū)動鏈模式[32],同樣采用了資產(chǎn)托管方案。不同點在于將挖出新幣的礦工節(jié)點作為資金的托管方,礦工節(jié)點集體監(jiān)測側(cè)鏈狀態(tài)、共同投票決定資產(chǎn)解鎖和轉(zhuǎn)移,理論上該模式可以借助高比例的誠實礦工節(jié)點以阻止托管方的惡意行為。然而,隨著礦池的出現(xiàn),本應(yīng)成為獨立節(jié)點的零散用戶,選擇將算力交給少數(shù)礦池節(jié)點以保證挖幣收益,這實質(zhì)上減少了參與挖幣的節(jié)點數(shù)目,導(dǎo)致誠實礦工節(jié)點的比例降低,影響到驅(qū)動鏈模式的安全性,引發(fā)較多質(zhì)疑。
2.1.2 支付通道與哈希時間鎖
傳統(tǒng)側(cè)鏈技術(shù)初步實現(xiàn)了跨同構(gòu)鏈資產(chǎn)轉(zhuǎn)移功能,但其對區(qū)塊鏈的吞吐量性能提升效果不佳。為了解決這一問題,支付通道和哈希時間鎖技術(shù)[33]被開發(fā)出來。
支付通道技術(shù)起源于對比特幣的研究,設(shè)計之初并非為鏈下擴容而設(shè)計,而是為提升加密貨幣交易速度和減少手續(xù)費用而開發(fā)的一種鏈下支付技術(shù)。網(wǎng)絡(luò)中的交易雙方事先約定在某個通道(channels)中交易,但對通道中已達(dá)成共識的交易不會立刻廣播給其他節(jié)點,雙方約定都將比特幣存入到由雙方控制的多簽名地址中,在進(jìn)行零次或多次交易之后再在延后的某個時間公布通道內(nèi)的交易,交易結(jié)束后智能合約自動調(diào)整雙方的存款余額來實現(xiàn)鏈下支付,并將最終交易發(fā)布到區(qū)塊鏈上。只要交易雙方始終能夠就交易前后的雙方余額達(dá)成一致,這種交易模式就不會影響到區(qū)塊鏈的穩(wěn)定性。其原理如圖6所示,支付通道以一次最終交易合并了通道內(nèi)的三次交易,只需向區(qū)塊鏈寫入一次而非三次。采用先延遲后集中結(jié)算的交易模式,能夠有效減少無關(guān)節(jié)點接收到的交易信息量,在不減少交易量和影響信任度的基礎(chǔ)上,減輕鏈上壓力。
圖6 支付通道原理示意圖Fig.6 Principle of payment channel
顯然,在支付通道技術(shù)中,其設(shè)計的關(guān)鍵在于如何在未公布交易的情況下使交易雙方無法否認(rèn)已進(jìn)行的交易,這一問題主要借助于哈希時間鎖來解決。
目前支付通道技術(shù)相關(guān)研究不在少數(shù),其中最成功的是閃電網(wǎng)絡(luò)(Lightning Network[34])。
閃電網(wǎng)絡(luò)使用哈希時間鎖來解決跨鏈支付的原子性問題(即原子跨鏈交換[35]),利用哈希時間鎖定(hash time lock contracts,HTLC)執(zhí)行的跨鏈?zhǔn)聞?wù),只存在完成交易和不進(jìn)行交易兩種狀態(tài),不會有中間態(tài)導(dǎo)致資產(chǎn)損失,任何未完成的失敗交易,在經(jīng)過約定時間后都會執(zhí)行回退,將交易資產(chǎn)返回原賬戶。
如圖7,哈希鎖定的原子跨鏈交換大致遵循以下流程:
圖7 原子跨鏈交換流程圖Fig.7 Flow chart of atomic cross-chain swap
(1)甲發(fā)起跨鏈交易,選擇隨機字符串s和超時時限t1,并經(jīng)哈希計算得H(s),將H(s)和t1發(fā)送給乙;
(2)乙收到H(s) 和t1后,選擇超時時限t2(t2<t1);
(3)甲使用H(s)和t1鎖定資產(chǎn),乙使用H(s)和t2鎖定資產(chǎn),雙方相互查驗鎖定;
(4)甲在乙處使用H(s)的輸入值s解鎖乙的鎖定資產(chǎn),解鎖后s的值被暴露給乙;
(5)乙使用s解鎖甲的鎖定資產(chǎn);
(6)若在時限t2內(nèi),甲未能取走乙的資產(chǎn),則交易失敗,回滾;若時限t1內(nèi),乙未能取走甲的資產(chǎn),則交易失敗,回滾。
上述思路中,使用哈希算法保證了加密字符串s不易被破解,使用時間鎖防止交易方的不誠信行為,這使得哈希時間鎖定不借助可信中介即可實現(xiàn)鏈間傳輸。
但是,哈希時間鎖定存在如下幾個問題。第一,哈希時間鎖涉及到鏈與鏈之間的直接交互,這種交互要求跨鏈過程中雙方持續(xù)在線并監(jiān)聽區(qū)塊鏈。同時,為防止鏈分叉等問題,雙方每次的交互均要經(jīng)歷長時間的等待以確保交易得到確認(rèn),這要求雙方長時間保持在線,嚴(yán)重降低了交互效率,導(dǎo)致該原子跨鏈交換方案在大型公鏈上的實用性有限。第二,哈希時間鎖定要求通信雙方事先通過帶外通信約定部分交易參數(shù),這種將安全問題由鏈本身轉(zhuǎn)移給帶外通信信道的方式并不能徹底解決問題。第三,從交易類型上看,哈希時間鎖定是基于原子跨鏈交換的,它要求跨鏈?zhǔn)聞?wù)必須是雙向的,即雙方都需付出資產(chǎn)才能獲得對方的資產(chǎn)。這一先天特性決定原子跨鏈交換只適用于資產(chǎn)交換場景,而無法應(yīng)用于資產(chǎn)轉(zhuǎn)移,進(jìn)一步限制了該方案的實用性。
閃電網(wǎng)絡(luò)的哈希時間鎖的實現(xiàn)思路與圖7相仿,更多關(guān)于Lightning 的實現(xiàn)可以參考文獻(xiàn)[36-38]。從實現(xiàn)中容易發(fā)現(xiàn),閃電網(wǎng)絡(luò)的微支付通道技術(shù)具備明顯的不足——由于全連接網(wǎng)絡(luò)的代價是不可承受的,不可能在所有交易節(jié)點之間都創(chuàng)建通道。對于兩個不共享支付通道的用戶來說,盡管使用支付通道網(wǎng)絡(luò)(payment channel networks,PCNs)[39]可以借助鄰居節(jié)點的開放通道路徑實現(xiàn)相互支付,但PCNs 并不能完全保證安全性、隱私性和互操作性。
2.1.3 基于智能合約的互操作方法
邁入?yún)^(qū)塊鏈2.0 時代,智能合約技術(shù)廣泛流行。因此,除鏈-鏈跨鏈方案外,研究者們積極探索基于智能合約的區(qū)塊鏈擴容[40]和互操作方法[41-43]。對于支持智能合約的區(qū)塊鏈,該類方法可以在不改變其底層設(shè)計的前提下實現(xiàn)互操作性,均具備較強的跨鏈潛力。
此外,不同于傳統(tǒng)跨鏈方法,基于智能合約的互操作方法主要基于淺層的合約層,一般無需深入到共識層以及數(shù)據(jù)層中協(xié)調(diào)鏈間差異,智能合約的開發(fā)工具和語言也相對統(tǒng)一,整體實現(xiàn)難度較低。
然而,由于該方法的發(fā)展時間較短,相關(guān)工作大多仍停留在原型研發(fā)階段,僅能用于鏈內(nèi)擴容或功能增強,目前仍未有達(dá)到鏈間互操作級別的、已開源運營的項目。
不同于同構(gòu)擴容技術(shù),異構(gòu)互操作技術(shù),不再局限于單一區(qū)塊鏈或某類特定鏈,而是針對于區(qū)塊結(jié)構(gòu)、共識算法等多處不同的幾條相互獨立的區(qū)塊鏈實現(xiàn)鏈間互操作。從難度上來說,由于區(qū)塊鏈底層技術(shù)差別較大,異構(gòu)鏈的鏈間互操作需要從跨鏈網(wǎng)關(guān)、投票機制等多方面進(jìn)行統(tǒng)一,同時對各種異構(gòu)鏈都需要進(jìn)行針對性橋接和適配,因此異構(gòu)互操作技術(shù)也從應(yīng)用層的公證人機制逐步向底層的網(wǎng)關(guān)層發(fā)展。與同構(gòu)擴容技術(shù)相比,異構(gòu)互操作的實現(xiàn)成本更高、難度更大、效率相對較低,但其適用范圍也更寬泛,具備更好的應(yīng)用前景。
按照核心工作層由淺入深的順序,異構(gòu)互操作技術(shù)主要包含:公證人機制、中繼方案和網(wǎng)絡(luò)層互操作三類。
2.2.1 公證人機制
公證人機制是異構(gòu)鏈間互操作技術(shù)中,最早被提出、最成熟的技術(shù),該機制的發(fā)展先后經(jīng)歷了單簽名公證人機制、多重簽名公證人機制和分布式簽名公證人機制[44]。該方法通過引入某個可信第三方作為中介(公證人),實現(xiàn)不信任雙方的交易過程。公證人的角色類似于國家銀行,交易雙方相互不信任,但都相信具備公信力的國家銀行。于是,銀行分別收取雙方約定好的欲交易的財產(chǎn),確認(rèn)財產(chǎn)品類和數(shù)目均滿足約定后,將一方的約定物給予另一方。由于公證人機制無需考慮區(qū)塊鏈底層的技術(shù)細(xì)節(jié),只要確認(rèn)雙方的交易發(fā)生即可實現(xiàn),可以普遍適配于各種同構(gòu)和異構(gòu)鏈,而且其本身實現(xiàn)難度低、事務(wù)處理速度快,目前常用于數(shù)字貨幣交易所之中。
(1)單簽名公證人機制[45-46]。公證人一般由交易雙方指定的某個節(jié)點或機構(gòu)擔(dān)任,跨鏈?zhǔn)聞?wù)的全過程——事務(wù)收集、共識確認(rèn)、事務(wù)驗證等均由該公證人全權(quán)負(fù)責(zé)。顯然,這對公證人的選擇有著較高的要求,包括持續(xù)在線、計算機處理能力強、網(wǎng)絡(luò)通信穩(wěn)定等。這些條件決定了公證人一般局限于一些大型節(jié)點,因此整個區(qū)塊鏈網(wǎng)絡(luò)中的跨鏈?zhǔn)聞?wù)不可避免會向這些節(jié)點處進(jìn)行集中,并由此引發(fā)與區(qū)塊鏈“去中心化”理念相悖的中心化問題,增加了單點故障和日蝕攻擊等安全風(fēng)險。
(2)多重簽名公證人機制[47-49]。相比于單簽名公證人機制,多重簽名公證人機制將擔(dān)任可信的公證人,從某個節(jié)點或機構(gòu)拓展為多個節(jié)點共同擔(dān)任的中介聯(lián)盟,只有當(dāng)聯(lián)盟中節(jié)點對某事務(wù)的投票滿足一定數(shù)量或比例時,跨鏈?zhǔn)聞?wù)才會通過。多重簽名公證人機制,一定程度上緩解了單簽名公證人機制的中心化問題。然而,整個區(qū)塊鏈網(wǎng)絡(luò)的跨鏈權(quán)限,實際依然由網(wǎng)絡(luò)中占比極小的一部分節(jié)點所掌握,并未完全解決中心化問題。此外,多重簽名公證人機制需要在目標(biāo)區(qū)塊鏈上額外支持多重簽名機制,增加了成本開銷。
(3)分布式簽名公證人機制[50]。分布式簽名公證人機制主要創(chuàng)新在于使用類似門限簽名的思想,將原本各節(jié)點分別使用自己密鑰對事務(wù)進(jìn)行簽名的方式,修改為將一個密鑰拆分為多份,每個節(jié)點各自保存密鑰的一部分(密鑰拆分為單向過程,無法還原)。當(dāng)簽名節(jié)點數(shù)量或比例滿足條件后即可通過事務(wù)。新機制在事務(wù)收集和密鑰驗證方面強化區(qū)塊鏈跨鏈的安全性,但并未能徹底解決公證人機制下的中心化問題。
三種公證人機制的思路對比見圖8。
圖8 公證人機制說明圖Fig.8 Illustration chart of notary schemes
2.2.2 中繼方案
公證人方案與生俱備的逆中心化問題嚴(yán)重限制了它的應(yīng)用前景。為了擺脫來自主鏈的限制,一部分側(cè)鏈方案逐漸發(fā)展成了全新的中繼方案。中繼方案最初是基于現(xiàn)存鏈搭設(shè)鏈間互通的中心平臺,后來為了解決中心化問題,全新的獨立區(qū)塊鏈被搭建作為中繼鏈,專門處理不同鏈間的操作,從而具備更加公開透明、兼容性強等特性,是目前最具前景的異構(gòu)鏈間互操作性方案。
中繼方案的初次嘗試是Aion Network[51]。Aion Network 對傳統(tǒng)側(cè)鏈方案進(jìn)行了改進(jìn),通過搭建一個中心hub,使得網(wǎng)絡(luò)中的每個區(qū)塊鏈都可為其他任一區(qū)塊鏈創(chuàng)建對應(yīng)的側(cè)鏈。通過這種多層次的區(qū)塊鏈網(wǎng)絡(luò)結(jié)構(gòu),每個鏈都可以通過中心hub將自己的事務(wù)發(fā)送到其他區(qū)塊鏈。此外,中心hub本身也是通過一個獨立的區(qū)塊鏈實現(xiàn),并配備有側(cè)鏈協(xié)議、通信協(xié)議及其他標(biāo)準(zhǔn)以連接到其他區(qū)塊鏈,顯然,Aion 已經(jīng)具備當(dāng)今中繼鏈方案的基本雛形。但是,Aion 對側(cè)鏈協(xié)議的要求較高,大部分現(xiàn)有區(qū)塊鏈無法滿足其要求,不能接入到Aion 網(wǎng)絡(luò)中。Aion 方案的主要成果是開發(fā)Aion-1系統(tǒng),可以與以太坊互聯(lián)[52]。令人遺憾的是,Aion-1公司目前已轉(zhuǎn)做基于區(qū)塊鏈技術(shù)的開放式應(yīng)用服務(wù)平臺,該項目的研究已經(jīng)停止,相關(guān)核心技術(shù)開發(fā)已經(jīng)陷入停滯。
中繼鏈方案可以視作對公證人機制和側(cè)鏈方案的結(jié)合,其一方面吸納公證人方案的中介思想,通過中介實現(xiàn)對各種異構(gòu)鏈的廣泛兼容而無需對原鏈做出修改,另一方面其使用第三方鏈作為中介,相當(dāng)于中繼鏈同時作為兩條鏈的側(cè)鏈,保證跨鏈中介的可信性和去中心化特性。
傳統(tǒng)方案分類中一般還包含分布式私鑰控制,該方案要求對公證人或中繼鏈賬戶的私鑰,使用安全多方計算如門限密鑰等方式進(jìn)行冗余拆分,然后再分發(fā)給驗證者防止可能存在的惡意驗證,強化中繼鏈本身的安全特性。本質(zhì)上來說,分布式私鑰控制并不能算作一種獨立的跨鏈方案,更多是作為公證人和中繼鏈方案的一種改進(jìn)。
2.2.3 網(wǎng)絡(luò)層互操作
中繼方案既要建立統(tǒng)一的中繼鏈,還要在智能合約設(shè)計、產(chǎn)塊機制和投票共識等多個方面對不同的區(qū)塊鏈進(jìn)行調(diào)整適配,這涉及到區(qū)塊鏈六層架構(gòu)3)現(xiàn)在一般認(rèn)為區(qū)塊鏈具備六層架構(gòu),自下而上為:數(shù)據(jù)層、網(wǎng)絡(luò)層、共識層、激勵層、合約層和應(yīng)用層。數(shù)據(jù)層通過區(qū)塊存儲數(shù)據(jù),網(wǎng)絡(luò)層使用對等網(wǎng)絡(luò)(peer-to-peer,P2P)技術(shù)傳輸數(shù)據(jù),共識層維護(hù)節(jié)點間數(shù)據(jù)同步,激勵層鼓勵各節(jié)點參與記賬,合約層封裝智能合約和腳本,應(yīng)用層部署應(yīng)用。中的多個層,工作量和工作難度較大。
細(xì)究中繼方案可以發(fā)現(xiàn),其一般通過橋接或跨鏈網(wǎng)關(guān)實現(xiàn)與外部區(qū)塊鏈的交互??珂溇W(wǎng)關(guān)主要工作在區(qū)塊鏈六層架構(gòu)中的網(wǎng)絡(luò)層,作用是翻譯不同的鏈發(fā)送的信息流,幫助網(wǎng)絡(luò)節(jié)點甄別區(qū)塊鏈信息。這種在網(wǎng)絡(luò)層面做變通的方法精準(zhǔn)而高效。
因此,部分研究者們嘗試移除中繼平臺或中繼鏈,轉(zhuǎn)而將鏈間交互協(xié)議[53]直接寫入到網(wǎng)絡(luò)路由層中,實現(xiàn)與合約層、共識層等解耦,實現(xiàn)思路如圖9。這種網(wǎng)絡(luò)層互操作方案,是一種自底向上的鏈間互操作思路,由于無需考慮冗雜的共識機制與產(chǎn)塊機制等,大幅降低了互操作成本。
圖9 網(wǎng)絡(luò)層互操作示意圖Fig.9 Chart of network layer interoperability
然而,網(wǎng)絡(luò)層互操作方案在降低成本的同時,也產(chǎn)生了更多的不確定性。首先,新的底層協(xié)議接入到舊協(xié)議的頂層應(yīng)用時,是否會發(fā)生沖突是難以預(yù)料的,受限于規(guī)模,協(xié)議在內(nèi)部測試階段很難排除所有漏洞;其次,假如區(qū)塊鏈網(wǎng)絡(luò)層協(xié)議出現(xiàn)問題,造成的負(fù)面影響遠(yuǎn)大于某個應(yīng)用層軟件所能造成的破壞,其漏洞可能顛覆數(shù)個區(qū)塊鏈網(wǎng)絡(luò);最后,網(wǎng)絡(luò)層互操作方案可能涉及到硬件協(xié)議的更改,其風(fēng)險更加難以估量,方案落地應(yīng)用也更加困難。
本章將按照同構(gòu)擴容技術(shù)和異構(gòu)互操作技術(shù)兩種類型,分析現(xiàn)存的區(qū)塊鏈互操作常見項目,詳細(xì)說明它們的實現(xiàn)思路及發(fā)展方向。
與本文第2.1 節(jié)部分技術(shù)路線對應(yīng),本節(jié)將結(jié)合實際項目介紹同構(gòu)擴容技術(shù)的發(fā)展,主要包括:(1)以BTC-Relay 為代表的傳統(tǒng)側(cè)鏈技術(shù);(2)通過分析Lightning 之后的改進(jìn)介紹支付通道與哈希時間鎖;(3)在基于智能合約的互操作方法中,主要對Dinh和Babu兩位研究者的方案進(jìn)行了比較。
3.1.1 傳統(tǒng)側(cè)鏈項目——BTC-Relay
早期側(cè)鏈技術(shù)最成功的代表是BTC-Relay[54],它是區(qū)塊鏈網(wǎng)絡(luò)中的第一條側(cè)鏈,其研發(fā)之初的目的是服務(wù)比特幣網(wǎng)絡(luò),旨在為舊的比特幣網(wǎng)絡(luò)添加智能合約,以及支持正在流行的去中心化應(yīng)用程序(decentralized application,DApp)功能,幫助比特幣實現(xiàn)與其他區(qū)塊鏈網(wǎng)絡(luò)(如以太坊)的互通,擴展區(qū)塊鏈生態(tài)。根據(jù)BTC-Relay的官方描述,其實現(xiàn)原理是在網(wǎng)絡(luò)中添加一種新角色“relayers”,該角色持續(xù)將比特幣的最新區(qū)塊頭發(fā)送給以太坊上的智能合約“BTC-Relay”,通過在以太坊上同步比特幣的區(qū)塊頭,實現(xiàn)對比特幣交易的校驗功能。從而以太坊上的智能合約即可驗證比特幣上用戶發(fā)起的跨鏈交易,并將驗證后的比特幣交易轉(zhuǎn)發(fā)到以太坊上。當(dāng)然,這一驗證過程不是免費的,用戶需要額外支付費用到指定的地址。
盡管BTC-Relay 在理論上存在進(jìn)一步擴展實現(xiàn)異構(gòu)鏈互操作性的潛力,但仔細(xì)研究可以發(fā)現(xiàn),BTCRelay 本身完全基于以太坊智能合約技術(shù)開發(fā),也僅能部署在以太坊端而非跨鏈兩端,僅支持以太坊單向驗證區(qū)塊鏈交易,反之則不行,本質(zhì)上并未解決比特幣本身的封閉性問題。因此,這是將以太坊作為比特幣的一種錨定,擴展了以太坊的功能而非建立完備的異構(gòu)跨鏈體系。在實際使用中,BTC-Relay 的使用人數(shù)也非常有限,黯淡的前景導(dǎo)致作為側(cè)鏈先驅(qū)的BTC-Relay技術(shù)未能夠持續(xù)發(fā)展壯大,目前僅有一個BTC-Relay項目仍在持續(xù)運營,而且長時間未能得到更新。
在BTC-Relay 之后,更多側(cè)鏈優(yōu)化的方案被提出。Li等人[55]提出了一種多鏈互聯(lián)架構(gòu),該模型包含許多“衛(wèi)星鏈”(衛(wèi)星鏈實際是由網(wǎng)絡(luò)中某些具備相同目標(biāo)的用戶子集共同維護(hù)的分布式私有賬本,其應(yīng)當(dāng)被視作單個區(qū)塊鏈的子鏈)。衛(wèi)星鏈中的用戶既可以擔(dān)任該私有賬本的驗證者參與共識,也可以擔(dān)任監(jiān)管者和審計員,驗證者和監(jiān)管者將共同定義衛(wèi)星鏈內(nèi)部的訪問控制、共識協(xié)議等策略,這是衛(wèi)星鏈與傳統(tǒng)側(cè)鏈最大的不同。衛(wèi)星鏈之間配備用于資產(chǎn)轉(zhuǎn)移的原子轉(zhuǎn)移策略,只需發(fā)送方和接收方各自在衛(wèi)星鏈內(nèi)部運行一輪共識即可完成資產(chǎn)轉(zhuǎn)移(如果失敗則需再運行一輪共識執(zhí)行回滾)。該系統(tǒng)已實現(xiàn)并集成至Hyperledger Fabric[56]v0.6。衛(wèi)星鏈通過支持自定義衛(wèi)星鏈內(nèi)部共識等,降低傳統(tǒng)側(cè)鏈下對主側(cè)鏈高度同步的要求,缺陷是在系統(tǒng)內(nèi)生成大量衛(wèi)星鏈賬本,因此以數(shù)據(jù)量暴增為代價實現(xiàn)類側(cè)鏈的異構(gòu)跨鏈機制,實用性亟待進(jìn)一步論證。
側(cè)鏈方案的研究起步最早,部分技術(shù)已經(jīng)在國內(nèi)落地實現(xiàn),尤其是在供應(yīng)鏈設(shè)計領(lǐng)域應(yīng)用,可以參見張朝棟等人[57]和夏肇元等人[58]的研究。
3.1.2 支付通道與哈希時間鎖項目
除前文提及的Lightning 項目外,有多項研究項目對鏈下支付渠道的結(jié)構(gòu)細(xì)節(jié)進(jìn)一步升級,其中包括Sprites[59]和Plasma[60]。前者提出的新協(xié)議,對跨通道支付下鎖定抵押品的策略進(jìn)行了改良,使得時間復(fù)雜度從幾何級別降低至代數(shù)級別,并改進(jìn)支付通道結(jié)構(gòu),增加在無鏈上交易情況下的少量存取款功能;后者將區(qū)塊鏈看作一個樹狀結(jié)構(gòu),作為葉節(jié)點的子區(qū)塊鏈定期提交Merkle 計算證明給樹根的父區(qū)塊鏈,父鏈只需通過部署的合約即可處理來自子區(qū)塊鏈的少量提交,從而實現(xiàn)鏈規(guī)模的擴展。然而,目前該技術(shù)主要用于區(qū)塊鏈擴容,對區(qū)塊鏈互操作性的參考意義有限。
在升級支付通道技術(shù)的同時,還有一部分研究者專注于對哈希時間鎖技術(shù)的研究[61]。Malavolta 等人[62]總結(jié)針對支付通道技術(shù)的最新攻擊——蟲洞攻擊,該攻擊可以借助圖7流程中傳輸?shù)腍(s)幫助特定用戶排除中間用戶實現(xiàn)支付,從而竊取本應(yīng)付給中間用戶的手續(xù)費用。Malavolta 針對蟲洞攻擊提出一種新的加密結(jié)構(gòu)匿名多跳鎖(annoymous multi-hop locks,AMHL),并論證該技術(shù)可以部署于現(xiàn)有的大部分加密貨幣。盡管該結(jié)構(gòu)會少量增加系統(tǒng)的運行時間和通信開銷,但這部分開銷相比于龐大的系統(tǒng)總體成本是可以接受的。
目前,上述哈希時間鎖技術(shù)已經(jīng)在新的Lightning Network 版本中進(jìn)行了部署和測試。該方法的實現(xiàn)難度略低于其他互操作方案,國內(nèi)已有研究單位實現(xiàn)并改進(jìn)該方法,例如賽迪(青島)區(qū)塊鏈研究院[63]。
3.1.3 基于智能合約的互操作方法
Dinh 等人[41]旨在設(shè)計一種允許一個區(qū)塊鏈中的智能合約訪問另一個鏈中的智能合約的數(shù)據(jù)的方案。為此,Dinh 等人提出了三項實現(xiàn)問題,分別是安全且細(xì)粒度的智能合約訪問控制、支持一般跨鏈交易和智能合約之間的通信協(xié)議。在上述三個問題基礎(chǔ)上,Dinh 給出了初步的實現(xiàn)思路,包括訪問控制與智能合約分離框架、支持小事務(wù)[64]的跨鏈?zhǔn)聞?wù)模型和允許智能合約對外發(fā)送和接收消息的發(fā)布與訂閱框架。目前該工作主要前景在于增強側(cè)鏈系統(tǒng)中的子鏈通信技術(shù)。
類似地,Pillai 等人[42]提出了一種基于事務(wù)的區(qū)塊鏈互操作性方法。該方法在應(yīng)用程序?qū)用鏄?gòu)建交叉通信模型。模型中,發(fā)送方首先執(zhí)行交叉通信事務(wù)獲取鏈信息,然后將通信事務(wù)寫入到鏈中并等待n個區(qū)塊后確認(rèn),之后檢索寫入后的區(qū)塊鏈信息一同發(fā)送給接收方以證明跨鏈?zhǔn)聞?wù)真實性;接收方收到發(fā)送方的區(qū)塊鏈信息后在自身的鏈上執(zhí)行同類操作;最后,雙方都可以把對方鏈上的事務(wù)信息作為有效交易的證明。該方法更多是在鏈上執(zhí)行狀態(tài)查詢操作而非狀態(tài)變更操作,因此具備較低的交叉通信延遲和成本。但需要注意,該方法仍處于早期階段,其在信息交換過程中的安全性問題仍未得到解決。此外,完全基于智能合約的方法還存在受智能合約漏洞限制的問題。
對于一個區(qū)塊鏈互操作方法,影響其性能的主要因素包括:系統(tǒng)處理事務(wù)的速度、加密及安全標(biāo)準(zhǔn)、跨鏈通信成本以及應(yīng)用前景。為此,本文使用吞吐量、安全性、成本、實現(xiàn)難度、兼容性及適用鏈等評價指標(biāo)對各個方案進(jìn)行分析對比,對比結(jié)果見表1、表2。表中,吞吐量代表系統(tǒng)每秒能處理的事務(wù)數(shù)量上限(transaction per second,TPS),按照不同數(shù)量級劃定高低;安全性主要取決于項目中共識協(xié)議的容錯能力和加密技術(shù)的安全性,以及是否搭載了額外的抗攻擊設(shè)計;跨鏈成本約等于網(wǎng)絡(luò)通信費用和系統(tǒng)執(zhí)行鏈間操作收取的交易費之和;實現(xiàn)難度則與適用鏈、項目規(guī)模等直接相關(guān);對于同構(gòu)項目,使用兼容性和適用鏈兩項衡量應(yīng)用前景,兼容性取決于項目與現(xiàn)存鏈對接時,是否強制修改原生鏈底層架構(gòu)或協(xié)議等以適配,適用鏈即項目主要適用于哪種類型的區(qū)塊鏈,或?qū)^(qū)塊鏈有何種要求。
表1 區(qū)塊鏈互操作常見同構(gòu)項目Table 1 Common homogeneous projects in blockchain interoperability
表2 區(qū)塊鏈互操作常見同構(gòu)項目性能Table 2 Performance of common homogeneous projects in blockchain interoperability
與本文2.2 節(jié)技術(shù)路線對應(yīng),本節(jié)結(jié)合實際項目介紹了異構(gòu)互操作技術(shù)的發(fā)展,主要包括:(1)以經(jīng)典的Interledger 為代表的公證人機制;(2)中繼方案,主要分析了國外的Cosmos、Polkadot 和國內(nèi)的WeCross、BitXhub;(3)在網(wǎng)絡(luò)層互操作方法中,對Chain-Net前后的研究方案進(jìn)行了概述。
3.2.1 公證人機制項目
Interledger[65]是最具代表性的公證人機制項目。它主要解決在資金支付過程中,資金發(fā)送方、連接方(connector)和資金接收方三者間的信任問題。通過在其支付協(xié)議中引入托管方,Interledger 對資金進(jìn)行鎖定防止連接方挪用,配以兩段式提交(two-phase commit)協(xié)議實現(xiàn)資金在多方轉(zhuǎn)移中的原子化操作。Interledger 實現(xiàn)了發(fā)送方先收到接收方的收款證明,再將資金支付出去,并通過協(xié)議保證發(fā)送方資金會被支付。
Interledger 存在兩種托管和執(zhí)行模式,在原子模式中,參與者需要選擇一組無信任公證人而非高度可信的公證人集合,即可借助上述協(xié)議中的密碼學(xué)原理協(xié)調(diào)轉(zhuǎn)賬;在通用模式下,其高度依靠對理性參與者的激勵以消除外部協(xié)調(diào)需求,這決定其只能在賬本和參與者均無錯誤的情況下使用。Interledger解決了連接方信任的問題,成為公證人機制的代表性案例。然而,Interledger 主要面向的是代幣交換支付問題,難以應(yīng)用到以數(shù)據(jù)交換為目的的私有和聯(lián)盟網(wǎng)絡(luò),其本身作為網(wǎng)絡(luò)層協(xié)議面對智能合約數(shù)據(jù)存儲等應(yīng)用層復(fù)雜機制也留下許多亟待解決的問題。
在Interledger 之后,公證人方案有了進(jìn)一步的發(fā)展。例如Bifrost[66]采用公證人方案在不同的區(qū)塊鏈上存儲、檢索和遷移數(shù)據(jù)。在該方案下,用戶無需對區(qū)塊鏈的底層進(jìn)行修改,只需連接已有的應(yīng)用程序接口(application programming interface,API)即可實現(xiàn)跨鏈。Bifrost 提供的API 極大抽象所需的區(qū)塊鏈功能,隱去不同區(qū)塊鏈的具體實現(xiàn)和語言差異,方便用戶開發(fā)新的區(qū)塊鏈應(yīng)用程序和與區(qū)塊鏈交互,用戶只需按照模板通過API 輸入,Bifrost 的鏈適配器(Adapters)會將用戶輸入轉(zhuǎn)換為對應(yīng)鏈上的事務(wù),轉(zhuǎn)發(fā)給鏈上節(jié)點處理,并在數(shù)據(jù)庫中留存事務(wù)憑證和哈希以供稍后檢索。目前,Bifrost在原型中已經(jīng)實現(xiàn)了與包括以太坊、比特幣在內(nèi)的七個不同區(qū)塊鏈的Adapters,這些Adapters包含了各鏈專用的事務(wù)模板、數(shù)據(jù)轉(zhuǎn)換和遠(yuǎn)程過程調(diào)用(remote procedure call,RPC)通信等。Bifrost 主要貢獻(xiàn)在于,通過公證人方案無需更改鏈底層,無需承擔(dān)維護(hù)中繼鏈的成本等。然而,它也具有傳統(tǒng)公證人方案的缺點,如逆中心化和暫不支持智能合約通信等,這些問題仍然阻礙著公證人機制的改進(jìn)。
3.2.2 中繼項目
中繼鏈作為目前最流行的跨鏈方案活躍于各大區(qū)塊鏈平臺,最為火熱的兩大實現(xiàn)方案是Cosmos[67]和Polkadot[68]。
Cosmos 構(gòu)建一個由許多獨立區(qū)塊鏈組成的網(wǎng)絡(luò),各獨立區(qū)塊鏈被看作一個個“zone”,網(wǎng)絡(luò)內(nèi)部通過名為“Tendermint”的類實用拜占庭容錯(practical Byzantine fault tolerance,PBFT)共識算法防止惡意行為,Cosmos 架構(gòu)如圖10。在Cosmos 網(wǎng)絡(luò)初期,首先按照預(yù)設(shè)條件生成名為“Cosmos Hub”的第一個“zone”,這個“zone”即可被視作中繼鏈。
隨著其他的獨立區(qū)塊鏈不斷加入到Cosmos 網(wǎng)絡(luò)中,這些“zone”和Hub 持續(xù)交換最新的區(qū)塊(獨立鏈之間不會交換最新區(qū)塊),以保證相互間的持續(xù)跨鏈通信能力,這就是Cosmos 中鏈間通信協(xié)議(inter-blockchain communication protocol,IBC)的基礎(chǔ)原理。當(dāng)Cosmos 網(wǎng)絡(luò)中的獨立鏈1 需要向獨立鏈2 進(jìn)行跨鏈交流時,鏈1 先與Hub 交流,通過IBCBlockCommitTx 事務(wù)對外同步自己的最新塊哈希值到Hub,Hub接收到后再將其哈希值同步到鏈2;然后鏈1 再執(zhí)行IBCPacketTx 事務(wù)發(fā)送數(shù)據(jù)包給Hub,Hub再轉(zhuǎn)發(fā)到鏈2,鏈2通過已有的鏈1區(qū)塊哈希即可驗證該數(shù)據(jù)包確實有效并來自于鏈1,跨鏈通信由此完成(描述隱去了橋接Bridge 的細(xì)節(jié))。通過上述的IBC 通信協(xié)議,各獨立區(qū)塊鏈均只需與Hub保持同步和直接通信即可實現(xiàn)整個網(wǎng)絡(luò)中其他區(qū)塊鏈的間接跨鏈通信。
與Cosmos 類似,Polkadot 同樣是一種以鏈間協(xié)議為基礎(chǔ)的網(wǎng)絡(luò)平臺即“Relay Chain”,允許在其上并行多個獨立鏈即“Parachains”或通過橋接Bridge接入其他鏈如以太坊。Polkadot 將網(wǎng)絡(luò)中的節(jié)點分為四類角色:平行鏈上的收集者、漁夫和中繼鏈上的提名者和驗證者。
(1)收集者Collators 維持特定的平行鏈的一個“全節(jié)點”,其中保留該平行鏈的全部必要信息,可以與該鏈的其他節(jié)點進(jìn)行交易,收集者的主要任務(wù)是整理和執(zhí)行鏈上交易,并將之和零知識證明一起提交給負(fù)責(zé)的驗證者;
(2)提名者Nominators 實際是stake 權(quán)益的所有者,主要職責(zé)在于挑選可信的驗證者;
(3)驗證者Validators部署中繼鏈客戶端,其驗證收集者所提交的證明、批準(zhǔn)平行鏈的產(chǎn)塊并隨后執(zhí)行中繼鏈的共識產(chǎn)塊過程;
(4)漁夫Fishermen 不參與中繼鏈和平行鏈的產(chǎn)塊過程,其職責(zé)在于監(jiān)督上述角色的非法行為,并從中獲得一次性獎勵。
當(dāng)需要跨鏈交易時,鏈1將跨鏈?zhǔn)聞?wù)和其他事務(wù)一起放入自己的輸出隊列,鏈1的收集者識別該跨鏈交易,并打包發(fā)送給驗證者,其間經(jīng)受漁夫的合法性檢查,驗證者驗證完跨鏈交易后,將其放入鏈2 的輸入隊列,并將其引用到中繼鏈中,最后鏈2 執(zhí)行輸入隊列交易即可。Cosmos 和Polkadot 之間的區(qū)別主要在于網(wǎng)絡(luò)中子鏈的主權(quán)。Cosmos中子鏈在維護(hù)事務(wù)共識時是自治的,而Polkadot要求子鏈通過中繼鏈形成全局共識以實現(xiàn)安全共享。
在Cosmos 和Polkadot 等研究基礎(chǔ)上,更多有價值的中繼鏈方案被提出。
聚焦于區(qū)塊鏈互操作問題中可編程性和強通用性,HyperService[69]提出了一個跨異構(gòu)區(qū)塊鏈網(wǎng)絡(luò)的、構(gòu)建和執(zhí)行DApp 的互操作平臺,平臺構(gòu)建了一套專門用于編寫跨鏈DApp 的統(tǒng)一狀態(tài)模型,搭配可證明安全的通用區(qū)塊鏈互操作協(xié)議以執(zhí)行DApp。實際上,在HyperService之前,類似方案還有MultiChain[70]和Xclaim[71],遺憾的是前者只能用于同構(gòu)網(wǎng)絡(luò),而后者專門設(shè)計了其智能合約,使之可以被網(wǎng)絡(luò)中的用戶公開驗證,以智能合約取代可信中介,并結(jié)合鏈中繼技術(shù)實現(xiàn)跨鏈狀態(tài)驗證。
上述介紹囊括了目前國外最熱門的中繼鏈跨鏈方案,而在國內(nèi)最受關(guān)注的項目主要是WeCross[72]和BitXhub[73]。
WeCross 是由微眾銀行自主研發(fā)的開源區(qū)塊鏈跨鏈協(xié)作平臺,與Cosmos、Polkadot 等主要面向公有鏈比特幣、以太坊為主不同,WeCross 目前只針對自有鏈Fisco Bcos 和聯(lián)盟鏈Hyperledger Fabric 實現(xiàn)開發(fā)適配。
除應(yīng)用場景不同以外,WeCross 在跨鏈技術(shù)上更側(cè)重于在跨鏈路由層面的端口適配,放棄以往的類側(cè)鏈SPV 證明的跨鏈流程,而使用哈希時間鎖定技術(shù)執(zhí)行跨鏈資產(chǎn)交換,通過在跨鏈網(wǎng)關(guān)層面構(gòu)建通用的區(qū)塊鏈接入范式與跨鏈交互模型,解決異構(gòu)鏈的通信問題。在執(zhí)行跨鏈?zhǔn)聞?wù)時,WeCross 采用兩段式提交協(xié)議,將事務(wù)分為投票階段和提交階段,包含準(zhǔn)備、提交和回滾三種接口。流程可簡述為:
(1)鏈1的跨鏈路由調(diào)用鏈1的跨鏈資源準(zhǔn)備;
(2)鏈1 的跨鏈路由與鏈2 的跨鏈路由交互,使得鏈2完成準(zhǔn)備;
(3)跨鏈路由先后向鏈1和鏈2提交事務(wù)請求;
(4)若執(zhí)行失敗,回滾事務(wù)。
整個兩段式事務(wù)處理過程中,均記錄在專門的治理鏈上,保證跨鏈?zhǔn)聞?wù)的安全性。
目前,WeCross 主要應(yīng)用于司法跨域仲裁、物聯(lián)網(wǎng)跨平臺聯(lián)動、數(shù)字資產(chǎn)交換和個體數(shù)據(jù)跨域授權(quán)等領(lǐng)域。
BitXHub采用中繼鏈+跨鏈網(wǎng)關(guān)的主流路線,構(gòu)建自有的跨鏈傳輸協(xié)議(interblockchain transfer protocol,IBTP),協(xié)議中的跨鏈數(shù)據(jù)格式實現(xiàn)了通用的鏈間傳輸,但在跨鏈數(shù)字資產(chǎn)交換上針對不同的鏈結(jié)構(gòu)提供具有不同特點的多種方案。對于圖靈不完備的未消費交易輸出模型(unspent transaction output,UTXO)下的區(qū)塊鏈如比特幣,BitXHub 采用區(qū)塊頭同步+多簽地址托管的方式進(jìn)行數(shù)字資產(chǎn)跨鏈,其流程和側(cè)鏈SPV 證明大致相同;對于圖靈完備的應(yīng)用鏈,BitXHub 采用基于安全多方計算和門限簽名的跨鏈方案,其跨鏈資產(chǎn)錨定流程和前述流程相同,但在資產(chǎn)解鎖時,使用安全性更強的門限簽名方式保證跨鏈?zhǔn)聞?wù)的安全性。
涉及分布式私鑰控制的項目主要是WanChain[74]。WanChain 是一個類以太坊的公有鏈,在以太坊基礎(chǔ)上實現(xiàn)用于隱私保護(hù)的匿名交易,并專注于區(qū)塊鏈互操作性,其使用名為“Galaxy Consensus”的PoS 共識算法,該算法使用分布式密鑰共享和門限簽名技術(shù)來改進(jìn)隨機數(shù)生成和區(qū)塊鏈產(chǎn)塊機制。WanChain本身可以被視作一個大型跨鏈賬戶,其中采用安全多方計算和門限密鑰方式實現(xiàn)賬戶控制,而賬戶私鑰本體從未在網(wǎng)絡(luò)中出現(xiàn)過,只能通過多個參與方達(dá)成共識以構(gòu)造簽名。在Wanchain 網(wǎng)絡(luò)中,由去中心化的跨鏈橋接節(jié)點負(fù)責(zé)執(zhí)行和驗證跨鏈交易,跨鏈橋有多種類型,典型的如直接橋,用戶發(fā)起跨鏈交易時先將資產(chǎn)鎖定在原鏈以換取Wanchain 代幣,用戶可以隨時銷毀該Wanchain 代幣并取回自己的質(zhì)押資產(chǎn);在二層橋模式下,原鏈和目標(biāo)鏈各部署著一個資產(chǎn)池,此時用戶可以通過質(zhì)押某代幣直接獲得另一代幣。
3.2.3 網(wǎng)絡(luò)層互操作
Wang 等人[75]參考互聯(lián)網(wǎng)中的路由器,提出一種區(qū)塊鏈路由器,每個獨立的區(qū)塊鏈網(wǎng)絡(luò)都有一個“子鏈”,子鏈保存所連接區(qū)塊鏈的賬本副本。子鏈通過連接器連接到區(qū)塊鏈路由,并經(jīng)由路由器實現(xiàn)跨鏈交互。連接器作為子鏈和路由器之間的連接,本身是一個采用PBFT算法的區(qū)塊鏈。
區(qū)塊鏈路由和中繼思想有異曲同工之處,但它不采用唯一的一個獨立中繼鏈,而是通過復(fù)數(shù)個相關(guān)子鏈加路由器的組合實現(xiàn)了類中繼鏈作用。
Chain-Net[76]參考在不同計算平臺之間實現(xiàn)無縫通信的網(wǎng)絡(luò)路由協(xié)議,選擇在網(wǎng)絡(luò)層直接使用跨鏈網(wǎng)關(guān)(跨鏈網(wǎng)關(guān)詳細(xì)介紹可參考文獻(xiàn)[77])執(zhí)行跨鏈?zhǔn)聞?wù),真正地把鏈間互操作性研究推進(jìn)到網(wǎng)絡(luò)路由層面。
和傳統(tǒng)鏈中繼方案不同,Chain-Net 在其構(gòu)建的跨鏈通信框架中,不存在一個專門的第三方中繼鏈用于發(fā)布、轉(zhuǎn)發(fā)和執(zhí)行跨鏈?zhǔn)聞?wù)。這些跨鏈網(wǎng)關(guān)可視為各區(qū)塊鏈的輕量級節(jié)點,各自擁有與獨立的鏈和網(wǎng)關(guān)間的通信算法,從而在網(wǎng)絡(luò)層實現(xiàn)握手機制、配置交換等。
目前Chain-Net框架已在其預(yù)設(shè)的健康電子記錄(electronic health records,EHR)場景下實現(xiàn)Demo。Chain-Net 通過將跨鏈實現(xiàn)直接下放至網(wǎng)絡(luò)層,實現(xiàn)在底層的面對面通信,開拓了一個面向異構(gòu)鏈的鏈間通信新思路。
表3 和表4 對比了常見異構(gòu)項目的性能。除前述的吞吐量等性能指標(biāo)外,還需要重點關(guān)注異構(gòu)項目的主要工作層、適用鏈和自發(fā)行代幣。主要工作層的深淺直接決定了項目的互操作邊界,一般的,底層方案具備更好的互操作性。適用鏈和自發(fā)行代幣兩項和項目的發(fā)展前景直接相關(guān),前者決定了能否快速被市場所接受,后者決定了項目利益劃分的話語權(quán)歸屬。
表3 區(qū)塊鏈互操作常見異構(gòu)項目Table 3 Common heterogeneous projects in blockchain interoperability
表4 區(qū)塊鏈互操作常見異構(gòu)項目性能Table 4 Performance of common heterogeneous projects in blockchain interoperability
區(qū)塊鏈技術(shù)的發(fā)展已有十幾年,隨著更高效的共識算法、更安全的加密貨幣、更隱秘的隱私保護(hù)技術(shù)不斷被發(fā)掘,其安全性、隱私性等已經(jīng)得到大眾認(rèn)可,目前正處在發(fā)展的快車道上。
然而,主流的區(qū)塊鏈公鏈,為了最大化地保護(hù)其隱私,絕大部分不與外部交互數(shù)據(jù)或不開放對外數(shù)據(jù)接口,這極易造成區(qū)塊鏈應(yīng)用的固步自封,人為構(gòu)筑了行業(yè)壁壘。隨著互聯(lián)網(wǎng)萬物互聯(lián)世紀(jì)的到來,完全封閉的數(shù)據(jù)賬本技術(shù)在發(fā)展與應(yīng)用中受到的限制愈發(fā)明顯,因此,研究區(qū)塊鏈互操作技術(shù)具有重要意義。
自2016 年Cosmos 和Polkadot 誕生后,近年來大量研究者投入到對中繼鏈的后續(xù)研究之中,僅有少數(shù)研究者還在探索公證人和哈希時間鎖定合約的后續(xù)可能性,該方向已少有大規(guī)模項目誕生并落地實現(xiàn),但現(xiàn)有的各種方案仍然存在一定問題,主要包括以下方面:
(1)區(qū)塊鏈互操作常存在安全漏洞,破壞了區(qū)塊鏈本身的不可篡改特性。盡管大部分區(qū)塊鏈互操作方案在流程設(shè)計上是安全的,但是將方案落實到智能合約的編程上時,人工編寫的代碼無法保障絕對安全。以太坊等已經(jīng)使用專業(yè)的區(qū)塊鏈編程語言如Golang、Solidity 等來規(guī)避語言二義性等問題,還有研究者在討論智能合約漏洞檢測技術(shù)[78-80],也是一種優(yōu)秀的解決思路。
(2)區(qū)塊鏈互操作過程出現(xiàn)問題,修復(fù)成本高昂?,F(xiàn)有的各種方案,面對安全問題的主流解決思路是實現(xiàn)原子化操作,保障跨鏈流程出現(xiàn)問題后能夠及時回退到過往的安全狀態(tài)。但該方法具備顯著的缺點,回退會導(dǎo)致網(wǎng)絡(luò)中的所有正在進(jìn)行和剛剛完成的操作均會丟失,如果回退的時間跨度較長,對區(qū)塊鏈網(wǎng)絡(luò)造成的負(fù)面影響是難以估量的。此外,考慮到由多個不同區(qū)塊鏈共同組成的區(qū)塊鏈網(wǎng)絡(luò)整體協(xié)同問題,如何使回退方案在所有區(qū)塊鏈管理委員會中一致通過也具備極大的困難。
(3)如何通過區(qū)塊鏈互操作技術(shù)平衡不同鏈間的吞吐量差異。如今,如公證人機制和中繼鏈中的部分方案,可以實現(xiàn)較高的處理速度。但互操作技術(shù)本身的理論處理速度不等同于實際運行中的速度。隨著加入到互操作流程中的鏈增多,它們之間的速度差異也愈發(fā)巨大,由于需要等待區(qū)塊鏈確認(rèn)等因素存在,總體執(zhí)行速度總是受限于吞吐量最小的某個區(qū)塊鏈?,F(xiàn)有的一種方案是設(shè)置事務(wù)緩存[48],以批處理的方式彌合速度差異。但該方案易引發(fā)新的安全問題,緩存事務(wù)能否被視為已經(jīng)確認(rèn)的事務(wù)這一問題有待商榷。
雖然存在諸多困難,但隨著技術(shù)發(fā)展,這些問題均有望被逐個解決,該方向未來的發(fā)展趨勢如下:
(1)同構(gòu)擴容技術(shù)因其實現(xiàn)難度和成本較低,仍然是企業(yè)或個人搭建聯(lián)盟鏈或私有鏈的首選。此外,現(xiàn)今許多區(qū)塊鏈經(jīng)過一段時間的運營都將存在擴容或升級需求,市場需求能夠促進(jìn)該技術(shù)的快速發(fā)展。技術(shù)發(fā)展前景主要集中于哈希時間鎖定的流程改進(jìn)和跨鏈智能合約的設(shè)計優(yōu)化。
(2)異構(gòu)互操作技術(shù)隨著密碼學(xué)技術(shù)和安全多方計算的發(fā)展,能夠有力降低少數(shù)惡意用戶的影響,促進(jìn)公證人機制的快速發(fā)展,并將公證人逐步由少數(shù)的可信中介向多數(shù)的誠實節(jié)點拓展??紤]到惡意方在網(wǎng)絡(luò)中所占的比例始終有限,公證權(quán)利的下放能夠有效提升互操作的安全性,并借助規(guī)模效應(yīng)平攤成本。
(3)異構(gòu)互操作技術(shù)中,中繼方案和網(wǎng)關(guān)層操作協(xié)議應(yīng)當(dāng)繼續(xù)深入研究區(qū)塊鏈底層,探索自底而上的完整互操作體系,而非局限于僅為某幾個鏈搭建鏈間橋梁,規(guī)范鏈間底層協(xié)議以至于硬件規(guī)范等均不失為一種可行的思路。
除此之外,隨著區(qū)塊鏈發(fā)展的深入,對于從事區(qū)塊鏈互操作的個人研究者和小型科研團(tuán)隊來說,由于設(shè)立的被網(wǎng)絡(luò)節(jié)點廣泛信任公證人難度較大,未來可能更多會投入到對小規(guī)模的公證人機制(包括門限密鑰、多方安全計算等密碼學(xué)加密存儲和傳輸方面)、哈希時間鎖定合約的流程完善和改進(jìn)以及針對特定公鏈與聯(lián)盟鏈的鏈下擴容技術(shù)的研究中;而對于大型研究團(tuán)隊、機構(gòu)或公司,未來可能會借助自身的高信譽度建立類似交易所的大規(guī)模公證人機制方案,通過中介費等途徑帶來較高的收益,也可能會搭建自有的公鏈側(cè)鏈(中繼)生態(tài)系統(tǒng)。由于經(jīng)濟投入大、技術(shù)實現(xiàn)難度高、工作量龐大,大型機構(gòu)容易與后續(xù)追趕者實現(xiàn)代差。預(yù)測未來區(qū)塊鏈互操作技術(shù)的研究可能會出現(xiàn)“大小頭”的兩級分化局面,大型聯(lián)盟或一家獨大的可能性較大,需要提前警惕技術(shù)壟斷風(fēng)險的出現(xiàn)。
互操作性作為近年區(qū)塊鏈的發(fā)展熱點之一,直接決定了區(qū)塊鏈技術(shù)能否擺脫單純的數(shù)據(jù)存儲技術(shù)的限制,更深入地參與到各行業(yè)應(yīng)用中,影響區(qū)塊鏈的長久發(fā)展。本文主要歸納總結(jié)了近年來面向不同架構(gòu)的區(qū)塊鏈互操作性技術(shù)發(fā)展路線,討論了不同研究者們提出的思路和具體項目并進(jìn)行分類,從多個角度對比了這些方法的性能和特性,最后總結(jié)了現(xiàn)有的主流研究方向適用人群,展望了未來各路線的發(fā)展趨勢。