岳崢宇,林岳,黃華威,2022年9月27日
論文信息:[下載鏈接]
Huawei Huang, Zhengyu Yue, Xiaowen Peng, Liuding He, Wuhui Chen, Hong-Ning Dai, Zibin Zheng, Song Guo, “Elastic Resource Allocation against Imbalanced Transaction Assignments in Sharding-based Permissioned Blockchains”, IEEE Transactions on Parallel and Distributed Systems (TPDS), Vol. 33, No. 10, pp.2372 –2385, Oct., 2022.
1 研究背景與動(dòng)機(jī)
區(qū)塊鏈技術(shù)在過(guò)去多年逐漸得到了學(xué)術(shù)界以及工業(yè)界的關(guān)注。然而,目前主流區(qū)塊鏈有限的可拓展性仍然是其無(wú)法在實(shí)際場(chǎng)景中被廣泛應(yīng)用的一個(gè)阻礙。以比特幣作為一個(gè)例子,如今比特幣網(wǎng)絡(luò)中一個(gè)區(qū)塊的出塊間隔大約是10分鐘??梢钥闯霰忍貛啪W(wǎng)絡(luò)的“每秒交易數(shù)”(TPS)非常有限。目前主流公鏈很難達(dá)到如Visa(20000 TPS以上)等主流支付工具的吞吐量。
近幾年,區(qū)塊鏈分片技術(shù)作為一種很有潛力的擴(kuò)容方法逐漸被越來(lái)越多的研究者關(guān)注并深入研究。分片技術(shù)最初是作為擴(kuò)容數(shù)據(jù)庫(kù)的方法被提出的,這是一種水平切分的數(shù)據(jù)庫(kù)的方式。將分片技術(shù)用于區(qū)塊鏈網(wǎng)絡(luò)的核心思想是將區(qū)塊鏈網(wǎng)絡(luò)中的共識(shí)節(jié)點(diǎn)分成若干個(gè)組并行地“分而治之”。通過(guò)分片技術(shù),不同的區(qū)塊鏈網(wǎng)絡(luò)分片可以分?jǐn)偺幚砣W(wǎng)交易池中的交易量。分片技術(shù)有如下兩個(gè)明顯優(yōu)勢(shì)。首先,分片技術(shù)可以確保交易能夠以更短的擁塞延遲參與共識(shí)。其次,擴(kuò)容后增長(zhǎng)的交易吞吐量將鼓勵(lì)更多的用戶(hù)與應(yīng)用程序參與建設(shè)區(qū)塊鏈生態(tài)系統(tǒng),這些生態(tài)層面上的變化會(huì)提高區(qū)塊鏈網(wǎng)絡(luò)的安全性。

