袁紅莉 張大鵬 金順福
(燕山大學(xué)信息科學(xué)與工程學(xué)院 秦皇島 066004)
區(qū)塊鏈?zhǔn)且粋€(gè)由系統(tǒng)中所有節(jié)點(diǎn)集體維護(hù)的分布式數(shù)據(jù)庫(kù),具有去中心化、不可篡改、數(shù)據(jù)透明及交易安全等特性。區(qū)塊鏈概念在2008年被提出,并于2009年1月正式發(fā)布[1]。如今歷經(jīng)10余年的發(fā)展,區(qū)塊鏈技術(shù)不斷推廣,其應(yīng)用已延伸到金融、醫(yī)療、通信等領(lǐng)域。
區(qū)塊鏈技術(shù)憑借自身的優(yōu)勢(shì)推動(dòng)著眾多領(lǐng)域的創(chuàng)新。Khaqqi等人[2]提出了一種基于信息化與自動(dòng)化的新型排放交易政策(emission trading scheme,ETS),利用區(qū)塊鏈技術(shù)和防篡改智能儀表保證了數(shù)據(jù)的透明性和可信性。基于多準(zhǔn)則分析法的結(jié)果表明,所提方案可以實(shí)現(xiàn)減少排放量并鼓勵(lì)長(zhǎng)期采用減排技術(shù)的雙重目標(biāo)。Zyskind等人[3]建立了一個(gè)去中心化的個(gè)人數(shù)據(jù)管理平臺(tái),將區(qū)塊鏈與區(qū)塊外存儲(chǔ)相結(jié)合,使用戶在接受第三方服務(wù)時(shí),可以擁有和控制自己的數(shù)據(jù),提高了數(shù)據(jù)的安全性。Fu和Fang[4]在文獻(xiàn)[3]的基礎(chǔ)上引入權(quán)益證明(proof-of-stake,POS)與可信任證明(proof-of-credibility score,POCS)的混合機(jī)制進(jìn)行“挖礦”,基于節(jié)點(diǎn)之間的連接程度衡量節(jié)點(diǎn)的工作量。上述文獻(xiàn)主要集中于區(qū)塊鏈技術(shù)的應(yīng)用研究。
自2016年起,部分學(xué)者基于排隊(duì)論方法對(duì)區(qū)塊鏈基礎(chǔ)理論進(jìn)行了研究。Kasahara等人[5,6]建立了一個(gè)批量服務(wù)的M/Gb/1模型,使用補(bǔ)充變量法得到了穩(wěn)態(tài)下系統(tǒng)中的平均交易數(shù)及交易平均確認(rèn)時(shí)間。然而,該模型沒(méi)有體現(xiàn)區(qū)塊的生成過(guò)程與區(qū)塊鏈的建立過(guò)程。Li等人[7]提出了一種批量服務(wù)的GI/M/1型隨機(jī)排隊(duì)模型,用矩陣幾何解方法得到了穩(wěn)態(tài)下系統(tǒng)中的平均交易數(shù)、每個(gè)區(qū)塊內(nèi)的平均交易數(shù)及交易平均確認(rèn)時(shí)間。與文獻(xiàn)[5,6]相比,該模型的服務(wù)過(guò)程包含了區(qū)塊的生成過(guò)程和區(qū)塊鏈的建立過(guò)程2個(gè)階段。要指出的是,上述文獻(xiàn)均未考慮空塊coinbase交易,并缺少對(duì)礦工收益的研究。
本文將區(qū)塊的生成過(guò)程抽象為休假,區(qū)塊鏈的建立過(guò)程抽象為服務(wù),考慮區(qū)塊容量,在離散時(shí)域下建立帶有批量服務(wù)及空載服務(wù)期的G-限量休假模型。利用再生循環(huán)法,求得穩(wěn)態(tài)下交易平均確認(rèn)時(shí)間,研究區(qū)塊容量、挖礦系數(shù)與交易到達(dá)率對(duì)區(qū)塊鏈系統(tǒng)性能的影響。結(jié)合博弈理論,構(gòu)建收益函數(shù),在完全不可見(jiàn)情形下得到交易的納什均衡到達(dá)率與社會(huì)最優(yōu)到達(dá)率。改進(jìn)布谷鳥(niǎo)尋優(yōu)算法,以區(qū)塊鏈系統(tǒng)社會(huì)收益最大化為目標(biāo),面向交易制定合理的收費(fèi)方案。
區(qū)塊鏈?zhǔn)且环N把區(qū)塊以鏈的方式組織在一起的數(shù)據(jù)結(jié)構(gòu),主要解決在沒(méi)有第三方信任機(jī)構(gòu)參與的情況下如何在所有節(jié)點(diǎn)之間達(dá)成共識(shí)的問(wèn)題。專注于一個(gè)礦工,給出區(qū)塊鏈中的交易確認(rèn)過(guò)程如圖1所示。
圖1 區(qū)塊鏈中的交易確認(rèn)過(guò)程
區(qū)塊鏈系統(tǒng)中的交易不斷產(chǎn)生。用戶產(chǎn)生某筆交易后,需要廣播該交易至區(qū)塊鏈系統(tǒng)中的所有礦工。每個(gè)礦工先進(jìn)行交易驗(yàn)證,再把驗(yàn)證通過(guò)的交易放入各自的內(nèi)存池中。爭(zhēng)奪區(qū)塊記賬權(quán)的礦工從內(nèi)存池中選出交易構(gòu)建候選區(qū)塊,并通過(guò)求解數(shù)學(xué)難題,即挖礦過(guò)程,進(jìn)行工作量證明。獲勝礦工的候選區(qū)塊升級(jí)為新區(qū)塊,同時(shí)將新區(qū)塊廣播給其余未獲勝礦工。未獲勝礦工首先將各自的候選區(qū)塊作廢并驗(yàn)證收到的新區(qū)塊,然后將驗(yàn)證結(jié)果發(fā)送給獲勝礦工。只有當(dāng)成功驗(yàn)證新區(qū)塊的礦工數(shù)目超過(guò)系統(tǒng)規(guī)定的閾值時(shí),獲勝礦工才可以將新區(qū)塊接入?yún)^(qū)塊鏈,并反饋新區(qū)塊確認(rèn)消息給其余礦工。獲勝礦工之外的所有礦工收到新區(qū)塊確認(rèn)消息后,從各自的內(nèi)存池中清除新區(qū)塊中所含的交易。若新區(qū)塊是空塊,獲勝礦工直接將新區(qū)塊接入?yún)^(qū)塊鏈。
由圖1可知,區(qū)塊鏈交易的一個(gè)生命周期由交易產(chǎn)生、交易傳播、交易放入?yún)^(qū)塊及區(qū)塊接入?yún)^(qū)塊鏈構(gòu)成。
在區(qū)塊鏈系統(tǒng)中,區(qū)塊容量、挖礦系數(shù)及單位時(shí)間內(nèi)到達(dá)的交易數(shù)目等都會(huì)影響交易用戶的體驗(yàn)質(zhì)量(quality of experience,QoE)。為了提高區(qū)塊鏈系統(tǒng)的性能,需要建立合理的數(shù)學(xué)模型,定量刻畫(huà)交易平均確認(rèn)時(shí)間的變化趨勢(shì)。
由區(qū)塊鏈系統(tǒng)中的交易確認(rèn)過(guò)程可知,每個(gè)區(qū)塊的容量均有上限,且一個(gè)區(qū)塊內(nèi)的所有交易同時(shí)得到驗(yàn)證。將挖礦過(guò)程視為休假,空塊接入?yún)^(qū)塊鏈的過(guò)程視為空載服務(wù)期,非空新區(qū)塊的驗(yàn)證(假設(shè)每個(gè)區(qū)塊均可以通過(guò)驗(yàn)證)及接入?yún)^(qū)塊鏈的過(guò)程視為普通服務(wù)期,建立一種帶有批量服務(wù)及空載服務(wù)期的新型G-限量休假模型。該模型的狀態(tài)轉(zhuǎn)移過(guò)程如圖2所示。
圖2 新型G-限量休假模型的狀態(tài)轉(zhuǎn)移
休假期內(nèi),礦工求解數(shù)學(xué)難題。數(shù)學(xué)題越難,即挖礦系數(shù)越小,休假期越長(zhǎng)。難題求解成功后,休假結(jié)束。此時(shí),若獲勝礦工產(chǎn)生的新區(qū)塊為空塊,系統(tǒng)轉(zhuǎn)入空載服務(wù)期,否則轉(zhuǎn)入普通服務(wù)期。
若系統(tǒng)轉(zhuǎn)入空載服務(wù)期,獲勝礦工將空塊接入?yún)^(qū)塊鏈后,空載服務(wù)期結(jié)束。若系統(tǒng)轉(zhuǎn)入普通服務(wù)期,獲勝礦工之外的所有礦工驗(yàn)證非空新區(qū)塊內(nèi)的交易,獲勝礦工將非空新區(qū)塊接入?yún)^(qū)塊鏈后,普通服務(wù)期結(jié)束。任何一個(gè)服務(wù)期結(jié)束,系統(tǒng)均返回休假期,進(jìn)行下一次的挖礦過(guò)程。相鄰2次挖礦過(guò)程起始點(diǎn)之間的時(shí)間長(zhǎng)度稱為一個(gè)挖礦循環(huán)。
區(qū)塊鏈系統(tǒng)中的狀態(tài)轉(zhuǎn)移持續(xù)進(jìn)行。與已有模型不同,新型G-限量休假模型中交易驗(yàn)證呈現(xiàn)出批量服務(wù)特點(diǎn)且具有空載服務(wù)期。
在離散時(shí)間排隊(duì)系統(tǒng)中,交易的到達(dá)和離去均只能發(fā)生在單位時(shí)隙處,假設(shè)交易的到達(dá)與離去分別發(fā)生在時(shí)隙末端與時(shí)隙首端,且在該時(shí)隙末端到達(dá)的交易不會(huì)在此時(shí)隙首端離去,將會(huì)在下一個(gè)時(shí)隙首端離去。
文獻(xiàn)[5-7]對(duì)新型G-限量休假模型作出如下假設(shè)。
空載服務(wù)期與普通服務(wù)期形態(tài)相同,簡(jiǎn)稱為服務(wù)期。服務(wù)期的時(shí)間長(zhǎng)度S服從一般分布,其概率分布、均值和母函數(shù)分別為
bk=P{S=k},k≥1
令A(yù)S表示一個(gè)服務(wù)期內(nèi)到達(dá)的交易數(shù)量,其概率分布和母函數(shù)分別為
aj=P{AS=j}
休假期的時(shí)間長(zhǎng)度V服從一般分布,其概率分布、均值和母函數(shù)分別為
vk=P{V=k},k≥1
按照先到先服務(wù)的規(guī)則將交易放入?yún)^(qū)塊,且每個(gè)區(qū)塊最多可容納M個(gè)交易。將一個(gè)服務(wù)期與其后的休假期之和稱為忙循環(huán)。當(dāng)一個(gè)忙循環(huán)內(nèi)平均到達(dá)的交易數(shù)小于區(qū)塊容量,即p(E[V]+E[S]) 令Qb表示一個(gè)服務(wù)期開(kāi)始時(shí)刻系統(tǒng)內(nèi)的交易數(shù),其概率分布和母函數(shù)分別為 qk=p{Qb=k},k≥0 考慮相繼2個(gè)服務(wù)期開(kāi)始時(shí)刻系統(tǒng)內(nèi)的交易數(shù),有: 對(duì)上式取母函數(shù),可得: (1) 引入部分母函數(shù),可得: 式(1)可改寫(xiě)為 (2) 引理1對(duì)任意小實(shí)數(shù)ε>0,當(dāng)|z|=1+ε時(shí),一個(gè)非負(fù)整數(shù)隨機(jī)變量C的母函數(shù)滿足如下不等式: |C(z)|≤1+εE[C]+ο(ε) 其中,|C(z)|為母函數(shù)C(z)的模,E[C]為隨機(jī)變量C的均值。 證明令一個(gè)非負(fù)整數(shù)隨機(jī)變量C的概率分布和母函數(shù)分別為ck和C(z)。 ck=P{C=k},k≥0 對(duì)任意小實(shí)數(shù)ε>0,當(dāng)|z|=1+ε時(shí),有: (3) 根據(jù)泰勒公式[8],可得: =1+εE[C]+ο(ε) (4) 綜合式(3)和式(4),可得: |C(z)|≤1+εE[C]+ο(ε) 證畢。 由式(2)可知,為了確定服務(wù)期開(kāi)始時(shí)刻的交易數(shù)母函數(shù)Qb(z),必須給出部分母函數(shù)QM(z)的系數(shù)q0,q1, …,qM-1。 在式(2)的分母中,令g(z)=-S(Λ(z))V(Λ(z)),由引理1可得: |g(z)|≤1+εp(E[V]+E[S])+ο(ε) (5) 令f(z)=zM,根據(jù)泰勒公式[8],f(z)表示為 |f(z)|=(1+ε)M=1+εM+ο(ε) (6) 綜合式(5)和式(6),在系統(tǒng)穩(wěn)態(tài)條件p(E[V]+E[S]) f(z)在|z|=1+ε內(nèi)有M個(gè)零點(diǎn)。由Rouche定理[9]可知,g(z)+f(z)在|z|=1+ε內(nèi)也有M個(gè)零點(diǎn),即式(2)的分母有M個(gè)零點(diǎn)。略去零點(diǎn)z=1,其他M-1個(gè)零點(diǎn)記為zm,m=1,…,M-1。 式(2)的分子與分母有相同的零點(diǎn),給出M-1個(gè)方程如下: (7) 在式(2)中,令z=1,使用洛必達(dá)法則,給出方程如下: (8) 結(jié)合式(7)和式(8)可唯一確定部分母函數(shù)QM(z)的系數(shù)q0,q1,…,qM-1,進(jìn)而可以給出服務(wù)期開(kāi)始時(shí)刻交易數(shù)母函數(shù)Qb(z)。 交易確認(rèn)時(shí)間定義為從一個(gè)交易進(jìn)入?yún)^(qū)塊鏈系統(tǒng)到包含這筆交易的區(qū)塊接入到區(qū)塊鏈為止的時(shí)間間隔,記為T(mén)。 處理非空竭休假模型的常用工具之一是再生循環(huán)法[10]。使用該方法需要給出一個(gè)服務(wù)期內(nèi)平均服務(wù)的交易數(shù)和每個(gè)交易服務(wù)完成時(shí)刻系統(tǒng)內(nèi)尚存交易數(shù)的母函數(shù)。 E[Φ]=p(E[V]+E[S]) (9) 一個(gè)區(qū)塊內(nèi)的交易是批量服務(wù)的,為了方便解析,人為設(shè)定區(qū)塊內(nèi)的交易順序,但是不同交易服務(wù)完成時(shí)刻的間隔為0。 令Ln表示一個(gè)區(qū)塊內(nèi)的第n個(gè)交易服務(wù)完成時(shí)刻系統(tǒng)內(nèi)尚存交易的數(shù)量,則Ln=Qb+As-n,n=1,…,Φ。Ln的母函數(shù)Ln(z)為 Ln(z)=E[zQb+As-n] 利用再生循環(huán)法和PASTA性質(zhì)[11],得到穩(wěn)態(tài)下任意時(shí)刻系統(tǒng)內(nèi)的交易數(shù)母函數(shù)L(z)為 將式(2)代入上式,整理后可得: L(z)= (10) 對(duì)式(10)求導(dǎo),令z=1,可得任意時(shí)刻系統(tǒng)內(nèi)的交易數(shù)均值E[L]為 (11) 由Little公式[12]可得,交易平均確認(rèn)時(shí)間E[T]為 (12) 直觀地,交易平均確認(rèn)時(shí)間隨交易到達(dá)率單調(diào)不減。為了在不同的區(qū)塊容量與挖礦系數(shù)下定量刻畫(huà)交易平均確認(rèn)時(shí)間的變化趨勢(shì),需進(jìn)行系統(tǒng)實(shí)驗(yàn)。 實(shí)驗(yàn)所用CPU型號(hào)為Intel(R) Core(TM) i7-4790,CPU運(yùn)行頻率為3.60 GHz,系統(tǒng)內(nèi)存為8.00 GB。數(shù)值實(shí)驗(yàn)在Matlab 2016a環(huán)境中運(yùn)行,仿真實(shí)驗(yàn)在Myeclipse 2014環(huán)境中采用Java語(yǔ)言實(shí)現(xiàn)。 文獻(xiàn)[13,14]假設(shè)挖礦過(guò)程服從參數(shù)為θ的幾何分布,服務(wù)期的時(shí)間長(zhǎng)度服從參數(shù)為μ的幾何分布,進(jìn)行數(shù)值實(shí)驗(yàn)與仿真實(shí)驗(yàn)。在穩(wěn)態(tài)條件的約束下,實(shí)驗(yàn)參數(shù)設(shè)定為服務(wù)強(qiáng)度μ=0.04,區(qū)塊容量M=50、100,挖礦系數(shù)θ=0.06、 0.08、 0.10、 0.12。 針對(duì)不同的區(qū)塊容量M,圖3刻畫(huà)了挖礦系數(shù)θ與交易到達(dá)率p對(duì)交易平均確認(rèn)時(shí)間E[T]的影響。 圖3表明,當(dāng)區(qū)塊容量M與挖礦系數(shù)θ固定時(shí),交易平均確認(rèn)時(shí)間E[T]隨交易到達(dá)率p的增大呈上升趨勢(shì)。交易到達(dá)率越大,區(qū)塊鏈系統(tǒng)中的交易數(shù)越多。由于一個(gè)區(qū)塊所能容納的交易數(shù)是有限的,系統(tǒng)中的交易數(shù)越多,服務(wù)完成全部交易所需要的區(qū)塊數(shù)越多,每個(gè)交易平均經(jīng)歷的挖礦循環(huán)次數(shù)也就越多。因而交易平均確認(rèn)時(shí)間呈上升趨勢(shì)。 (a) M=50 (b) M=100 縱向分析圖3,在相同的區(qū)塊容量M與交易到達(dá)率p下,挖礦系數(shù)θ越大,交易平均確認(rèn)時(shí)間E[T]越小。挖礦系數(shù)大,意味著礦工求解數(shù)學(xué)難題的時(shí)間短,即挖礦過(guò)程短,交易可以更早地放入?yún)^(qū)塊并得到確認(rèn)。因而交易平均確認(rèn)時(shí)間呈下降趨勢(shì)。 對(duì)比圖3(a)與圖3(b),在相同的挖礦系數(shù)θ與交易到達(dá)率p下,區(qū)塊容量M越大,交易平均確認(rèn)時(shí)間E[T]越小。一個(gè)區(qū)塊所能容納的交易數(shù)越多,服務(wù)完成全部交易所需的區(qū)塊數(shù)越少,每個(gè)交易平均經(jīng)歷的挖礦循環(huán)越少,因而交易平均確認(rèn)時(shí)間下降。隨著交易到達(dá)率p的增大,區(qū)塊容量M對(duì)交易平均確認(rèn)時(shí)間E[T]的影響變大。當(dāng)交易到達(dá)率較小時(shí),系統(tǒng)中的交易幾乎可以放入一個(gè)區(qū)塊內(nèi),此時(shí)區(qū)塊容量對(duì)交易平均確認(rèn)時(shí)間的影響小。當(dāng)交易到達(dá)率較大時(shí),往往需要多個(gè)區(qū)塊才能服務(wù)完成全部交易。區(qū)塊容量越小,所需區(qū)塊數(shù)越多,每個(gè)交易平均經(jīng)歷的挖礦循環(huán)越多,此時(shí)區(qū)塊容量對(duì)交易平均確認(rèn)時(shí)間的影響變大。 在區(qū)塊鏈系統(tǒng)中,交易到達(dá)率越小,交易平均確認(rèn)時(shí)間越短,用戶體驗(yàn)的服務(wù)質(zhì)量越好。而交易到達(dá)率越大,區(qū)塊鏈系統(tǒng)的收益越高。綜合考慮區(qū)塊鏈用戶的體驗(yàn)質(zhì)量與區(qū)塊鏈系統(tǒng)的收益,需要研究交易的納什均衡行為與社會(huì)最優(yōu)行為。 每個(gè)交易都愿意進(jìn)入?yún)^(qū)塊鏈系統(tǒng)得到服務(wù),但又不愿意承受過(guò)長(zhǎng)的等待時(shí)間。假設(shè)交易到達(dá)區(qū)塊鏈系統(tǒng)時(shí),在完全不可見(jiàn)情形下,每個(gè)交易均從個(gè)體利益的角度出發(fā),決定是否進(jìn)入?yún)^(qū)塊鏈系統(tǒng)接受服務(wù)[15]。 交易的個(gè)人收益定義為完成服務(wù)所獲得的回報(bào)減去等待確認(rèn)所花費(fèi)的成本。交易的個(gè)人收益Gind(p)表示如下。 Gind(p)=R-CE[T] 其中,R為交易完成服務(wù)所獲得的回報(bào),C為交易在區(qū)塊鏈系統(tǒng)滯留時(shí)單位時(shí)間所花費(fèi)的成本。為了保證新到達(dá)的交易一定選擇進(jìn)入空的區(qū)塊鏈系統(tǒng),須滿足R>CE[T]。 考慮系統(tǒng)的穩(wěn)態(tài)條件,設(shè)置交易到達(dá)率的上界為pmax,分析交易的納什均衡到達(dá)率。 當(dāng)Gind(pmax)≥0時(shí),區(qū)塊鏈系統(tǒng)的全部交易都將獲得非負(fù)的收益,即每個(gè)交易的收益為非負(fù)值。交易以概率qe=1進(jìn)入系統(tǒng)為一個(gè)均衡策略,區(qū)塊鏈系統(tǒng)的納什均衡到達(dá)率pe=pmax。 當(dāng)Gind(0)≤0時(shí),即使進(jìn)入?yún)^(qū)塊鏈系統(tǒng)的交易可以直接接受服務(wù),其所獲收益也為非正值。交易以概率qe=0進(jìn)入系統(tǒng)為一個(gè)均衡策略,區(qū)塊鏈系統(tǒng)的納什均衡到達(dá)率pe=0。 當(dāng)Gind(0)≤Gind(p)≤Gind(pmax)時(shí),只有部分進(jìn)入?yún)^(qū)塊鏈系統(tǒng)的交易可以獲得非負(fù)的收益。交易以概率0 為了揭示交易個(gè)人收益的變化規(guī)律,進(jìn)行數(shù)值實(shí)驗(yàn)。沿用第3節(jié)的實(shí)驗(yàn)參數(shù),并設(shè)置R=350,C=6。在M=50下,交易個(gè)人收益Gind(p)隨交易到達(dá)率p的變化情況如圖4所示。 圖4 交易個(gè)人收益的變化趨勢(shì) 由圖4觀察到,對(duì)于所有的挖礦系數(shù)θ,交易個(gè)人收益Gind(p)均隨交易到達(dá)率p的增大呈下降趨勢(shì)。隨著交易到達(dá)率的增加,交易平均確認(rèn)時(shí)間延長(zhǎng),交易所花費(fèi)的時(shí)間成本提高,因而交易個(gè)人收益下降。個(gè)人收益為0時(shí)所對(duì)應(yīng)的交易到達(dá)率即為納什均衡到達(dá)率。在相同的區(qū)塊容量M下,挖礦系數(shù)θ越大,納什均衡到達(dá)率pe越大。交易完成服務(wù)所獲得的回報(bào)是固定的,挖礦系數(shù)越大,交易所花費(fèi)的成本越小。增大交易到達(dá)率,直至成本與服務(wù)所獲得的回報(bào)持平,即達(dá)到均衡狀態(tài)。因此納什均衡到達(dá)率變大。 區(qū)塊鏈系統(tǒng)的社會(huì)收益定義為單位時(shí)間內(nèi)所有交易的個(gè)人收益與獲勝礦工獲得的區(qū)塊獎(jiǎng)勵(lì)之和。社會(huì)收益Gsoc(p)表示如下: Gsoc(p)=p(R-CE[T])+Q (13) 其中,Q為單位時(shí)間內(nèi)獲勝礦工獲得的區(qū)塊獎(jiǎng)勵(lì)。 通過(guò)最大化社會(huì)收益Gsoc(p),可以得到交易的社會(huì)最優(yōu)到達(dá)率p*表示如下。 (14) 從式(12)無(wú)法得到交易到達(dá)率p的顯示解,同時(shí)式(13)中社會(huì)收益Gsoc(p)關(guān)于p的單調(diào)性也無(wú)法確定。為了得到較準(zhǔn)確的社會(huì)最優(yōu)到達(dá)率,使用智能尋優(yōu)算法。 布谷鳥(niǎo)尋優(yōu)算法[16]的全局搜索能力強(qiáng),但收斂速度較慢。為了提高收斂速度同時(shí)也能獲得較高的尋優(yōu)精度,引入自適應(yīng)步長(zhǎng)與動(dòng)態(tài)步長(zhǎng)縮放因子改進(jìn)布谷鳥(niǎo)尋優(yōu)算法,沿用第4.1節(jié)的實(shí)驗(yàn)參數(shù),并設(shè)置Q=10,求解不同挖礦系數(shù)下的社會(huì)最優(yōu)到達(dá)率。改進(jìn)的布谷鳥(niǎo)尋優(yōu)算法的主要步驟如下。 步驟 1初始化鳥(niǎo)窩數(shù)量n,宿主發(fā)現(xiàn)外來(lái)蛋的概率pa,鳥(niǎo)窩位置的上界Ub與下界Lb,當(dāng)前迭代次數(shù)Gen=0,最大迭代次數(shù)MaxGen,步長(zhǎng)s的最大值smax與最小值smin,步長(zhǎng)縮放因子r的最大值rmax與最小值rmin。 步驟 2初始化鳥(niǎo)窩位置nesti。 fori=1:n nesti=Lb+(Ub-Lb)×rand endfor 步驟 3更新鳥(niǎo)窩位置對(duì)應(yīng)的目標(biāo)函數(shù)值fnewi。 fori=1:n 計(jì)算第i個(gè)鳥(niǎo)窩位置所對(duì)應(yīng)的平均隊(duì)長(zhǎng) %平均隊(duì)長(zhǎng)由式(11)得到 計(jì)算第i個(gè)鳥(niǎo)窩位置所對(duì)應(yīng)的平均確認(rèn)時(shí)間 %平均確認(rèn)時(shí)間根據(jù)Little公式得到 fnewi=Gsoc(nesti) %社會(huì)收益由式(13)得到 endfor 步驟 4尋找當(dāng)前最優(yōu)鳥(niǎo)窩位置bnest,計(jì)算當(dāng)前最大目標(biāo)函數(shù)值fmax。 fmax=Gsoc(best) Gen=Gen+1 %更新當(dāng)前迭代次數(shù) ifGen>MaxGen then跳轉(zhuǎn)到步驟 7 endif 步驟5使用自適應(yīng)步長(zhǎng)s更新鳥(niǎo)窩位置。 fori=1:n di=(nesti-best)/dmax %dmax表示當(dāng)前最優(yōu)位置與其余鳥(niǎo) 窩位置距離的最大值 si=smin+(smax-smin)×di nesti=best+si endfor 步驟 6以概率pa更新鳥(niǎo)窩位置。 fori=1:n ifrand>pa r=rmax-(rmax-rmin)×Gen/MaxGen %確定動(dòng)態(tài)步長(zhǎng)縮放因子 si=r×(nestm-nestw) nesti=nesti+si endif endfor 返回步驟 3 步驟7輸出鳥(niǎo)窩位置best為社會(huì)最優(yōu)到達(dá)率p*,目標(biāo)函數(shù)值fmax為最大社會(huì)收益Gsoc(p*)。 基于參數(shù)n=10,rmax=0.999999,MaxGen=40,pa=0.25,Ub=0.9,Lb=0.1,smax=0.01,smin=0.01,rmin=0.000001,利用改進(jìn)的布谷鳥(niǎo)算法解出社會(huì)最優(yōu)到達(dá)率與最大社會(huì)收益如表1所示。 表1 社會(huì)最優(yōu)到達(dá)率 比較圖4的納什均衡到達(dá)率與表1的社會(huì)最優(yōu)到達(dá)率,觀察到在相同的挖礦系數(shù)下,交易的納什均衡到達(dá)率大于社會(huì)最優(yōu)到達(dá)率。為了降低交易的納什均衡到達(dá)率使之與社會(huì)最優(yōu)到達(dá)率一致,制定交易費(fèi)收取方案, 實(shí)現(xiàn)區(qū)塊鏈系統(tǒng)的社會(huì)最優(yōu)。 (15) =p(R-CE[T])+Q (16) 比較式(15)與式(16)可以發(fā)現(xiàn),區(qū)塊鏈系統(tǒng)的社會(huì)收益并不受交易費(fèi)的影響。區(qū)塊鏈系統(tǒng)包括交易與礦工2部分。面向交易收取的費(fèi)用全部轉(zhuǎn)移給了礦工,因此區(qū)塊鏈系統(tǒng)的社會(huì)收益不變。 f=Gind(p*) 使用與圖4相同的實(shí)驗(yàn)參數(shù),基于不同的挖礦系數(shù)計(jì)算出交易費(fèi)如表2所示。 表2 交易費(fèi)數(shù)值結(jié)果 從表2 可以看出,隨著挖礦系數(shù)θ的增大,交易費(fèi)f呈上升趨勢(shì)。挖礦系數(shù)越大,即礦工求解數(shù)學(xué)難題越快,交易平均確認(rèn)時(shí)間越短,可能有更多的交易到達(dá)系統(tǒng)。為控制交易到達(dá)率,使之與社會(huì)最優(yōu)到達(dá)率一致,需設(shè)置較高的交易費(fèi)。 基于區(qū)塊鏈系統(tǒng)的交易確認(rèn)過(guò)程,提出了一種帶有批量服務(wù)及空載服務(wù)期的G-限量休假模型,研究交易納什均衡到達(dá)率與社會(huì)最優(yōu)到達(dá)率。采用再生循環(huán)法,給出了穩(wěn)態(tài)下交易平均確認(rèn)時(shí)間的表達(dá)式。進(jìn)行數(shù)值實(shí)驗(yàn)與仿真實(shí)驗(yàn),研究了區(qū)塊容量、挖礦系數(shù)及交易到達(dá)率對(duì)交易平均確認(rèn)時(shí)間的影響。構(gòu)建交易的個(gè)人收益函數(shù),給出了交易的納什均衡到達(dá)率。構(gòu)建區(qū)塊鏈系統(tǒng)的社會(huì)收益函數(shù),改進(jìn)布谷鳥(niǎo)尋優(yōu)算法,得到了交易的社會(huì)最優(yōu)到達(dá)率。實(shí)驗(yàn)結(jié)果表明,在相同的挖礦系數(shù)下,交易的納什均衡到達(dá)率高于社會(huì)最優(yōu)到達(dá)率?;谠撈睿贫ń灰踪M(fèi)方案,實(shí)現(xiàn)區(qū)塊鏈系統(tǒng)社會(huì)收益的最大化。2.1 服務(wù)期開(kāi)始時(shí)刻的交易數(shù)母函數(shù)
2.2 交易平均確認(rèn)
3 交易平均確認(rèn)時(shí)間的系統(tǒng)實(shí)驗(yàn)
4 交易費(fèi)方案
4.1 納什均衡行為
4.2 社會(huì)最優(yōu)行為
4.3 交易費(fèi)
5 結(jié) 論