王鋒 張強(qiáng) 劉揚(yáng) 劉琳琳 路陽
摘 要:區(qū)塊鏈集成密碼學(xué)、分布式共識、P2P網(wǎng)絡(luò)和時(shí)間戳等技術(shù),可實(shí)現(xiàn)數(shù)據(jù)一致存儲、難以竄改和防止抵賴等功能,解決了開放網(wǎng)絡(luò)中不依賴任何可信第三方的信任問題。去中心化的特性使得區(qū)塊鏈具有廣闊的應(yīng)用前景,但隨著應(yīng)用的深入與拓展,擴(kuò)展性問題已成為挖掘區(qū)塊鏈技術(shù)潛力的一個(gè)關(guān)鍵挑戰(zhàn)。區(qū)塊鏈本質(zhì)上仍是分布式系統(tǒng),基于此,從分布式系統(tǒng)的擴(kuò)展性角度對區(qū)塊鏈的研究工作進(jìn)行綜述,基于鏈上擴(kuò)展、鏈下擴(kuò)展和跨鏈擴(kuò)展三個(gè)方面論述了區(qū)塊鏈可擴(kuò)展的思路和方法,總結(jié)了近年來的研究成果;通過對現(xiàn)有解決方案的總結(jié)分析,探討了提高區(qū)塊鏈可擴(kuò)展性所面臨的問題和未來的研究趨勢。
關(guān)鍵詞:區(qū)塊鏈; 擴(kuò)展性; 分片; 跨鏈
中圖分類號:TP393 文獻(xiàn)標(biāo)志碼:A 文章編號:1001-3695(2023)10-003-2896-12
doi:10.19734/j.issn.1001-3695.2023.02.0075
Research progress of blockchain from perspective of scalability
Wang Feng, Zhang Qiang, Liu Yang, Liu Linlin, Lu Yang
(College of Information Science & Engineering, Henan University of Technology, Zhengzhou 450001, China)
Abstract:Blockchain integrates cryptography, distributed consensus, P2P networking, and timestamping technologies, which can achieve functions such as consistent data storage, tamper resistance, and non-repudiation, solving the trust issue in open networks that do not rely on any trusted third parties. The decentralized nature of blockchain gives it a broad range of application prospects. However, as the applications become more extensive and profound, the scalability issue has become a key challenge for unlocking the full potential of blockchain technology. Blockchain is essentially still a distributed system. Based on this, this paper reviewed the research work on blockchain from the perspective of the scalability of distributed systems. It discussed the ideas and methods for blockchain scalability from three aspects: on-chain scalability, off-chain scalability, and cross-chain sca-lability. Then it summarized the research achievements in recent years. Building on the summary and analysis of existing solutions, this paper explored the challenges faced in improving blockchain scalability and discussed future research trends in this area.
Key words:blockchain; scalability; sharding; cross-chain
0 引言
區(qū)塊鏈技術(shù)起源于中本聰(Namakoto)2008年發(fā)表的《比特幣:一種點(diǎn)對點(diǎn)的電子現(xiàn)金系統(tǒng)》一文[1],是密碼學(xué)、分布式共識、P2P網(wǎng)絡(luò)、時(shí)間戳等技術(shù)的集成創(chuàng)新。區(qū)塊鏈技術(shù)能夠?qū)崿F(xiàn)數(shù)據(jù)一致存儲、難以竄改、防止抵賴等功能,也稱為分布式賬本技術(shù)。傳統(tǒng)電子系統(tǒng)中發(fā)生的交易是以集中的方式進(jìn)行,需要受信任的第三方參與,難以避免單點(diǎn)故障[2]和高額交易費(fèi)用[3]等問題;而區(qū)塊鏈系統(tǒng)允許不受信任的實(shí)體在沒有第三方參與的情況下以不受信任的方式進(jìn)行交互。區(qū)塊鏈系統(tǒng)可被認(rèn)為是一個(gè)分布式數(shù)據(jù)庫,記錄區(qū)塊鏈網(wǎng)絡(luò)上所有的交易信息。智能合約[4]的出現(xiàn)進(jìn)一步提高了區(qū)塊鏈交易的靈活性,使得其可以應(yīng)用于復(fù)雜的交易應(yīng)用場景。
區(qū)塊鏈技術(shù)與傳統(tǒng)貨幣系統(tǒng)相似,同樣存在“三元悖論”,即去中心化、安全性和可擴(kuò)展性三者不可兼得[5]??蓴U(kuò)展性問題是隨著區(qū)塊鏈中節(jié)點(diǎn)和交易數(shù)量的增加而出現(xiàn)的。在用戶較多的公共區(qū)塊鏈(如比特幣和以太坊)中,每個(gè)節(jié)點(diǎn)都需要存儲和執(zhí)行計(jì)算任務(wù)來驗(yàn)證每筆交易,公共區(qū)塊鏈需要大量的計(jì)算能力、高帶寬的互聯(lián)網(wǎng)連接和大量的存儲空間。區(qū)塊鏈的冗余存儲一定程度提高了數(shù)據(jù)的公開性和透明性,但每個(gè)節(jié)點(diǎn)都需要同步最新的賬本,會(huì)出現(xiàn)巨大的存儲壓力。截至2022年末,比特幣大小已經(jīng)超過350 GB[6],從區(qū)塊鏈網(wǎng)絡(luò)下載完整賬本需要很長時(shí)間,直接限制了沒有足夠存儲空間的用戶加入?yún)^(qū)塊鏈網(wǎng)絡(luò)作為全節(jié)點(diǎn)。因此,必須在區(qū)塊鏈的三個(gè)方面找到平衡,并考慮具體區(qū)塊鏈應(yīng)用的要求。
從擴(kuò)展性角度看,區(qū)塊鏈具有不同于傳統(tǒng)的分布式系統(tǒng)的一些特征;區(qū)塊鏈系統(tǒng)本來是為了解決特定問題而設(shè)計(jì)的,比特幣及之后的一些區(qū)塊鏈系統(tǒng)在衡量去中心化、鏈上數(shù)據(jù)和資產(chǎn)的安全性以及用戶數(shù)量的可擴(kuò)展性之后,在系統(tǒng)性能方面必然會(huì)存在瓶頸。為使區(qū)塊鏈系統(tǒng)在具體應(yīng)用中減少可擴(kuò)展性方面的局限,比特幣之后的部分區(qū)塊鏈系統(tǒng)進(jìn)行了體系結(jié)構(gòu)上的創(chuàng)新。本文從可擴(kuò)展性角度對區(qū)塊鏈技術(shù)的研究工作進(jìn)行總結(jié)和分析,討論主流的可擴(kuò)展性解決方案及存在的相關(guān)問題和挑戰(zhàn),闡述了對區(qū)塊鏈可擴(kuò)展性技術(shù)所面臨挑戰(zhàn)的思考,期望對區(qū)塊鏈可擴(kuò)展性技術(shù)的研究提供幫助和啟發(fā)。
1 分布式系統(tǒng)的可擴(kuò)展性
分布式系統(tǒng)的可擴(kuò)展性是指系統(tǒng)為了應(yīng)對將來需求的變化而提供的一種能力[7],當(dāng)有新的需求出現(xiàn)時(shí),系統(tǒng)無須或者僅需要少量的更改就可以支持,無須重構(gòu)或者重建整個(gè)系統(tǒng)。分布式系統(tǒng)設(shè)計(jì)的核心要求之一就是系統(tǒng)要具有良好的可擴(kuò)展性,構(gòu)建分布式系統(tǒng)的目的是為了獲取線性的性能增長。比如用一臺計(jì)算機(jī)來解決一些問題,當(dāng)增加一臺計(jì)算機(jī)后只需要一半的時(shí)間就可以解決這些問題,或者說每分鐘可以解決兩倍數(shù)量的問題,組成的新系統(tǒng)吞吐量翻了一番。提高分布式系統(tǒng)可擴(kuò)展性的基本方式分為垂直擴(kuò)展(vertical scaling)[8]和水平擴(kuò)展(horizontal scaling)[9],如圖1所示。
垂直擴(kuò)展是指通過提升單機(jī)的處理能力從而獲得系統(tǒng)的性能提升,垂直擴(kuò)展又可分為兩種方式:
a)通過增強(qiáng)單機(jī)硬件配置而獲得系統(tǒng)性能提升。單機(jī)硬件性能可以通過增加單機(jī)的CPU核數(shù),升級性能更好的網(wǎng)卡、硬盤,擴(kuò)充硬盤容量和系統(tǒng)內(nèi)存等方式增強(qiáng),但是以硬件提升系統(tǒng)的整體性能效果有限且成本高昂。早期淘寶網(wǎng)的數(shù)據(jù)庫使用的是當(dāng)時(shí)最高端的單機(jī)系統(tǒng)(Oracle數(shù)據(jù)庫+IBM小型機(jī)+EMC存儲)[10],隨著用戶數(shù)量的增長,在應(yīng)對突發(fā)的流量激增時(shí)仍無法負(fù)荷。
b)通過優(yōu)化單機(jī)軟件架構(gòu)獲得系統(tǒng)性能提升。隨著互聯(lián)網(wǎng)的普及,用戶數(shù)量呈幾何級數(shù)增長,系統(tǒng)交互渠道增多,應(yīng)用程序的邏輯也更為復(fù)雜,C10K問題由此誕生[11],即單機(jī)同時(shí)處理1萬個(gè)請求的問題。最初的服務(wù)器是基于進(jìn)程/線程的,如果有新的TCP(transmission control protocol)連接,就需要分配一個(gè)進(jìn)程/線程。如果每個(gè)用戶都必須與服務(wù)器保持TCP連接才能進(jìn)行實(shí)時(shí)的數(shù)據(jù)交互,如Facebook/Tencent這樣的網(wǎng)站同一時(shí)間的并發(fā)TCP連接很可能已經(jīng)過億。而進(jìn)程又是操作系統(tǒng)最昂貴的資源,如果要?jiǎng)?chuàng)建1萬個(gè)進(jìn)程,單機(jī)操作系統(tǒng)是無法承受的,甚至有可能完全癱瘓。C10K問題的解決為單機(jī)性能突破提供了解題思路,即優(yōu)化軟件架構(gòu)。解決C10K問題主要有兩種方式[12],一是對每個(gè)連接的處理分配一個(gè)獨(dú)立的進(jìn)程/線程,二是用同一進(jìn)程/線程同時(shí)處理若干個(gè)連接。
但無論是提升單機(jī)的硬件性能還是優(yōu)化系統(tǒng)的架構(gòu),這種擴(kuò)展方式所帶來的系統(tǒng)性能提升終究是有限的。面對如Facebook/Tencent這樣擁有超級用戶規(guī)模的網(wǎng)站,如果并發(fā)TCP連接過億,即便把單機(jī)性能發(fā)揮到極致,也無法承載如此大的并發(fā)訪問量。水平擴(kuò)展通過增加機(jī)器(或節(jié)點(diǎn))的數(shù)量來提升系統(tǒng)性能的方式更受人們的青睞,成為了目前分布式系統(tǒng)主流的擴(kuò)展方式,但這種方式通常面臨數(shù)據(jù)一致性和數(shù)據(jù)耐久性的問題。
一致性是高可用系統(tǒng)的關(guān)鍵指標(biāo),如果系統(tǒng)的所有節(jié)點(diǎn)在同一時(shí)間返回相同的數(shù)據(jù),則認(rèn)為這個(gè)系統(tǒng)是一致的。通常來講,系統(tǒng)的一致性越弱,系統(tǒng)越快,節(jié)點(diǎn)獲取不到最新數(shù)據(jù)的可能性也會(huì)越高。分布式系統(tǒng)為了確保每個(gè)節(jié)點(diǎn)都能返回相同的信息,節(jié)點(diǎn)之間需要更多的消息通信。但是在消息通信過程中,有些消息可能會(huì)發(fā)送失敗或丟失,甚至在這個(gè)過程中有些節(jié)點(diǎn)不可用。耐久性意味著數(shù)據(jù)一旦被成功存儲就可以持續(xù)使用,即使系統(tǒng)中的節(jié)點(diǎn)下線、崩潰或數(shù)據(jù)損壞。不同的分布式數(shù)據(jù)庫數(shù)據(jù)的耐久性也不同,數(shù)據(jù)復(fù)制是提高耐久性較為通用的做法,將同一份數(shù)據(jù)存儲在不同的節(jié)點(diǎn)上,即使有節(jié)點(diǎn)下線數(shù)據(jù)仍然可以被訪問。
復(fù)制(replication)[13]和分割(partition)[14]是將數(shù)據(jù)分布在多臺機(jī)器節(jié)點(diǎn)上的兩種常用方式,兩者通常一起使用。復(fù)制是指把同一份數(shù)據(jù)復(fù)制到位于不同地點(diǎn)的多個(gè)不同物理節(jié)點(diǎn)上,以冗余的方式進(jìn)行存儲,目的在于降低數(shù)據(jù)獲取延遲,保證數(shù)據(jù)耐久性,提高數(shù)據(jù)可用性;分割是指對數(shù)據(jù)集進(jìn)行拆分的操作,當(dāng)數(shù)據(jù)集很大,單機(jī)無法保存或者處理時(shí),通常需要系統(tǒng)對數(shù)據(jù)集進(jìn)行拆分,將拆分后的數(shù)據(jù)子集存放到不同的節(jié)點(diǎn)。不同數(shù)據(jù)庫對此操作的定義不同,有分割、分片、區(qū)域等,但其含義基本都是相同的。
分布式系統(tǒng)的可擴(kuò)展性通常可以通過三個(gè)方面來看:a)系統(tǒng)要能在規(guī)模上擴(kuò)展,能夠把更多的用戶和資源加入到系統(tǒng)中;b)如果系統(tǒng)中的用戶和資源在地理上相隔遙遠(yuǎn),那么這種系統(tǒng)就是地域上可擴(kuò)展的系統(tǒng);c)如果該分布式系統(tǒng)跨越多個(gè)獨(dú)立的管理機(jī)構(gòu)仍然可以方便地對其進(jìn)行管理,那么這個(gè)系統(tǒng)在管理上也是可擴(kuò)展的。在解決實(shí)際問題時(shí),通常會(huì)將垂直擴(kuò)展和水平擴(kuò)展有機(jī)地結(jié)合起來,但由于單機(jī)性能總是有極限的,通過增加機(jī)器數(shù)量的水平擴(kuò)展更容易實(shí)現(xiàn),成本也更加低廉。
2 從擴(kuò)展性角度看區(qū)塊鏈
區(qū)塊鏈本身是一種分布式系統(tǒng),區(qū)塊鏈網(wǎng)絡(luò)中交易數(shù)量的增加會(huì)導(dǎo)致確認(rèn)時(shí)間、網(wǎng)絡(luò)開銷以及延遲和吞吐量的增加。一方面,交易費(fèi)用與決定交易的確認(rèn)時(shí)間相關(guān),通常更高的費(fèi)用會(huì)有更短的確認(rèn)時(shí)間;另一方面,區(qū)塊鏈本身需要保持各個(gè)節(jié)點(diǎn)數(shù)據(jù)的一致性,這種一致性是通過共識算法、數(shù)據(jù)的可靠傳輸、高冗余存儲和密碼學(xué)技術(shù)來實(shí)現(xiàn)的[15]。此外,區(qū)塊鏈系統(tǒng)中的節(jié)點(diǎn)需要同步最新的數(shù)據(jù),導(dǎo)致通信和存儲的開銷越來越大,給區(qū)塊鏈中的節(jié)點(diǎn)以及系統(tǒng)的整體運(yùn)行帶來巨大的挑戰(zhàn)。因此,區(qū)塊鏈的可擴(kuò)展問題已成為挖掘區(qū)塊鏈技術(shù)潛力的關(guān)鍵問題。
研究人員試圖通過鏈上、鏈下和跨鏈三種方式解決這個(gè)問題,如圖2所示。鏈上方案通過處理區(qū)塊鏈內(nèi)的元素來提高區(qū)塊鏈的可擴(kuò)展性;鏈下方案通過將鏈上部分交易移至鏈下處理從而提高區(qū)塊鏈的可擴(kuò)展性;跨鏈方案通過打通不同鏈之間的數(shù)據(jù)孤島提高區(qū)塊鏈的擴(kuò)展性。
2.1 鏈上擴(kuò)展
鏈上擴(kuò)展是指直接修改區(qū)塊鏈的規(guī)則,改變區(qū)塊大小、出塊時(shí)間、共識機(jī)制等。比特幣TPS(transaction per second)[16]低的原因是交易確認(rèn)慢、區(qū)塊容量小,相應(yīng)地減少出塊時(shí)間或增大區(qū)塊容量以包含更多交易,都能夠有效地提高系統(tǒng)的吞吐量。萊特幣(LTC)將出塊時(shí)間減少到比特幣的四分之一;比特幣現(xiàn)金(BCH)將區(qū)塊容量提升至32 M,從而提高系統(tǒng)的可擴(kuò)展性[17]。此外,部分系統(tǒng)采用較為復(fù)雜的分片方案和有向無環(huán)圖(directed acyclic graph,DAG)結(jié)構(gòu)來提高區(qū)塊鏈的可擴(kuò)展性。
2.1.1 輕節(jié)點(diǎn)
輕節(jié)點(diǎn)是相對于全節(jié)點(diǎn)而言的,是運(yùn)行在小型設(shè)備的一種輕量型節(jié)點(diǎn),無須同步完整賬本,僅在設(shè)備上線時(shí)對節(jié)點(diǎn)運(yùn)行環(huán)境和輸入數(shù)據(jù)進(jìn)行驗(yàn)證,需要依靠全節(jié)點(diǎn)完成交易驗(yàn)證。而全節(jié)點(diǎn)需要消耗自身硬件的算力、電力、網(wǎng)絡(luò)帶寬和存儲空間等,同步區(qū)塊鏈上的所有交易信息并參與交易數(shù)據(jù)的驗(yàn)證。全節(jié)點(diǎn)在本地保存了一個(gè)完整的區(qū)塊鏈網(wǎng)絡(luò),可進(jìn)行任何交易的查詢和驗(yàn)證,使去中心化成為可能,同時(shí)使得區(qū)塊鏈網(wǎng)絡(luò)更加安全。相對于全節(jié)點(diǎn),輕節(jié)點(diǎn)占用的存儲空間更小,運(yùn)行成本更低,因此在很多場景下都比完整節(jié)點(diǎn)更為實(shí)用。
SPV協(xié)議(simple payment verification protocol)[18]是首個(gè)輕節(jié)點(diǎn)協(xié)議。如圖3所示,SPV輕節(jié)點(diǎn)只需要保存所有的區(qū)塊頭數(shù)據(jù),依靠全節(jié)點(diǎn)可以對交易的有效性進(jìn)行驗(yàn)證。輕節(jié)點(diǎn)的區(qū)塊頭中保存了當(dāng)前區(qū)塊中所有交易組成的Merkle樹的根哈希值;任何一個(gè)交易內(nèi)容的改變都會(huì)使得根哈希值發(fā)生變化。輕節(jié)點(diǎn)沒有同步鏈上全部數(shù)據(jù),不能獨(dú)立驗(yàn)證交易的有效性,需要依靠全節(jié)點(diǎn)和Merkle樹的特性來驗(yàn)證交易的有效性。
輕節(jié)點(diǎn)依賴全節(jié)點(diǎn)驗(yàn)證交易減弱了區(qū)塊鏈去中心化的特性,另一方面,輕節(jié)點(diǎn)仍需存儲所有區(qū)塊的塊頭,這意味著存儲開銷依然與區(qū)塊高度成線性關(guān)系。因此,許多研究人員對傳統(tǒng)輕節(jié)點(diǎn)方案進(jìn)行改進(jìn),主要的改進(jìn)思路有改變驗(yàn)證交易數(shù)據(jù)的方式和減小塊內(nèi)存儲的數(shù)據(jù)。
1)改變驗(yàn)證交易數(shù)據(jù)的方式 Kiayias等人[19]提出一種非交互式工作量證明之證明機(jī)制(non-interactive proofs of proof of work,NiPoPoW),以提高使用POW算法的區(qū)塊鏈的性能和擴(kuò)展其功能?;贜iPoPoW的區(qū)塊鏈無須驗(yàn)證整條鏈,只需驗(yàn)證區(qū)塊鏈長度的對數(shù)個(gè)數(shù)據(jù),構(gòu)建證明所需的最長子鏈,證明某個(gè)區(qū)塊包含該筆交易。與NiPoPOW中最長鏈證明的機(jī)制不同,F(xiàn)lyClient[20]采用概率抽樣的方法檢測作惡節(jié)點(diǎn),先從整條鏈中隨機(jī)抽取k個(gè)區(qū)塊頭,然后在更新的一半子鏈中再抽樣k個(gè)區(qū)塊頭,如此循環(huán)直到剩余的子鏈長度小于k,所有抽樣出來的區(qū)塊頭集合構(gòu)成驗(yàn)證集,通過尋找無效的區(qū)塊頭判斷節(jié)點(diǎn)是否作惡。如圖4所示,抽樣結(jié)束后采用MMR(Merkle mountain range)快速識別區(qū)塊頭的有效性。
哈希鏈通過哈希函數(shù)h生成一串哈希Sj(j為自然數(shù)且≥0)。如圖5所示,鏈中的每一個(gè)元素Sk是通過前一個(gè)元素Sk-1應(yīng)用哈希函數(shù)h計(jì)算出來的。Maalla等人[21]基于結(jié)合布隆過濾器的增量哈希鏈來驗(yàn)證區(qū)塊數(shù)據(jù),為區(qū)塊鏈輕節(jié)點(diǎn)提供數(shù)據(jù)完整性證明,從第一個(gè)交易開始增量構(gòu)建哈希鏈,直到最后一個(gè)交易。假設(shè)一個(gè)區(qū)塊包含L個(gè)交易,Ti表示索引為i的交易,H(Ti)代表交易Ti的哈希值。為了計(jì)算Ti希值,需要將該交易與之前的交易(除了第一筆交易)的哈希值串聯(lián)起來,如式(1)所示。
方程的最后一個(gè)哈希值是增量哈希鏈的根,稱之為增量哈希根 (incremental hash root,INR),這個(gè)值存放在區(qū)塊頭中并發(fā)送給所有節(jié)點(diǎn)。節(jié)點(diǎn)可以通過再次計(jì)算IHR來驗(yàn)證區(qū)塊數(shù)據(jù),這個(gè)過程可以對區(qū)塊數(shù)據(jù)的完整性進(jìn)行驗(yàn)證;當(dāng)涉及到驗(yàn)證一個(gè)區(qū)塊中的單個(gè)交易時(shí),通過結(jié)合增量哈希與布隆過濾器共同實(shí)現(xiàn)單個(gè)交易的驗(yàn)證。
2)減小塊內(nèi)存儲的數(shù)據(jù) Kim等人[22]基于PBFT(practical Byzantine fault tolerance)共識算法進(jìn)行改進(jìn),提出一種存儲壓縮共識算法SCC(storage compression consensus),降低了加入?yún)^(qū)塊鏈網(wǎng)絡(luò)的硬件條件,使得區(qū)塊鏈可以在物聯(lián)網(wǎng)領(lǐng)域有更為廣泛的應(yīng)用。SCC區(qū)塊鏈系統(tǒng)將剩余存儲容量最小的節(jié)點(diǎn)選為領(lǐng)導(dǎo)者,領(lǐng)導(dǎo)者執(zhí)行區(qū)塊鏈壓縮過程并生成壓縮塊和最新塊,驗(yàn)證完成后每個(gè)節(jié)點(diǎn)將根據(jù)自身能力存儲塊,存儲容量受限的節(jié)點(diǎn)存儲壓縮塊和最新塊并刪除所有先前存儲的塊;每輪共識后,重復(fù)此過程。文獻(xiàn)[23]提出了一種新的架構(gòu)Trail來提高區(qū)塊鏈系統(tǒng)的性能,其核心是由TXO(transaction output)構(gòu)建而成的Merkle樹,稱為TXO樹,其葉子節(jié)點(diǎn)存儲區(qū)塊中所有經(jīng)過驗(yàn)證的TXO的哈希值,可以判斷一個(gè)TXO是否被使用。Trail節(jié)點(diǎn)只保存與自己TXO相關(guān)的TXO樹的一部分——TXO樹的根哈希值。一個(gè)葉子節(jié)點(diǎn)的哈希值及其Merkle證明如圖6所示,TXO樹中粗邊框的節(jié)點(diǎn)是最右邊的葉子節(jié)點(diǎn),灰色節(jié)點(diǎn)是最右邊葉子節(jié)點(diǎn)的Merkle證明。通過省略重復(fù)的Merkle證明減少區(qū)塊鏈網(wǎng)絡(luò)中廣播數(shù)據(jù)的大小,在提高區(qū)塊鏈系統(tǒng)性能的同時(shí)降低通信和存儲的開銷。
區(qū)塊鏈系統(tǒng)中的輕節(jié)點(diǎn)不是越多越好,輕節(jié)點(diǎn)只是方便移動(dòng)設(shè)備和物聯(lián)網(wǎng)設(shè)備等輕量級設(shè)備使用,部分輕節(jié)點(diǎn)需要依賴全節(jié)點(diǎn)提供需要的信息;而全節(jié)點(diǎn)的數(shù)量則是越多越好,全節(jié)點(diǎn)負(fù)責(zé)交易的廣播和驗(yàn)證,從而確保整個(gè)系統(tǒng)的穩(wěn)定運(yùn)行。表1從輕節(jié)點(diǎn)的適用范圍、驗(yàn)證交易時(shí)是否依賴全節(jié)點(diǎn)、能否獨(dú)立驗(yàn)證交易、節(jié)點(diǎn)存儲大小幾個(gè)方面對比了上述六種典型的輕節(jié)點(diǎn)解決方案。經(jīng)典的SPV輕節(jié)點(diǎn)方案只需存儲全部區(qū)塊頭,需要區(qū)塊體中數(shù)據(jù)時(shí)需要向全節(jié)點(diǎn)請求。改變驗(yàn)證交易數(shù)據(jù)的方式不僅可以降低分布式網(wǎng)絡(luò)傳輸?shù)拈_銷,也能夠降低輕節(jié)點(diǎn)對全節(jié)點(diǎn)的依賴。NiPoPoW中節(jié)點(diǎn)只需下載和驗(yàn)證重要的區(qū)塊,從而大大減少同步和驗(yàn)證區(qū)塊鏈所需的資源,使得區(qū)塊鏈更加輕量級。FlyClient中輕節(jié)點(diǎn)與全節(jié)點(diǎn)進(jìn)行交互,以獲取代表整個(gè)區(qū)塊鏈狀態(tài)的證明,這個(gè)證明只包含區(qū)塊鏈中的一小部分,使得輕節(jié)點(diǎn)能夠更快地驗(yàn)證區(qū)塊鏈的狀態(tài),并減少對存儲和帶寬的需求,使其更容易加入?yún)^(qū)塊鏈網(wǎng)絡(luò)。減小塊內(nèi)存儲數(shù)據(jù)的方式不僅使得節(jié)點(diǎn)能夠存儲更多的區(qū)塊數(shù)據(jù),也能降低加入?yún)^(qū)塊鏈網(wǎng)絡(luò)的要求,使得節(jié)點(diǎn)更加輕量化,更適合在資源受限的設(shè)備上運(yùn)行。SCC將多個(gè)交易打包成一個(gè)壓縮塊,能夠更有效地利用存儲空間并減少系統(tǒng)存儲開銷,全節(jié)點(diǎn)沒有閑置存儲空間時(shí)可以簡單地刪除舊區(qū)塊,僅存儲壓縮區(qū)塊和最新區(qū)塊;Trail通過將區(qū)塊鏈網(wǎng)絡(luò)分成若干個(gè)區(qū)域,每個(gè)區(qū)域內(nèi)只需要處理本地的交易和區(qū)塊,網(wǎng)絡(luò)中節(jié)點(diǎn)只保存與自身相關(guān)的一部分?jǐn)?shù)據(jù),從而提高區(qū)塊鏈網(wǎng)絡(luò)的可擴(kuò)展性。輕節(jié)點(diǎn)方案雖然提高了區(qū)塊鏈系統(tǒng)的性能,但仍存在一些問題,輕節(jié)點(diǎn)只能緩解節(jié)點(diǎn)的存儲壓力,隨著交易數(shù)量的增加輕節(jié)點(diǎn)需要存儲的數(shù)據(jù)量也隨之增加。
2.1.2 分片
分片是一種擴(kuò)展技術(shù),最早應(yīng)用于數(shù)據(jù)庫擴(kuò)容,即將一個(gè)較大的數(shù)據(jù)集劃分為若干個(gè)子集存放在不同的服務(wù)器上[24]。區(qū)塊鏈的分片技術(shù)是一種將整個(gè)區(qū)塊鏈網(wǎng)絡(luò)分割成多個(gè)小片段,如圖7所示,每個(gè)分片都擁有部分節(jié)點(diǎn),每個(gè)分片負(fù)責(zé)處理交易的一部分,實(shí)現(xiàn)了交易的并行化處理,從而提高了區(qū)塊鏈的交易吞吐量可擴(kuò)展性。
根據(jù)面向?qū)ο蟮牟煌?,分片方式可分為網(wǎng)絡(luò)分片、交易分片和狀態(tài)分片[25]。網(wǎng)絡(luò)分片是指將整個(gè)區(qū)塊鏈網(wǎng)絡(luò)分成多個(gè)區(qū)塊鏈子網(wǎng)絡(luò),通常將所有節(jié)點(diǎn)隨機(jī)分配到不同的分片中,分片中的節(jié)點(diǎn)只需要處理和驗(yàn)證該分片中的交易和區(qū)塊而無須處理其他分片中的信息。交易分片在網(wǎng)絡(luò)分片的基礎(chǔ)上將整個(gè)區(qū)塊鏈中的交易分成若干個(gè)組,每個(gè)組分配到不同的分片中進(jìn)行處理。交易分片通常采用基于賬戶或者基于交易的方式進(jìn)行劃分,基于賬戶的方式是將所有交易按照其涉及的賬戶進(jìn)行分類,每個(gè)分片只處理某些特定賬戶的交易;基于交易的方式是將所有交易按照其類型或者其他屬性進(jìn)行分類,每個(gè)分片只處理某些特定類型或?qū)傩缘慕灰住^(qū)塊鏈系統(tǒng)中節(jié)點(diǎn)為了可以驗(yàn)證交易的有效性,需要存儲區(qū)塊鏈所有的區(qū)塊,這種存儲方式會(huì)給節(jié)點(diǎn)造成很大的壓力,導(dǎo)致全節(jié)點(diǎn)會(huì)越來越少,隨之系統(tǒng)的安全性也會(huì)越來越差。為了解決這個(gè)問題,提出了狀態(tài)分片這一概念,在網(wǎng)絡(luò)分片和交易分片的基礎(chǔ)上將存儲狀態(tài)也進(jìn)行分片,每個(gè)分片中的節(jié)點(diǎn)存儲不同的部分,降低節(jié)點(diǎn)的存儲開銷,提高區(qū)塊鏈系統(tǒng)的存儲可擴(kuò)展性。
使用分片技術(shù)將區(qū)塊鏈網(wǎng)絡(luò)劃分為多個(gè)分片,區(qū)塊鏈中節(jié)點(diǎn)數(shù)量可以隨著分片數(shù)量的增長而增加,實(shí)現(xiàn)了交易的并行化處理,提高了區(qū)塊鏈的可擴(kuò)展性,但會(huì)犧牲部分的安全性。為了區(qū)塊鏈的安全,所有的分片都要容忍節(jié)點(diǎn)作惡,在大多數(shù)網(wǎng)絡(luò)中,容忍作惡節(jié)點(diǎn)數(shù)量的極限是總節(jié)點(diǎn)數(shù)的三分之一,超出這個(gè)限制無法保證共識過程的安全,即使整個(gè)網(wǎng)絡(luò)中作惡節(jié)點(diǎn)的數(shù)量低于這個(gè)限制,單個(gè)分片也是不安全的。如圖8所示,一個(gè)有四分之一作惡節(jié)點(diǎn)的網(wǎng)絡(luò)被平均分為四個(gè)分片,而分片3中作惡節(jié)點(diǎn)數(shù)量超過了三分之一,該分片是不安全的,被稱為單分片接管攻擊。大多數(shù)基于分片的區(qū)塊鏈協(xié)議使用PoW或PoS來選舉委員,委員會(huì)內(nèi)使用PBFT達(dá)成共識,另一些則使用特定的共識算法。因此,將分片方案分為基于PoW和PBFT的分片方案、基于PoS和PBFT的分片方案和基于其他共識算法的分片方案。
1)基于PoW和PBFT的分片方案 Elastico[26]是首個(gè)基于分片的區(qū)塊鏈協(xié)議,核心思想是將網(wǎng)絡(luò)中的節(jié)點(diǎn)分成多個(gè)小的委員會(huì),每個(gè)委員會(huì)處理一組單獨(dú)的交易,實(shí)現(xiàn)了交易的并行化處理。Elastico網(wǎng)絡(luò)中分片的數(shù)量隨著網(wǎng)絡(luò)的規(guī)模線性增長,提高了區(qū)塊鏈系統(tǒng)的吞吐量,但Elastico不支持跨分片通信,無法保證交易的原子性。Elastico網(wǎng)絡(luò)采用PoW算法選舉委員,委員會(huì)內(nèi)部則使用PBFT算法進(jìn)行共識,但委員會(huì)重組頻繁,同時(shí)交易的延遲較高。與Elastico一樣,OmniLedger[27]使用PoW+PBFT的共識方案,此外OmniLedger將可驗(yàn)證隨機(jī)函數(shù)(VRF)[28]和RandHound協(xié)議[29]相結(jié)合,避免隨機(jī)性受到第三方的影響,用于分配成員和選擇領(lǐng)導(dǎo)者。OmniLedger提出了一種基于客戶端的跨分片交易協(xié)議來確保原子性,從而將通信開銷轉(zhuǎn)移到分片之外。但沒有論述Trust-but-Verify體系,如何選舉optimistic validators和core validators、如何懲罰作惡節(jié)點(diǎn)等。
Zamani等人[30]提出了一個(gè)基于BFT的分片協(xié)議RapidChain,在基于VSS(verifiable secret sharing)[31]的分布式隨機(jī)生成協(xié)議的基礎(chǔ)上,引入了一個(gè)隨機(jī)源來消除第三方隨機(jī)性的限制問題,不犧牲交易效率的前提下能夠降低失敗概率,避免陷入BFT共識算法的困境;同時(shí)在不進(jìn)行委員會(huì)重組的情況下可以對多個(gè)輪次進(jìn)行驗(yàn)證,分片內(nèi)能夠容忍1/2的作惡節(jié)點(diǎn),總體能夠容忍1/3的作惡節(jié)點(diǎn)。但在出現(xiàn)大量虛假交易時(shí),容易使系統(tǒng)陷入資產(chǎn)不斷在分片間轉(zhuǎn)移的循環(huán),可能導(dǎo)致無法進(jìn)行正常的交易驗(yàn)證。
2)基于PoS和PBFT的分片方案 Han等人[32]提出的分片方案允許區(qū)塊鏈網(wǎng)絡(luò)并行處理交易,同時(shí)通過壓縮通信次數(shù)和數(shù)據(jù)大小降低通信開銷,能夠極大提升區(qū)塊鏈網(wǎng)絡(luò)的吞吐量,然而分片中節(jié)點(diǎn)需存儲全部狀態(tài)信息,對節(jié)點(diǎn)要求較高且沒有進(jìn)行狀態(tài)分片。Harmony使用BLS(Boneh-Lynn-Shacham)簽名算法對PBFT進(jìn)行改進(jìn)[33],結(jié)合PoS和改進(jìn)的FBFT算法將通信復(fù)雜度由O(n2)降低到O(n),在Zilliqa的基礎(chǔ)上實(shí)現(xiàn)了狀態(tài)分片,提高了交易并行處理的速度,同時(shí)由于分布式隨機(jī)生成過程能夠確保其分片過程的安全性,但沒有詳細(xì)分析領(lǐng)導(dǎo)者作惡時(shí)改進(jìn)算法的機(jī)制和安全性。
3)基于其他共識算法的分片方案 Al-Bassam等人[34]搭建了一個(gè)支持分片的區(qū)塊鏈平臺Chainspace,在PBFT的基礎(chǔ)上提出一種新的分布式原子提交協(xié)議(sharded Byzantine ato-mic commit,S-BAC)用于跨分片的智能合約交易。通過將計(jì)算過程和驗(yàn)證過程解耦降低了系統(tǒng)的開銷、提高了系統(tǒng)的吞吐量,但沒有提供領(lǐng)導(dǎo)者選舉的細(xì)節(jié)和改善分片內(nèi)部共識沖突的問題。Monoxide[35]針對現(xiàn)有的區(qū)塊鏈網(wǎng)絡(luò)吞吐量低的問題提出了異步共識組區(qū)塊鏈網(wǎng)絡(luò),將區(qū)塊鏈網(wǎng)絡(luò)劃分成為多個(gè)獨(dú)立和并行的區(qū)域,高效處理跨越不同區(qū)域的交易。提出一種新穎的工作量證明方案Chu-ko-nu挖礦,可確保每個(gè)區(qū)域的有效挖礦能力與整個(gè)網(wǎng)絡(luò)處于同一級別,避免挖礦算力稀釋。
表2從分片方案的交易模型、采用的共識算法、分片容忍作惡節(jié)點(diǎn)數(shù)、整體容忍作惡節(jié)點(diǎn)數(shù)、是否支持跨分片交易、區(qū)塊鏈網(wǎng)絡(luò)同步方式和是否支持智能合約等方面進(jìn)行分析對比。不同的分片方案目的是相同的,都是為提高區(qū)塊鏈系統(tǒng)的可擴(kuò)展性。通常UTXO模型更適合交易分片,賬戶模型支持智能合約能夠?qū)崿F(xiàn)更復(fù)雜的交易;使用不同的共識算法容忍的作惡節(jié)點(diǎn)數(shù)不同,上述方案只有Chainspace是需要許可的區(qū)塊鏈。多數(shù)分片方案都是基于交易分片的,只有Harmony方案實(shí)現(xiàn)了狀態(tài)分片,每個(gè)分片中的節(jié)點(diǎn)存儲不同的部分。在任何分片方案中都要考慮節(jié)點(diǎn)的動(dòng)態(tài)變化,為了避免分片是靜態(tài)和抵御攻擊的,網(wǎng)絡(luò)必須接受新節(jié)點(diǎn)并以隨機(jī)方式將它們分配給不同的分片,即每隔一段時(shí)間網(wǎng)絡(luò)會(huì)重新進(jìn)行劃分?;跔顟B(tài)分片的方案,每個(gè)分片只維護(hù)一部分狀態(tài),因此重新劃分網(wǎng)絡(luò)可能會(huì)導(dǎo)致整個(gè)系統(tǒng)不可用,直到同步完成;新節(jié)點(diǎn)加入分片時(shí)必須確保節(jié)點(diǎn)有足夠的時(shí)間與分片的狀態(tài)同步,否則新加入的節(jié)點(diǎn)將拒絕處理交易。
分片數(shù)量越多,區(qū)塊鏈并行化處理交易的數(shù)量越多,但也會(huì)帶來一些問題。一方面,分片數(shù)量過多會(huì)稀釋區(qū)塊鏈網(wǎng)絡(luò)的算力,當(dāng)單個(gè)分片的算力以及驗(yàn)證節(jié)點(diǎn)的數(shù)量遠(yuǎn)低于分片之前的整個(gè)網(wǎng)絡(luò),容易遭受51%算力攻擊??绶制灰讜?huì)涉及多個(gè)分片,較小的分片遭受攻擊時(shí),與遭受攻擊分片相關(guān)的跨分片交易都會(huì)受到影響,分片之間需要克服雙花攻擊、跨鏈交易原子性、跨分片交易的DDoS攻擊等問題。區(qū)塊鏈網(wǎng)絡(luò)中,跨片交易的占比很高,因此跨片交易的可靠性和效率對區(qū)塊鏈系統(tǒng)吞吐量的影響很大。另一方面,分片數(shù)量過多會(huì)導(dǎo)致區(qū)塊鏈系統(tǒng)花費(fèi)大量的時(shí)間處理與交易無關(guān)的事情,如何進(jìn)行分片、構(gòu)建委員會(huì)和分片重配置等都會(huì)帶來額外的時(shí)間開銷和通信開銷。
2.1.3 有向無環(huán)圖
有向無環(huán)圖(DAG)是一種常用的數(shù)據(jù)結(jié)構(gòu),經(jīng)常被用于解決動(dòng)態(tài)規(guī)劃、尋求最短路徑、數(shù)據(jù)壓縮等問題。圖9展示了鏈表、樹和有向無環(huán)圖三個(gè)復(fù)雜度遞進(jìn)的數(shù)據(jù)結(jié)構(gòu)。鏈表是一條帶有方向的鏈;樹是有分叉的,但是任意兩個(gè)節(jié)點(diǎn)間只有一條路徑能到達(dá)另外一點(diǎn),也就是不存在閉環(huán);而圖是可以存在閉環(huán)的數(shù)據(jù)結(jié)構(gòu)。區(qū)塊鏈通常是鏈?zhǔn)浇Y(jié)構(gòu),但基于DAG的區(qū)塊鏈在結(jié)構(gòu)上發(fā)生了變化。通常的區(qū)塊鏈和基于DAG的區(qū)塊鏈的結(jié)構(gòu)差異如圖10所示。鏈?zhǔn)降膮^(qū)塊鏈?zhǔn)菃尉€程的,而DAG結(jié)構(gòu)的區(qū)塊鏈?zhǔn)嵌嗑€程的;鏈?zhǔn)降膮^(qū)塊鏈所有交易都記錄在同一個(gè)區(qū)塊中,而DAG結(jié)構(gòu)的區(qū)塊鏈每筆交易被單獨(dú)記錄;鏈?zhǔn)降膮^(qū)塊鏈組成單元是block(區(qū)塊),而在DAG中,每個(gè)交易被視為一個(gè)節(jié)點(diǎn),并且每個(gè)節(jié)點(diǎn)可以有多個(gè)父節(jié)點(diǎn)和多個(gè)子節(jié)點(diǎn)。父節(jié)點(diǎn)表示此交易的輸入,子節(jié)點(diǎn)表示此交易的輸出,這種數(shù)據(jù)結(jié)構(gòu)允許數(shù)據(jù)并行化處理,且無須等待整個(gè)區(qū)塊被挖掘,從而提高了交易速度和吞吐量。
基于DAG的區(qū)塊鏈在結(jié)構(gòu)上發(fā)生了變化,根據(jù)區(qū)塊鏈網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),可分為平行、收斂和發(fā)散三種類型。
1)平行的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu) 平行的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)是指區(qū)塊鏈中交易由一組節(jié)點(diǎn)以多條鏈的形式維護(hù)。節(jié)點(diǎn)分別維護(hù)其鏈/賬戶,復(fù)雜性取決于自身的屬性,但需要引入一種額外的排序算法。Hasgraph[36]網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)維護(hù)一個(gè)單獨(dú)的鏈,節(jié)點(diǎn)在本地創(chuàng)建一個(gè)事件用于記錄接收的信息,包含時(shí)間戳、交易的相關(guān)信息和交叉引用的哈希等,節(jié)點(diǎn)之間通過Gossip協(xié)議進(jìn)行交互。如圖11所示,Hashgraph的網(wǎng)絡(luò)是由節(jié)點(diǎn)維護(hù)的平行鏈之間相互引用構(gòu)建而成的,這些引用指向自身鏈上的最新事件,也指向該節(jié)點(diǎn)收到的另一個(gè)節(jié)點(diǎn)的最新事件,通過新交易的發(fā)生和Gossip協(xié)議的傳輸,每個(gè)節(jié)點(diǎn)都會(huì)收到所有的事件。哈希圖通過虛擬投票的方式來達(dá)成共識,事件最終被認(rèn)為有效必須經(jīng)過可見、強(qiáng)可見、決定三個(gè)階段,通過這種方式事件可以按照全局的總順序進(jìn)行排序。
Nano[37]使用區(qū)塊點(diǎn)陣(block lattice)技術(shù),每個(gè)賬戶都有一條獨(dú)立的區(qū)塊鏈,用戶只記錄與自己相關(guān)的交易,只有自身才能修改記錄,完整的交易由發(fā)送交易和接收交易兩部分組成。交易的收發(fā)是異步進(jìn)行的,發(fā)起交易的一方生成一個(gè)區(qū)塊并記錄扣除的金額,接收方也生成一個(gè)區(qū)塊并記錄收到的金額,實(shí)現(xiàn)了瞬時(shí)交易。Nano包含賬戶持有人(account holder)和代表(representative)兩個(gè)實(shí)體,賬戶持有人離線時(shí)可以選擇一名代表進(jìn)行投票,出現(xiàn)沖突時(shí),由當(dāng)選的代表創(chuàng)建一個(gè)關(guān)于交易沖突的投票并收集結(jié)果,在投票結(jié)束后確認(rèn)具有最高累積票數(shù)(權(quán)重)的交易。但是如果沒有足夠多的人數(shù)來投票解決沖突問題會(huì)影響系統(tǒng)的穩(wěn)定。
2)收斂的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu) 收斂的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)是指區(qū)塊鏈中交易按確定的順序組織或傾向于按確定的順序收斂。Byteball[38]網(wǎng)絡(luò)通過可信和有信譽(yù)的節(jié)點(diǎn)形成特有的主鏈,這些節(jié)點(diǎn)通過周期性地生成見證單元來區(qū)分普通節(jié)點(diǎn),如圖12所示,每個(gè)單元都標(biāo)有主鏈索引(MCI),該索引鏈接到一個(gè)見證單元,從而避免沖突。Byteball網(wǎng)絡(luò)中通過選舉12個(gè)見證人來避免失敗的發(fā)生,見證人可以由普通節(jié)點(diǎn)代替,新的候選人需要大多數(shù)用戶達(dá)成一致。Conflux[39]提出一種改進(jìn)的GHOST(greedy heaviest observed subtree)算法,引入了自適應(yīng)權(quán)重機(jī)制,使得Conflux能夠在用于快速確認(rèn)的樂觀策略和用于抵抗攻擊的保守策略之間切換,以適應(yīng)不同的工作場景。Conflux中的每個(gè)塊都有一個(gè)權(quán)重,新生成的塊將根據(jù)其過去的子圖自適應(yīng)地分配權(quán)重。
3)發(fā)散的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu) 發(fā)散的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)是指區(qū)塊鏈中交易在沒有預(yù)定順序的情況下稀疏地分布在不可預(yù)測的方向。IOTA[40]采用UTXO模型作為數(shù)據(jù)結(jié)構(gòu),將節(jié)點(diǎn)發(fā)布的交易構(gòu)成了Tangle網(wǎng)絡(luò)。如圖13所示,IOTA網(wǎng)絡(luò)中的所有節(jié)點(diǎn)都存儲Tangle的副本,一個(gè)未認(rèn)證的交易需要指向并認(rèn)證兩個(gè)祖先交易,因此,發(fā)起交易的用戶將有助于系統(tǒng)的安全。Tangle中的每個(gè)節(jié)點(diǎn)都代表一個(gè)交易,但交易的不斷產(chǎn)生容易導(dǎo)致子圖向不同方向發(fā)散,雖然采用不同的算法來限制子圖的發(fā)散,但仍可能導(dǎo)致網(wǎng)絡(luò)分裂成多個(gè)孤立的集團(tuán)。G-IOTA[41]在IOTA的基礎(chǔ)上進(jìn)一步完善了激勵(lì)機(jī)制,未確認(rèn)的交易需要指向并認(rèn)證三個(gè)祖先交易,同時(shí)通過引入相互監(jiān)督的機(jī)制避免節(jié)點(diǎn)的作惡。GraphChain[42]的設(shè)計(jì)與IOTA相似,每個(gè)交易必須驗(yàn)證多個(gè)(至少兩個(gè))祖先交易并引入一種激勵(lì)機(jī)制來維護(hù)圖形結(jié)構(gòu),同時(shí)交易需要收取交易費(fèi)用,從而吸引更多的礦工加入?yún)^(qū)塊鏈網(wǎng)絡(luò),以快速確認(rèn)交易。
區(qū)塊鏈系統(tǒng)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)是由邊和頂點(diǎn)組成的可視化圖形,雖然無法確定區(qū)塊鏈系統(tǒng)的最終結(jié)構(gòu),但可以間接反映協(xié)議的復(fù)雜性。表3從區(qū)塊鏈的組成單位、共識算法、交易模型、網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)、委員會(huì)成員選舉方式、是否支持智能合約和是否存在激勵(lì)機(jī)制等方面對上述方案進(jìn)行分析對比。采用平行結(jié)構(gòu)的區(qū)塊鏈,通過并行處理多條鏈來橫向擴(kuò)展區(qū)塊鏈,使用這種方法的系統(tǒng)一般都有一個(gè)固定的安全閾值,在此閾值內(nèi),吞吐量可以最大程度地接近通信協(xié)議的極限;相反,一旦超過閾值,系統(tǒng)就會(huì)受到安全性的限制。因此,在不破壞安全性的情況下提高可擴(kuò)展性是這一系列研究的關(guān)鍵點(diǎn)。采用收斂結(jié)構(gòu)的區(qū)塊鏈主要包括確認(rèn)主鏈和交易順序兩個(gè)步驟,主鏈既能作為可信鏈記錄歷史數(shù)據(jù),又能解決沖突問題。這種方案在比特幣的基礎(chǔ)架構(gòu)上進(jìn)行了改進(jìn),采用更復(fù)雜的擴(kuò)展規(guī)則來解決分叉問題。這種設(shè)計(jì)面臨與經(jīng)典區(qū)塊鏈系統(tǒng)同樣的瓶頸,提高性能依賴于減少主鏈的確認(rèn)時(shí)間,解決沖突和交易排序的時(shí)間成本限制了吞吐量的增長。采用發(fā)散結(jié)構(gòu)的區(qū)塊鏈?zhǔn)亲铎`活的區(qū)塊鏈系統(tǒng),沒有嚴(yán)格或者統(tǒng)一的共識機(jī)制,交易和區(qū)塊可以任意分散在網(wǎng)絡(luò)中,每個(gè)系統(tǒng)只應(yīng)用一個(gè)簡單的規(guī)則。這種設(shè)計(jì)通過減少確認(rèn)時(shí)間提高區(qū)塊鏈系統(tǒng)的可擴(kuò)展性,但是會(huì)降低系統(tǒng)的安全性或者增加系統(tǒng)的復(fù)雜性。此外,由于其非結(jié)構(gòu)化的網(wǎng)絡(luò)可能會(huì)導(dǎo)致過多的隨機(jī)分叉,從而限制區(qū)塊鏈系統(tǒng)性能的提升。
盡管每種類型的系統(tǒng)都截然不同,但它們?nèi)孕枰诎踩院涂蓴U(kuò)展性之間進(jìn)行權(quán)衡。為了實(shí)現(xiàn)全局一致性,排序算法可能成為基于DAG的區(qū)塊鏈系統(tǒng)的瓶頸,排序算法的計(jì)算復(fù)雜度隨著節(jié)點(diǎn)數(shù)量的增加呈指數(shù)增長。小型的委員會(huì)使得平行結(jié)構(gòu)的系統(tǒng)更加輕量化,但委員會(huì)成員過少或只有一個(gè)成員這種特殊的情況,可以最大限度地減少確認(rèn)時(shí)間,但會(huì)引入中心化的風(fēng)險(xiǎn)。弱化對一致性的要求,可以實(shí)現(xiàn)高擴(kuò)展性和快速確認(rèn)。IOTA和Nano等系統(tǒng)只能保證部分交易的順序,能夠滿足兩方或多方之間的資產(chǎn)轉(zhuǎn)移,但不支持智能合約。結(jié)構(gòu)良好的DAG系統(tǒng)能夠快速精確定位特定單元或交易,而發(fā)散結(jié)構(gòu)的系統(tǒng)無法精確定位單元或交易。DAG網(wǎng)絡(luò)異步處理交易的模式在一定程度上提高了區(qū)塊鏈的可擴(kuò)展性,但仍存在一些缺陷:a)由于DAG的驗(yàn)證規(guī)則是后面的交易驗(yàn)證前面的交易,有可能導(dǎo)致最后的交易遲遲無法被驗(yàn)證,甚至在節(jié)點(diǎn)數(shù)量比較少的情況下,交易時(shí)長無法預(yù)測,容易帶來新的安全問題;b)通過見證人或超級節(jié)點(diǎn)原則上可以解決安全問題,但一定程度上違背了去中心化的原則。DAG技術(shù)作為區(qū)塊鏈的一個(gè)有益補(bǔ)充,其異步通信機(jī)制在提高擴(kuò)展性、縮短確認(rèn)時(shí)間和降低支付費(fèi)用方面優(yōu)勢明顯,但在安全性和一致性方面也有亟待解決的問題。
2.2 鏈下擴(kuò)展
鏈下擴(kuò)展和鏈上擴(kuò)展是相對的,鏈下擴(kuò)展是指在區(qū)塊鏈主鏈之外建立第二層交易網(wǎng)絡(luò),它不直接修改共識機(jī)制、區(qū)塊大小和出塊時(shí)間等區(qū)塊鏈規(guī)則,只將必要的信息記錄到區(qū)塊鏈上,或在出現(xiàn)數(shù)據(jù)出錯(cuò)、發(fā)生糾紛等情況需要進(jìn)行驗(yàn)證時(shí)才與區(qū)塊鏈進(jìn)行信息交互。因其擴(kuò)展行為不發(fā)生在區(qū)塊鏈上被直觀地稱為鏈下擴(kuò)展。鏈下擴(kuò)展不受原有區(qū)塊鏈性能影響,主要擴(kuò)展方案包括狀態(tài)通道、鏈下計(jì)算和鏈下存儲等。
2.2.1 狀態(tài)通道
狀態(tài)通道的實(shí)現(xiàn)過程可以概括為以下幾個(gè)步驟:打開狀態(tài)通道、質(zhì)押資產(chǎn)、建立一個(gè)去中心化的制衡機(jī)制、在鏈下發(fā)送交易、對狀態(tài)簽名并發(fā)送、雙方確認(rèn)狀態(tài)的改變、關(guān)閉狀態(tài)通道。狀態(tài)通道的核心思想是將在鏈上結(jié)算的交易在鏈下通過狀態(tài)通道維護(hù)中間態(tài),并且在發(fā)生糾紛時(shí)回到鏈上仲裁。目前狀態(tài)通道的主要解決方案有比特幣閃電網(wǎng)絡(luò)(lightning network)[43]和以太坊雷電網(wǎng)絡(luò)(raiden network)[44]等。閃電網(wǎng)絡(luò)依靠RSMC(recoverable sequence maturity contract)和HTLC(hashed time lock contract)實(shí)現(xiàn)[45],RSMC保證了兩個(gè)人之間的直接交易可以在鏈下完成,HTLC保證了任意兩人之間的轉(zhuǎn)賬都可以通過一條支付通道來完成。具體來說,在支付通道打開后,參與方可離線發(fā)送任何數(shù)量的交易,無須廣播到比特幣網(wǎng)絡(luò)。除最開始創(chuàng)建支付通道和關(guān)閉支付通道需要廣播上鏈,中間的交易過程由一系列鏈下交易記錄構(gòu)成,無須存儲到區(qū)塊鏈上。創(chuàng)建支付通道相當(dāng)于雙方各自用一個(gè)賬本來記錄雙方的交易記錄,當(dāng)不想再與對方交易時(shí)可以關(guān)閉通道,根據(jù)賬本中的交易記錄進(jìn)行最終結(jié)算和上鏈。Raiden network是狀態(tài)通道技術(shù)在以太坊中的應(yīng)用,被稱為以太坊版本的閃電網(wǎng)絡(luò),除了交易細(xì)節(jié)之外,遵循與閃電網(wǎng)絡(luò)相同的操作流程和協(xié)議。
閃電網(wǎng)絡(luò)主要應(yīng)用在微支付場景,如果交易雙方之間進(jìn)行大量的微支付交易,將所有的交易都上鏈?zhǔn)菦]有必要的,中間狀態(tài)可以不用上鏈,只要所有微支付交易的最終狀態(tài)上鏈即可,從而避免高額的交易費(fèi)用,因?yàn)榧词顾形⒅Ц兜慕灰谞顟B(tài)都上鏈,最后的狀態(tài)也不發(fā)生變化。所以,在鏈下記錄微支付交易的狀態(tài)信息,只將創(chuàng)建狀態(tài)及最終狀態(tài)上鏈,大量的微支付交易被壓縮為少量鏈上狀態(tài),從而提升系統(tǒng)的交易吞吐量。狀態(tài)通道只在狀態(tài)通道開啟和關(guān)閉時(shí)向區(qū)塊鏈提交信息,具有更快的交易速度和更低廉的交易成本,交易信息只在參與者之間的狀態(tài)通道中,不會(huì)被公開披露,極大提高了隱私和安全性。但狀態(tài)通道需要實(shí)時(shí)交互,在大規(guī)模應(yīng)用中可能會(huì)出現(xiàn)擴(kuò)展性問題;另一方面,參與者之間需要相互信任,如果任意一方出現(xiàn)問題,將會(huì)導(dǎo)致通道的關(guān)閉、資金被鎖定或丟失等問題。
2.2.2 鏈下計(jì)算
在區(qū)塊鏈系統(tǒng)中,交易信息需要進(jìn)行全網(wǎng)廣播,全網(wǎng)節(jié)點(diǎn)基于共識機(jī)制處理和驗(yàn)證交易信息,且每個(gè)參與節(jié)點(diǎn)都保存一份完整的交易歷史記錄,由此導(dǎo)致區(qū)塊鏈系統(tǒng)的性能受到限制。鏈下計(jì)算是通過使用外部資源來減少區(qū)塊鏈上的計(jì)算工作,將原本置于鏈上的計(jì)算工作移至鏈下處理,而鏈上僅保留驗(yàn)證的部分,以此間接提升鏈上的數(shù)據(jù)處理能力。在以太坊主鏈執(zhí)行計(jì)算的成本很高,交易由網(wǎng)絡(luò)上的所有全節(jié)點(diǎn)處理,且需要收取高額的gas費(fèi)用,限制了計(jì)算能力的提升。Solidity語言的創(chuàng)始人Reitwiessner團(tuán)隊(duì)設(shè)計(jì)了一個(gè)降低以太坊網(wǎng)絡(luò)鏈上計(jì)算負(fù)載的智能合約Truebit[46]。Truebit將復(fù)雜的計(jì)算外包給一個(gè)可信的第三方,第三方負(fù)責(zé)執(zhí)行計(jì)算任務(wù)并公示運(yùn)算結(jié)果,這一過程稱為求解;另一個(gè)第三方稱為挑戰(zhàn)者,驗(yàn)證求解者所做的工作,以此獲得獎(jiǎng)勵(lì)。挑戰(zhàn)者一定程度上可以避免分歧的出現(xiàn),降低鏈上的計(jì)算量和gas費(fèi)用,同時(shí)能夠識別出真實(shí)、正確的結(jié)果。Arbitrum方案[47]將智能合約放到鏈下進(jìn)行驗(yàn)證,只將處理后的最終結(jié)果記錄在以太坊鏈主鏈,提高區(qū)塊鏈的吞吐量。同時(shí)設(shè)計(jì)一種新的虛擬機(jī)(Arbitrum virtual machine,AVM)用于對不同的智能合約進(jìn)行隔離和跟蹤資源使用情況,出現(xiàn)沖突或爭議時(shí),通過二分法定位有爭議的指令識別并獎(jiǎng)勵(lì)誠信的一方、懲罰不誠信的一方。但用戶取回資產(chǎn)到以太坊交易的延遲較高,需要一周的挑戰(zhàn)期過后才能確認(rèn)。
Arbitrum和Truebit方案都是針對以太坊智能合約的可擴(kuò)展性和計(jì)算密集型應(yīng)用程序的解決方案,這兩種方案都使用了智能合約和虛擬機(jī)來減輕主鏈上的負(fù)載,從而提高可擴(kuò)展性,但兩種方案在實(shí)現(xiàn)上有所差異。Truebit方案引入可信的第三方執(zhí)行和驗(yàn)證區(qū)塊鏈上無法在合適的時(shí)間內(nèi)執(zhí)行的計(jì)算任務(wù)并提供獎(jiǎng)勵(lì)來激勵(lì)參與者,確保結(jié)果的正確性和公正性。Arbitrum方案采用一種離線驗(yàn)證智能合約的機(jī)制,使用虛擬機(jī)協(xié)議來協(xié)調(diào)各方的狀態(tài),利用各方的數(shù)字簽名來確認(rèn)各方是否已經(jīng)達(dá)成一致,以此驗(yàn)證虛擬機(jī)狀態(tài),通過分叉協(xié)議來解決爭議,發(fā)現(xiàn)并懲罰不誠實(shí)的一方。Truebit方案可以實(shí)現(xiàn)更高效的計(jì)算,但由于其需要引入第三方求解和驗(yàn)證計(jì)算結(jié)果,可能存在一些安全和信任問題。Arbitrum方案使用了虛擬機(jī)和鏈下驗(yàn)證的機(jī)制,大大降低了驗(yàn)證的負(fù)擔(dān),提高了智能合約的可擴(kuò)展性和私密性,但部分參與者作惡可能會(huì)影響驗(yàn)證的結(jié)果,同時(shí)方案設(shè)計(jì)較為復(fù)雜,存在使用難度較高的問題。
盡管鏈下計(jì)算可以提高區(qū)塊鏈的可擴(kuò)展性,但也存在一些局限性:a)鏈下計(jì)算通常需要依賴中心化的計(jì)算節(jié)點(diǎn),這些節(jié)點(diǎn)可能受到攻擊或崩潰,從而影響整個(gè)系統(tǒng)的可靠性和穩(wěn)定性,這與區(qū)塊鏈的去中心化原則不符;b)計(jì)算或驗(yàn)證的結(jié)果必須是可信的,以保證整個(gè)區(qū)塊鏈系統(tǒng)的可靠性,如果鏈下計(jì)算或驗(yàn)證的結(jié)果錯(cuò)誤或存在欺騙行為,那么整個(gè)區(qū)塊鏈系統(tǒng)的可靠性也會(huì)受到影響;c)鏈下計(jì)算或驗(yàn)證需要與區(qū)塊鏈進(jìn)行集成,需要額外的開發(fā)工作和資源開銷,并且會(huì)導(dǎo)致系統(tǒng)的復(fù)雜性增加。
2.2.3 鏈下存儲
鏈下存儲是指將區(qū)塊體中數(shù)據(jù)轉(zhuǎn)移到鏈下存儲系統(tǒng),區(qū)塊體中僅存儲指向這些數(shù)據(jù)的“指針”和其他非數(shù)據(jù)信息[48],從而降低區(qū)塊鏈網(wǎng)絡(luò)的存儲壓力。如圖14所示,存儲數(shù)據(jù)時(shí),將原始數(shù)據(jù)存放至非區(qū)塊鏈系統(tǒng)中,并按照規(guī)則生成該數(shù)據(jù)的唯一標(biāo)志返回給區(qū)塊鏈系統(tǒng);訪問數(shù)據(jù)時(shí),通過數(shù)據(jù)的唯一標(biāo)志在非區(qū)塊鏈存儲系統(tǒng)中尋找原始數(shù)據(jù)。以比特幣為例,一個(gè)區(qū)塊大小約為1 MB,而區(qū)塊頭只有80 Byte[49],將區(qū)塊體中數(shù)據(jù)移至鏈下存儲系統(tǒng)的鏈下存儲方式能夠極大降低區(qū)塊鏈網(wǎng)絡(luò)的存儲壓力。根據(jù)實(shí)現(xiàn)方式和使用的存儲系統(tǒng),目前的鏈下存儲方案可分為基于云的鏈下存儲、基于DHT的鏈下存儲和基于IPFS的鏈下存儲。
1)基于云的鏈下存儲 Ali等人[50]提出一種去中心化的互聯(lián)網(wǎng)架構(gòu)Blockstack,通過在區(qū)塊鏈網(wǎng)絡(luò)上引入虛擬鏈(virtualchain)將實(shí)際數(shù)據(jù)存放到云端,哈希值保存在區(qū)塊鏈,從而提高數(shù)據(jù)的讀寫速度。Sandhu等人[51]選擇使用雙層區(qū)塊鏈結(jié)構(gòu)來處理數(shù)據(jù),第一層選用低能耗的主節(jié)點(diǎn)和簡單的共識機(jī)制存儲數(shù)據(jù);第二層使用PoW共識算法用于見證第一層。Xie等人[52]提出一種數(shù)據(jù)傳輸結(jié)構(gòu)HBRSS將數(shù)據(jù)劃分為塊,并將這些塊打包形成塊環(huán),確保數(shù)據(jù)的不可竄改和不可破壞,同時(shí)使用改進(jìn)的同態(tài)加密算法提高數(shù)據(jù)的私密性,使得任何第三方都可以快速、安全地處理加密數(shù)據(jù),從而在不安全的云環(huán)境和通道進(jìn)行數(shù)據(jù)傳輸處理。
2)基于DHT的鏈下存儲 分布式哈希表(distributed hash table,DHT)是一種分布式存儲方法[53],DHT在網(wǎng)絡(luò)每個(gè)節(jié)點(diǎn)存儲部分?jǐn)?shù)據(jù)并負(fù)責(zé)一個(gè)小范圍內(nèi)的路由,從而實(shí)現(xiàn)DHT網(wǎng)絡(luò)的尋址和存儲。Zyskind等人[54]將DHT技術(shù)應(yīng)用到區(qū)塊鏈系統(tǒng)中,將數(shù)據(jù)與數(shù)據(jù)引用進(jìn)行分離,數(shù)據(jù)存儲在分布式哈希表中,數(shù)據(jù)引用存放在區(qū)塊鏈上,從而提高區(qū)塊鏈系統(tǒng)的可擴(kuò)展性。文獻(xiàn)[55]提出一種新的區(qū)塊鏈架構(gòu)LightChain以提高區(qū)塊鏈網(wǎng)絡(luò)的通信和存儲可擴(kuò)展性。LightChain網(wǎng)絡(luò)不論節(jié)點(diǎn)在系統(tǒng)中的影響(如哈希能力、帶寬)如何,所有節(jié)點(diǎn)都可以參與共識,節(jié)點(diǎn)無須存儲完整的交易數(shù)據(jù),每個(gè)節(jié)點(diǎn)只需存儲全部塊和交易的一個(gè)隨機(jī)子集并響應(yīng)其他節(jié)點(diǎn)的請求,同時(shí)在網(wǎng)絡(luò)中提供可尋址的節(jié)點(diǎn)、塊和交易,共同確保數(shù)據(jù)能夠有效的訪問。文獻(xiàn)[56]提出了一種基于DHT的區(qū)塊鏈雙分片存儲擴(kuò)展機(jī)制,結(jié)合DHT技術(shù)和分片技術(shù)來實(shí)現(xiàn)區(qū)塊鏈數(shù)據(jù)的分片存儲,降低節(jié)點(diǎn)的存儲消耗。通過異或(XOR)運(yùn)算保證分片被均勻映射到集群中的不同節(jié)點(diǎn)進(jìn)行重疊存儲,在確保分片數(shù)據(jù)安全性和可靠性的同時(shí)提高了區(qū)塊鏈系統(tǒng)的存儲可擴(kuò)展性。
3)基于IPFS的鏈下存儲 星際文件系統(tǒng)(Inter Planetary file system,IPFS)是一個(gè)點(diǎn)對點(diǎn)的分布式文件系統(tǒng)(比特幣是一種點(diǎn)對點(diǎn)的電子現(xiàn)金系統(tǒng)),IPFS用基于內(nèi)容的尋址取代傳統(tǒng)的基于域名的尋址,如圖15所示,存放文件時(shí)會(huì)根據(jù)內(nèi)容計(jì)算出唯一的加密哈希值,取回文件時(shí)用哈希值根據(jù)分布式哈希表找到文件所在的節(jié)點(diǎn),取回并驗(yàn)證文件數(shù)據(jù),即用戶尋找的不再是某個(gè)地址而是儲存在某個(gè)地方的內(nèi)容,且無須驗(yàn)證發(fā)送者的身份,只需要驗(yàn)證內(nèi)容的哈希。
文獻(xiàn)[57]提出了一種提高物聯(lián)網(wǎng)流媒體設(shè)備可擴(kuò)展性的方案,通過代理重新加密網(wǎng)絡(luò)保護(hù)物聯(lián)網(wǎng)流數(shù)據(jù),利用IPFS來存儲和共享物聯(lián)網(wǎng)流數(shù)據(jù),從而解決大型數(shù)據(jù)的存儲問題。用戶從鏈下存儲中訪問數(shù)據(jù),從不可變?nèi)罩竞玩溕蠑?shù)據(jù)的來源檢查其完整性,同時(shí)為資源受限的物聯(lián)網(wǎng)流媒體設(shè)備開發(fā)智能合約,允許物聯(lián)網(wǎng)設(shè)備在鏈上發(fā)送數(shù)據(jù)塊哈希,并將所有數(shù)據(jù)塊存儲在鏈外;最后通過代理重新加密網(wǎng)絡(luò)保護(hù)物聯(lián)網(wǎng)流數(shù)據(jù)的隱私和機(jī)密性,所有加密的數(shù)據(jù)塊文件只能進(jìn)行一次鏈外寫入,但可以多次讀取。文獻(xiàn)[58]提出了一種基于IPFS存儲的雙區(qū)塊鏈系統(tǒng),用于保護(hù)物聯(lián)網(wǎng)行業(yè)的農(nóng)業(yè)采樣數(shù)據(jù)。主鏈以太坊為公眾提供搜索服務(wù),物聯(lián)網(wǎng)鏈(ASDC)作為輔鏈存儲農(nóng)業(yè)樣本數(shù)據(jù)。IPFS網(wǎng)絡(luò)存儲物聯(lián)網(wǎng)設(shè)備收集到的全部數(shù)據(jù),同時(shí)將數(shù)據(jù)流重定向到ASDC鏈,ASDC鏈將數(shù)據(jù)存儲在塊中并生成塊哈希值,這些區(qū)塊的哈希值被上傳到以太坊主鏈并存儲在鏈上。傳統(tǒng)圖書館需要為出版物提供物理存儲空間,盡管在計(jì)算機(jī)的幫助下可以進(jìn)行超高密度的信息存儲,但存儲和管理成本十分高昂;另一方面,當(dāng)前主要的信息來源正在從實(shí)體圖書轉(zhuǎn)向數(shù)字圖書,面臨著記錄完整性和存儲效率的挑戰(zhàn)。文獻(xiàn)[59]提出一個(gè)基于智能合約和IPFS存儲方案的電子圖書館系統(tǒng)LibBlock,以應(yīng)對數(shù)據(jù)密度提高和新興技術(shù)給數(shù)字化圖書館帶來的挑戰(zhàn),該系統(tǒng)能夠高效地存儲和分發(fā)數(shù)據(jù),防止數(shù)據(jù)冗余和提供安全的訪問策略,并為管理者設(shè)計(jì)特定資源可用的機(jī)制,高效整合和利用現(xiàn)有的存儲和網(wǎng)絡(luò)資源,以更低的成本提供更好的服務(wù)。
表4從鏈下存儲系統(tǒng)的類型、應(yīng)用場景、鏈下數(shù)據(jù)的安全性等方面對鏈下存儲方案進(jìn)行對比?;谠频逆溝麓鎯νㄟ^云端數(shù)據(jù)庫實(shí)現(xiàn)數(shù)據(jù)的存儲和訪問,依靠云服務(wù)提供商進(jìn)行數(shù)據(jù)備份和容災(zāi)?;谠频逆溝麓鎯﹄m然將存儲壓力轉(zhuǎn)移到云端,但云存儲通常由中心化的機(jī)構(gòu)提供服務(wù),減弱了區(qū)塊鏈去中心化的特性,也無法保證數(shù)據(jù)的真實(shí)性。另一方面,云存儲服務(wù)的成本也是比較高的,需要衡量降低區(qū)塊鏈網(wǎng)絡(luò)存儲壓力節(jié)省的成本與云存儲帶來的額外成本的關(guān)系,同時(shí)云存儲帶來的開銷由誰來負(fù)責(zé)也是需要思考的問題。與基于云的鏈下存儲方式不同,基于DHT的鏈下存儲和基于IPFS的鏈下存儲將部分?jǐn)?shù)據(jù)遷移到與區(qū)塊鏈并行的分布式系統(tǒng)中,基于DHT的鏈下存儲通過分布式哈希表實(shí)現(xiàn)數(shù)據(jù)的分布式存儲和訪問,基于IPFS的鏈下存儲通過IPFS網(wǎng)絡(luò)實(shí)現(xiàn)數(shù)據(jù)的內(nèi)容尋址和分布式存儲。這兩種方案鏈下的數(shù)據(jù)由分布式網(wǎng)絡(luò)維護(hù),在確保去中心化的同時(shí)降低了區(qū)塊鏈網(wǎng)絡(luò)的存儲壓力,但與傳統(tǒng)分布式存儲類似,需要冗余存儲提高數(shù)據(jù)的安全性。鏈下的分布式存儲系統(tǒng)可以由區(qū)塊鏈網(wǎng)絡(luò)中的節(jié)點(diǎn)和非區(qū)塊鏈網(wǎng)絡(luò)中的節(jié)點(diǎn)組成,從而減輕區(qū)塊鏈網(wǎng)絡(luò)中節(jié)點(diǎn)的存儲壓力。但如何確定鏈下分布式存儲系統(tǒng)中區(qū)塊鏈節(jié)點(diǎn)和非區(qū)塊鏈節(jié)點(diǎn)的比例是一個(gè)關(guān)鍵的問題,因?yàn)楣?jié)點(diǎn)數(shù)量和類型的不同會(huì)對存儲系統(tǒng)的性能和安全性產(chǎn)生重要影響。一方面,區(qū)塊鏈節(jié)點(diǎn)的數(shù)量增長可以提高鏈下存儲系統(tǒng)的安全性和可靠性,但過多的區(qū)塊鏈節(jié)點(diǎn)可能會(huì)導(dǎo)致鏈下存儲系統(tǒng)的性能下降;另一方面,非區(qū)塊鏈節(jié)點(diǎn)的數(shù)量是確保鏈下存儲系統(tǒng)容錯(cuò)性和可擴(kuò)展性的關(guān)鍵;此外,在確定節(jié)點(diǎn)比例時(shí)還需要考慮節(jié)點(diǎn)之間的通信和協(xié)作問題,以確保鏈下存儲系統(tǒng)的效率和可靠性。鏈下存儲雖然能夠極大提高區(qū)塊鏈網(wǎng)絡(luò)的存儲可擴(kuò)展性,但也帶來了新的問題。
2.3 基于跨鏈技術(shù)的可擴(kuò)展
跨鏈技術(shù)是解決兩個(gè)或多個(gè)區(qū)塊鏈資產(chǎn)和數(shù)據(jù)不能轉(zhuǎn)移、傳遞和交換問題的一種技術(shù)。對不同鏈、鏈上應(yīng)用和不同鏈生態(tài)的連通,從根本上解決了不同鏈之間數(shù)據(jù)孤島問題[60],無形之中成為了提高區(qū)塊鏈可擴(kuò)展性的一種方法??珂溣址譃橥瑯?gòu)鏈跨鏈和異構(gòu)鏈跨鏈。同構(gòu)鏈即區(qū)塊鏈底層技術(shù)是相同的,易于跨鏈的實(shí)現(xiàn);異構(gòu)鏈的跨鏈較為復(fù)雜,需要第三方的輔助完成跨鏈??珂湹倪^程可分為A鏈資產(chǎn)鎖定階段和B鏈相應(yīng)資產(chǎn)解鎖階段兩個(gè)階段。主要挑戰(zhàn)是如何保證A鏈上的資產(chǎn)被鎖定,B鏈上的資產(chǎn)如何確定解鎖,以及如何保證A鏈和B鏈之間資產(chǎn)鎖定和解鎖的原子性,即對應(yīng)的資產(chǎn)兩條鏈之間要么鎖定和解鎖成功,要么鎖定和解鎖失敗。針對以上問題,提出了不同的跨鏈技術(shù),主要分為公證認(rèn)機(jī)制、中繼/側(cè)鏈、哈希鎖定和分布式私鑰控制四類。
2.3.1 公證人機(jī)制
公證人機(jī)制[61]通過引入可信的第三方作為公證人來保證不同鏈之間資產(chǎn)的轉(zhuǎn)移。如圖16所示,用戶將A鏈的資產(chǎn)轉(zhuǎn)移到公證人指定的節(jié)點(diǎn)進(jìn)行鎖定,確認(rèn)后,公證人將相應(yīng)的資產(chǎn)釋放到B鏈中用戶的地址。公證人機(jī)制根據(jù)簽名方式分為單簽名公證人機(jī)制、多簽名公證人機(jī)制和分布式簽名公證人機(jī)制。多簽名公證人機(jī)制和分布式簽名公證人機(jī)制能夠避免過度依賴單個(gè)公證人,在少數(shù)節(jié)點(diǎn)被攻擊時(shí)不影響系統(tǒng)的穩(wěn)定性。多簽名公證人機(jī)制是指通過多個(gè)公證人簽名確認(rèn)交易,提高跨鏈交易的安全性。分布式簽名公證人機(jī)制實(shí)現(xiàn)較為復(fù)雜,借鑒多方計(jì)算的思想將唯一密鑰拆分為多個(gè)碎片,加密后隨機(jī)分配給多個(gè)公證人,只有一定比例的公證人共同簽名才能湊出完整密鑰,弱化了公證人在跨鏈交易中的中心化特性。
Interledger是公證人機(jī)制的代表性項(xiàng)目之一,設(shè)計(jì)一個(gè)支持不同區(qū)塊鏈系統(tǒng)進(jìn)行資產(chǎn)交易的支付協(xié)議[62]??珂溄灰滓肟尚诺牡谌阶鳛楣C人連接兩個(gè)區(qū)塊鏈系統(tǒng),通過協(xié)議對雙方交易資產(chǎn)進(jìn)行托管,公證人達(dá)成共識后交易繼續(xù)進(jìn)行,托管的資產(chǎn)才會(huì)被釋放。Wu等人[63]搭建了一個(gè)基于周期性委員會(huì)輪換機(jī)制的異構(gòu)鏈通信框架,將公證人機(jī)制和中繼有機(jī)的結(jié)合,通過定期重組委員會(huì)和優(yōu)先更換故障節(jié)點(diǎn)來保證系統(tǒng)的可靠性。由于引入了委員會(huì)作為中繼,設(shè)計(jì)了基于PBFT的消息驗(yàn)證機(jī)制,以適應(yīng)委員會(huì)的輪換并提高消息驗(yàn)證的速度。
2.3.2 側(cè)鏈/中繼
側(cè)鏈[64]最初是為了實(shí)現(xiàn)比特幣和其他數(shù)字貨幣流通提出的,側(cè)鏈協(xié)議通過互相錨定(如美元錨定黃金)將兩條不同的區(qū)塊鏈連接起來,使資產(chǎn)能夠在不同的區(qū)塊鏈之間流通。通常將第一條鏈稱為主鏈,另一條稱為側(cè)鏈,因兩者相互獨(dú)立,自身鏈上的創(chuàng)新或更改不會(huì)對主/側(cè)鏈運(yùn)行造成大的影響。BTC Relay是側(cè)鏈技術(shù)的典型應(yīng)用,通過以太坊智能合約將以太坊網(wǎng)絡(luò)連接到比特幣網(wǎng)絡(luò),允許用戶在以太坊上驗(yàn)證比特幣交易[65]。中繼不同于側(cè)鏈的雙向錨定,而是將中繼鏈作為第三方公證人實(shí)現(xiàn)資產(chǎn)交易。如圖17所示,中繼鏈?zhǔn)窃谥麈満蛡?cè)鏈之間之間添加一條區(qū)塊鏈來連接兩條不同的區(qū)塊鏈,通過第三條區(qū)塊鏈實(shí)現(xiàn)價(jià)值和信息的交換。
中繼相對于側(cè)鏈而言更加靈活,應(yīng)用場景更廣泛。微眾銀行自主研發(fā)的跨鏈交互平臺WeCross采用基于路由互連的跨鏈架構(gòu)[66],通過跨鏈接口對智能合約和資產(chǎn)進(jìn)行抽象的包裝,設(shè)計(jì)出統(tǒng)一的資源范式,解決不同鏈之間數(shù)據(jù)結(jié)構(gòu)和不同數(shù)據(jù)難以互認(rèn)的問題。最后,基于統(tǒng)一的調(diào)用方法實(shí)現(xiàn)不同區(qū)塊鏈的統(tǒng)一調(diào)用,弱化不同區(qū)塊鏈的細(xì)節(jié)差異。Tendermint團(tuán)隊(duì)設(shè)計(jì)的異構(gòu)網(wǎng)絡(luò)Cosmos[67]同樣是基于中繼機(jī)制實(shí)現(xiàn)跨鏈交互的。使用基于PoS和BFT算法改進(jìn)的Tendermint共識算法達(dá)成共識,每秒可處理數(shù)千筆交易,其嚴(yán)格的問責(zé)制度可以在發(fā)生分叉時(shí)確認(rèn)責(zé)任,防止參與者作惡。如圖18所示,Cosmos網(wǎng)絡(luò)基于IBC(inter-blockchain communication)協(xié)議實(shí)現(xiàn)中繼通信,為多個(gè)不同的區(qū)塊鏈互相通信建立信任基礎(chǔ),所有并行鏈(Zone)的代幣可以安全、快速地從一個(gè)并行鏈轉(zhuǎn)移到另一個(gè)并行鏈,同時(shí)記錄每個(gè)并行鏈代幣的數(shù)量,從而不依賴受信任的第三方讓資產(chǎn)在區(qū)塊鏈之間轉(zhuǎn)移。
2.3.3 哈希鎖定
哈希鎖定(hashed time lock contract,HTLC)是一種基于原子交換的協(xié)議[68],通過帶有哈希鎖和時(shí)間鎖的合約進(jìn)行資產(chǎn)鎖定,設(shè)置相應(yīng)的時(shí)間和解鎖條件來實(shí)現(xiàn)資產(chǎn)交換,超出指定時(shí)間后將資產(chǎn)物歸原主。哈希鎖定無須可信的第三方參與,通過資產(chǎn)質(zhì)押的方式在不受信任的交易雙方之間完成資產(chǎn)轉(zhuǎn)移,在超時(shí)后交易雙方能夠取回各自的資產(chǎn),避免拖欠交易,降低交易風(fēng)險(xiǎn)。哈希鎖定機(jī)制只支持資產(chǎn)或者信息交換而不支持資產(chǎn)或者信息的轉(zhuǎn)移。圖19展示了A和B交換資產(chǎn)的具體過程。a)A隨機(jī)生成密鑰s,通過哈希函數(shù)得到s的哈希值h,將其發(fā)送給B;b)A通過合約鎖定A鏈上的資產(chǎn)x,設(shè)置一個(gè)鎖定時(shí)間T1,解鎖條件為B獲取密鑰s;c)B通過合約鎖定在B鏈上得資產(chǎn),設(shè)置一個(gè)鎖定時(shí)間T2(T2 比特幣閃電網(wǎng)絡(luò)是哈希鎖定技術(shù)的一個(gè)典型應(yīng)用,依靠RSMC和HTLC實(shí)現(xiàn)。RSMC保證了兩個(gè)人之間的直接交易可以在鏈下完成,HTLC保證了任意兩人之間的轉(zhuǎn)賬都可以通過一條支付通道來完成[69]。支付通道相當(dāng)于雙方各自用一個(gè)賬本來記錄交易信息,除創(chuàng)建支付通道和關(guān)閉支付通道時(shí)需要廣播上鏈,中間的交易過程由一系列鏈下交易記錄構(gòu)成,不再上鏈。在支付通道打開后,交易雙方可離線發(fā)送任意數(shù)量的交易,每一筆交易都需要經(jīng)過交易雙方簽名認(rèn)證,交易完成或不再進(jìn)行交易時(shí)關(guān)閉通道,最終將經(jīng)過雙方認(rèn)可的最新交易結(jié)果廣播上鏈。 2.3.4 分布式私鑰控制 分布式私鑰控制[70]是指私有資產(chǎn)通過分布式私鑰生成和控制技術(shù)映射到一條新的區(qū)塊鏈上,在新的鏈上部署智能合約完成資產(chǎn)交換。分布式私鑰控制在分布式簽名公證人機(jī)制的基礎(chǔ)上進(jìn)一步避免中心化的風(fēng)險(xiǎn),原始資產(chǎn)從原始鏈轉(zhuǎn)移到跨鏈時(shí),跨鏈節(jié)點(diǎn)將向合約指定用戶發(fā)放相應(yīng)的等值代幣。為確保原始鏈的資產(chǎn)能夠跨鏈交易引入鎖定和解鎖技術(shù)對資產(chǎn)進(jìn)行管理。鎖定是指使用密鑰控制的數(shù)字資產(chǎn)進(jìn)行分布式控制管理和資產(chǎn)映射的過程;解鎖是利用分布式私鑰對鎖定的代幣進(jìn)行解鎖操作,將數(shù)字資產(chǎn)的控制權(quán)返回給所有者。 以Fusion[64]項(xiàng)目為例,各種加密資產(chǎn)可以通過分布式私鑰控制映射到Fusion鏈上,這些資產(chǎn)可以通過合約進(jìn)行交互,這一過步驟通過lock-in(鎖定)和lock-out(解鎖)實(shí)現(xiàn)。lock-in過程如圖20所示,用戶發(fā)起請求,F(xiàn)usion將密鑰分片并隨機(jī)分發(fā)給網(wǎng)絡(luò)中的不同節(jié)點(diǎn),告知用戶生成的lock-in地址,用戶將指定資產(chǎn)轉(zhuǎn)入生成的lock-in地址中,完成后Fusion通過智能合約進(jìn)行鎖定并驗(yàn)證和更新用戶的資產(chǎn)信息。lock-out階段用戶發(fā)起請求后,首先檢查映射賬戶中的信息,滿足預(yù)設(shè)條件后進(jìn)行密鑰驗(yàn)證,通過后解除控制管理,完成控制權(quán)交接后通過智能合約同步更新賬戶信息記錄。 表5從安全性、局限性、是否支持智能合約部署、是否需要信任基礎(chǔ)、交易速度、互操作性、是否支持跨鏈資產(chǎn)轉(zhuǎn)移、是否支持跨鏈資產(chǎn)抵押和典型項(xiàng)目等方面對公證人機(jī)制、側(cè)鏈/中繼、哈希鎖定分布式私鑰控制四種跨鏈技術(shù)進(jìn)行分析對比。不同的跨鏈技術(shù)在適用的場景、信任基礎(chǔ)、支持的功能以及實(shí)現(xiàn)難易程度上存在差異。公證人機(jī)制和哈希鎖定都是較成熟且簡單的方案,公證人機(jī)制依靠公證人來驗(yàn)證跨鏈交易的合法性和有效性,引入中心化機(jī)構(gòu)弱化了去中心化的特性。哈希鎖定是一種用于驗(yàn)證跨鏈交易的安全技術(shù),通過將交易哈希值作為鎖定條件來確保交易的合法性和有效性,無須引入第三方機(jī)構(gòu),相對于公證人機(jī)制具有更高的可靠性,但是只支持?jǐn)?shù)字資產(chǎn)的交換。側(cè)鏈/中繼技術(shù)通過引入側(cè)鏈/中繼鏈提高跨鏈交易的可信度和可靠性,可以將不同區(qū)塊鏈之間的數(shù)據(jù)和資產(chǎn)進(jìn)行無縫的交換和傳遞,但側(cè)鏈/中繼技術(shù)會(huì)增加整個(gè)系統(tǒng)的安全風(fēng)險(xiǎn),在不同的鏈之間進(jìn)行交互會(huì)引入新的安全問題,同時(shí)會(huì)涉及用戶的隱私問題。分布式私鑰控制通過將數(shù)字資產(chǎn)的私鑰分散存儲在多個(gè)節(jié)點(diǎn),避免單點(diǎn)故障的同時(shí)提高了數(shù)字資產(chǎn)的安全性,但需要對私鑰的分配、控制和管理進(jìn)行有效的管理和監(jiān)控,否則會(huì)導(dǎo)致私鑰部分丟失或被泄露,密鑰分發(fā)需要額外的管理和監(jiān)控開銷才能確保私鑰的安全性和可用性。跨鏈技術(shù)雖然解決了不同鏈之間的數(shù)據(jù)孤島問題,但也帶來了新的挑戰(zhàn),不同的跨鏈技術(shù)發(fā)展的側(cè)重點(diǎn)不同,需要考慮實(shí)際的應(yīng)用場景選用結(jié)合不同的技術(shù)來解決問題。此外,跨鏈系統(tǒng)將交易分散到不同的鏈上,并行化處理的難度變得更大,同時(shí)也對資產(chǎn)的安全和數(shù)據(jù)的隱私保護(hù)提出了更高的要求。 3 總結(jié)與展望 3.1 面臨的挑戰(zhàn) 1)安全問題 區(qū)塊鏈采用一系列密碼學(xué)算法來確保數(shù)據(jù)傳輸安全,但迄今為止其面臨的最大挑戰(zhàn)仍是安全問題,尤其是公有鏈,絕大部分鏈上數(shù)據(jù)都是公開的。對于鏈上擴(kuò)展方式,輕節(jié)點(diǎn)與全節(jié)點(diǎn)的依賴關(guān)系是無可避免的,這時(shí)全節(jié)點(diǎn)的安全性代表了區(qū)塊鏈的安全性,如果全節(jié)點(diǎn)作惡,短時(shí)間內(nèi)輕節(jié)點(diǎn)容易被欺騙,因此如何提高輕節(jié)點(diǎn)的安全性需要更加深入的研究。分片方案通過將區(qū)塊鏈網(wǎng)絡(luò)劃分為多個(gè)分片,可能存在某些分片中存在大量惡意節(jié)點(diǎn)或存在過小的分片,更容易遭受攻擊。此外,過多的分片導(dǎo)致交易延遲增長,難以避免雙花問題?;贒AG的區(qū)塊鏈網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)較為復(fù)雜,存在某些交易長時(shí)間無法確認(rèn)的問題,引入見證人或超級節(jié)點(diǎn)帶來了中心化的風(fēng)險(xiǎn)。 鏈下擴(kuò)展方式將數(shù)據(jù)移至鏈下處理,提高了數(shù)據(jù)泄露的風(fēng)險(xiǎn)。一方面,區(qū)塊鏈需要頻繁與鏈下系統(tǒng)交互,信息交互的安全難以保障;另一方面,鏈下存儲方案無法保證鏈下系統(tǒng)數(shù)據(jù)的真實(shí)性,同時(shí)非區(qū)塊鏈系統(tǒng)可能靠非法交易數(shù)據(jù)謀取利益??珂湐U(kuò)展方案需要考慮的安全問題更為復(fù)雜,公證人信任問題、防止偽造資產(chǎn)轉(zhuǎn)移、交易超時(shí)處理、如何保證獲取數(shù)據(jù)的可信和競爭條件攻擊等。此外,跨鏈技術(shù)雖然實(shí)現(xiàn)了不同鏈之間的交互,但交易被分散到不同的鏈上,增加了并行化處理的難度,對資產(chǎn)的安全和數(shù)據(jù)的隱私保護(hù)提出更高的要求。 2)應(yīng)用問題 區(qū)塊鏈分為公有鏈、聯(lián)盟鏈和私有鏈。公有鏈?zhǔn)峭耆_放的網(wǎng)絡(luò),所有用戶都可以參與系統(tǒng)維護(hù);聯(lián)盟鏈?zhǔn)怯邢揲_放的網(wǎng)絡(luò),鏈中的參與方需要事先約定;私有鏈由個(gè)人或者私人機(jī)構(gòu)所有,不對外開放。不同的區(qū)塊鏈平臺(如超級賬本、以太坊)提供不同的服務(wù),不適合所有的應(yīng)用類型。區(qū)塊鏈平臺支持的共識算法不同,交易速度不同,都會(huì)對應(yīng)用程序類型產(chǎn)生影響,在不同領(lǐng)域的應(yīng)用應(yīng)選用相宜的方案以突出其優(yōu)勢和限制。 鏈上擴(kuò)展更適合節(jié)點(diǎn)規(guī)模較大的公有鏈和聯(lián)盟鏈。輕節(jié)點(diǎn)方案更適合便攜的小型設(shè)備或物聯(lián)網(wǎng)設(shè)備等,雖然許多研究人員提出不依賴全節(jié)點(diǎn)的方案,但功能依然無法與全節(jié)點(diǎn)相比。分片方案可能導(dǎo)致分片過大或過小,分片過小時(shí)只需少量的資源惡意節(jié)點(diǎn)就可以完全控制一個(gè)分片。為了避免交易涉及到的用戶隱私信息泄露給惡意節(jié)點(diǎn),未來的區(qū)塊鏈系統(tǒng)需要更多的隱私保護(hù)技術(shù),但在采用了隱私保護(hù)技術(shù)的區(qū)塊鏈系統(tǒng)上,如何實(shí)現(xiàn)資產(chǎn)以及數(shù)據(jù)的跨鏈將成為一個(gè)涉及技術(shù)實(shí)現(xiàn)和效率的雙重問題。是否支持輕客戶端對區(qū)塊鏈系統(tǒng)的推廣至關(guān)重要,DAG網(wǎng)絡(luò)因其特殊的拓?fù)錂C(jī)構(gòu)難以向輕客戶端提供證明,目前不支持輕客戶端的應(yīng)用。 狀態(tài)通道將微支付交易在鏈下處理,雖然提高了區(qū)塊鏈的吞吐量,但只能用于數(shù)字支付領(lǐng)域。鏈下存儲方案將數(shù)據(jù)轉(zhuǎn)移至第三方可信賴的存儲系統(tǒng),減弱了區(qū)塊鏈的去中心化特性,不適用于公有鏈場景;同時(shí)查詢數(shù)據(jù)的效率受到鏈上系統(tǒng)和鏈下系統(tǒng)交互的影響,不適用于溯源、存證等領(lǐng)域。 跨鏈技術(shù)隨著區(qū)塊鏈技術(shù)的發(fā)展而深入,但目前缺乏一個(gè)統(tǒng)一的標(biāo)準(zhǔn)。跨鏈協(xié)議為實(shí)現(xiàn)不同區(qū)塊鏈的互連互通需要考慮不同區(qū)塊鏈的兼容性問題,確保交易能夠互相接收。一方面,區(qū)塊鏈系統(tǒng)的不斷更新,改進(jìn)共識算法、區(qū)塊大小和新功能的出現(xiàn)等都會(huì)影響跨鏈協(xié)議的兼容性;另一方面,多個(gè)區(qū)塊鏈相互連接將導(dǎo)致區(qū)塊鏈系統(tǒng)整體的復(fù)雜度上升。此外,最初許多區(qū)塊鏈在設(shè)計(jì)時(shí)并未考慮跨鏈應(yīng)用,這些因素都會(huì)影響跨鏈技術(shù)的應(yīng)用。 3)效率問題 隨著區(qū)塊鏈數(shù)據(jù)的不斷增長,查找數(shù)據(jù)的效率變得越來越低,特別是鏈下存儲方案,需要到非區(qū)塊鏈系統(tǒng)檢索數(shù)據(jù),如果存在惡意節(jié)點(diǎn)不僅會(huì)返回錯(cuò)誤信息,還會(huì)影響查詢的準(zhǔn)確性。因此,在提高區(qū)塊鏈可擴(kuò)展性的同時(shí)需要更高效的數(shù)據(jù)查詢方法。分片是提高區(qū)塊鏈可擴(kuò)展性廣泛采用的方法之一,區(qū)塊鏈的吞吐量與分片的數(shù)量成正比,但分片數(shù)量的增加也會(huì)降低每個(gè)分片的資源和計(jì)算能力。當(dāng)分片過小時(shí),惡意攻擊者只需少量的資源就可以完全控制一個(gè)分片。因此,需要大量的研究優(yōu)化分片數(shù)量更有效地?cái)U(kuò)展區(qū)塊鏈網(wǎng)絡(luò)。 各種基于分片的解決方案,如Elastic、Omniledger和Rapidchain等,雖然實(shí)現(xiàn)了低延遲、高吞吐量、存儲可擴(kuò)展和拜占庭容錯(cuò)等目標(biāo),但增加了消息的復(fù)雜度。在這些方案中,只有Rapidchain在不犧牲安全性的情況下能夠提供更好的可擴(kuò)展性,消息復(fù)雜度為O(n),如何降低區(qū)塊鏈內(nèi)部的消息復(fù)雜度,尤其在分片內(nèi)部,是需要進(jìn)一步探索的領(lǐng)域。 3.2 未來研究方向 1)研究更高效的的安全機(jī)制 現(xiàn)階段的解決方案仍存在一些安全問題,輕節(jié)點(diǎn)方案需要保證輕節(jié)點(diǎn)與全節(jié)點(diǎn)信息交互的安全、分片過小易遭受攻擊、鏈下系統(tǒng)與鏈上系統(tǒng)交互的安全、跨鏈交互的安全等;另一方面,量子計(jì)算機(jī)的不斷發(fā)展也給經(jīng)典密碼學(xué)造成沖擊和挑戰(zhàn),設(shè)計(jì)能夠抵御量子攻擊的密碼系統(tǒng)也是需要考慮的問題。因此,需要研究更高效或更有針對性的安全機(jī)制。 2)研究分叉監(jiān)測委員會(huì)機(jī)制 分叉的形成也是限制區(qū)塊鏈可擴(kuò)展性的原因之一,通常采用最長鏈原則處理這些分叉。但如果沒有合適機(jī)制地避免分叉出現(xiàn)仍會(huì)浪費(fèi)大量的資源,從而影響區(qū)塊鏈的整體性能。針對這一問題可以建立分叉監(jiān)測委員會(huì)(可以由激勵(lì)節(jié)點(diǎn)組成),委員會(huì)與礦工節(jié)點(diǎn)是分離的,由委員會(huì)持續(xù)監(jiān)測分叉的形成。 3)研究信譽(yù)管理方法和負(fù)載平衡機(jī)制 交易通信成本指的是完成一次交易所需的通信費(fèi)用,現(xiàn)有的解決方案,為了降低交易通信成本,要么犧牲可靠性和區(qū)塊鏈的去中心化性質(zhì),依賴可信任的硬件,要么假設(shè)所有節(jié)點(diǎn)都被激勵(lì)且無作惡行為??梢蕴剿鞑渴鸱稚⑿抛u(yù)管理方法和負(fù)載平衡機(jī)制,并采用更具吸引力的激勵(lì)策略防止不受信任的節(jié)點(diǎn)或沒有可信硬件的節(jié)點(diǎn)的異常行為。 4)研究更具普適性的通用跨鏈體系架構(gòu) 隨著區(qū)塊鏈技術(shù)在不同場景的應(yīng)用,跨鏈技術(shù)也得到進(jìn)一步的發(fā)展。區(qū)塊鏈互操作性需要建立標(biāo)準(zhǔn)化的體系架構(gòu),不兼容的標(biāo)準(zhǔn)會(huì)阻礙區(qū)塊鏈互操作性的發(fā)展,沒有標(biāo)準(zhǔn)的跨鏈工作聯(lián)通困難、難以監(jiān)管。跨鏈技術(shù)在降低跨鏈機(jī)制中心化、減輕主鏈負(fù)擔(dān)方面可以進(jìn)行更深入的探索和研究。 4 結(jié)束語 區(qū)塊鏈?zhǔn)且环N新型的分布式計(jì)算基礎(chǔ)平臺,具有以前計(jì)算平臺所不具備的技術(shù)優(yōu)勢,其相關(guān)的理論和技術(shù)備受研究人員的關(guān)注。隨著區(qū)塊鏈技術(shù)的快速發(fā)展,區(qū)塊鏈的可擴(kuò)展性已成為制約區(qū)塊鏈大規(guī)模應(yīng)用的阻礙,為了推動(dòng)傳統(tǒng)行業(yè)進(jìn)行數(shù)字化轉(zhuǎn)型,構(gòu)建信任體系,促進(jìn)行業(yè)發(fā)展,研究區(qū)塊鏈的可擴(kuò)展性問題是很有必要的。本文從擴(kuò)展性角度出發(fā),首先介紹分布式系統(tǒng)的可擴(kuò)展性,其次分析了鏈上、鏈下和跨鏈三類提高區(qū)塊鏈可擴(kuò)展性技術(shù)的研究進(jìn)展,最后闡述了對提高區(qū)塊鏈可擴(kuò)展性技術(shù)所面臨挑戰(zhàn)的思考和總結(jié)。 參考文獻(xiàn): [1]Vacca A, Di Sorbo A, Visaggio C A, et al. A systematic literature review of blockchain and smart contract development: techniques, tools, and open challenges[J].Journal of Systems and Software,2021,174(4):110891. [2]邵奇峰,張召,朱燕超,等.企業(yè)級區(qū)塊鏈技術(shù)綜述[J].軟件學(xué)報(bào),2019,30(9):2571-2592.(Shao Qifeng, Zhang Zhao, Zhu Yanchao, et al. Survey of enterprise blockchains[J].Journal of Software,2019,30(9):2571-2592.) [3]Berdik D, Otoum S, Schmidt N, et al. A survey on blockchain for information systems management and security[J].Information Processing & Management,2021,58(1):102397. [4]劉雙印,雷墨鹥兮,王璐,等.區(qū)塊鏈關(guān)鍵技術(shù)及存在問題研究綜述[J].計(jì)算機(jī)工程與應(yīng)用,2022,58(3):66-82.(Liu Shuangyin, Lei Moyixi, Wang Lu, et al. Survey of blockchain key technologies and existing problems[J].Computer Engineering and Applications,2022,58(3):66-82.) [5]鄧小鴻,王智強(qiáng),李娟,等.主流區(qū)塊鏈共識算法對比研究[J].計(jì)算機(jī)應(yīng)用研究,2022,39(1):1-8.(Deng Xiaohong, Wang Zhiqiang, Li Juan, et al. Comparative research on mainstream blockchain consensus algorithms[J].Application Research of Compu-ters,2022,39(1):1-8.) [6]Singh S, Hosen A S M S, Yoon B. Blockchain security attacks, challenges, and solutions for the future distributed IoT network[J].IEEE Access,2021,9:13938-13959. [7]朱盼盼,張彤,鄭宇寧,等.分布式存儲系統(tǒng)中糾刪碼數(shù)據(jù)修復(fù)算法優(yōu)化與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用研究,2020,37(S1):140-142.(Zhu Panpan, Zhang Tong, Zheng Yuning, et al. Optimization and implementation on data repair algorithm for erasure codes in distributed storage system[J].Application Research of Computers,2020,37(S1):140-142.) [8]Sadeeq M A, Zeebaree S. Energy management for Internet of Things via distributed systems[J].Journal of Applied Science and Technology Trends,2021,2(2):59-71. [9]Hakim D K, Riyanto J K, Fauzan A. Pengujian algoritma load balancing pada virtualisasi server[J/OL].Sainteks,2020,16(1).http:/doi.org/10.30595/sainteks.v16i1.7015. [10]高晶,王粟.數(shù)據(jù)庫技術(shù)的發(fā)展現(xiàn)狀與趨勢研究[J].無線互聯(lián)科技,2018,15(3):35-37.(Gao Jin, Wang Su. Study on the development status and trend of database technology[J].Wireless Internet Technology,2018,15(3):35-37.) [11]田真真,蔣維,鄭炳旭,等.基于服務(wù)器集群的負(fù)載均衡優(yōu)化調(diào)度算法[J].計(jì)算機(jī)科學(xué),2022,49(Z1):639-644.(Tian Zhenzhen, Jiang Wei, Zheng Bingxu, et al. Load balancing optimization sche-duling algorithm based on server cluster[J].Computer Science,2022,49(Z1):639-644.) [12]Atto K, Kotova E E. Communicative strategies simulation in intelligent learning environment[C]//Proc of IEEE Communication Strategies in Digital Society Seminar.Piscataway,NJ:IEEE Press,2020:37-39. [13]朱濤,郭進(jìn)偉,周歡,等.分布式數(shù)據(jù)庫中一致性與可用性的關(guān)系[J].軟件學(xué)報(bào),2018,29(1):131-149.(Zhu Tao, Guo Jinwei, Zhou Huan, et al. Consistency and availability in distributed database systems[J].Journal of Software,2018,29(1):131-149.) [14]潘恒,錢海洋,姚中原,等.典型區(qū)塊鏈存儲與查詢技術(shù)綜述[J].鄭州大學(xué)學(xué)報(bào):理學(xué)版,2022,54(6):34-50.(Pan Heng, Qian Haiyang, Yao Zhongyuan, et al. A survey of typical blockchain storage and query technologies[J].Journal of Zhengzhou University:Natural Science Edition,2022,54(6):34-50.) [15]傅麗玉,陸歌皓,吳義明,等.區(qū)塊鏈技術(shù)的研究及其發(fā)展綜述[J].計(jì)算機(jī)科學(xué),2022,49(Z1):447-461,666.(Fu Liyu, Lu Gehao, Wu Yiming, et al. Overview of research and development of blockchain technology[J].Computer Science,2022,49(Z1):447-461,666.) [16]Thakkar P, Nathan S, Viswanathan B. Performance benchmarking and optimizing Hyperledger Fabric blockchain platform[C]//Proc of the 26th IEEE International Symposium on Modeling,Analysis,and Simulation of Computer and Telecommunication Systems.Piscataway,NJ:IEEE Press,2018:264-276. [17]Sanka A I, Cheung R C C. A systematic review of blockchain sca-lability:issues, solutions, analysis and future research[J].Journal of Network and Computer Applications,2021,195(12):103232. [18]Nakamoto S. Bitcoin: a peer-to-peer electronic cash system[EB/OL].(2009-03).https://bitcoin.org/bitcoin.pdf. [19]Kiayias A, Miller A, Zindros D. Non-interactive proofs of proof-of-work[C]//Proc of the 24th International Conference on Financial Cryptography and Data Security.Cham:Springer,2020:505-522. [20]Bünz B, Kiffer L, Luu L, et al. FlyClient:super-light clients for cryptocurrencies[C]//Proc of IEEE Symposium on Security and Privacy.Piscataway,NJ:IEEE Press,2020:928-946. [21]Maalla M A, Bezzateev S V. Efficient incremental hash chain with probabilistic filter-based method to update blockchain light nodes[J].Naucˇno-Tehnicˇeskij Vestnik Informacionnyh Tehnologij, Mehaniki I Optiki,2022,22(3):538-546. [22]Kim T, Noh J, Cho S. SCC: storage compression consensus for blockchain in lightweight IoT network[C]//Proc of IEEE Internatio-nal Conference on Consumer Electronics.Piscataway,NJ:IEEE Press,2019:1-4. [23]Nagayama R, Banno R, Shudo K. Trail: a blockchain architecture for light nodes[C]//Proc of IEEE Symposium on Computers and Communications.Piscataway,NJ:IEEE Press,2020:1-7. [24]李國,殷俊鋒,李靜.LS&SSS-RS:可更新密鑰分片的數(shù)據(jù)安全散布方法[J].計(jì)算機(jī)應(yīng)用研究,2021,38(5):1533-1538.(Li Guo, Yin Junfeng, Li Jing. LS&SSS-RS:updatable key sharding method for data security dissemination[J].Application Research of Compu-ters,2021,38(5):1533-1538.) [25]黃華威,孔偉,彭肖文,等.區(qū)塊鏈分片技術(shù)綜述[J].計(jì)算機(jī)工程,2022,48(6):1-10.(Huang Huawei, Kong Wei, Peng Xiaowen, et al. Survey on blockchain sharding technology[J].Computer Engineering,2022,48(6):1-10.) [26]Luu L, Narayanan V, Zheng C, et al. A secure sharding protocol for open blockchains[C]//Proc of ACM SIGSAC Conference on Compu-ter and Communications Security.New York:ACM Press,2016:17-30. [27]Kogias E K, Jovanovic P, Gailly N, et al. Enhancing bitcoin security and performance with strong consistency via collective signing[C]//Proc of the 25th USENIX Conference on Security Symposium.Berkeley,CA:USENIX Association,2016:279-296. [28]Gilad Y, Hemo R, Micali S, et al. Algorand:scaling Byzantine agreements for cryptocurrencies[C]//Proc of the 26th Symposium on Operating Systems Principles.New York:ACM Press,2017:51-68. [29]汪浩,姜順,潘豐.基于Round-Robin協(xié)議網(wǎng)絡(luò)化系統(tǒng)的故障檢測[J].信息與控制,2019,48(5):595-602.(Wang Hao, Jiang Shun, Pan Feng. Fault detection for networked control systems based on Round-Robin protocol[J].Information and Control,2019,48(5):595-602.) [30]Zamani M, Movahedi M, Raykova M. RapidChain: scaling blockchain via full sharding[C]//Proc of ACM SIGSAC Conference on Computer and Communications Security.New York:ACM Press,2018:931-948. [31]Kanso A, Ghebleh M. A trapdoor one-way function for verifiable secret sharing[J].High-Confidence Computing,2022,2(2):100060. [32]Han Runchao, Yu Jiangshan, Lin Haoyu, et al. On the security and performance of blockchain sharding[EB/OL].(2021-09-24).https://eprint.iacr.org/2021/1276.pdf. [33]Hafid A, Hafid A S, Samih M. New mathematical model to analyze security of sharding-based blockchain protocols[J].IEEE Access,2019,7:185447-185457. [34]Al-Bassam M, Sonnino A, Bano S, et al. Chainspace: a sharded smart contract platform[EB/OL].(2017-08-12).https://arxiv.org/pdf/1708.03778.pdf. [35]Wang Jiaping, Wang Hao. Monoxide: scale out blockchains with asynchronous consensus zones[C]//Proc of the 16th USENIX Symposium on Networked Systems Design and Implementation.Berkeley,CA:USENIX Association,2019:95-112. [36]Baird L, Harmon M, Madsen P. Hedera:a governing council & public hashgraph network, Whitepaper 2.1[R/OL].(2020-08-15).https://hedera.com/hh_whitepaper_v2.1-20200815.pdf. [37]LeMahieu C. Nano:a feeless distributed cryptocurrency network,Whitepaper[EB/OL].(2018-10-21).https://content.nano.org/whitepaper/Nano_Whitepaper_en.pdf. [38]Churyumov A. Byteball: a decentralized system for storage and transfer of value[EB/OL].https://byteball.org/Byteball.pdf. [39]Li Chenxing, Li Peilun, Zhou Dong, et al. A decentralized blockchain with high throughput and fast confirmation[C]//Proc of USENIX Annual Technical Conference.Berkeley,CA:USENIX Association,2020:515-528. [40]田志宏,趙金東.面向物聯(lián)網(wǎng)的區(qū)塊鏈共識機(jī)制綜述[J].計(jì)算機(jī)應(yīng)用,2021,41(4):917-929.(Tian Zhihong, Zhao Jindong. Overview of blockchain consensus mechanism for Internet of Things[J].Journal of Computer Applications,2021,41(4):917-929.) [41]Bu Gewu, Gürcan , Potop-Butucaru M. G-IOTA:fair and confidence aware tangle[C]//Proc of IEEE Conference on Computer Communications.Piscataway,NJ:IEEE Press,2019:644-649. [42]Tomaszuk D, Kuziński D, Sopek M, et al. A distributed graph data storage in Ethereum ecosystem[C]//Proc of the 18th International Conference on Economics of Grids,Clouds,Systems,and Services.Cham:Springer,2021:223-231. [43]陳艷姣,朱笑天,于永瑞,等.區(qū)塊鏈閃電網(wǎng)絡(luò)實(shí)證分析:拓?fù)洹l(fā)展和收費(fèi)策略[J].軟件學(xué)報(bào),2022,33(10):3858-3873.(Chen Yanjiao, Zhu Xiaotian, Yu Yongrui, et al. Empirical analysis of lightning network:topology,evolution,and fees[J].Journal of Software,2022,33(10):3858-3873.) [44]Kim S, Kwon Y, Cho S. A survey of scalability solutions on blockchain[C]//Proc of International Conference on Information and Communication Technology Convergence.Piscataway,NJ:IEEE Press,2018:1204-1207. [45]Que Peisi, Zeng Yihong, Gao Fei. The current situation and prospect of the development of metaverse technology[C]//Proc of the 4th International Conference on Applied Machine Learning.Piscataway,NJ:IEEE Press,2022:1-5. [46]Teutsch J, Reitwiener C. A scalable verification solution for blockchains[EB/OL].(2019-08-12).https://arxiv.org/abs/1908.04756. [47]Kalodner H, Goldfeder S, Chen Xiaoqi, et al. Arbitrum:scalable,private smart contracts[C]//Proc of the 27th USENIX Security Symposium.Berkeley,CA:USENIX Association,2018:1353-1370. [48]孫知信,張鑫,相峰,等.區(qū)塊鏈存儲可擴(kuò)展性研究進(jìn)展[J].軟件學(xué)報(bào),2021,32(1):1-20.(Sun Zhixin, Zhang Xin, Xiang Feng, et al. Survey of storage scalability on blockchain[J].Journal of Software,2021,32(1):1-20.) [49]Cao Mingpei, Wang Hao, Yuan Tailing, et al. Meta-regulation:adaptive adjustment to block size and creation interval for blockchain systems[J].IEEE Journal on Selected Areas in Communications,2022,40(12):3702-3718. [50]Ali M, Nelson J, Shea R, et al. Blockstack: a global naming and storage system secured by blockchains[C]//Proc of the 19th USENIX Annual Technical Conference.Berkeley,CA:USENIX Association,2016:181-194. [51]Sandhu R K, Osei-Bryson K M A. A blockchain-based security-oriented framework for cloud federation[EB/OL].(2018-10-20).https://digitalcommons.kennesaw.edu/cgi/viewcontent.cgi?article=1063&context=ccerp. [52]Xie Hui, Zhang Zhengyuan, Zhang Qi, et al. HBRSS:providing high-secure data communication and manipulation in insecure cloud environments[J].Computer Communications,2021,174(6):1-12. [53]Lobo P A, Sarasvathi V. Distributed file storage model using IPFS and blockchain[C]//Proc of the 2nd Global Conference for Advancement in Technology.Piscataway,NJ:IEEE Press,2021:1-6. [54]Zyskind G, Nathan O. Decentralizing privacy:using blockchain to protect personal data[C]//Proc of IEEE Security and Privacy Workshops.Washington DC:IEEE Computer Society,2015:180-184. [55]Hassanzadeh-Nazarabadi Y, Küpü A, zkasap . LightChain: sca-lable DHT-based blockchain[J].IEEE Trans on Parallel and Distributed Systems,2021,32(10):2582-2593. [56]Zhao Jindong, Zhang Donghong, Liu Wenxuan, et al. DHT-based blockchain dual-sharding storage extension mechanism[J/OL].Applied Sciences,2022,12(19).https://doi.org/10.3390/app12199635. [57]Hasan H R, Salah K, Yaqoob I, et al. Trustworthy IoT data strea-ming using blockchain and IPFS[J].IEEE Access,2022,10:17707-17721. [58]Ren Wei, Wan Xutao, Gan Pengcheng. A double-blockchain solution for agricultural sampled data security in Internet of Things network[J].Future Generation Computer Systems,2021,117(4):453-461. [59]Chiu W Y, Meng Weizhi, Li Wenjuan. LibBlock:towards decen-tralized library system based on blockchain and IPFS[C]//Proc of the 18th International Conference on Privacy,Security and Trust.Piscataway,NJ:IEEE Press,2021:1-9. [60]孟博,王乙丙,趙璨,等.區(qū)塊鏈跨鏈協(xié)議綜述[J].計(jì)算機(jī)科學(xué)與探索,2022,16(10):2177-2192.(Meng Bo, Wang Yibing, Zhao Can, et al. Survey on cross-chain protocols of blockchain[J].Journal of Frontiers of Computer Science & Technology,2022,16(10):2177-2192.) [61]Pillai B, Biswas K, Muthukkumarasamy V. Cross-chain interoperability among blockchain-based systems using transactions[J].The Knowledge Engineering Review,2020,35:e23. [62]孫浩,毛瀚宇,張巖峰,等.區(qū)塊鏈跨鏈技術(shù)發(fā)展及應(yīng)用[J].計(jì)算機(jī)科學(xué),2022,49(5):287-295.(Sun Hao, Mao Hanyu, Zhang Yanfeng, et al. Development and application of blockchain cross-chain technology[J].Computer Science,2022,49(5):287-295.) [63]Wu Zhihui, Xiao Yang, Zhou Enyuan, et al. A solution to data accessibility across heterogeneous blockchains[C]//Proc of the 26th IEEE International Conference on Parallel and Distributed Systems.Piscataway,NJ:IEEE Press,2020:414-421. [64]Cao Ling, Song Bo. Blockchain cross-chain protocol and platform research and development[C]//Proc of International Conference on Electronics,Circuits and Information Engineering.Piscataway,NJ:IEEE Press,2021:264-269. [65]Guo Zhilian, Liu Lixian, Liang Zhihong, et al. Blockchain cross-chain technology research[C]//Proc of the 5th IEEE Advanced Information Management,Communicates,Electronic and Automation Control Conference.Piscataway,NJ:IEEE Press,2022:1064-1070. [66]Wang Changjing, Jiang Huiwen, Zeng Jingshan, et al. A review of blockchain layered architecture and technology application research[J].Wuhan University Journal of Natural Sciences,2021,26(5):416-428. [67]Han J, Kim J, Youn A, et al. Cos-CBDC:design and implementation of CBDC on Cosmos blockchain[C]//Proc of the 22nd Asia-Pacific Network Operations and Management Symposium.Piscataway,NJ:IEEE Press,2021:303-308. [68]Lan Rongjian, Upadhyaya G, Tse S, et al. Horizon:a gas-efficient,trustless bridge for cross-chain transactions[EB/OL].(2021-01-15).https://arxiv.org/abs/2101.06000. [69]Wu Jie, Jiang Suhan. On increasing scalability and liquidation of lightning networks for blockchains[J].IEEE Trans on Network Science and Engineering,2022,9(4):2589-2600. [70]葉祥翮,劉學(xué)業(yè),王斌輝,等.面向聯(lián)盟鏈的分布式公證人跨鏈模型[J].應(yīng)用科學(xué)學(xué)報(bào),2022,40(4):567-582.(Ye Xianghe, Liu Xueye, Wang Binhui, et al. Distributed notary cross-chain model for consortium chain[J].Journal of Applied Sciences,2022,40(4):567-582.) 收稿日期:2023-02-16;修回日期:2023-04-11 基金項(xiàng)目:河南省重大科技專項(xiàng)資助項(xiàng)目(201300210200,201300210100);河南省高等學(xué)校重點(diǎn)科研項(xiàng)目計(jì)劃基礎(chǔ)研究專項(xiàng)資助項(xiàng)目(23ZX017);河南省重點(diǎn)科技攻關(guān)項(xiàng)目(232102211082);2022年河南省網(wǎng)絡(luò)密碼技術(shù)重點(diǎn)實(shí)驗(yàn)室研究課題(LNCT2022-A20) 作者簡介:王鋒(1974-),男,河南新鄭人,副教授,碩導(dǎo),博士,CCF會(huì)員,主要研究方向?yàn)閰^(qū)塊鏈、物聯(lián)網(wǎng)技術(shù);張強(qiáng)(1997-),男,河南南陽人,碩士研究生,主要研究方向?yàn)閰^(qū)塊鏈;劉揚(yáng)(1978-),女(通信作者),河南洛陽人,教授,博導(dǎo),博士,主要研究方向?yàn)閰^(qū)塊鏈、分布式計(jì)算(liu_yang@haut.edu.cn);劉琳琳(1997-),女,河南焦作人,碩士研究生,主要研究方向?yàn)閰^(qū)塊鏈;路陽(1999-),男,河南商丘人,碩士研究生,主要研究方向?yàn)閰^(qū)塊鏈.