區(qū)塊鏈憑借安全可信、分布式、難篡改等特點(diǎn)被廣泛關(guān)注,隨著區(qū)塊鏈技術(shù)的快速發(fā)展和實(shí)踐應(yīng)用,其數(shù)據(jù)存儲(chǔ)代價(jià)大、性能低、網(wǎng)絡(luò)延遲高等問(wèn)題逐步凸顯。因此區(qū)塊鏈作為一種可信數(shù)據(jù)管理機(jī)制,亟需解決可擴(kuò)展和性能問(wèn)題,包括比特幣、以太坊等主要區(qū)塊鏈社區(qū)、開發(fā)團(tuán)隊(duì)等紛紛開始區(qū)塊鏈擴(kuò)容方案的研究。
一、為什么擴(kuò)容——區(qū)塊鏈擴(kuò)容的需求分析
區(qū)塊鏈容量問(wèn)題天然存在,隨著節(jié)點(diǎn)和交易量增多日益加劇。自中本聰發(fā)明比特幣以來(lái),比特幣節(jié)點(diǎn)數(shù)量暴漲,鏈上的交易量劇增。比特幣網(wǎng)絡(luò)中的交易需經(jīng)礦工打包成區(qū)塊后廣播給其他節(jié)點(diǎn),由于比特幣區(qū)塊大小1M的限制,單個(gè)區(qū)塊只能容納有限的交易事務(wù),據(jù)統(tǒng)計(jì),單個(gè)區(qū)塊實(shí)際容納的交易數(shù)約為1700多,區(qū)塊每隔10分鐘打包確認(rèn),因此比特幣交易速度約為每秒3筆。而市場(chǎng)上常用的支付手段如VISA平均每秒處理5000到8000次交易,支付寶處理交易的峰值可達(dá)每秒近10萬(wàn)筆交易。比特幣緩慢的交易導(dǎo)致網(wǎng)絡(luò)中待確認(rèn)的交易越來(lái)越多,造成網(wǎng)絡(luò)堵塞。
區(qū)塊鏈擴(kuò)容需求廣泛存在,各界都在研究區(qū)塊鏈擴(kuò)容方案。比特幣區(qū)塊鏈網(wǎng)絡(luò)中用戶為加快交易速度,必須增加交易的手續(xù)費(fèi)使礦工優(yōu)先處理交易。大量的交易手續(xù)費(fèi)和嚴(yán)重的交易延遲限制比特幣的發(fā)展,這也是整個(gè)區(qū)塊鏈技術(shù)發(fā)展面臨的問(wèn)題。以太坊創(chuàng)始人維塔利克·布特林在以太坊說(shuō)明文件中提到區(qū)塊鏈系統(tǒng)在“去中心化”、“可擴(kuò)展性”和“安全”三方面中只能完美解決兩點(diǎn),即“去中心化”和“安全”。但隨著網(wǎng)絡(luò)規(guī)模的擴(kuò)展,區(qū)塊鏈系統(tǒng)必須考慮“可擴(kuò)展性”問(wèn)題的解決方案。比特幣核心開發(fā)團(tuán)隊(duì)提出如BIP101、隔離見(jiàn)證等多種擴(kuò)容方案;比特幣新礦池ViaBTC部署B(yǎng)itcoin Unlimited擴(kuò)容方案,并得到澳大利亞計(jì)算機(jī)科學(xué)家萊特支持;中科院袁勇團(tuán)隊(duì)研究并提出平行擴(kuò)容方案;康奈爾大學(xué)提出比特幣擴(kuò)容方案Bitcoin-NG;金融密碼與數(shù)據(jù)安全國(guó)際學(xué)術(shù)會(huì)議上討論比特幣擴(kuò)容方案;以太坊也提出分片、狀態(tài)通道、Plasma等擴(kuò)容方案。
區(qū)塊鏈擴(kuò)容方案實(shí)現(xiàn)復(fù)雜,是一個(gè)復(fù)雜的關(guān)聯(lián)性問(wèn)題。在互聯(lián)網(wǎng)時(shí)代,應(yīng)用軟件都是通過(guò)更新迭代的方式升級(jí),來(lái)滿足用戶量日益增多和服務(wù)升級(jí)的需求。對(duì)應(yīng)用軟件來(lái)說(shuō),軟件升級(jí)相對(duì)容易,系統(tǒng)升級(jí)通過(guò)更新升級(jí)服務(wù)器就能達(dá)到目的,性能低下通過(guò)增加服務(wù)器來(lái)支撐龐大的交易,但在區(qū)塊鏈場(chǎng)景中擴(kuò)展升級(jí)十分復(fù)雜。區(qū)塊鏈基于分布式的架構(gòu),具有眾多節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)都部署服務(wù)和存儲(chǔ)數(shù)據(jù),區(qū)塊鏈升級(jí)需要每個(gè)節(jié)點(diǎn)都升級(jí)本地系統(tǒng)才能完成整個(gè)區(qū)塊鏈的升級(jí)。區(qū)塊鏈升級(jí)需修改底層源代碼,新舊版本的存在會(huì)使得區(qū)塊鏈中打包出來(lái)的區(qū)塊存在兩個(gè)不同版本,各節(jié)點(diǎn)和礦池也會(huì)選擇所支持的版本,進(jìn)而導(dǎo)致硬分叉為兩條鏈甚至多條鏈,違背原本去中心化共識(shí)的思想。
二、如何擴(kuò)容——區(qū)塊鏈擴(kuò)容的技術(shù)方案
目前區(qū)塊鏈擴(kuò)容方案主要有包括鏈內(nèi)擴(kuò)展技術(shù)和鏈外擴(kuò)展技術(shù),也稱作第一層擴(kuò)容技術(shù)和第二層擴(kuò)容技術(shù)。
圖1 區(qū)塊鏈擴(kuò)容技術(shù)方案
1. 鏈內(nèi)擴(kuò)展技術(shù)
鏈內(nèi)擴(kuò)展技術(shù)主要是基于對(duì)區(qū)塊鏈自身進(jìn)行改進(jìn),主要包括區(qū)塊擴(kuò)容和隔離見(jiàn)證。
(1)區(qū)塊擴(kuò)容:是一種最直接的擴(kuò)容方式,即增加區(qū)塊大小,如將比特幣當(dāng)前區(qū)塊大小從1MB擴(kuò)展到2MB,區(qū)塊大小的擴(kuò)展可以使每秒交易處理增加。理論上,區(qū)塊容量越大,交易處理速度就越快,但在實(shí)踐中,若塊容量太大,礦工打包塊的速度會(huì)變慢,區(qū)塊在網(wǎng)絡(luò)傳輸過(guò)程中因網(wǎng)絡(luò)無(wú)法對(duì)大文件進(jìn)行快速傳輸,又會(huì)出現(xiàn)新的問(wèn)題,因此直接對(duì)區(qū)塊大小進(jìn)行擴(kuò)容的方案是有限度的。2017年8月,比特幣硬分叉為比特幣(BTC)和比特幣現(xiàn)金(BCC),BCC實(shí)現(xiàn)區(qū)塊大小從1MB到8MB的擴(kuò)容。
(2)隔離見(jiàn)證:字面意思就是將見(jiàn)證的內(nèi)容隔離開來(lái)。區(qū)塊中存儲(chǔ)的是交易數(shù)據(jù),隔離見(jiàn)證通過(guò)縮小交易數(shù)據(jù)的尺寸,使每個(gè)區(qū)塊可容納更多的交易來(lái)達(dá)到擴(kuò)容的目的。比特幣交易是發(fā)起者通過(guò)簽署UTXO(未花費(fèi)交易輸出,類似于支票)并填寫接受者地址而建立的,這個(gè)過(guò)程就是“見(jiàn)證”。為保證交易事務(wù)唯一性,比特幣對(duì)每條交易事務(wù)數(shù)據(jù)進(jìn)行哈希計(jì)算得到交易事務(wù)ID。交易事務(wù)中的關(guān)鍵數(shù)據(jù)包括簽名、接收方和交易金額,其中簽名占據(jù)了大量存儲(chǔ)空間,而該簽名信息的作用是由礦工見(jiàn)證交易數(shù)據(jù)來(lái)源的合法性,普通節(jié)點(diǎn)并不驗(yàn)證簽名信息,因此簽名數(shù)據(jù)部分就可被隔離存儲(chǔ)到其他區(qū)域,節(jié)省了區(qū)塊的存儲(chǔ)空間,也就實(shí)現(xiàn)了隔離見(jiàn)證。2017年5月萊特幣通過(guò)用戶激活軟分叉方案,繞過(guò)礦工和礦池的支持,完成了隔離見(jiàn)證。
(3)分片技術(shù):是將網(wǎng)絡(luò)中的節(jié)點(diǎn)分成不同碎片,各分片處理不同交易數(shù)據(jù),每個(gè)片區(qū)內(nèi)部共同處理同一交易事件,網(wǎng)絡(luò)中可并行處理交易大大提高網(wǎng)絡(luò)并發(fā)量。為了實(shí)現(xiàn)節(jié)點(diǎn)隨機(jī)分配和片區(qū)驗(yàn)證者分配,需再建立一條單獨(dú)的區(qū)塊鏈(以太坊2.0中稱為信標(biāo)鏈),負(fù)責(zé)執(zhí)行維護(hù)整個(gè)網(wǎng)絡(luò)所需的操作。這種方式即為二次方分片,是通過(guò)網(wǎng)絡(luò)雙層設(shè)計(jì)增加交易量。具體地,將以太坊網(wǎng)絡(luò)上的節(jié)點(diǎn)分成100片,分片系統(tǒng)由主鏈上發(fā)布的校驗(yàn)器管理合約(VMC)進(jìn)行維護(hù),每個(gè)片區(qū)都是獨(dú)立存在的,當(dāng)以太坊中有交易時(shí),只選擇其中一個(gè)分片處理,如果網(wǎng)絡(luò)內(nèi)有M件事務(wù)待處理,現(xiàn)在每個(gè)節(jié)點(diǎn)只需要處理M/100件即可,之后這些打包的子區(qū)塊的數(shù)據(jù)組成一個(gè)主鏈上的區(qū)塊,相當(dāng)于主鏈區(qū)塊容量擴(kuò)大了100倍。目前以太坊2.0信標(biāo)鏈還未正式上線發(fā)布。另外EOS采用的DPOS共識(shí)機(jī)制中只有部分節(jié)點(diǎn)參與造塊,而且沒(méi)有挖礦競(jìng)爭(zhēng),更注重?cái)U(kuò)展性,和以太坊的分片技術(shù)異曲同工。
2. 鏈外擴(kuò)展技術(shù)
改進(jìn)區(qū)塊鏈本身的鏈上擴(kuò)展技術(shù)有很多局限性,因此在鏈外使用技術(shù)手段進(jìn)行擴(kuò)容的方案逐步出臺(tái),鏈外擴(kuò)展技術(shù)主要包括側(cè)鏈技術(shù)、閃電網(wǎng)絡(luò)和多鏈擴(kuò)展。
(1)側(cè)鏈技術(shù):是在區(qū)塊鏈的主鏈之外引入側(cè)鏈,在側(cè)鏈上完成數(shù)據(jù)(價(jià)值)分流。側(cè)鏈協(xié)議可以實(shí)現(xiàn)多個(gè)區(qū)塊鏈之間的交易和價(jià)值轉(zhuǎn)移,側(cè)鏈?zhǔn)窍鄬?duì)于主鏈而言的,多個(gè)可以實(shí)現(xiàn)價(jià)值轉(zhuǎn)移的區(qū)塊鏈之間可以互為側(cè)鏈。側(cè)鏈技術(shù)實(shí)現(xiàn)區(qū)塊鏈擴(kuò)展是采用雙向錨定的思想,在主鏈上凍結(jié)一定價(jià)值的資產(chǎn),由礦工確認(rèn)凍結(jié)的資產(chǎn)在側(cè)鏈上的對(duì)等價(jià)值,兌換后用戶在側(cè)鏈上使用對(duì)等價(jià)值的資產(chǎn)。側(cè)鏈有兩種實(shí)現(xiàn)方式,一種是單一托管,即將主鏈上的資產(chǎn)發(fā)送到一個(gè)單一托管的機(jī)構(gòu)控制并凍結(jié)資產(chǎn),然后在側(cè)鏈上激活,這種實(shí)現(xiàn)方式是中心化的,存在安全風(fēng)險(xiǎn);另一種是多重簽名,主鏈上凍結(jié)的資產(chǎn)通過(guò)多重簽名的地址控制,資產(chǎn)交易消息需要經(jīng)過(guò)多方的簽名才有效合法,大大提高了安全性。側(cè)鏈技術(shù)可以實(shí)現(xiàn)完全不同架構(gòu)、技術(shù)和共識(shí)的區(qū)塊鏈間交易,是一種解決區(qū)塊鏈擴(kuò)容的較理想方案。
(2)閃電網(wǎng)絡(luò):是一個(gè)點(diǎn)對(duì)點(diǎn)的對(duì)等網(wǎng)絡(luò),完全去中心化的數(shù)字貨幣微支付系統(tǒng)。閃電網(wǎng)絡(luò)在區(qū)塊鏈外開辟一個(gè)基于買賣雙方的獨(dú)立雙向支付通道,通道創(chuàng)建初期記錄一個(gè)原始資金分配方案保存雙方的初始資金,交易記錄經(jīng)雙方簽名更新在資產(chǎn)分配方案中。在鏈下的支付通道中可以發(fā)生一次或多次交易,這些交易在支付通道關(guān)閉之前都只在閃電網(wǎng)絡(luò)的資產(chǎn)分配方案中更新,不會(huì)在鏈上共識(shí),直到交易結(jié)束后將最終余額分配結(jié)果更新到鏈上共識(shí)。頻繁交易記錄在鏈下進(jìn)行大大減少了主鏈上交易次數(shù),可以顯著提高容量、可擴(kuò)張性、交易吞吐量,且通過(guò)閃電網(wǎng)絡(luò)通道進(jìn)行的所有微支付幾乎都無(wú)法被追蹤,保障交易更加匿名安全。但閃電網(wǎng)絡(luò)是基于智能合約建立的雙向支付通道,需要智能合約的支持,對(duì)于比特幣區(qū)塊鏈的實(shí)現(xiàn)較為復(fù)雜,且在實(shí)現(xiàn)閃電網(wǎng)絡(luò)過(guò)程中需要打開和關(guān)閉支付通道,頻繁操作通道可能會(huì)加劇網(wǎng)絡(luò)擁堵。以太坊使用類似思想并升級(jí)懲罰機(jī)制的雷電網(wǎng)絡(luò)作為一種鏈外擴(kuò)展技術(shù)。
(3)多鏈互聯(lián):是利用跨鏈連接器連接多條區(qū)塊鏈,實(shí)現(xiàn)不同業(yè)務(wù)鏈價(jià)值交互的多鏈架構(gòu)理念。跨鏈連接器類似于“中間件”,負(fù)責(zé)定義各鏈之間進(jìn)行交互的數(shù)據(jù)交換標(biāo)準(zhǔn)規(guī)范,多鏈結(jié)構(gòu)中每條鏈都是一個(gè)單獨(dú)的體系,鏈內(nèi)可以自主共識(shí)、記賬、查詢、校驗(yàn),鏈間通過(guò)跨鏈連接器進(jìn)行跨鏈交易、價(jià)值轉(zhuǎn)換。整個(gè)多鏈架構(gòu)根據(jù)業(yè)務(wù)功能需求搭建并實(shí)現(xiàn),整個(gè)體系可以實(shí)現(xiàn)多鏈業(yè)務(wù)協(xié)同,鏈間數(shù)據(jù)隔離,極大提高價(jià)值網(wǎng)絡(luò)并行計(jì)算能力,保證良好的可擴(kuò)展性和可利用性。
三、總結(jié)
習(xí)近平總書記在2019年10月24日主持中共中央政治局第十八次集體學(xué)習(xí)時(shí)指出“要把區(qū)塊鏈作為核心技術(shù)自主創(chuàng)新重要突破口”。為貫徹落實(shí)習(xí)總書記工作要求,發(fā)揮區(qū)塊鏈在技術(shù)創(chuàng)新和產(chǎn)業(yè)發(fā)展方面的作用,擴(kuò)容問(wèn)題就成為區(qū)塊鏈新型基礎(chǔ)設(shè)施、助力產(chǎn)業(yè)實(shí)踐必須重視的關(guān)鍵問(wèn)題。在此背景下,產(chǎn)業(yè)各方推動(dòng)區(qū)塊鏈技術(shù)發(fā)展,商業(yè)規(guī)?;瘧?yīng)用落地,區(qū)塊鏈擴(kuò)容問(wèn)題解決方案呈現(xiàn)遍地開花的局面。
各方案優(yōu)劣勢(shì)分析。對(duì)比分析各擴(kuò)容方案,區(qū)塊擴(kuò)容和隔離見(jiàn)證方案局限性較大,會(huì)造成硬分叉和中心化問(wèn)題,影響到整個(gè)區(qū)塊鏈網(wǎng)絡(luò)的平衡。側(cè)鏈技術(shù)可以很好地幫主鏈做分流,但側(cè)鏈作為一條獨(dú)立運(yùn)行的鏈,沒(méi)有足夠算力保證交易和區(qū)塊鏈的安全,攻擊者可以使用較小的代價(jià)對(duì)側(cè)鏈展開51%攻擊。閃電網(wǎng)絡(luò)主要采用通道技術(shù),因建立支付通道需要先投入一部分資金,適合于可支配的資金較富余且交易頻繁的節(jié)點(diǎn),因此支付通道交易也一般是礦池,礦池持續(xù)性鏈下交易會(huì)導(dǎo)致“中心化”問(wèn)題,且支付通道交易的匿名性違背區(qū)塊鏈“交易可追蹤”的理念。
擴(kuò)容方案發(fā)展趨勢(shì)。目前分片技術(shù)和多鏈互聯(lián)是研究的熱點(diǎn)方向,但在實(shí)際應(yīng)用中,單純地使用某一種技術(shù)方案是不夠的。目前,國(guó)內(nèi)各大區(qū)塊鏈平臺(tái)系統(tǒng)主要采用鏈下擴(kuò)容技術(shù),并將多種方案融合在系統(tǒng)中使用,如采用側(cè)鏈等跨鏈技術(shù)、升級(jí)優(yōu)化國(guó)內(nèi)共識(shí)算法、提高硬件性能等多種手段共同提升區(qū)塊鏈底層平臺(tái)性能。分片技術(shù)也是多數(shù)區(qū)塊鏈平臺(tái)未來(lái)的重點(diǎn)發(fā)展方向,該技術(shù)在邏輯上簡(jiǎn)單但技術(shù)實(shí)現(xiàn)難度大,如何合理的計(jì)算分片規(guī)模、分片數(shù)量得到區(qū)塊鏈網(wǎng)絡(luò)分片最優(yōu)解還需各方研究。
根據(jù)應(yīng)用平衡選擇擴(kuò)容。區(qū)塊鏈作為分布式系統(tǒng),占有硬件和服務(wù)資源量較大,盲目擴(kuò)展會(huì)付出巨大的資源代價(jià)。從應(yīng)用場(chǎng)景的角度來(lái)看,實(shí)際應(yīng)用場(chǎng)景中應(yīng)根據(jù)業(yè)務(wù)需求對(duì)區(qū)塊鏈性能進(jìn)行必要的擴(kuò)展,做好服務(wù)器資源和鏈上的效益平衡。且從區(qū)塊鏈系統(tǒng) “去中心化、安全性、可擴(kuò)展”三大特性來(lái)看,也需根據(jù)實(shí)際應(yīng)用平衡三者關(guān)系。如在規(guī)?;瘮?shù)字支付場(chǎng)景對(duì)性能要求較高,但在一些企業(yè)聯(lián)盟鏈低頻次大額交易中,性能并非首要問(wèn)題,應(yīng)更加注重安全性。