本文研究的場(chǎng)景聚焦在企業(yè)構(gòu)建的一個(gè)運(yùn)行在云端的、基于分片技術(shù)的許可鏈。就是說(shuō),所有的區(qū)塊鏈節(jié)點(diǎn)都在云端服務(wù)器上運(yùn)行。云區(qū)塊鏈的管理員采用分片協(xié)議對(duì)這些云區(qū)塊鏈節(jié)點(diǎn)進(jìn)行管理。分片協(xié)議可采用PBFT共識(shí)實(shí)現(xiàn)分片內(nèi)的局部共識(shí)。但是這樣會(huì)存在一個(gè)問(wèn)題:系統(tǒng)在根據(jù)交易的哈希地址分配該交易所屬的分片時(shí),某些分片會(huì)出現(xiàn)交易負(fù)載的不均衡現(xiàn)象。這種交易分配不均衡可能是由異常的交易執(zhí)行造成,也可能由惡意的交易分配策略(如“交易注入攻擊”)導(dǎo)致的。一個(gè)惡意的交易分配策略可能會(huì)導(dǎo)致某些分片內(nèi)產(chǎn)生大量擁塞的交易,從而造成整個(gè)區(qū)塊鏈網(wǎng)絡(luò)的TPS急劇下降。綜上所述,云端區(qū)塊鏈管理員期望有一個(gè)算法可以保證每個(gè)分片都維持在一個(gè)穩(wěn)定的狀態(tài),并迅速緩解交易分配不均衡所帶來(lái)的影響,以確保某網(wǎng)絡(luò)分片在受到惡意“交易注入攻擊”后,云區(qū)塊鏈系統(tǒng)可以快速恢復(fù)。
在使用分片技術(shù)的云端區(qū)塊鏈中,惡意的交易分配策略可能會(huì)向某些目標(biāo)分片突發(fā)注入大量交易。此外,在云端許可鏈的環(huán)境中,資源預(yù)算要比傳統(tǒng)區(qū)塊鏈中的共識(shí)資源要更有限。這是因?yàn)閭鹘y(tǒng)區(qū)塊鏈(例如比特幣區(qū)塊鏈)的共識(shí)資源是由世界各地的礦工提供的。不同的是,部署在云端的區(qū)塊鏈的資源是由數(shù)據(jù)中心或者商業(yè)云服務(wù)提供商所提供的。因此,即便在突發(fā)交易注入攻擊的威脅存在的情況下,如何在資源有限的云端區(qū)塊鏈中保持各個(gè)分片區(qū)塊鏈的穩(wěn)定運(yùn)行成為了一個(gè)挑戰(zhàn)。另一方面,盡管現(xiàn)有的區(qū)塊鏈分片研究已經(jīng)提出了許多針對(duì)分片區(qū)塊鏈的交易上鏈的解決方案,但我們?nèi)詻](méi)有發(fā)現(xiàn)可行的方案可以解決區(qū)塊鏈分片的穩(wěn)定性問(wèn)題。因此,云端區(qū)塊鏈管理員迫切需要一種新的策略來(lái)處理許可鏈分片中的不均衡的交易負(fù)載。為此,本文將分片許可鏈的負(fù)載不均衡定義為多隊(duì)列系統(tǒng)的穩(wěn)定性問(wèn)題。在該多隊(duì)列系統(tǒng)中,由于異常的交易執(zhí)行或惡意的交易分配策略為某些分片分配了大量的交易,這種行為可能會(huì)導(dǎo)致該分片出現(xiàn)擁塞。為了緩解部分分片出現(xiàn)的擁塞問(wèn)題,本文采用了李雅普諾夫優(yōu)化框架來(lái)解決穩(wěn)定性問(wèn)題。本文提出的策略根據(jù)觀察到的每個(gè)分片的交易池狀態(tài),決定如何通過(guò)分配區(qū)塊鏈網(wǎng)絡(luò)資源來(lái)保持分片區(qū)塊鏈穩(wěn)定的同時(shí)最小化云端區(qū)塊鏈系統(tǒng)的運(yùn)行成本。
2 論文主要貢獻(xiàn)
本研究的貢獻(xiàn)主要包括以下幾個(gè)方面。
3 提出的機(jī)制簡(jiǎn)介

