霍如,倪東,盧華,夏云峰,汪碩,4,黃韜,4,劉韻潔,4
(1.北京工業(yè)大學信息學部,北京 100124;2.網(wǎng)絡(luò)通信與安全紫金山實驗室,江蘇 南京 211111;3.廣東省新一代通信與網(wǎng)絡(luò)創(chuàng)新研究院,廣東 廣州 510663;4.北京郵電大學網(wǎng)絡(luò)與交換國家重點實驗室,北京 100876)
區(qū)塊鏈技術(shù)本質(zhì)上是一種基于分布式對等網(wǎng)絡(luò)的基礎(chǔ)架構(gòu)和計算范式,具有去中心化、不可篡改、可追溯、匿名性和透明性五大特征,這些特征為構(gòu)建安全可信的分布式交易環(huán)境提供了良好的契機[1-3]。然而,受嚴格共識過程和簽名認證機制的約束,區(qū)塊鏈的吞吐量很低且可擴展性差。比特幣的吞吐量為3~7筆/秒交易,而以太坊的吞吐量大約是比特幣的兩倍[4-5]。在全球電子支付場景中,Visa 或其他集中式支付服務(wù)提供商每秒可以處理數(shù)千筆交易,這是目前的區(qū)塊鏈技術(shù)無法企及的。隨著微交易的出現(xiàn),區(qū)塊鏈的可擴展性問題被進一步放大,這種交易通常對實時性要求較高。此外,區(qū)塊鏈賬本收取的費用可能高于交易金額,這對交易雙方來說通常不能接受。
付費信道可以解決上述挑戰(zhàn),方法是在2 個用戶之間建立付費信道,并在信道中托管一定的資金,將交易從鏈上轉(zhuǎn)移到鏈下,避免了鏈上共識和確認的時延[6]。付費信道只有開啟和關(guān)閉時,才會在區(qū)塊鏈中寫入交易,鏈下交易可以在用戶之間頻繁執(zhí)行,不需要上鏈。因此提高了交易效率、可擴展性和吞吐量。
在每個交易發(fā)送方與接收方之間建立付費信道會產(chǎn)生一定成本,對于不存在直接付費信道的用戶之間可以通過中間節(jié)點轉(zhuǎn)發(fā)交易。連接不同用戶的付費信道共同構(gòu)成了付費信道網(wǎng)絡(luò)(PCN,payment channel network)[7]。
PCN 和傳統(tǒng)網(wǎng)絡(luò)的根本區(qū)別在于存在節(jié)點的資金消耗。節(jié)點之間的交易通過中間節(jié)點轉(zhuǎn)發(fā),中間節(jié)點一側(cè)資金的輸入意味著另一側(cè)資金的輸出。如果中間節(jié)點的輸出側(cè)資金耗盡,它將無法啟動該方向的任何交易或充當交易的中間節(jié)點。人們可以通過鏈上對資金耗盡節(jié)點的資金補充來解決這個問題,但該過程涉及復(fù)雜的鏈上共識和簽名認證,影響鏈下的交易進程和交易成功率[8]。為此如何維持鏈下付費信道的長時間穩(wěn)定性運行、減少鏈上交易次數(shù)是保證PCN 高吞吐量穩(wěn)定運行的重要因素。
現(xiàn)階段提升PCN 吞吐量的主要策略有業(yè)務(wù)路由優(yōu)化策略和鏈下信道再均衡策略2 種。路由優(yōu)化策略指設(shè)計路由策略讓業(yè)務(wù)沿著資金足夠或增加信道平衡的路徑傳輸。鏈下信道再均衡策略指在PCN 出現(xiàn)信道失衡時進行全網(wǎng)資金調(diào)整,為資金不足的節(jié)點注入資金,進而實現(xiàn)PCN 均衡。
在PCN 路由優(yōu)化策略研究方面,Sivaraman 等[7]提出了一種Spider 算法來解決最短路徑算法選路引起的資金耗盡問題。該策略利用了互聯(lián)網(wǎng)包交換的思想將交易劃分為交易單元,并使用多路徑傳輸協(xié)議實現(xiàn)高吞吐量路由,同時設(shè)計多路徑擁塞控制協(xié)議確保信道的均衡使用。Yu 等[9]提出了一種CoinExpress 新型分布式動態(tài)路由機制。該機制設(shè)計了基于網(wǎng)絡(luò)流和并發(fā)流的PCN 路由模型,在保證交易路由的同時保證交易時延。Zhang 等[10]提出了一種分布式穩(wěn)健支付路由協(xié)議RobustPay 來抵抗事務(wù)失敗,實現(xiàn)了PCN 的穩(wěn)健性、高效性和分布式,同時修改了閃電網(wǎng)絡(luò)的HTLC 協(xié)議,使其適應(yīng)強大的支付路由協(xié)議。Lin 等[11]提出了一種FSTR 路由算法,該算法基于資金傾斜度進行交易路徑選擇,在減小資金傾斜度的同時提高交易成功率。Pavel等[12]提出了一種混合路由算法Flare,該算法通過設(shè)置網(wǎng)絡(luò)中的信標節(jié)點來獲取網(wǎng)絡(luò)的本地視圖,本地節(jié)點和信標節(jié)點的結(jié)合使節(jié)點最大限度地減少路由狀態(tài),同時以高概率查找到任意給定節(jié)點的路由。
在 PCN 鏈下信道再均衡策略研究方面,Pickhardt 等[13]提出了一種閃電網(wǎng)絡(luò)的鏈下信道再均衡算法,通過對網(wǎng)絡(luò)上循環(huán)路徑的資金調(diào)整實現(xiàn)信道再均衡。Mercan 等[14]提出了一種物聯(lián)網(wǎng)場景下的PCN 設(shè)計,通過在網(wǎng)絡(luò)上使用通用權(quán)重策略來保持信道均衡,并針對不平衡的支付方案,為每個物聯(lián)網(wǎng)設(shè)備設(shè)置多個連接來提高交易成功率。
目前,對路由優(yōu)化策略的研究大多只考慮交易成功率,如文獻[9-12],這些研究未考慮交易后的信道失衡問題,導(dǎo)致網(wǎng)絡(luò)的平衡度迅速下降,而且一個交易請求到達時立即原子性地路由整筆交易。當付費信道缺少足夠的資金時,即使信道在短時間內(nèi)會進行資金補充,也會導(dǎo)致交易立即失敗。其對金額較大的交易影響尤其嚴重。目前,大多的鏈下信道再均衡策略采用全網(wǎng)均衡的方式,如文獻[13-14],這些研究可以很好地解決PCN 吞吐量低的問題,但在逐年擴大的PCN 中進行全網(wǎng)均衡將影響正常的交易進程,這對于實時性要求較高的電子支付類業(yè)務(wù)是無法接受的。最重要的是,目前主要是針對2 種策略的單獨研究,很少考慮2 種策略的結(jié)合,業(yè)務(wù)路由優(yōu)化策略和鏈下信道再均衡策略的割裂導(dǎo)致算法的性能優(yōu)化受限。最后,現(xiàn)階段的PCN對所有的業(yè)務(wù)采用統(tǒng)一的選路策略,沒有考慮針對不同的業(yè)務(wù)類型設(shè)置優(yōu)先級,對于服務(wù)質(zhì)量要求較高的業(yè)務(wù)無法實現(xiàn)服務(wù)質(zhì)量保障。
基于上述問題,本文提出PCN 的高效路由策略(ERS_PCN,efficient routing strategy of blockchain-based PCN)。該策略根據(jù)業(yè)務(wù)類型及業(yè)務(wù)優(yōu)先級為高優(yōu)先級業(yè)務(wù)建立專用付費信道,并將常規(guī)業(yè)務(wù)劃分為多個交易單元,通過信道均衡選路算法為各交易單元選路,在路由層面上實現(xiàn)信道均衡,減少鏈上交易次數(shù),維持付費信道的長時間穩(wěn)定性運行,提高交易成功率。本文的主要貢獻如下。
1) 設(shè)計差異化專用信道服務(wù)算法。根據(jù)交易類型和交易優(yōu)先級為高優(yōu)先級交易建立專用付費信道,來保證交易的服務(wù)質(zhì)量。
2) 設(shè)計多路徑轉(zhuǎn)發(fā)算法。將交易拆分為獨立的交易單元,采用多路徑傳輸?shù)姆绞姜毩魉瓦@些單元。
3) 設(shè)計信道均衡選路算法。針對請求計算一定數(shù)量的候選路徑,計算每一條候選路徑路由后的網(wǎng)絡(luò)基尼系數(shù),并選擇使網(wǎng)絡(luò)基尼系數(shù)最低的路徑轉(zhuǎn)發(fā)交易。
4) 設(shè)計ERS_PCN 策略。該策略由差異化專用信道服務(wù)算法、多路徑轉(zhuǎn)發(fā)算法、信道均衡選路算法3 個部分組成。
5) 采用網(wǎng)絡(luò)基尼系數(shù)、交易成功率作為評價指標,構(gòu)建PCN 拓撲與業(yè)務(wù)模型進行仿真,驗證算法優(yōu)越性。
為了設(shè)計ERS_PCN 策略,本節(jié)從平臺和算法2 個層面考慮來設(shè)計系統(tǒng)模型。其中,平臺模型包括PCN 應(yīng)用分層模型、區(qū)塊鏈模型和PCN 模型,主要為ERS_PCN 策略的實現(xiàn)提供底層支撐平臺;算法模型包括K 路徑算法模型和PCN 基尼系數(shù)模型,主要為ERS_PCN 策略的實現(xiàn)提供算法支撐。PCN 與區(qū)塊鏈網(wǎng)絡(luò)之間存在交互關(guān)系,本節(jié)首先設(shè)計PCN 應(yīng)用分層模型,該模型由物理層、區(qū)塊鏈層、PCN 層和應(yīng)用層組成,其中區(qū)塊鏈層和PCN層是模型的核心。考慮到區(qū)塊鏈層是支撐PCN 安全穩(wěn)定運行的重要因素,因此本節(jié)進一步對區(qū)塊鏈模型進行了介紹。同時,為了便于后續(xù)算法研究的量化,本節(jié)提出了PCN 模型,對PCN 層進行模型抽象。最后介紹了K 路徑算法模型和PCN 基尼系數(shù)模型,為ERS_PCN 策略中的多交易單元多路徑傳輸和評價信道是否均衡提供理論參考依據(jù)。
參考現(xiàn)有的通用區(qū)塊鏈應(yīng)用分層模型[15],本文設(shè)計了如圖1 所示的PCN 應(yīng)用分層模型,該模型分為4 層,自下而上分別為物理層、區(qū)塊鏈層、PCN層和應(yīng)用層??紤]到應(yīng)用與區(qū)塊鏈網(wǎng)絡(luò)及PCN 的交互關(guān)系,4 層模型主要在傳統(tǒng)通用區(qū)塊鏈應(yīng)用分層模型基礎(chǔ)上進行了PCN 層的增加和各層的改進,以適用于本文方法的應(yīng)用與實現(xiàn),其中PCN 層處在應(yīng)用層和區(qū)塊鏈層之間,便于對上支持支付類應(yīng)用,對下與區(qū)塊鏈底層技術(shù)進行交互。
圖1 PCN 應(yīng)用分層模型
1) 物理層
物理層是硬件層,它由個人計算機、云服務(wù)器、小型服務(wù)器、大型服務(wù)器等硬件設(shè)備組成。該層為區(qū)塊鏈層提供豐富的計算資源與存儲資源,可以在眾多平臺上挖掘不同硬件的計算能力與存儲能力,加快上層的共識進程,減小鏈上共識時間。
2) 區(qū)塊鏈層
區(qū)塊鏈是通過區(qū)塊鏈接在一起的有序記錄的列表,該層利用分布式共識算法生成和更新數(shù)據(jù),并利用對等網(wǎng)絡(luò)進行節(jié)點間的數(shù)據(jù)傳輸,結(jié)合密碼學原理等技術(shù)保證存儲數(shù)據(jù)不可篡改,支撐PCN 層的穩(wěn)定運行,保證PCN 層交易的鏈上最終一致性。
3) PCN 層
PCN 層是PCN 應(yīng)用分層模型的核心,主要完成應(yīng)用層下發(fā)的付費業(yè)務(wù),完成與區(qū)塊鏈層的交互,將交易從鏈上轉(zhuǎn)移到鏈下,避免了鏈上共識和確認的時延,保證付費交易的安全性與實時性。
4) 應(yīng)用層
應(yīng)用層為眾多付費應(yīng)用的集合,這些應(yīng)用通過接入網(wǎng)關(guān)接入PCN 層,實現(xiàn)跨境支付、知識付費等電子支付業(yè)務(wù)。
區(qū)塊鏈主要解決PCN 資金交易的信任和安全問題,本文主要利用區(qū)塊鏈的4 種技術(shù)來支撐PCN的安全穩(wěn)定運行。
1) 分布式賬本
交易記賬由分布在不同地方的多個節(jié)點共同完成,每一個節(jié)點都記錄完整的交易副本,共同參與監(jiān)督交易的合法性。PCN 鏈下資金交易結(jié)束,需上鏈存儲到分布式賬本進行交易的記錄。
2) 非對稱加密和授權(quán)技術(shù)
存儲在區(qū)塊鏈上的交易信息是公開的,但是交易賬戶身份信息是高度加密的,只有在數(shù)據(jù)擁有者授權(quán)的情況下才能訪問到,從而保證了交易信息的安全和個人的隱私。
3) 共識機制
共識機制通過特殊節(jié)點的投票,完成對交易的驗證和確認;對一筆交易,如果利益不相干的若干個節(jié)點能夠達成一致,則可以認為全網(wǎng)對此達成共識,即由不同節(jié)點組成的系統(tǒng)之間依賴一個制度來維護系統(tǒng)的數(shù)據(jù)一致性。PCN 鏈下資金交易結(jié)束,在鏈上達成共識后方可進行交易上鏈。
4) 智能合約
智能合約是基于可信不可篡改的數(shù)據(jù),自動化執(zhí)行的一些預(yù)先定義好的規(guī)則和條款。PCN 鏈下資金交易結(jié)束,需通過智能合約實現(xiàn)交易的上鏈邏輯,進行PCN 與區(qū)塊鏈的交互。
假設(shè)拓撲G=(N,E)是一個PCN,其中,N表示整個網(wǎng)絡(luò)中的節(jié)點數(shù),即PCN 中的所有參與者個數(shù),N≥2;E表示整個網(wǎng)絡(luò)中的鏈路集合,即PCN 中的所有付費信道。假設(shè)節(jié)點vi和節(jié)點vj為G中存在付費信道的2 個節(jié)點,信道Path(v i,vj)為鏈路e1,…,el的集合,l為Path(v i,vj)的鏈路個數(shù)。當l=1時,v i和vj之間存在直連鏈路。為了方便說明,本文假設(shè)l≥3。ek=(u k,uk+1)表示Path(v i,vj)路徑上中間節(jié)點uk與uk+1之間的直連鏈路,表示節(jié)點uk到節(jié)點uk+1方向的可流通資金。Path(v i,vj)示意如圖2(a)所示。此外,將MaxMPath(vi,vj)定義為Path(v i,vj)的最大可流通資金,計算式為
其中,min(…) 表示取最小值函數(shù)。
假設(shè)在時刻t,節(jié)點vi到節(jié)點vj存在交易需求transt(vi,v j,m),其中m表示交易金額。如果該信道上MaxMPath(vi,vj)≥m,則信道ek交易后節(jié)點uk到節(jié)點uk+1方向的可流通資金變?yōu)閙(uk,uk+1)?m,節(jié)點uk+1到節(jié)點uk方向的可流通資金變?yōu)閙(uk+1,uk)+m,路徑上其他鏈路的資金流動情況相同,交易后的示意如圖2(b)所示。
圖2 PCN 模型示意
路由技術(shù)旨在發(fā)現(xiàn)業(yè)務(wù)的源、目的節(jié)點之間的合適路徑[16]。其中,最短路徑算法指尋找網(wǎng)絡(luò)中兩節(jié)點之間的最短路徑,是目前網(wǎng)絡(luò)路由研究中較常用的基礎(chǔ)路由算法。K 最短路(KSP,K shortest paths)算法[17-18]是在最短路徑算法基礎(chǔ)上的升級。與最短路徑算法不同,KSP 算法尋找源節(jié)點與目的節(jié)點之間的多條路徑,并組成最短路徑集合,以滿足用戶對不同路徑的多樣化需求。
本文利用KSP 算法的思路,并根據(jù)不同的基礎(chǔ)路由算法設(shè)計新的K 路徑算法,如K 最短路徑算法的基礎(chǔ)路由算法為最短路徑算法。假設(shè)一個業(yè)務(wù)請求的源、目的節(jié)點分別為vi和vj,K 路徑算法可分為兩部分。
1) 利用基礎(chǔ)路由算法算出首條路徑Path1(v i,vj),然后在此基礎(chǔ)上依次算出其他的K-1條路徑。
2) 在求Pathk+1(v i,vj)時(1 采用合適的K 路徑算法,在各候選路徑上進行獨立的交易單元傳輸可以分散高金額交易到多個付費信道中,從而達到提供交易成功率的目的。 假設(shè)K=3,節(jié)點vi與vj之間存在交易量為3 的請求,節(jié)點vi與vj的K 路徑選路結(jié)果示例如圖3(a)所示。其中,Path1(vi,vj)與Path2(vi,vj)之間的偏離節(jié)點為vi,Path2(vi,vj)與Path3(vi,vj)之間的偏離節(jié)點為uk。從圖3(a)可以看出,3 條路徑的最大可流通資金均無法滿足需求,將交易請求平均分散到3條候選路徑可交易成功,結(jié)果如圖3(b)所示。 圖3 K 路徑算法示例 基尼系數(shù)[19]是根據(jù)洛倫茲曲線判斷一項內(nèi)容分配公平程度的指標。本文采用該指標評價PCN的均衡程度。 假設(shè)用戶在網(wǎng)絡(luò)中實際托管金額曲線與托管金額絕對平等曲線之間為區(qū)域A,實際托管金額曲線與坐標軸之間為區(qū)域B,如圖4 所示。區(qū)域A 的面積除以區(qū)域A與區(qū)域B的面積和表示網(wǎng)絡(luò)不均衡程度,如式(2)所示,稱之為PCN 基尼系數(shù)。 圖4 PCN 洛倫茲曲線與基尼系數(shù) 其中,SA表示區(qū)域A 的面積,SB表示區(qū)域B 的面積。 如果區(qū)域A 的面積為0,即GiniG_PCN=0,表示網(wǎng)絡(luò)完全均衡;如果區(qū)域B 的面積為0,則GiniG_PCN=1,此時網(wǎng)絡(luò)絕對不均衡。 式(2)可以從物理意義上直觀地表示網(wǎng)絡(luò)基尼系數(shù),但不具有實際可操作性。為了便于在實際問題中更好地運用該指標直接度量PCN 的不平衡程度,此處從數(shù)學意義上描述網(wǎng)絡(luò)基尼系數(shù),并證明該描述方式的正確性,PCN 基尼系數(shù)的數(shù)學表達形式為[20] 其中,μ表示網(wǎng)絡(luò)托管金額均值,Δ表示基尼平均差。Δ可由式(4)計算得到[20]。 其中,|mj?mi|是任何一個付費信道中的兩用戶托管金額差值的絕對值,M表示PCN 的總付費信道個數(shù)。 PCN 高效路由策略根據(jù)業(yè)務(wù)類型及業(yè)務(wù)優(yōu)先級為高優(yōu)先級業(yè)務(wù)建立專用付費信道,并將常規(guī)業(yè)務(wù)劃分為多個交易單元,通過信道均衡選路算法為各交易單元選路,減少鏈上交易次數(shù),維持付費信道的長時間穩(wěn)定性運行,提高交易成功率,該策略由差異化專用信道服務(wù)算法、多路徑轉(zhuǎn)發(fā)算法和信道均衡選路算法3 個部分組成。 差異化專用信道服務(wù)算法針對不同的業(yè)務(wù)類型建立不同的專用信道,保證高優(yōu)先級業(yè)務(wù)獲得transt(vi,v j,m,type,p ri)更好的服務(wù)質(zhì)量。對于高優(yōu)先級用戶,針對其不同的業(yè)務(wù)類型建立專用信道提供差異化服務(wù)。本文將交易類型分為高金額業(yè)務(wù)、低時延業(yè)務(wù)、高可靠業(yè)務(wù)、常規(guī)業(yè)務(wù)幾類。對除了常規(guī)業(yè)務(wù)以外的業(yè)務(wù)建立專用信道保證交易的服務(wù)質(zhì)量。差異化專用信道服務(wù)算法可簡述為:首先,判斷交易的業(yè)務(wù)類型及優(yōu)先級;其次,決定業(yè)務(wù)的交易路徑。具體算法流程如算法1 所示。 算法1差異化專用信道服務(wù)算法 輸入transt(vi,v j,m,type,p ri) 多路徑轉(zhuǎn)發(fā)算法在交易發(fā)送方將交易拆分成一系列獨立路由的交易單元,每個交易單元都轉(zhuǎn)移一筆以最大交易單元(TRANS_UINT,transaction unit)為邊界的金額。由于使用獨立的密鑰創(chuàng)建每個交易單元,拆分交易并不會影響交易的安全性。當交易接收方接收并確認交易單元時,發(fā)送方可以選擇性地僅顯示已確認交易單元的密鑰。交易發(fā)送方在交易過程中將收到通知,告知他們已完成了多少交易單元,發(fā)送方可以選擇取消未完成的交易單元或在區(qū)塊鏈上重試。多路徑轉(zhuǎn)發(fā)算法簡述如下。首先,計算交易單元個數(shù)為 其中,RoundU(…) 表示向上取整函數(shù),MTU 表示交易單元大小,m表示交易金額。 其次,劃分交易單元,并對各交易單元加密。然后,使用K 路徑算法計算各交易單元的轉(zhuǎn)發(fā)路徑,計算轉(zhuǎn)發(fā)路徑條數(shù)為 最后,沿著各路徑獨立轉(zhuǎn)發(fā)交易單元。具體算法流程如算法2 所示。 算法2多路徑轉(zhuǎn)發(fā)算法 輸入transt(vi,v j,m,type,pr i),MTU,K 路徑算法,交易簽名策略 在一個交易請求到達PCN 時,為該請求計算一定數(shù)量的候選路徑,信道均衡選路算法會計算每一條候選路徑路由后的網(wǎng)絡(luò)基尼系數(shù),并選擇網(wǎng)絡(luò)基尼系數(shù)最小的路徑轉(zhuǎn)發(fā)交易。如果找不到可行的路徑,則路由失敗。信道均衡選路算法流程可整理為:首先,計算M條候選路徑;其次,計算通過各候選路徑路由后的網(wǎng)絡(luò)的基尼系數(shù);最后,選擇使網(wǎng)絡(luò)基尼系數(shù)最小的路徑作為最終的交易路徑。具體算法流程如算法3 所示。 算法3信道均衡選路算法 輸入transt(vi,v j,m,type,pr i),候選路徑個數(shù)M,K 路徑算法 根據(jù)算法1~算法3,本節(jié)設(shè)計了ERS_PCN 策略的具體實現(xiàn),流程如圖5 所示。對于t時刻到來的一個交易請求transt(vi,v j,m,type,pri),首先根據(jù)type 和pri 判斷交易是否為常規(guī)業(yè)務(wù),如果不是,則按照算法 1 進行交易的路由與轉(zhuǎn)發(fā)。如果transt(vi,v j,m,type,pri)為常規(guī)業(yè)務(wù),則使用算法2計算轉(zhuǎn)發(fā)路徑個數(shù)為NUMpath(transt(vi,vj,m,type,pri))。計算候選路徑個數(shù)如式(8)所示。 圖5 ERS_PCN 策略實現(xiàn)流程 其中,mutli≥1。為了實現(xiàn)更好的信道均衡,PCN的連通度越高,mutli 應(yīng)越大。 然后,計算NUMCpath(transt(vi,v j,m,type,pri))條候選路徑的路由后網(wǎng)絡(luò)基尼系數(shù)。對計算得到的網(wǎng)絡(luò)基尼系數(shù)進行升序排序整理,選擇排名在前NUMpath(transt(vi,v j,m,type,pri))條的路徑作為本次交易路徑。 在ERS_PCN 策略中,為了避免多個交易同時使用某一鏈路導(dǎo)致資金的暫時性短缺,交易到達某一節(jié)點時需要計算該節(jié)點與下一跳節(jié)點之間的托管金額是否滿足交易需求,如果滿足則轉(zhuǎn)發(fā)至下一跳,否則交易在該節(jié)點處進行排隊,并為隊列中的每一筆交易設(shè)置一個時間閾值,如果在閾值范圍內(nèi)該節(jié)點與下一跳節(jié)點之間流入足夠的資金,業(yè)務(wù)沿著原路徑轉(zhuǎn)發(fā),否則以該節(jié)點為源節(jié)點,利用算法3為其計算新的轉(zhuǎn)發(fā)路徑。 為了驗證所提ERS_PCN 策略的優(yōu)越性,本文利用python 的networkx 庫模擬網(wǎng)絡(luò)拓撲來構(gòu)建實驗。使用一臺Linux 服務(wù)器作為硬件運行環(huán)境,服務(wù)器采用Centos 系統(tǒng),32 GB 內(nèi)存。本文分別采用small-world 和scale-free 這2 個拓撲,節(jié)點個數(shù)均為300 個,small-world 網(wǎng)絡(luò)拓撲的節(jié)點平均度數(shù)為4,scale-free 網(wǎng)絡(luò)拓撲的節(jié)點平均度數(shù)為3[21]。本節(jié)分別從交易成功率和網(wǎng)絡(luò)基尼系數(shù)2 個方面進行算法的仿真,并與Dijkstra 算法[22]和Spider 算法[7]進行了對比。其中,交易成功率指一段時間內(nèi)成功交易的個數(shù)占總交易請求個數(shù)的比值。本文仿真參數(shù)設(shè)置如表1 所示。 表1 仿真參數(shù)設(shè)置 瑞波幣是Ripple 網(wǎng)絡(luò)[21]內(nèi)的流動性代幣,可以作為各類貨幣之間兌換的中間品。本文從Ripple 網(wǎng)絡(luò)收集了現(xiàn)實世界中的付款數(shù)據(jù),并以瑞波幣作為PCN 中的流動代幣。為此,本文檢索了2020 年12月31 日發(fā)生的所有瑞波幣交易,通過隨機抽樣從該數(shù)據(jù)集中選擇交易。實驗中交易數(shù)量以120 個為步長,每秒到達PCN 的交易個數(shù)從120 個依次遞增到720 個,對每個交易數(shù)量進行50 次重復(fù)實驗,保證實驗結(jié)果的有效性。 small-world 拓撲下每秒到達PCN 不同交易個數(shù)時ERS_PCN 算法與Dijkstra 算法及Spider 算法的交易成功率對比情況如圖6 所示,此時設(shè)置網(wǎng)絡(luò)中各節(jié)點在各鏈路的平均托管金額為10 個瑞波幣。從圖6 可以看出,隨著交易個數(shù)的增加,ERS_PCN算法的交易成功率均高于Dijkstra 算法及Spider 算法,一直保持穩(wěn)定的交易成功率,其他算法性能則會出現(xiàn)持續(xù)下降的趨勢,交易成功率差值隨著交易個數(shù)的增加而增大。這是因為ERS_PCN 算法結(jié)合了多路徑轉(zhuǎn)發(fā)算法和信道均衡選路算法,將交易劃分為多個交易單元,降低了因鏈路資金不足而交易失敗的概率,同時在選路時保證信道均衡,減少了因信道失衡導(dǎo)致的交易失敗。當交易個數(shù)為720 個時,ERS_PCN 算法的交易成功率較Dijkstra 算法增加了約180%,較Spider 算法增加了約78%。 圖6 small-world 下ERS_PCN 與Dijkstra 算法、Spider 算法的交易成功率對比 small-world 拓撲下每秒到達PCN 不同交易個數(shù)時ERS_PCN 算法與Dijkstra 算法及Spider 算法的網(wǎng)絡(luò)基尼系數(shù)對比情況如圖7 所示。為了保證交易全部成功,此時設(shè)置網(wǎng)絡(luò)中各節(jié)點在各鏈路的平均托管金額為100 個瑞波幣。從圖7 可以看出,不同交易個數(shù)時,ERS_PCN 算法的網(wǎng)絡(luò)基尼系數(shù)均低于Dijkstra 算法和Spider 算法。并且隨著交易個數(shù)的增加,ERS_PCN 算法的網(wǎng)絡(luò)基尼系數(shù)呈現(xiàn)較為緩慢的增長速度,3 種算法間的網(wǎng)絡(luò)基尼系數(shù)差值的絕對值呈現(xiàn)逐漸增大的趨勢,說明本文算法可以在一定程度上維持PCN 信道長時間穩(wěn)定運行。當交易個數(shù)為720 個時,ERS_PCN 算法的網(wǎng)絡(luò)基尼系數(shù)較Dijkstra 算法減小了約150%,較Spider算法減小了約45%。 圖7 small-world 下ERS_PCN 與Dijkstra 算法、Spider 算法的網(wǎng)絡(luò)基尼系數(shù)對比 與此同時,本文采用相同的方法驗證了scale-free 拓撲下ERS_PCN 算法的性能,結(jié)果分別如圖8 和圖9 所示。 圖8 scale-free 下ERS_PCN 與Dijkstra 算法、Spider 算法的交易成功率對比 圖9 scale-free 下ERS_PCN 與Dijkstra 算法、Spider 算法的網(wǎng)絡(luò)基尼系數(shù)對比 從圖8 可以看出,ERS_PCN 算法在scale-free網(wǎng)絡(luò)拓撲下仍可以表現(xiàn)出穩(wěn)定的交易成功率。這是因為該算法實現(xiàn)了多路徑轉(zhuǎn)發(fā)算法與信道均衡選路算法的結(jié)合,減少了因鏈路資金不足與信道失衡導(dǎo)致的交易失敗。當交易個數(shù)為 720 個時,ERS_PCN算法的交易成功率較Dijkstra算法增加了約100%,較Spider 算法增加了約66%。從圖9 可以看出,在scale-free 網(wǎng)絡(luò)拓撲下ERS_PCN 算法的網(wǎng)絡(luò)基尼系數(shù)仍低于Dijkstra 算法和Spider 算法。隨著交易個數(shù)的增加,ERS_PCN 算法的網(wǎng)絡(luò)基尼系數(shù)增長較緩慢,但3 種算法間的網(wǎng)絡(luò)基尼系數(shù)差值的絕對值呈現(xiàn)逐漸增大的趨勢。當交易個數(shù)為720個時,ERS_PCN算法的網(wǎng)絡(luò)基尼系數(shù)較Dijkstra算法減小了約100%,較Spider 算法減小了約44%。 本文提出了一種PCN 的高效路由策略,該策略由差異化專用信道服務(wù)算法、多路徑轉(zhuǎn)發(fā)算法和信道均衡選路算法3 個部分組成。通過差異化專用信道服務(wù)算法為高優(yōu)先級業(yè)務(wù)建立專用信道,保證服務(wù)質(zhì)量。多路徑轉(zhuǎn)發(fā)算法將業(yè)務(wù)劃分為TRANS_UINT 大小的交易單元獨立傳輸,增加交易成功率。信道均衡選路算法采用網(wǎng)絡(luò)基尼系數(shù)作為信道是否均衡的指標進行選路,減少鏈上交易次數(shù),維持付費信道的長時間穩(wěn)定性運行。針對提出的方案,本文分別以交易成功率和網(wǎng)絡(luò)基尼系數(shù)作為評價指標,在 small-world 網(wǎng)絡(luò)和scale-free 網(wǎng)絡(luò)上對算法的性能進行了仿真。仿真結(jié)果表明,本文方案可以在增加交易成功率的同時,增加網(wǎng)絡(luò)均衡性。small-world 網(wǎng)絡(luò)下,當每秒到達網(wǎng)絡(luò)的交易個數(shù)為720 個時,ERS_PCN 算法的交易成功率較Dijkstra 算法增加了約180%,較Spider 算法增加了約78%;網(wǎng)絡(luò)基尼系數(shù)較Dijkstra 算法減小了約150%,較Spider 算法減小了約45%。2.5 PCN 基尼系數(shù)模型
3 策略設(shè)計與實現(xiàn)
3.1 差異化專用信道服務(wù)算法
3.2 多路徑轉(zhuǎn)發(fā)算法
3.3 信道均衡選路算法
3.4 PCN 高效路由策略實現(xiàn)
4 仿真分析
5 結(jié)束語