岳崢宇,林岳,黃華威,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 研究背景與動機
區(qū)塊鏈技術(shù)在過去多年逐漸得到了學(xué)術(shù)界以及工業(yè)界的關(guān)注。然而,目前主流區(qū)塊鏈有限的可拓展性仍然是其無法在實際場景中被廣泛應(yīng)用的一個阻礙。以比特幣作為一個例子,如今比特幣網(wǎng)絡(luò)中一個區(qū)塊的出塊間隔大約是10分鐘??梢钥闯霰忍貛啪W(wǎng)絡(luò)的“每秒交易數(shù)”(TPS)非常有限。目前主流公鏈很難達(dá)到如Visa(20000 TPS以上)等主流支付工具的吞吐量。
近幾年,區(qū)塊鏈分片技術(shù)作為一種很有潛力的擴容方法逐漸被越來越多的研究者關(guān)注并深入研究。分片技術(shù)最初是作為擴容數(shù)據(jù)庫的方法被提出的,這是一種水平切分的數(shù)據(jù)庫的方式。將分片技術(shù)用于區(qū)塊鏈網(wǎng)絡(luò)的核心思想是將區(qū)塊鏈網(wǎng)絡(luò)中的共識節(jié)點分成若干個組并行地“分而治之”。通過分片技術(shù),不同的區(qū)塊鏈網(wǎng)絡(luò)分片可以分?jǐn)偺幚砣W(wǎng)交易池中的交易量。分片技術(shù)有如下兩個明顯優(yōu)勢。首先,分片技術(shù)可以確保交易能夠以更短的擁塞延遲參與共識。其次,擴容后增長的交易吞吐量將鼓勵更多的用戶與應(yīng)用程序參與建設(shè)區(qū)塊鏈生態(tài)系統(tǒng),這些生態(tài)層面上的變化會提高區(qū)塊鏈網(wǎng)絡(luò)的安全性。
本文研究的場景聚焦在企業(yè)構(gòu)建的一個運行在云端的、基于分片技術(shù)的許可鏈。就是說,所有的區(qū)塊鏈節(jié)點都在云端服務(wù)器上運行。云區(qū)塊鏈的管理員采用分片協(xié)議對這些云區(qū)塊鏈節(jié)點進行管理。分片協(xié)議可采用PBFT共識實現(xiàn)分片內(nèi)的局部共識。但是這樣會存在一個問題:系統(tǒng)在根據(jù)交易的哈希地址分配該交易所屬的分片時,某些分片會出現(xiàn)交易負(fù)載的不均衡現(xiàn)象。這種交易分配不均衡可能是由異常的交易執(zhí)行造成,也可能由惡意的交易分配策略(如“交易注入攻擊”)導(dǎo)致的。一個惡意的交易分配策略可能會導(dǎo)致某些分片內(nèi)產(chǎn)生大量擁塞的交易,從而造成整個區(qū)塊鏈網(wǎng)絡(luò)的TPS急劇下降。綜上所述,云端區(qū)塊鏈管理員期望有一個算法可以保證每個分片都維持在一個穩(wěn)定的狀態(tài),并迅速緩解交易分配不均衡所帶來的影響,以確保某網(wǎng)絡(luò)分片在受到惡意“交易注入攻擊”后,云區(qū)塊鏈系統(tǒng)可以快速恢復(fù)。
在使用分片技術(shù)的云端區(qū)塊鏈中,惡意的交易分配策略可能會向某些目標(biāo)分片突發(fā)注入大量交易。此外,在云端許可鏈的環(huán)境中,資源預(yù)算要比傳統(tǒng)區(qū)塊鏈中的共識資源要更有限。這是因為傳統(tǒng)區(qū)塊鏈(例如比特幣區(qū)塊鏈)的共識資源是由世界各地的礦工提供的。不同的是,部署在云端的區(qū)塊鏈的資源是由數(shù)據(jù)中心或者商業(yè)云服務(wù)提供商所提供的。因此,即便在突發(fā)交易注入攻擊的威脅存在的情況下,如何在資源有限的云端區(qū)塊鏈中保持各個分片區(qū)塊鏈的穩(wěn)定運行成為了一個挑戰(zhàn)。另一方面,盡管現(xiàn)有的區(qū)塊鏈分片研究已經(jīng)提出了許多針對分片區(qū)塊鏈的交易上鏈的解決方案,但我們?nèi)詻]有發(fā)現(xiàn)可行的方案可以解決區(qū)塊鏈分片的穩(wěn)定性問題。因此,云端區(qū)塊鏈管理員迫切需要一種新的策略來處理許可鏈分片中的不均衡的交易負(fù)載。為此,本文將分片許可鏈的負(fù)載不均衡定義為多隊列系統(tǒng)的穩(wěn)定性問題。在該多隊列系統(tǒng)中,由于異常的交易執(zhí)行或惡意的交易分配策略為某些分片分配了大量的交易,這種行為可能會導(dǎo)致該分片出現(xiàn)擁塞。為了緩解部分分片出現(xiàn)的擁塞問題,本文采用了李雅普諾夫優(yōu)化框架來解決穩(wěn)定性問題。本文提出的策略根據(jù)觀察到的每個分片的交易池狀態(tài),決定如何通過分配區(qū)塊鏈網(wǎng)絡(luò)資源來保持分片區(qū)塊鏈穩(wěn)定的同時最小化云端區(qū)塊鏈系統(tǒng)的運行成本。
2 論文主要貢獻
本研究的貢獻主要包括以下幾個方面。
3 提出的機制簡介
在云端區(qū)塊鏈網(wǎng)絡(luò)模型中,由于每個網(wǎng)絡(luò)分片新到達(dá)交易的廣播時間遠(yuǎn)遠(yuǎn)小于對校對塊達(dá)成共識的時間,因此,在本文采用的系統(tǒng)模型中,新到達(dá)交易的廣播時間忽略不計。新提交到系統(tǒng)的交易被視為同時到達(dá)網(wǎng)絡(luò)分片內(nèi)的所有節(jié)點。交易被廣播后,該分片中的所有節(jié)點共享同一個版本的交易池。因此,每個分片的內(nèi)存池可以看作一個單服務(wù)隊列,它存儲分配到該分片的所有交易,并等待分片中的節(jié)點對其進行處理。在該排隊模型中,交易按照泊松分布隨機到達(dá)。當(dāng)打包校對塊時,該塊中所包含的交易將從內(nèi)存池中刪除,這個刪除操作被視為交易的出隊列。在每個時段,所有委員會成員基于PBFT共識協(xié)議達(dá)成一致時,都會生成一個新的校對塊。每個分片的隊列表示本地內(nèi)存池的狀況。基于上述的排隊模型,區(qū)塊鏈分片網(wǎng)絡(luò)可以看作是一個多隊列系統(tǒng)。本文所提出的算法機制就是保證該多隊列系統(tǒng)穩(wěn)定的前提下盡可能提高資源利用率。
4 部分實驗結(jié)果展示
第一組實驗本文評估了調(diào)節(jié)參數(shù) V 對實驗結(jié)果的影響。將 V 設(shè)置為50、100和150進行實驗。此外,為了研究動態(tài)調(diào)節(jié)參數(shù) V 的效果,本文還實現(xiàn)了一種基于codebook的方法,在該方法下,V 在[50, 150]范圍內(nèi)根據(jù)分片的隊列擠壓和資源消耗的變化進行自適應(yīng)變化。實驗結(jié)果可得在改變參數(shù)V的幾種情況下,區(qū)塊鏈網(wǎng)絡(luò)都可以保持在穩(wěn)定的狀態(tài),同時本文使用的虛擬隊列技術(shù)可以令使用到的資源保持在各自給定的預(yù)算范圍內(nèi)。此外,提高 V 值,可以有效降低資源消耗量,即算力和網(wǎng)絡(luò)帶寬的消耗量。因此,資源消耗量與 V 值呈負(fù)相關(guān)。然而,較大的 V 會導(dǎo)致隊列長度的增加,從而延長交易處理的等待時延。因此,隊列長度與 V 值呈正相關(guān)。綜上所述,在實際情況中,本文需要通過調(diào)節(jié)參數(shù)V仔細(xì)權(quán)衡交易處理的資源消耗與排隊延遲之間的關(guān)系。
第二組實驗中本文評估了提出的DPP資源分配算法與現(xiàn)有最好的幾種方法進行比較的結(jié)果,這幾種 baseline 方法分別是:
在實驗中,當(dāng)分片數(shù)目小于100時,本文提出的DPP資源分配算法控制的隊列長度可以做到低于Top-S資源分配算法控制的隊列長度,但是本文提出的DPP資源分配算法與Top-S資源分配算法相比可以節(jié)約60%以上的資源消耗量。對于Longest-First資源分配算法,其網(wǎng)絡(luò)分片數(shù)超過15時,區(qū)塊鏈網(wǎng)絡(luò)的穩(wěn)定性已經(jīng)有了不可控制的趨勢,此時Longest-First資源分配方法的平均隊列長度會飆升至700左右,其長度是同情況下本文提出的DPP算法控制下隊列長度的7倍,即網(wǎng)絡(luò)分片的擁堵程度為7倍。當(dāng)分片數(shù)量超過50時,Random資源分配算法的平均隊列長度從20急劇增加到780左右,此時本文提出的算法控制下的隊列長度僅有90左右。對于Average資源分配算法,當(dāng)分片數(shù)達(dá)到100時,該算法依然可以維持很低的隊列長度。但這種隊列壓縮能力卻是需要通過大量消耗資源來實現(xiàn)的。即使是Average和DPP兩種資源消耗算法所需資源消耗量最相似的100個網(wǎng)絡(luò)分片情況下,本文提出的DPP資源分配算法在資源消耗量上依舊要比Average資源分配算法節(jié)約20%以上的資源量。
第三組實驗中本文評估了 DPP 資源分配算法在受到突發(fā)交易攻擊后能否快速恢復(fù),實驗結(jié)果表明,該算法能夠使受到攻擊的網(wǎng)絡(luò)分片快速恢復(fù),同時,與其對比的 Top-S 與 Longest-First 資源分配方法完全無法在受到突發(fā)交易攻擊后使區(qū)塊鏈網(wǎng)絡(luò)重回穩(wěn)定狀態(tài)。即使是在最需資源的恢復(fù)階段,本文提出的 DPP 資源分配算法與另外兩種算法相比,在兩種資源的消耗量方面也能分別做到20%以及5%左右的節(jié)約程度。
5 本項研究在工業(yè)界的應(yīng)用前景分析
近幾年,我國大型互聯(lián)網(wǎng)公司紛紛布局區(qū)塊鏈基礎(chǔ)設(shè)施,紛紛推出自己的云端區(qū)塊鏈服務(wù) —— BaaS(區(qū)塊鏈即服務(wù)),利用自身云計算的優(yōu)勢,將區(qū)塊鏈與云計算緊密結(jié)合。BaaS 是區(qū)塊鏈設(shè)施的云端租用平臺,可以幫助租戶企業(yè)簡化運營流程,企業(yè)無需專門建設(shè)自己的基礎(chǔ)設(shè)施,服務(wù)購買即用,削減了部署成本。
在如今業(yè)務(wù)并發(fā)訴求越來越大的壓力下,單個區(qū)塊鏈的性能往往不能達(dá)到用戶要求,因此有些 BaaS 區(qū)塊鏈平臺(例如華為云區(qū)塊鏈)通過分片、多鏈等方式來大幅提高交易處理的并發(fā)能力。然而現(xiàn)有的分片方案大多數(shù)無法做到將交易較為均衡地分給每個分片,結(jié)果往往會出現(xiàn)不同的區(qū)塊鏈分片需要處理的交易量有巨大差異的現(xiàn)象。若不合理為各個分片分配調(diào)整所需的共識與網(wǎng)絡(luò)資源,則會導(dǎo)致交易量大的分片得不到足夠的云資源,進而造成部分交易的處理延遲較高的問題。另外,即便為每個分片分配了足夠的資源,也很可能會出現(xiàn)資源過量配置的問題。
本文提出的 DPP 算法正是為了解決上述問題。運用該算法,能夠合理為各分片分配所需的云端資源,可以迅速緩解交易分配不均衡所帶來的影響,有效降低區(qū)塊鏈中交易處理的延遲,幫助企業(yè)構(gòu)建一個部署在云端的“低資源消耗”的高性能區(qū)塊鏈基礎(chǔ)設(shè)施。