在云端區(qū)塊鏈網(wǎng)絡(luò)模型中,由于每個(gè)網(wǎng)絡(luò)分片新到達(dá)交易的廣播時(shí)間遠(yuǎn)遠(yuǎn)小于對(duì)校對(duì)塊達(dá)成共識(shí)的時(shí)間,因此,在本文采用的系統(tǒng)模型中,新到達(dá)交易的廣播時(shí)間忽略不計(jì)。新提交到系統(tǒng)的交易被視為同時(shí)到達(dá)網(wǎng)絡(luò)分片內(nèi)的所有節(jié)點(diǎn)。交易被廣播后,該分片中的所有節(jié)點(diǎn)共享同一個(gè)版本的交易池。因此,每個(gè)分片的內(nèi)存池可以看作一個(gè)單服務(wù)隊(duì)列,它存儲(chǔ)分配到該分片的所有交易,并等待分片中的節(jié)點(diǎn)對(duì)其進(jìn)行處理。在該排隊(duì)模型中,交易按照泊松分布隨機(jī)到達(dá)。當(dāng)打包校對(duì)塊時(shí),該塊中所包含的交易將從內(nèi)存池中刪除,這個(gè)刪除操作被視為交易的出隊(duì)列。在每個(gè)時(shí)段,所有委員會(huì)成員基于PBFT共識(shí)協(xié)議達(dá)成一致時(shí),都會(huì)生成一個(gè)新的校對(duì)塊。每個(gè)分片的隊(duì)列表示本地內(nèi)存池的狀況?;谏鲜龅呐抨?duì)模型,區(qū)塊鏈分片網(wǎng)絡(luò)可以看作是一個(gè)多隊(duì)列系統(tǒng)。本文所提出的算法機(jī)制就是保證該多隊(duì)列系統(tǒng)穩(wěn)定的前提下盡可能提高資源利用率。
4 部分實(shí)驗(yàn)結(jié)果展示

第一組實(shí)驗(yàn)本文評(píng)估了調(diào)節(jié)參數(shù) V 對(duì)實(shí)驗(yàn)結(jié)果的影響。將 V 設(shè)置為50、100和150進(jìn)行實(shí)驗(yàn)。此外,為了研究動(dòng)態(tài)調(diào)節(jié)參數(shù) V 的效果,本文還實(shí)現(xiàn)了一種基于codebook的方法,在該方法下,V 在[50, 150]范圍內(nèi)根據(jù)分片的隊(duì)列擠壓和資源消耗的變化進(jìn)行自適應(yīng)變化。實(shí)驗(yàn)結(jié)果可得在改變參數(shù)V的幾種情況下,區(qū)塊鏈網(wǎng)絡(luò)都可以保持在穩(wěn)定的狀態(tài),同時(shí)本文使用的虛擬隊(duì)列技術(shù)可以令使用到的資源保持在各自給定的預(yù)算范圍內(nèi)。此外,提高 V 值,可以有效降低資源消耗量,即算力和網(wǎng)絡(luò)帶寬的消耗量。因此,資源消耗量與 V 值呈負(fù)相關(guān)。然而,較大的 V 會(huì)導(dǎo)致隊(duì)列長(zhǎng)度的增加,從而延長(zhǎng)交易處理的等待時(shí)延。因此,隊(duì)列長(zhǎng)度與 V 值呈正相關(guān)。綜上所述,在實(shí)際情況中,本文需要通過(guò)調(diào)節(jié)參數(shù)V仔細(xì)權(quán)衡交易處理的資源消耗與排隊(duì)延遲之間的關(guān)系。
第二組實(shí)驗(yàn)中本文評(píng)估了提出的DPP資源分配算法與現(xiàn)有最好的幾種方法進(jìn)行比較的結(jié)果,這幾種 baseline 方法分別是:

在實(shí)驗(yàn)中,當(dāng)分片數(shù)目小于100時(shí),本文提出的DPP資源分配算法控制的隊(duì)列長(zhǎng)度可以做到低于Top-S資源分配算法控制的隊(duì)列長(zhǎng)度,但是本文提出的DPP資源分配算法與Top-S資源分配算法相比可以節(jié)約60%以上的資源消耗量。對(duì)于Longest-First資源分配算法,其網(wǎng)絡(luò)分片數(shù)超過(guò)15時(shí),區(qū)塊鏈網(wǎng)絡(luò)的穩(wěn)定性已經(jīng)有了不可控制的趨勢(shì),此時(shí)Longest-First資源分配方法的平均隊(duì)列長(zhǎng)度會(huì)飆升至700左右,其長(zhǎng)度是同情況下本文提出的DPP算法控制下隊(duì)列長(zhǎng)度的7倍,即網(wǎng)絡(luò)分片的擁堵程度為7倍。當(dāng)分片數(shù)量超過(guò)50時(shí),Random資源分配算法的平均隊(duì)列長(zhǎng)度從20急劇增加到780左右,此時(shí)本文提出的算法控制下的隊(duì)列長(zhǎng)度僅有90左右。對(duì)于Average資源分配算法,當(dāng)分片數(shù)達(dá)到100時(shí),該算法依然可以維持很低的隊(duì)列長(zhǎng)度。但這種隊(duì)列壓縮能力卻是需要通過(guò)大量消耗資源來(lái)實(shí)現(xiàn)的。即使是Average和DPP兩種資源消耗算法所需資源消耗量最相似的100個(gè)網(wǎng)絡(luò)分片情況下,本文提出的DPP資源分配算法在資源消耗量上依舊要比Average資源分配算法節(jié)約20%以上的資源量。

