黃華威,孔 偉,彭肖文,鄭子彬
(1.中山大學(xué) 計(jì)算機(jī)學(xué)院,廣州 510000;2.武漢理工大學(xué) 航運(yùn)學(xué)院,武漢 430000)
2016 年,LUU 等[1]提出一種Elastico 算法,其將數(shù)據(jù)庫(kù)中擴(kuò)容的分片方式[2-4]與區(qū)塊鏈技術(shù)相結(jié)合,自此之后,關(guān)于區(qū)塊鏈分片技術(shù)的研究一直層出不窮,不少學(xué)者從分布式賬本、共識(shí)機(jī)制、分片方式等方面針對(duì)分片技術(shù)進(jìn)行了大量研究。
區(qū)塊鏈主要包括網(wǎng)絡(luò)分片、交易分片、狀態(tài)分片3 種分片方式,其中,網(wǎng)絡(luò)分片是基礎(chǔ),狀態(tài)分片是瓶頸。網(wǎng)絡(luò)分片通過一定的組織方式將整個(gè)網(wǎng)絡(luò)分成不同分片,各個(gè)分片并行處理整個(gè)區(qū)塊鏈中的部分交易,各部分交易完全不同,從而同時(shí)完成多筆交易驗(yàn)證。交易分片使得各個(gè)網(wǎng)絡(luò)分片對(duì)交易具有更強(qiáng)的處理能力,其將客戶端的跨片交易分成若干個(gè)相關(guān)的子交易,不同分片的跨片交易可以并行處理。為了降低各個(gè)節(jié)點(diǎn)存儲(chǔ)賬本的壓力,狀態(tài)分片將各部分完全不同的賬本分別存儲(chǔ)在各個(gè)分片(分片內(nèi)的節(jié)點(diǎn)往往存儲(chǔ)同一版本的賬本),整個(gè)分片網(wǎng)絡(luò)組成一個(gè)完整的賬本。在現(xiàn)行的技術(shù)條件下,網(wǎng)絡(luò)分片和交易分片都具有比較理想的實(shí)現(xiàn)方式,而實(shí)現(xiàn)狀態(tài)分片還存在很多技術(shù)問題,狀態(tài)分片制約著分片技術(shù)的發(fā)展。
分片技術(shù)雖然在一定程度上有效解決了區(qū)塊鏈的可擴(kuò)展性問題[5],但還存在一定的不足需要改進(jìn):整個(gè)分片機(jī)制在運(yùn)行過程中有大量時(shí)間用于處理交易以外的工作,同時(shí),為了防止節(jié)點(diǎn)作惡,不少分片技術(shù)需要大量時(shí)間和開銷進(jìn)行分片重配置[6],如何提升分片機(jī)制運(yùn)行過程中用于交易處理的有效時(shí)間比率是一個(gè)需要解決的問題[7];狀態(tài)分片是分片方式中極難實(shí)現(xiàn)的一環(huán),在狀態(tài)分片情境下,跨片交易的驗(yàn)證過程變得極為困難,不同的分片節(jié)點(diǎn)存儲(chǔ)的賬本不同,需要通過一定的方式進(jìn)行交易轉(zhuǎn)移或賬本狀態(tài)交流[8],因此,更加有效地實(shí)現(xiàn)數(shù)據(jù)遷移同時(shí)減輕各個(gè)節(jié)點(diǎn)的負(fù)擔(dān),也是區(qū)塊鏈分片技術(shù)面臨的挑戰(zhàn);分片區(qū)塊鏈的安全性也應(yīng)得到研究人員的關(guān)注,更小規(guī)模的分片意味對(duì)雙花攻擊防御能力的下降,安全性更高的片內(nèi)共識(shí)協(xié)議也將付出更高的共識(shí)代價(jià),大多數(shù)協(xié)議對(duì)于安全性的分析集中在拜占庭對(duì)手規(guī)模、信息可靠性以及分片隨機(jī)性方面,而對(duì)于區(qū)塊鏈系統(tǒng)整體的安全性則考慮不充分,對(duì)于傳統(tǒng)區(qū)塊鏈中存在的攻擊方式、分片區(qū)塊鏈中獨(dú)有的攻擊方式,以及許多分片區(qū)塊鏈協(xié)議難以抵御網(wǎng)絡(luò)層面的攻擊,這些問題都將成為研究人員關(guān)注的焦點(diǎn)。
本文介紹區(qū)塊鏈分片技術(shù)的研究進(jìn)展,對(duì)分片技術(shù)的一般實(shí)現(xiàn)步驟進(jìn)行總結(jié),通過對(duì)當(dāng)前技術(shù)的對(duì)比剖析歸納分片技術(shù)所面臨的挑戰(zhàn),同時(shí)對(duì)該領(lǐng)域未來(lái)的發(fā)展方向進(jìn)行展望,以期為區(qū)塊鏈分片技術(shù)的進(jìn)一步研究提供理論參考。
區(qū)塊鏈技術(shù)起源于中本聰于2008 年提出的比特幣系統(tǒng)[9],在比特幣的信任模型中,用戶之間的信任源于對(duì)整個(gè)系統(tǒng)的信任,只要整個(gè)系統(tǒng)的安全假設(shè)被滿足,這種信任就可以持續(xù)。為了實(shí)現(xiàn)這種信任模型,整個(gè)區(qū)塊鏈所有的交易需要各個(gè)節(jié)點(diǎn)進(jìn)行驗(yàn)證和存儲(chǔ),從而浪費(fèi)了大量的時(shí)間和空間,也導(dǎo)致區(qū)塊鏈系統(tǒng)存在低吞吐、高延遲的瓶頸,出現(xiàn)嚴(yán)重的可擴(kuò)展性問題。區(qū)塊鏈技術(shù)現(xiàn)存的一些突出問題總結(jié)如下:
1)交易吞吐量低。為了確保區(qū)塊鏈的交易不可篡改,比特幣的平均吞吐量為7 筆/s[10],以太坊[11]的平均吞吐量為30 筆/s,而現(xiàn)行的大型中心化交易處理場(chǎng)所(如Visa)每秒的交易確認(rèn)數(shù)可達(dá)上千[12]。為了處理數(shù)量龐大的用戶交易,提升區(qū)塊鏈的交易吞吐量十分重要。
2)交易延遲高。在比特幣中,為了確保高安全性,各個(gè)節(jié)點(diǎn)之間需要頻繁地廣播交互,額外的通信開銷使得比特幣的交易延遲增大,比特幣的出塊速度一般為10 min/塊。因此,在忽略網(wǎng)絡(luò)因素的情況下,通過減少交易過程中的開銷從而降低交易延遲也是區(qū)塊鏈的優(yōu)化目標(biāo)。
3)可擴(kuò)展性低。隨著節(jié)點(diǎn)數(shù)目的增多以及賬本容量的增大,提升區(qū)塊鏈可擴(kuò)展性以及優(yōu)化賬本存儲(chǔ)方式、提升存儲(chǔ)效率[13]也是亟待解決的問題。
為了提升區(qū)塊鏈的可拓展性,近年來(lái),研究人員提出了多種區(qū)塊鏈擴(kuò)容方案??傮w而言,常見的區(qū)塊鏈擴(kuò)容方案分為L(zhǎng)ayer0、Layer1、Layer2 這3 層技術(shù)[14]。其中:Layer0 層主要針對(duì)數(shù)據(jù)傳播方式進(jìn)行改進(jìn);Layer1 層通過共識(shí)協(xié)議、P2P 網(wǎng)絡(luò)[15]、數(shù)據(jù)結(jié)構(gòu)等鏈上技術(shù)實(shí)現(xiàn)區(qū)塊鏈性能提升,其包括分片技術(shù)、Bitcoin-NG、DAG 分布式賬本等;Layer2 層大多為非鏈上技術(shù),如狀態(tài)通道。
1.2.1 分片技術(shù)
分片技術(shù)能夠克服區(qū)塊鏈所面臨的可拓展性問題,作為一種鏈上擴(kuò)容方式,其能在不犧牲中心化程度的同時(shí)提高區(qū)塊鏈的性能,因此,分片技術(shù)逐漸成為區(qū)塊鏈擴(kuò)容的主流方法之一。分片技術(shù)將整個(gè)區(qū)塊鏈網(wǎng)絡(luò)分成不同分片,由各分片的節(jié)點(diǎn)負(fù)責(zé)處理所在分片的事務(wù)以及存儲(chǔ)分片的狀態(tài)[16],通過并行驗(yàn)證事務(wù),整個(gè)區(qū)塊鏈的吞吐量近似線性地提升。同時(shí),隨著節(jié)點(diǎn)數(shù)目的增加,整個(gè)網(wǎng)絡(luò)的分片數(shù)量也增多,全網(wǎng)的事務(wù)處理能力進(jìn)一步提高。分片技術(shù)一般分為定義分片配置、片內(nèi)和跨片共識(shí)協(xié)議、重配置等階段,從而構(gòu)成一個(gè)完整的分片區(qū)塊鏈系統(tǒng)。
1.2.2 狀態(tài)通道
狀態(tài)通道[17]在區(qū)塊鏈主鏈下開展新的狀態(tài)通道供大多數(shù)交易離線使用[18],其將區(qū)塊鏈作為仲裁平臺(tái)。所有需要進(jìn)行交易的網(wǎng)絡(luò)用戶將一定數(shù)量的資金存在鏈上,同時(shí)會(huì)與另一個(gè)用戶開啟狀態(tài)通道,并將這筆資金作為交易的抵押品。狀態(tài)通道間接地提升了系統(tǒng)的交易吞吐量,其最大的優(yōu)勢(shì)是交易幾乎可以在一瞬間完成,其中的交易不會(huì)阻塞主鏈,但是額外創(chuàng)建狀態(tài)通道并不會(huì)提高區(qū)塊鏈的可擴(kuò)展性。同時(shí),狀態(tài)通道容易受到DoS 攻擊[19]。由于狀態(tài)通道是在Layer2 層進(jìn)行的擴(kuò)容技術(shù),因此其與Layer1層的分片技術(shù)可以同時(shí)使用[20]。
1.2.3 Bitcoin-NG
Bitcoin-NG[21]將原先比特幣驗(yàn)證和出塊的機(jī)制進(jìn)行分離,能夠在一定時(shí)間內(nèi)創(chuàng)建更多的塊,從而提升整個(gè)區(qū)塊鏈的交易處理能力。在記賬人選取階段,Bitcoin-NG 仍然采用原先的PoW 算法[22],由全網(wǎng)競(jìng)爭(zhēng)記賬權(quán),在交易記賬階段由記賬人進(jìn)行交易打包和全網(wǎng)廣播。但是,Bitcoin-NG 對(duì)去中心化要求做了一定折中,記賬人在進(jìn)行交易打包和全網(wǎng)廣播時(shí)所實(shí)施的不良行為,會(huì)使得整個(gè)系統(tǒng)面臨一定風(fēng)險(xiǎn)[23]。
1.2.4 DAG 分布式賬本
DAG 分布式賬本[24]主要對(duì)區(qū)塊鏈狀態(tài)存儲(chǔ)進(jìn)行改進(jìn),每個(gè)交易單元或包含交易的區(qū)塊單元能夠同時(shí)被多個(gè)新加入的節(jié)點(diǎn)引用,多個(gè)節(jié)點(diǎn)可以同時(shí)向賬本中新增交易或區(qū)塊單元,因此,DAG 分布式賬本可以支持各種實(shí)際場(chǎng)景下的高并發(fā)需求,具有更好的可擴(kuò)展性。與DAG 分布式賬本相比,分片技術(shù)更加傾向于改進(jìn)交易的驗(yàn)證方式,因此,兩者可以結(jié)合使用。
許可區(qū)塊鏈(Permissioned Blockchain)[25]由具有一定程度信任并已知、已識(shí)別的參與者操作,采用更加傳統(tǒng)的共識(shí)協(xié)議,這種協(xié)議不需要成本高昂的挖掘過程,同時(shí)在對(duì)手規(guī)模和容錯(cuò)率的設(shè)定上也更加靈活。許可區(qū)塊鏈在進(jìn)行分片[26]后,通常不需要重新配置(Reconfiguration)環(huán)節(jié),分片中的記賬權(quán)往往在少數(shù)確定的節(jié)點(diǎn)中,因此,節(jié)點(diǎn)的安全性較高[27]。在AHL[28]中,采用TEE[29]的硬件來(lái)保證可信的執(zhí)行環(huán)境,在此基礎(chǔ)上,提出應(yīng)用于許可區(qū)塊鏈的協(xié)議,該協(xié)議可以靈活地根據(jù)拜占庭節(jié)點(diǎn)和非拜占庭節(jié)點(diǎn)進(jìn)行調(diào)控,從而滿足一定的安全性要求。Sharper[30]同樣也是應(yīng)用于許可區(qū)塊鏈的協(xié)議,其采用分片結(jié)合DAG 分布式賬本的結(jié)構(gòu),每個(gè)分片保存一份賬本,在許可區(qū)塊鏈中不需要挖礦環(huán)節(jié),因此,每筆交易可作為一個(gè)塊,片內(nèi)事務(wù)由片內(nèi)單獨(dú)成塊上鏈,跨片交易由相關(guān)分片共同維護(hù)。
無(wú)許可區(qū)塊鏈(Permissionless Blockchain)由于信任度較低(甚至不存在任何信任),因此通常采用挖礦機(jī)制,通過PoW 來(lái)驗(yàn)證交易。具有代表性的無(wú)許可區(qū)塊鏈協(xié)議包括Elastico、OmniLedger[31]、RapidChain[32]等,在這類協(xié)議中,節(jié)點(diǎn)加入分片需要通過解決PoW 問題來(lái)驗(yàn)證身份,交易在驗(yàn)證后也需要一定的數(shù)據(jù)結(jié)構(gòu)進(jìn)行打包。Monoxide[33]是無(wú)許可區(qū)塊鏈中較前沿的技術(shù),研究人員認(rèn)為該技術(shù)同時(shí)滿足了安全、性能、去中心化3 個(gè)需求[34],連弩挖礦(Chu-ko-nu Mining)能夠在一段時(shí)間內(nèi)出多個(gè)塊,同時(shí)通過多個(gè)其他分片來(lái)對(duì)多個(gè)塊進(jìn)行驗(yàn)證,即使全網(wǎng)都進(jìn)行了分片,惡意節(jié)點(diǎn)仍然需要與全網(wǎng)算力進(jìn)行對(duì)抗,從而保證了Monoxide 的安全性和去中心化。
隨著數(shù)據(jù)庫(kù)的逐漸擴(kuò)容,為了簡(jiǎn)化各個(gè)節(jié)點(diǎn)的存儲(chǔ)空間,數(shù)據(jù)庫(kù)開始采用分片技術(shù)來(lái)提高數(shù)據(jù)的存儲(chǔ)效率[35]。區(qū)塊鏈和數(shù)據(jù)庫(kù)本身存在一些不同因素,區(qū)塊鏈分片技術(shù)不僅要保持對(duì)各分片中存儲(chǔ)賬本的維護(hù),更要有利于區(qū)塊鏈上動(dòng)態(tài)交易的驗(yàn)證。因此,將分片技術(shù)引入到區(qū)塊鏈中,不僅需要將區(qū)塊鏈上的各種屬性(網(wǎng)絡(luò)、交易、狀態(tài))進(jìn)行分片,同時(shí)也要考慮區(qū)塊鏈本身復(fù)雜的數(shù)據(jù)結(jié)構(gòu)和存儲(chǔ)形式[36]。
在區(qū)塊鏈分片技術(shù)中,首先要實(shí)現(xiàn)網(wǎng)絡(luò)分片,網(wǎng)絡(luò)分片通常要考慮分片規(guī)模、分片安全性、分片方式等因素,分片過程通常使用隨機(jī)函數(shù)來(lái)實(shí)現(xiàn)。
2.1.1 Elastico
Elastico[1]使用epochRandomness 函數(shù)進(jìn)行計(jì)算,每個(gè)節(jié)點(diǎn)都有自己的IP、PK(公鑰),結(jié)合隨機(jī)數(shù)epochRandomness 計(jì)算出滿足下式條件的nonce:
O=H(epochRandomness||IP||PK||nonce)≤2γ-D
其中:D為預(yù)定義的網(wǎng)絡(luò)節(jié)點(diǎn)解決PoW 問題的工作量大小參數(shù);γ為預(yù)定義的H 函數(shù)的輸出位數(shù)。
每個(gè)節(jié)點(diǎn)根據(jù)自己的O值確定分片位置,分片中的各個(gè)節(jié)點(diǎn)為了確認(rèn)彼此,需要進(jìn)行廣播。
2.1.2 RapidChain
RapidChain[32]的分片配置只進(jìn)行一次(即原文中的Bootstrap 環(huán)節(jié)),之后不斷地進(jìn)行共識(shí)和重配置。在分片配置環(huán)節(jié),整個(gè)網(wǎng)絡(luò)持續(xù)地從低一層的節(jié)點(diǎn)中構(gòu)造sampler graph 以形成一個(gè)隨機(jī)二分圖[37],在所有節(jié)點(diǎn)完成計(jì)算后,將每個(gè)group 內(nèi)哈希值最小的節(jié)點(diǎn)選為subgroup 成員,再由subgroup 中的成員隨機(jī)組合成更高一層的group,被選中節(jié)點(diǎn)發(fā)送消息告知全部節(jié)點(diǎn),重復(fù)上述過程直到選出root group。root group 負(fù)責(zé)選擇參考委員會(huì)(Reference Committee)成員,參考委員會(huì)完成所有節(jié)點(diǎn)的隨機(jī)劃分分片。
通過以上2 種分配方式可以看出,在協(xié)議的開始階段對(duì)節(jié)點(diǎn)進(jìn)行分片的過程,需要各個(gè)節(jié)點(diǎn)進(jìn)行自身分片位置計(jì)算以及在同一分片節(jié)點(diǎn)之間進(jìn)行廣播,最終完成分片內(nèi)節(jié)點(diǎn)信息的交流。分片函數(shù)的設(shè)計(jì)往往以節(jié)點(diǎn)身份(IP、PK、Hash)[38]作為參數(shù)。
為了保證各個(gè)分片的安全性并防止節(jié)點(diǎn)之間作惡行為發(fā)生,在一個(gè)分片紀(jì)元之后,從原有分片中取出一部分節(jié)點(diǎn)并與其他分片中的節(jié)點(diǎn)進(jìn)行交換,當(dāng)有新節(jié)點(diǎn)加入時(shí),需要對(duì)新加入節(jié)點(diǎn)進(jìn)行分配。上述過程通常稱為分片重配置(Reconfiguration)[31],分片重配置的方式分為全隨機(jī)分片和部分隨機(jī)分片2 種。
2.2.1 二次全隨機(jī)分片
對(duì)所有節(jié)點(diǎn)進(jìn)行重新分配,既能徹底防止節(jié)點(diǎn)之間進(jìn)行作惡[39],同時(shí)也能將新節(jié)點(diǎn)加入分片中。新加入的節(jié)點(diǎn)需要解決PoW 問題,在解決PoW 問題后,節(jié)點(diǎn)會(huì)得到一個(gè)相對(duì)應(yīng)的值(即上文epochRandomness函數(shù)中的O),供分片時(shí)計(jì)算分片位置使用。如果節(jié)點(diǎn)錯(cuò)過當(dāng)前紀(jì)元的分片環(huán)節(jié),則等待下一個(gè)紀(jì)元再確定分片位置。解決PoW 問題提高了節(jié)點(diǎn)加入分片的成本,但可以有效防止女巫攻擊(Sybil Attack)[40]。
Elastico 在每個(gè)分片紀(jì)元結(jié)束后使用Randomness函數(shù)對(duì)整個(gè)網(wǎng)絡(luò)的節(jié)點(diǎn)進(jìn)行重新配置。在每輪的最后,由最終委員會(huì)(Final Committee)計(jì)算出Randomness 以供下一輪隨機(jī)分片使用,隨機(jī)數(shù)被廣播至全網(wǎng),整個(gè)網(wǎng)絡(luò)的節(jié)點(diǎn)通過隨機(jī)數(shù)重新計(jì)算自己所在的分片位置。
雖然二次全隨機(jī)分片能夠最大程度地保證分片后區(qū)塊鏈網(wǎng)絡(luò)的安全性,但是在重配置的過程中,整個(gè)網(wǎng)絡(luò)對(duì)于交易的驗(yàn)證停滯,全網(wǎng)都要在重配置前后進(jìn)行新舊賬本交接,在每次的二次全隨機(jī)分片期間,整個(gè)網(wǎng)絡(luò)都要為分片重新進(jìn)行計(jì)算和廣播,無(wú)論在開銷還是時(shí)間上,都大幅降低了整個(gè)區(qū)塊鏈的性能。因此,文獻(xiàn)[41]提出MVCom 方案,其對(duì)Elastico協(xié)議的分片重配置設(shè)計(jì)進(jìn)行優(yōu)化,通過設(shè)計(jì)分布式算法[42],為每一輪若干個(gè)區(qū)塊鏈分片選取出最有價(jià)值的部分委員會(huì),同時(shí)支持處理分片委員會(huì)的動(dòng)態(tài)加入和離開,該機(jī)制可以在分片區(qū)塊鏈的交易吞吐量與分片內(nèi)交易等待時(shí)延之間找到一種平衡。
2.2.2 部分重分配
在保證整個(gè)區(qū)塊鏈系統(tǒng)網(wǎng)絡(luò)安全的前提下,將部分分片節(jié)點(diǎn)隨機(jī)進(jìn)行重分配,既能保證區(qū)塊鏈系統(tǒng)的安全性,又可以降低開銷,減少重配置過程的等待時(shí)間。
研究人員在RapidChain 中設(shè)計(jì)有限布谷鳥原則(Bounded Cuckoo rule)[43],在每個(gè)epoch 中都通過參考委員會(huì)將其他委員會(huì)分為2 類,分別是活躍成員占大多數(shù)的活躍委員會(huì)和不活躍成員占大多數(shù)的消極委員會(huì)。當(dāng)有新節(jié)點(diǎn)加入時(shí),參考委員會(huì)會(huì)將新節(jié)點(diǎn)隨機(jī)加到某個(gè)活躍委員會(huì)中,并把該委員會(huì)中的固定數(shù)量節(jié)點(diǎn)隨機(jī)加入到不同的消極委員會(huì)中,既實(shí)現(xiàn)了對(duì)新節(jié)點(diǎn)的分片處理,又調(diào)控了消極委員會(huì)和積極委員會(huì)之間的活躍節(jié)點(diǎn)數(shù)量,間接提高了整個(gè)區(qū)塊鏈的分片活躍度。
在進(jìn)行重配置的過程中,除了需要進(jìn)行遷移的節(jié)點(diǎn)外,分片內(nèi)的其他節(jié)點(diǎn)仍然正常進(jìn)行交易驗(yàn)證,從而大幅降低了重配置過程對(duì)區(qū)塊鏈性能的影響。
2.2.3 自由選擇重分配
SSChain[44]在分片重配置上充分考慮用戶需求,當(dāng)有新節(jié)點(diǎn)加入時(shí),新節(jié)點(diǎn)可以根據(jù)增益函數(shù)GPH(BR=BlockReward,HP=HashPower,BI=BlockInterval)選擇目前收益最高的分片加入,而在當(dāng)前分片的收益較低時(shí)可以退出并加入到收益高的其他分片。GPH 函數(shù)綜合考量分片出塊收益、出塊間隔以及當(dāng)前哈希算力,而哈希算力的分配又綜合了對(duì)主鏈算力和分片算力的分配,既體現(xiàn)了對(duì)鏈安全性的考慮(即對(duì)于算力的宏觀分配),又充分考慮到用戶的個(gè)人意愿。CPH 函數(shù)計(jì)算如下:
相較前2 種重分配方式,自由選擇重配置方案能夠通過人為操作使得整個(gè)區(qū)塊鏈網(wǎng)絡(luò)達(dá)到收益最大化的動(dòng)態(tài)平衡,但是其對(duì)于惡意行為的抵御能力低于區(qū)塊鏈系統(tǒng)調(diào)控下的重配置方案。
在完成分片配置后,區(qū)塊鏈需要進(jìn)行交易共識(shí),共識(shí)分為片內(nèi)共識(shí)和跨片共識(shí)。片內(nèi)共識(shí)要求同一分片內(nèi)各個(gè)節(jié)點(diǎn)按照所在分片的協(xié)議進(jìn)行共識(shí)和廣播,最終得出整個(gè)分片的共識(shí)結(jié)果,片內(nèi)共識(shí)協(xié)議主要分為基于PoW的片內(nèi)共識(shí)協(xié)議和基于BFT的片內(nèi)共識(shí)協(xié)議。
2.3.1 基于PoW 的片內(nèi)共識(shí)協(xié)議
雖然PoW 共識(shí)龐大而復(fù)雜的計(jì)算過程消耗了大量算力,但是其結(jié)合一定節(jié)點(diǎn)特征的數(shù)字運(yùn)算優(yōu)勢(shì)在部分場(chǎng)景中受到人們的青睞。基于PoW 的片內(nèi)共識(shí)協(xié)議通常在計(jì)算過程中以節(jié)點(diǎn)身份或所在分片編號(hào)為參數(shù)進(jìn)行運(yùn)算,節(jié)點(diǎn)身份標(biāo)號(hào)或所在分片標(biāo)號(hào)具有唯一性,因此,它們可以作為打包塊的標(biāo)識(shí)符。
SSChain 和Monoxide 均采用PoW 作為片內(nèi)共識(shí)協(xié)議。在Monoxide 中,分片在解決一個(gè)PoW 問題的時(shí)間內(nèi)出不多于剩余其他分片數(shù)量的塊,然后將多個(gè)塊交由其他分片進(jìn)行驗(yàn)證并再次出塊,通過2 層共識(shí)結(jié)構(gòu)確保交易的合理性。如圖1 所示,Monoxide 采用連弩挖礦(Chu-ko-nu Mining),將每個(gè)共識(shí)組的防御能力提升到51%,每次出塊時(shí)Hash 函數(shù)覆蓋多個(gè)剛要出塊的塊頭進(jìn)行計(jì)算,同時(shí)這些塊頭共用一個(gè)nonce,編號(hào)b的當(dāng)前共識(shí)組將這m個(gè)塊頭按序排列,構(gòu)造Merkle樹[45],然后通過哈希計(jì)算覆蓋 圖1 Monoxide 的出塊方式Fig.1 Block generation mode of Monoxide 2.3.2 基于BFT 的片內(nèi)共識(shí)協(xié)議 很多協(xié)議的片內(nèi)共識(shí)常會(huì)選擇使用BFT 類型的算法[46],如Elastico 采用拜占庭共識(shí)協(xié)議,OmniLedger 采用基于ByzCoin[47]的改進(jìn)ByzCoinX,RapidChain 采用gossip[48],Sharper 采用PBFT[49]?;贐FT 的共識(shí)協(xié)議通過分片內(nèi)多個(gè)節(jié)點(diǎn)驗(yàn)證共識(shí)來(lái)保證交易的安全性和有效性。 Zilliqa[50]在各個(gè)分片內(nèi)以較高頻率運(yùn)行PBFT 共識(shí),PBFT 共識(shí)具有最終交易性、能耗低等優(yōu)點(diǎn)。傳統(tǒng)PBFT 共識(shí)中的主要環(huán)節(jié)包括pre-prepare、prepare、commit 這3 個(gè)階段,prepare 與commit 這2 個(gè)階段的通信復(fù)雜度為O(n2)。Zilliqa 采用兩輪的EC-SChnorr 多重簽名[51]來(lái)代替?zhèn)鹘y(tǒng)PBFT 共識(shí)中的prepare 和commit階段,從而將PBFT 共識(shí)的通信復(fù)雜度降為O(n),其共識(shí)流程如圖2 所示。 圖2 Zilliqa 片內(nèi)共識(shí)流程Fig.2 Zilliqa intra chip consensus procedure 在片內(nèi)共識(shí)時(shí),片內(nèi)各個(gè)節(jié)點(diǎn)經(jīng)過彼此間的廣播可直接進(jìn)行交流。在跨片共識(shí)時(shí),由于所存儲(chǔ)的信息不相交,不同分片之間各個(gè)節(jié)點(diǎn)在交易驗(yàn)證過程中需要交流賬本狀態(tài),因此跨片交流的基本單位是各個(gè)分片,不同分片執(zhí)行共同的跨片協(xié)議以實(shí)現(xiàn)共識(shí)??缙沧R(shí)的主要方式包括交易原子化、交易集中化和采用類路由協(xié)議。 2.4.1 交易原子化 交易原子化是一種跨片交易處理方式,將原交易分解成最小的子交易,在不同分片之間傳遞子交易。子交易一般為對(duì)某個(gè)分片的輸入交易或?qū)δ硞€(gè)分片的輸出交易。通過交易原子化處理,一筆跨分片交易可以視作若干筆客戶端參與下的片內(nèi)交易。 OmniLedger 提出Atomix 協(xié)議對(duì)跨片交易進(jìn)行處理,當(dāng)客戶端發(fā)起一筆跨片交易時(shí),分解后的子交易經(jīng)過不同的分片進(jìn)行驗(yàn)證,當(dāng)?shù)玫浇灰捉邮芡ㄖ獣r(shí),客戶端再發(fā)起一筆附上接受憑證的資金解鎖請(qǐng)求到需要輸出交易的分片,從而完成交易;如果有交易在分片中驗(yàn)證失敗,則客戶端向其他驗(yàn)證成功的分片發(fā)送丟棄交易請(qǐng)求并將鎖住的資金退還。OmniLedger 的做法雖然在理論上可以實(shí)現(xiàn)由不同分片驗(yàn)證交易和不同分片輸出交易的目標(biāo),但是當(dāng)客戶端不發(fā)送資金解鎖請(qǐng)求或交易廢棄請(qǐng)求時(shí),就會(huì)存在資金鎖住的情況,當(dāng)有惡意節(jié)點(diǎn)進(jìn)行大量低額度的交易提交時(shí),也會(huì)在各分片間造成極大壓力[52]。 2.4.2 交易集中化 交易集中化是指將跨片交易集中到指定鏈上或指定節(jié)點(diǎn)進(jìn)行統(tǒng)一處理,指定鏈上或節(jié)點(diǎn)上存儲(chǔ)了跨片交易所需的全部賬本數(shù)據(jù),既能對(duì)跨片交易進(jìn)行驗(yàn)證,又能降低跨片交易傳播的難度。 在Ethereum 2.0[53]的結(jié)構(gòu)設(shè)計(jì)中,信標(biāo)鏈(Beacon Chain)作為該架構(gòu)的核心,負(fù)責(zé)連接主鏈以及管理各個(gè)分片。信標(biāo)鏈?zhǔn)荅thereum 原鏈的一條側(cè)鏈,運(yùn)行Casper FFG 共識(shí)。信標(biāo)鏈可以驗(yàn)證Ethereum 2.0中的跨分片交易是否發(fā)生雙花,并且給各個(gè)分片提供最終確定性。當(dāng)系統(tǒng)中跨分片交易數(shù)量過多時(shí),信標(biāo)鏈本身的局限性可能會(huì)成為跨分片交易的性能瓶頸。當(dāng)前Ethereum 2.0 仍未到達(dá)部署分片的階段,因此,信標(biāo)鏈結(jié)合分片鏈來(lái)處理跨片交易的方式存在廣闊的發(fā)展空間。 2.4.3 交易類路由協(xié)議 RapidChain 提出的委員會(huì)間路由協(xié)議(Intercommittee Routing Protocol)以及Sharper、AHL,都考慮到將跨片交易直接在不同分片之間進(jìn)行路由處理的相似設(shè)計(jì),本文將此類跨片協(xié)議稱為“類路由協(xié)議”。類路由協(xié)議指將交易在不同分片之間進(jìn)行路由傳播,而非直接對(duì)交易進(jìn)行分解。 RapidChain 對(duì)需要進(jìn)行跨片處理的交易,由分片中的任意節(jié)點(diǎn)根據(jù)路由表進(jìn)行路由,路由表中存儲(chǔ)logan個(gè)最近委員會(huì)中l(wèi)ogalogan的節(jié)點(diǎn)數(shù)據(jù)[54],路由通道只要建立后就可以多次使用,例如,需要將交易從分片A路由到分片C,而A到B、B到C之間存在通道,則可以通過A→B→C的路由通道將交易a路由成分片C的交易a′,從而將跨片交易轉(zhuǎn)化為片內(nèi)交易。 狀態(tài)分片將整個(gè)網(wǎng)絡(luò)的賬本狀態(tài)分片存儲(chǔ),各個(gè)分片維護(hù)一部分賬本數(shù)據(jù),能夠有效減少區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)的存儲(chǔ)負(fù)擔(dān)。然而,各個(gè)分片的數(shù)據(jù)不相交不僅會(huì)導(dǎo)致跨片交易的驗(yàn)證極為困難,節(jié)點(diǎn)在不同分片之間進(jìn)行重配置時(shí)需要進(jìn)行大量的數(shù)據(jù)交接,也會(huì)降低賬本數(shù)據(jù)的安全性。因此,有研究人員提出對(duì)賬本存儲(chǔ)進(jìn)行部分分片的方案,相較比特幣設(shè)計(jì),該方案能降低數(shù)據(jù)冗余,較好地處理跨分片交易,具有更高的靈活性和實(shí)用性。 2.5.1 全分片存儲(chǔ) 在全分片存儲(chǔ)模型中,整個(gè)區(qū)塊鏈賬本被分成若干份互不相交的賬本存儲(chǔ)在分片節(jié)點(diǎn)中,各個(gè)分片維護(hù)自己的賬本,整個(gè)區(qū)塊鏈網(wǎng)絡(luò)的各個(gè)分片合起來(lái)?yè)碛型暾馁~本。 OmniLedger 是典型的全分片協(xié)作式賬本,各個(gè)分片存儲(chǔ)完全不同的數(shù)據(jù),這樣就將交易驗(yàn)證過程中數(shù)據(jù)的交流交給跨片共識(shí)協(xié)議完成,同時(shí)在重配置過程中節(jié)點(diǎn)也需要對(duì)不同分片間的數(shù)據(jù)進(jìn)行交接。當(dāng)選擇在每一個(gè)epoch 后進(jìn)行分片內(nèi)節(jié)點(diǎn)更新的方案時(shí),必然會(huì)有新加入分片的節(jié)點(diǎn),而節(jié)點(diǎn)的賬本更新會(huì)造成數(shù)據(jù)遷移。有些協(xié)議通過設(shè)置state block 的方式來(lái)簡(jiǎn)化數(shù)據(jù)遷移過程,當(dāng)每一個(gè)epoch結(jié)束后,設(shè)置一個(gè)state block 對(duì)之前的塊進(jìn)行總結(jié)并且由整個(gè)分片進(jìn)行驗(yàn)算以確認(rèn)該塊正確無(wú)誤,新加入節(jié)點(diǎn)可以從state block 開始直接對(duì)新交易進(jìn)行驗(yàn)證。 狀態(tài)分片中賬戶狀態(tài)劃分策略不合理將導(dǎo)致各個(gè)分片的交易負(fù)載不均衡以及跨分片交易比例過高的問題,為此,BrokerChain[55]提出一種新的分片架構(gòu),以實(shí)現(xiàn)對(duì)分片狀態(tài)的動(dòng)態(tài)劃分和調(diào)整。該分片協(xié)議根據(jù)一定時(shí)間內(nèi)的歷史交易信息構(gòu)建一個(gè)賬戶交易狀態(tài)圖,并對(duì)其進(jìn)行劃分[56],從而對(duì)存儲(chǔ)在各分片的賬戶狀態(tài)實(shí)現(xiàn)動(dòng)態(tài)調(diào)整與重新配置。賬戶狀態(tài)動(dòng)態(tài)調(diào)整策略可以在減少跨分片交易比例的同時(shí)實(shí)現(xiàn)分片間的負(fù)載均衡。 考慮到基于分片機(jī)制的區(qū)塊鏈可能存在交易分片不均衡[57]的情況,為此,文獻(xiàn)[58]研究分片聯(lián)盟鏈的云端資源分配對(duì)區(qū)塊鏈吞吐量的影響,其基于隨機(jī)優(yōu)化理論框架,設(shè)計(jì)針對(duì)分片聯(lián)盟鏈的資源分配算法,該算法可在一定程度上緩解區(qū)塊鏈交易分布不均衡的問題。 2.5.2 半分片存儲(chǔ) Sharper 是許可區(qū)塊鏈下的分片協(xié)議,其將整個(gè)賬本存儲(chǔ)成DAG 分布式賬本,當(dāng)存在跨片交易時(shí),由不同分片共同創(chuàng)建狀態(tài)賬本并存儲(chǔ),因此,同一份跨片交易在不同的分片中都需要進(jìn)行存儲(chǔ),跨片交易在所有參與的相關(guān)分片中都存在數(shù)據(jù)冗余。 洪梓聰?shù)龋?9]提出一種層級(jí)分片的區(qū)塊鏈系統(tǒng)Pyramid,該系統(tǒng)允許某些分片(稱為橋接分片)存儲(chǔ)多個(gè)其他分片的區(qū)塊,充當(dāng)分片間橋梁的作用,橋接分片可以對(duì)跨片交易直接驗(yàn)證并進(jìn)行CoSi[60]共識(shí),將其打包為包含跨片賬本數(shù)據(jù)的跨分片區(qū)塊,從而提升區(qū)塊鏈系統(tǒng)的事務(wù)吞吐量,降低事務(wù)確認(rèn)延遲。BrokerChain[55]基于動(dòng)態(tài)狀態(tài)劃分策略提出一種新的跨分片協(xié)議,以提高跨分片交易處理的效率,在進(jìn)行狀態(tài)劃分的過程中,系統(tǒng)允許一部分普通用戶通過自愿抵押一定資產(chǎn)來(lái)充當(dāng)“中間人賬戶”,中間人賬戶的狀態(tài)會(huì)被系統(tǒng)分割成2 個(gè)或多個(gè)部分,分別存儲(chǔ)在2 個(gè)或多個(gè)分片中,從而參與到若干個(gè)跨分片交易的協(xié)調(diào)中,該文提出的跨分片協(xié)議可以減少跨片交易延遲,提高跨片交易執(zhí)行效率。 近年來(lái),分片技術(shù)不斷更新迭代,在吞吐量、時(shí)延、共識(shí)協(xié)議的方式等方面都得到優(yōu)化,提升了分片技術(shù)的魯棒性和可實(shí)踐性。從表1 可以看出:無(wú)許可區(qū)塊鏈仍然是分片技術(shù)的主流方式,以比特幣為基礎(chǔ)的分片技術(shù)更加成熟;許可區(qū)塊鏈的應(yīng)用場(chǎng)景較少,但是近年來(lái)相關(guān)的分片技術(shù)仍然有所發(fā)展[61],許可區(qū)塊鏈將節(jié)點(diǎn)可信度交付給TEE 硬件[62]實(shí)現(xiàn),可以給予系統(tǒng)更優(yōu)的拜占庭容錯(cuò)率以及更加靈活的分片和共識(shí)方式。 表1 區(qū)塊鏈分片技術(shù)歸納Table 1 Summary of blockchain sharding technology 在表1 中,各符號(hào)含義如下: x:區(qū)塊鏈規(guī)模大??; n:節(jié)點(diǎn)數(shù); k:分片數(shù); c:常數(shù)(c [a]:100 個(gè)節(jié)點(diǎn)/分片,共16 個(gè)分片; [b]:72 個(gè)節(jié)點(diǎn)/分片(惡意節(jié)點(diǎn)占12.5%),共25 個(gè)分片; [c]:250 個(gè)節(jié)點(diǎn)/分片,共4 000 個(gè)節(jié)點(diǎn); [d]:36個(gè)分片(惡意節(jié)點(diǎn)占12.5%),共972個(gè)節(jié)點(diǎn); [e]:36 個(gè)節(jié)點(diǎn)/分片,共2 048 個(gè)分片; [f]:4 個(gè)節(jié)點(diǎn)/分片,共5 個(gè)分片; [g]:分片鏈包含900 個(gè)節(jié)點(diǎn)和60 個(gè)分片,根鏈上包含900 個(gè)節(jié)點(diǎn)(惡意節(jié)點(diǎn)占25%)。 不同協(xié)議片內(nèi)交易和跨片交易設(shè)計(jì)都有各自的特點(diǎn),但也呈現(xiàn)出一定的共性:片內(nèi)共識(shí)協(xié)議以基于BFT的協(xié)議為主,跨片共識(shí)協(xié)議以交易可靠性為目的。 基于BFT 的片內(nèi)共識(shí)協(xié)議具有交易最終性和低能耗的優(yōu)點(diǎn),但是在安全性方面弱于基于PoW 的片內(nèi)共識(shí)協(xié)議,因此,部分分片技術(shù)將兩者相結(jié)合,在若干輪BFT 類協(xié)議后加入PoW 協(xié)議以提升分片的安全性??缙沧R(shí)協(xié)議則以交易可靠性為主要目的,對(duì)于跨片交易中的交易代價(jià)則關(guān)注較少。對(duì)于跨片交易的處理,雖然已經(jīng)有一定的實(shí)現(xiàn)方案,但是在跨片交易的模型實(shí)驗(yàn)中對(duì)于復(fù)雜交易和交易數(shù)量的控制則顯得模糊,部分交易只在較簡(jiǎn)單輸入和輸出分片的跨片模型下性能較好,有些往往需要將交易分解為若干筆子交易才能完成跨片交易。因此,無(wú)論是提升片內(nèi)共識(shí)交易的效率還是優(yōu)化跨片交易的過程,都是分片技術(shù)有待提高的方面。 為了防止女巫攻擊[63],Elastico 和RapidChain 采用通過新節(jié)點(diǎn)解決PoW 問題的準(zhǔn)入性方案,一些許可區(qū)塊鏈因?yàn)閷⒐?jié)點(diǎn)的安全性托付給TEE 硬件[64]實(shí)現(xiàn),所以未聲明新節(jié)點(diǎn)的準(zhǔn)入方式,而其他一些無(wú)許可區(qū)塊鏈對(duì)于新節(jié)點(diǎn)加入的協(xié)議闡述則顯得太過簡(jiǎn)單。 大多數(shù)分片技術(shù)在實(shí)現(xiàn)網(wǎng)絡(luò)分片和交易分片的設(shè)計(jì)上已經(jīng)初具規(guī)模,而在狀態(tài)分片上則顯得比較困難。傳統(tǒng)的全存儲(chǔ)分片技術(shù)一致地將區(qū)塊鏈賬本平均分配在各個(gè)分片中,近年來(lái)出現(xiàn)的部分存儲(chǔ)分片技術(shù)考慮到跨片交易中可能出現(xiàn)的數(shù)據(jù)遷移問題,靈活地將部分賬本狀態(tài)存儲(chǔ)或存儲(chǔ)在橋接分片中進(jìn)行處理,或?qū)^(qū)塊鏈分片賬本進(jìn)行動(dòng)態(tài)合并分離[65],從而提高了區(qū)塊鏈分片賬本的利用率。 此外,從表1 也可以明顯看出,近年來(lái)分片技術(shù)的吞吐量取得大幅提升。不同技術(shù)在驗(yàn)證時(shí)所使用的實(shí)驗(yàn)設(shè)備和方式不盡相同,將吞吐量、時(shí)延等數(shù)據(jù)作為協(xié)議性能衡量指標(biāo)具有可行性,但是不能一味地為了實(shí)現(xiàn)高吞吐量、低時(shí)延等目標(biāo)而忽略了分片技術(shù)的完整性、安全性和簡(jiǎn)潔性。 3.2.1 分片內(nèi)挑戰(zhàn) 在區(qū)塊鏈網(wǎng)絡(luò)中,誠(chéng)實(shí)節(jié)點(diǎn)與惡意節(jié)點(diǎn)的比例要控制在一定范圍內(nèi),以保證整個(gè)網(wǎng)絡(luò)的安全性。在比特幣中,只有當(dāng)誠(chéng)實(shí)節(jié)點(diǎn)的比例占到51%以上,整個(gè)區(qū)塊鏈才能抵御雙花攻擊[66]。在分片區(qū)塊鏈中,將誠(chéng)實(shí)節(jié)點(diǎn)分布到不同的區(qū)塊鏈分片中,雖然系統(tǒng)總體的誠(chéng)實(shí)節(jié)點(diǎn)數(shù)不變,但是各個(gè)分片內(nèi)誠(chéng)實(shí)節(jié)點(diǎn)的實(shí)際數(shù)量減少,相比針對(duì)整個(gè)區(qū)塊鏈網(wǎng)絡(luò)進(jìn)行攻擊,攻擊者對(duì)于單分片攻擊的規(guī)模更小,攻擊成本也更低。 BFT 類片內(nèi)共識(shí)協(xié)議雖然比PoW 類共識(shí)協(xié)議的能耗更低,但在信息交流的過程中表現(xiàn)出效率低下的問題并對(duì)信息過度確認(rèn),因此,可以通過優(yōu)化BFT算法來(lái)適當(dāng)簡(jiǎn)化信息交流與確認(rèn)過程中對(duì)信息的重復(fù)使用[67],或者運(yùn)用一定的數(shù)學(xué)方法作為對(duì)BFT 協(xié)議的簡(jiǎn)化[68],從而在一定程度上提升協(xié)議效率。 3.2.2 分片間挑戰(zhàn) 在分片區(qū)塊鏈中,跨片交易的處理可能涉及若干個(gè)分片,當(dāng)攻擊者通過較小的攻擊成本實(shí)現(xiàn)對(duì)單個(gè)分片的攻擊時(shí),所有和該分片相關(guān)的跨片交易也會(huì)受到影響。在區(qū)塊鏈網(wǎng)絡(luò)中,跨片交易的比例很高,因此,跨片交易的可靠性和效率對(duì)區(qū)塊鏈系統(tǒng)吞吐量的影響較大。 雖然部分跨片協(xié)議有處理跨片交易的能力,但是還是需要客戶端參與才能保證跨片交易的有效進(jìn)行,未充分優(yōu)化的跨片共識(shí)協(xié)議增加了客戶端的壓力。分片技術(shù)對(duì)輕客戶端的支持也十分重要,既要保證在客戶端做到狀態(tài)分片,最小化客戶端存儲(chǔ)的賬本狀態(tài),又要盡可能減少客戶端在跨片交易驗(yàn)證過程中的操作步驟。 由于節(jié)點(diǎn)的存儲(chǔ)空間有限,重配置過程中的節(jié)點(diǎn)遷移需要進(jìn)行大量的數(shù)據(jù)上傳和更新,在節(jié)點(diǎn)存儲(chǔ)空間無(wú)限的假設(shè)下,節(jié)點(diǎn)可以任意存儲(chǔ)足夠多的賬本數(shù)據(jù),不需要在遷移過程中進(jìn)行賬本數(shù)據(jù)更新,節(jié)點(diǎn)基本可以持續(xù)運(yùn)作。對(duì)于分片區(qū)塊鏈而言,制約區(qū)塊鏈性能的最主要因素是存儲(chǔ)容量。在當(dāng)前的節(jié)點(diǎn)遷移方案中,設(shè)置checkpoint 是一個(gè)較優(yōu)的方式,即在很大一個(gè)epoch 后將過往的若干個(gè)塊化簡(jiǎn)為一個(gè)塊,將各個(gè)節(jié)點(diǎn)的賬本大小控制在2 GB 左右。但是,如何提高節(jié)點(diǎn)重配置階段遷移數(shù)據(jù)的利用率仍然需要深入探究。 3.2.3 系統(tǒng)層級(jí)挑戰(zhàn) 區(qū)塊鏈分片規(guī)模影響到很多方面,包括分片安全性、共識(shí)協(xié)議效率、吞吐量等。但是,現(xiàn)行的分片大小往往受制于協(xié)議的安全性保證,如Zilliqa 只有在600 個(gè)節(jié)點(diǎn)以上才能保證安全,而對(duì)于區(qū)塊鏈網(wǎng)絡(luò)吞吐量和其他因素則難以全面考慮。同時(shí),分片的重配置調(diào)節(jié)也是一個(gè)值得關(guān)注的內(nèi)容,智能化和動(dòng)態(tài)化的重配置階段需要考慮到分片活躍度、分片容錯(cuò)率、新加入節(jié)點(diǎn)數(shù)量等因素,而目前的重配置方案仍然是以更加保證安全性的靜態(tài)場(chǎng)景為出發(fā)點(diǎn),對(duì)其他因素的考慮不足。 大多數(shù)協(xié)議對(duì)于安全性的分析通常集中于拜占庭對(duì)手規(guī)模、信息可靠性以及分片隨機(jī)性方面,而在整個(gè)安全規(guī)模上(包括Layer1 和Layer2)的考慮則顯得有些薄弱。對(duì)于當(dāng)前區(qū)塊鏈中的各種攻擊方式,如何在新的分片區(qū)塊鏈設(shè)計(jì)過程中考慮這些防御攻擊,從而更加完善地分析所關(guān)注區(qū)塊鏈的安全性,都是今后的研究方向。本文在對(duì)各個(gè)協(xié)議進(jìn)行匯總分析的過程中,發(fā)現(xiàn)只有OmniLedger 利用ByzCoinX來(lái)應(yīng)對(duì)DoS 攻擊[69],對(duì)于其他協(xié)議是否能夠抵抗Layer1 層的攻擊以及在Layer2 層還有哪些共識(shí)性問題,都需要建立一個(gè)安全性證明框架。 本文認(rèn)為區(qū)塊鏈分片技術(shù)在未來(lái)需要在以下方面繼續(xù)進(jìn)行研究: 1)提出更加高效的共識(shí)協(xié)議,這類協(xié)議將優(yōu)化現(xiàn)有網(wǎng)絡(luò)的分片方式,從交易分片、狀態(tài)分片角度提出更好的實(shí)現(xiàn)方法,使分片技術(shù)提升到區(qū)塊鏈擴(kuò)容技術(shù)的新高度。 2)將區(qū)塊鏈分片技術(shù)與其他擴(kuò)容技術(shù)融合創(chuàng)新。分片技術(shù)與其他技術(shù)在應(yīng)用層面并不矛盾甚至可以優(yōu)勢(shì)互補(bǔ),將分片技術(shù)與其他擴(kuò)容技術(shù)相結(jié)合,既有利于發(fā)揮其他擴(kuò)容技術(shù)的優(yōu)勢(shì),又能夠拓展分片技術(shù)的應(yīng)用空間。 3)提出標(biāo)準(zhǔn)的區(qū)塊鏈分片技術(shù)協(xié)議。隨著分片技術(shù)的逐步完善,更標(biāo)準(zhǔn)的分片技術(shù)安全性協(xié)議也會(huì)更完善,安全可靠同時(shí)具有高性能的分片技術(shù)協(xié)議將成為分片技術(shù)應(yīng)用于區(qū)塊鏈擴(kuò)容任務(wù)的重要基石,近年來(lái),一些學(xué)者也正致力于這個(gè)方向的研究[70]。 4)開發(fā)區(qū)塊鏈分片技術(shù)的模擬平臺(tái)。在分片區(qū)塊鏈設(shè)計(jì)的過程中,現(xiàn)行的開源區(qū)塊鏈只適用于當(dāng)前所關(guān)注的研究分支。未來(lái)可以設(shè)計(jì)一套完備的區(qū)塊鏈分片流程,從分片規(guī)模、節(jié)點(diǎn)行為、交易設(shè)定、網(wǎng)絡(luò)構(gòu)建等方面對(duì)分片區(qū)塊鏈進(jìn)行模擬驗(yàn)證,便于區(qū)塊鏈分片技術(shù)的研究開發(fā)人員關(guān)注分片區(qū)塊鏈中的不同模塊,進(jìn)一步促進(jìn)區(qū)塊鏈分片技術(shù)的發(fā)展。 近年來(lái),區(qū)塊鏈分片技術(shù)受到學(xué)術(shù)界和工業(yè)界的高度關(guān)注,為解決傳統(tǒng)區(qū)塊鏈在可擴(kuò)展性上存在瓶頸的問題,許多研究人員提出了不同的分片技術(shù)協(xié)議。本文介紹分片技術(shù)中的一些經(jīng)典方法和理論,對(duì)這些協(xié)議進(jìn)行對(duì)比分析,總結(jié)當(dāng)前分片技術(shù)面臨的困境和挑戰(zhàn)。隨著區(qū)塊鏈分片技術(shù)的發(fā)展,未來(lái)將會(huì)出現(xiàn)更加高效的共識(shí)協(xié)議、更加完善的擴(kuò)容技術(shù)、更加標(biāo)準(zhǔn)的安全性協(xié)議以及更好的分片區(qū)塊鏈模擬平臺(tái),這些成果都將進(jìn)一步改善基于分片機(jī)制的區(qū)塊鏈技術(shù)生態(tài)。2.4 跨片共識(shí)協(xié)議
2.5 狀態(tài)存儲(chǔ)
3 分片技術(shù)的現(xiàn)有方案分析
3.1 現(xiàn)有方案對(duì)比
3.2 分片技術(shù)面臨的挑戰(zhàn)
3.3 分片技術(shù)未來(lái)展望
4 結(jié)束語(yǔ)