第三組實(shí)驗(yàn)中本文評(píng)估了 DPP 資源分配算法在受到突發(fā)交易攻擊后能否快速恢復(fù),實(shí)驗(yàn)結(jié)果表明,該算法能夠使受到攻擊的網(wǎng)絡(luò)分片快速恢復(fù),同時(shí),與其對(duì)比的 Top-S 與 Longest-First 資源分配方法完全無(wú)法在受到突發(fā)交易攻擊后使區(qū)塊鏈網(wǎng)絡(luò)重回穩(wěn)定狀態(tài)。即使是在最需資源的恢復(fù)階段,本文提出的 DPP 資源分配算法與另外兩種算法相比,在兩種資源的消耗量方面也能分別做到20%以及5%左右的節(jié)約程度。
5 本項(xiàng)研究在工業(yè)界的應(yīng)用前景分析
近幾年,我國(guó)大型互聯(lián)網(wǎng)公司紛紛布局區(qū)塊鏈基礎(chǔ)設(shè)施,紛紛推出自己的云端區(qū)塊鏈服務(wù) —— BaaS(區(qū)塊鏈即服務(wù)),利用自身云計(jì)算的優(yōu)勢(shì),將區(qū)塊鏈與云計(jì)算緊密結(jié)合。BaaS 是區(qū)塊鏈設(shè)施的云端租用平臺(tái),可以幫助租戶(hù)企業(yè)簡(jiǎn)化運(yùn)營(yíng)流程,企業(yè)無(wú)需專(zhuān)門(mén)建設(shè)自己的基礎(chǔ)設(shè)施,服務(wù)購(gòu)買(mǎi)即用,削減了部署成本。
在如今業(yè)務(wù)并發(fā)訴求越來(lái)越大的壓力下,單個(gè)區(qū)塊鏈的性能往往不能達(dá)到用戶(hù)要求,因此有些 BaaS 區(qū)塊鏈平臺(tái)(例如華為云區(qū)塊鏈)通過(guò)分片、多鏈等方式來(lái)大幅提高交易處理的并發(fā)能力。然而現(xiàn)有的分片方案大多數(shù)無(wú)法做到將交易較為均衡地分給每個(gè)分片,結(jié)果往往會(huì)出現(xiàn)不同的區(qū)塊鏈分片需要處理的交易量有巨大差異的現(xiàn)象。若不合理為各個(gè)分片分配調(diào)整所需的共識(shí)與網(wǎng)絡(luò)資源,則會(huì)導(dǎo)致交易量大的分片得不到足夠的云資源,進(jìn)而造成部分交易的處理延遲較高的問(wèn)題。另外,即便為每個(gè)分片分配了足夠的資源,也很可能會(huì)出現(xiàn)資源過(guò)量配置的問(wèn)題。
本文提出的 DPP 算法正是為了解決上述問(wèn)題。運(yùn)用該算法,能夠合理為各分片分配所需的云端資源,可以迅速緩解交易分配不均衡所帶來(lái)的影響,有效降低區(qū)塊鏈中交易處理的延遲,幫助企業(yè)構(gòu)建一個(gè)部署在云端的“低資源消耗”的高性能區(qū)塊鏈基礎(chǔ)設(shè)施。