一、文獻(xiàn)簡介
1.1 文獻(xiàn)標(biāo)題
SkyChain: A Deep Reinforcement Learning-Empowered Dynamic Blockchain Sharding System
1.2 作者
中山大學(xué)系統(tǒng)科學(xué)與工程學(xué)院,廣州中國數(shù)據(jù)與計(jì)算機(jī)學(xué)院
香港理工大學(xué)計(jì)算學(xué)系,中山大學(xué)數(shù)字生活國家工程研究中心
1.3 年份:2020年8月
1.4 期刊:ICPP
二、引言及重要信息
2.1 研究背景
1)分片是將網(wǎng)絡(luò)劃分為多個不相交的組,并行處理事務(wù),以提高吞吐量。文章主要創(chuàng)新是基于的動態(tài)分片,可以更好地應(yīng)對區(qū)塊鏈的動態(tài)環(huán)境。在分片系統(tǒng)中,系統(tǒng)將被劃分為獨(dú)立的較小部分,稱為分片(或委員會),其中任何一個都按分片中的節(jié)點(diǎn)維護(hù)一個獨(dú)立的分類賬。不同分片的參與者可以并行處理事務(wù),這意味著可以在整個系統(tǒng)中并行創(chuàng)建和驗(yàn)證多個塊,事務(wù)吞吐量可以顯著提高。
2)區(qū)塊鏈?zhǔn)莿討B(tài)的是指:區(qū)塊鏈節(jié)點(diǎn)可以加入和離開系統(tǒng),而惡意攻擊者可以主動破壞誠實(shí)的節(jié)點(diǎn),這可以動態(tài)地影響區(qū)塊鏈系統(tǒng)中的節(jié)點(diǎn)數(shù)量。
3)動態(tài)中面臨的挑戰(zhàn):重新設(shè)置分片頻率、分片數(shù)量、調(diào)整塊大小
2.2 研究目的和意義
2.3 文獻(xiàn)的創(chuàng)新點(diǎn)
提出了SkyChain,這是第一個動態(tài)公共區(qū)塊鏈分片協(xié)議,使區(qū)塊鏈系統(tǒng)能夠根據(jù)當(dāng)前系統(tǒng)狀態(tài)自動生成分片。
因?yàn)閰^(qū)塊鏈分片系統(tǒng)的動態(tài)特性可以建模為馬爾可夫決策過程(MDP),并且區(qū)塊鏈系統(tǒng)中的環(huán)境是高維的,因此我們利用深度強(qiáng)化學(xué)習(xí)(DRL)方法來獲得不同環(huán)境狀態(tài)下的最優(yōu)分片策略。深度強(qiáng)化學(xué)習(xí)可以從以前的經(jīng)驗(yàn)中學(xué)習(xí)區(qū)塊鏈分片系統(tǒng)的特點(diǎn),并根據(jù)當(dāng)前的網(wǎng)絡(luò)狀態(tài)采取適當(dāng)?shù)姆制呗裕垣@得長期的回報,并且提出了一個性能和安全性評估的優(yōu)化框架。
1)我們在公共區(qū)塊鏈中提出了第一個基于動態(tài)分片的框架,可以在區(qū)塊鏈系統(tǒng)的動態(tài)環(huán)境下保持性能和安全性之間的長期平衡。·
2)我們提出了一種自適應(yīng)分類賬協(xié)議,該協(xié)議保證根據(jù)動態(tài)分片結(jié)果有效地合并或拆分分類賬,并且沒有沖突。
3)我們量化了一個通用的分片系統(tǒng),并設(shè)計(jì)了一種基于DRL的分片方法,在區(qū)塊鏈系統(tǒng)的動態(tài)環(huán)境下動態(tài)調(diào)整重新分片的間隔、分片數(shù)量和塊大小。
三、研究內(nèi)容
3.1模型
1、基于賬戶交易模型。
2、使用DRL的方法來幫助系統(tǒng)在重構(gòu)期間動態(tài)地制定分片策略。DRL是一種獨(dú)特的機(jī)器學(xué)習(xí)類型,它將深度學(xué)習(xí)(DL)與強(qiáng)化學(xué)習(xí)(RL)相結(jié)合,以最大化代理與高維數(shù)據(jù)中環(huán)境之間交互的累積獎勵
3、環(huán)境是動態(tài)區(qū)塊鏈環(huán)境,代理由每個節(jié)點(diǎn)維護(hù)。
3.2自適應(yīng)分類賬協(xié)議
提出了一種自適應(yīng)分類賬協(xié)議,以保證根據(jù)重新分片的結(jié)果有效地合并和拆分分類賬,并且沒有沖突。
1)定義了狀態(tài)塊:為了解決重新配置節(jié)點(diǎn)(新節(jié)點(diǎn)或從原始分片切換到另一個分片的交換節(jié)點(diǎn))的快速自舉問題和分類賬合并和分裂的效率,我們定義狀態(tài)塊。與存儲交易數(shù)據(jù)的交易塊相比,分片的狀態(tài)塊記錄了分片的賬本中的最新信息,包括賬戶地址和賬戶狀態(tài)
2)sbti表示在epoch t時期的分片i的狀態(tài)塊。
3.2.1狀態(tài)塊創(chuàng)建
分片i遍歷狀態(tài)塊sbt-1的所有事務(wù),并且創(chuàng)建賬戶和地址的映射,并把映射的默克爾樹根放在sbt的頭部,并將映射放入sbt主體。然后進(jìn)行共識,達(dá)成協(xié)議之后,就可以丟棄sbt-1的主體。
狀態(tài)塊幫助分片的重配置節(jié)點(diǎn)快速獲得整個賬本狀態(tài),因?yàn)檫@些節(jié)點(diǎn)只需要下載最新的狀態(tài)塊來同步分片的當(dāng)前狀態(tài)。此外,狀態(tài)塊可以簡化分類賬合并和拆分。
3.2.2合并過程
綠色由分片i維護(hù),藍(lán)色由分片j維護(hù),黃色由分片k維護(hù)
1)在t時刻的重新配置階段,分片i創(chuàng)建狀態(tài)塊sbti,j同樣創(chuàng)建sbtj。
2)DRL代理達(dá)成共識之后,分片i和j交換狀態(tài)塊的報頭,并創(chuàng)建包含二者的新塊sbtk。
3)兩個分片共同執(zhí)行共識協(xié)議,達(dá)成一致。最終鏈連接起來,并且分片i和j合并成k。
3.2.3拆分過程
1)DRL代理達(dá)成共識之后,分片k獲得信息,創(chuàng)建sbtk
2)創(chuàng)建新的塊sbti和sbtj,將分片k的所有節(jié)點(diǎn)分割成不相交的兩個子集。
3)分片k的節(jié)點(diǎn)根據(jù)分片信息分別存儲其中一個狀態(tài)塊,并執(zhí)行共識協(xié)議將其添加到區(qū)塊鏈的末尾。通過這種方式,鏈k被分為鏈i和鏈j,它們中的每一個都在狀態(tài)塊后面維護(hù)一個不相交的分類賬。最后,它們將在下一個epoch中分別處理不同的事務(wù)。
3.3評價框架
每個時期分為共識期和重新配置時期,因此每個時期的延時由兩個時期的延時總和組成。也就是
Tepoch=Tcons+Treco
3.3.1性能
3.3.1.1共識延遲
共識時期的輪數(shù)rc
每輪的共識延遲Tround
∴ Tcons=rc?Tround
以PBFT為例:拜占庭容錯共識。分為預(yù)先準(zhǔn)備、準(zhǔn)備和提交三個階段。為了降低數(shù)據(jù)傳輸?shù)某杀?,僅僅在預(yù)準(zhǔn)備階段廣播新塊,而在后兩個階段僅僅廣播塊頭。
一輪的等待時間可以計(jì)算:
其中
tv是每個階段的驗(yàn)證時間
Rt是數(shù)據(jù)傳輸速率
ta是將新區(qū)塊加到區(qū)塊鏈上的成本。
SH是區(qū)塊頭大小
SB是區(qū)塊大小
m是分片大小
消息被所有節(jié)點(diǎn)接受的時間最多為O(log m)
3.3.1.2重新分片延遲
重新配置延遲包括:
1)隨機(jī)的產(chǎn)生Trand
2)每個分片的狀態(tài)塊的產(chǎn)生Ts
3)新節(jié)點(diǎn)將身份提交到區(qū)塊鏈Tv
4)賬本的拆分和合并Tr
所以:
3.3.1.3處理事務(wù)數(shù)
在分片系統(tǒng)中,跨分片交易是其相關(guān)地址記錄在不同分片的賬本中的交易。在處理跨分片事務(wù)時,不同的分片系統(tǒng)采用不同的機(jī)制來保證跨分片事務(wù)的原子性和一致性。
例如,RapidChain使用事務(wù)拆分,Monoxide使用中繼事務(wù)。
然而,它們都引入了冗余事務(wù),這意味著分片系統(tǒng)在處理跨分片事務(wù)時需要處理多個冗余事務(wù)。假設(shè)Rr是分片系統(tǒng)中一個事務(wù)的平均冗余事務(wù)數(shù),那么我們可以計(jì)算一個分片在一個時期內(nèi)處理的事務(wù)數(shù)
ST表示平均事務(wù)大小
Rr是分片系統(tǒng)中一個事務(wù)的平均冗余事務(wù)數(shù)
rc是輪數(shù)
所以,每個分片的事務(wù)吞吐量可以計(jì)算為
總的交易吞吐量為
Ototal=kO
其中k是分片的數(shù)量
3.3.1.4 約束
在區(qū)塊鏈系統(tǒng)中,由于網(wǎng)絡(luò)延遲,交易必須等待幾輪共識才能獲得最終確認(rèn)。為了盡可能保持賬本的一致性,防止區(qū)塊在進(jìn)入重構(gòu)前被丟棄,應(yīng)該限制等待時間在總的共識時間的一部分,也就是
3.3.2 安全性
存在不安全分片,系統(tǒng)就會變得不安全。使用超幾何分布啦計(jì)算故障系統(tǒng)的概率。
X表示分片中惡意節(jié)點(diǎn)的數(shù)量,F(xiàn)=sn表示n個節(jié)點(diǎn)和s個分片的總體惡意節(jié)點(diǎn)數(shù)量。所以,故障系統(tǒng)的概率(在m個節(jié)點(diǎn)中形成至少一個不安全分片且其中有超過mf個惡意節(jié)點(diǎn)的概率)是:
為了使錯誤委員會形成的概率可以忽略不計(jì),使用參數(shù)來限定錯誤委員會形成的概率。如果滿足以下不等式,則它是足夠安全的。
設(shè)置
系統(tǒng)拜占庭容錯設(shè)置為1/4,分片拜占庭容錯設(shè)置為1/3.
根據(jù)故障系統(tǒng)概率的計(jì)算公式,我們應(yīng)該適當(dāng)增加委員會的規(guī)模,使不安全的概率在給定的界限下,更多的節(jié)點(diǎn)加入?yún)^(qū)塊鏈系統(tǒng)。
節(jié)點(diǎn)破壞
在每個時期,誠實(shí)節(jié)點(diǎn)可能被惡意節(jié)點(diǎn)破壞。假設(shè)惡意節(jié)點(diǎn)具有有限的攻擊能力,平均節(jié)點(diǎn)損壞需要花費(fèi)必要的時間。如果滿足以下不等式,則可以將epoch視為安全的。
3.3.3 問題介紹
四、基于DRL的動態(tài)分片框架
DRL努力根據(jù)當(dāng)前區(qū)塊鏈環(huán)境和給定的獎勵,從過去的經(jīng)驗(yàn)中研究通用的分片策略,這使得它能夠適應(yīng)復(fù)雜和動態(tài)的區(qū)塊鏈環(huán)境??紤]到動作空間的連續(xù),使用深度確定性策略梯度(DDPG)算法來訓(xùn)練我們的模型。
4.1模型設(shè)計(jì)
強(qiáng)化學(xué)習(xí)中的三個關(guān)鍵組成部分:狀態(tài)空間,動作空間和獎勵函數(shù),
1)狀態(tài)空間:
系統(tǒng)具有n個節(jié)點(diǎn),其中節(jié)點(diǎn)隨時會離開,新節(jié)點(diǎn)的加入只發(fā)生在重新配置期間。q表示未決事務(wù)的數(shù)量。
因此,時刻t的狀態(tài)空間可以表示為:
st=[q,n]t
2)動作空間
當(dāng)節(jié)點(diǎn)的到達(dá)服從分布時,epoch length將決定下一epoch的系統(tǒng)節(jié)點(diǎn)數(shù)。此外,分片數(shù)和塊大小可以通過影響處理事務(wù)的速率來改變事務(wù)池的狀態(tài)。因此,它們應(yīng)該進(jìn)行調(diào)整以適應(yīng)動態(tài)環(huán)境。我們將時刻t的動作空間定義為:
at=[Tepoch,k,SB]t
L為epoch length Tepoch ∈(0,L)設(shè)置的最大長度。
為了保證分類賬被有效地合并或拆分并且沒有沖突,我們設(shè)置k = 2i,i = 0,1,2…C,其中C是常數(shù)。
設(shè)置Ns = 2C,表示分片的最大數(shù)量。值M來約束塊大小的范圍。
3)獎勵函數(shù)
由于可伸縮性可以很容易地用事務(wù)吞吐量來量化,因此我們使用事務(wù)吞吐量作為我們的獎勵函數(shù)。
約束條件和獎勵定義如下:
當(dāng)打破約束的時候,就將獎勵設(shè)置為0。
4.2 訓(xùn)練方法
DDPG算法得另外學(xué)了。
1)在每個時間步t,根據(jù)當(dāng)前區(qū)塊鏈狀態(tài)st選擇并執(zhí)行分片動作at,然后應(yīng)用噪聲N進(jìn)行探索。
2)區(qū)塊鏈環(huán)境將一個由系統(tǒng)安全性和吞吐量衡量的獎勵,并進(jìn)入下一個狀態(tài)st+1
3)將轉(zhuǎn)變(st,at,rt,st+1)存儲在R中
4)從重放緩沖器reply buffer中取出恒定數(shù)量的先前轉(zhuǎn)變,以更新參數(shù)
5)使用soft來改變目標(biāo)網(wǎng)絡(luò)
4.3 分布式部署
要使用經(jīng)過訓(xùn)練的代理,一種直觀而簡單的方法是將經(jīng)過訓(xùn)練的代理應(yīng)用于確定的節(jié)點(diǎn),但由于集中化,這將導(dǎo)致一些潛在的安全問題。
在我們的區(qū)塊鏈分片系統(tǒng)中,我們采用分布式部署方法來解決這個問題。
La是現(xiàn)任領(lǐng)導(dǎo)之一,被選為基于當(dāng)前時期的分片策略的提議者。當(dāng)分片完成共識的時候,La使用當(dāng)前系統(tǒng)的狀態(tài)信息,作為輸入創(chuàng)建一個分片策略。
四個階段:
1)廣播:La將參數(shù)、系統(tǒng)狀態(tài)發(fā)送給其他領(lǐng)導(dǎo)者。
2)回復(fù):其他領(lǐng)導(dǎo)者接收到之后,做標(biāo)記并再次廣播出去。定義一個閾值表示領(lǐng)導(dǎo)者可以容忍的最大差值,只有差值在閾值范圍內(nèi),才會標(biāo)記為YES。
3)接收:如果一個誠實(shí)的leader收到了超過一半的leader的相同回聲,它接受這個分片策略,并再次廣播給其他leader,并帶有一個接受標(biāo)簽,以及一個驗(yàn)證,表明它收到了超過一半的相同回聲。
4)更新:La接收到超過一半的accept之后就會進(jìn)行狀態(tài)轉(zhuǎn)換更新,并廣播給其他領(lǐng)導(dǎo)者。
五、評估
環(huán)境:tensorflow、Windows Server 2016中python3.6
新區(qū)塊的產(chǎn)生可以被建模為具有時間依賴強(qiáng)度的泊松過程,這意味著交易量的減少也是一個泊松過程。
將區(qū)塊鏈分片系統(tǒng)中的交易到達(dá)建模為到達(dá)率λt = 10000的泊松過程。
區(qū)塊鏈中的節(jié)點(diǎn)數(shù)量是動態(tài)變換的,所以假設(shè)節(jié)點(diǎn)數(shù)量的變化服從方差σ2 = 100且期望值En = 0的正態(tài)分布,其中,N > 0表示新節(jié)點(diǎn)加入,而N < 0表示節(jié)點(diǎn)離開。
參數(shù)設(shè)置如下:
比較方案:
1)固定epoch length的建議方案。
2)提出了固定分片數(shù)的方案
3)固定塊大小的建議方案。
比較參數(shù)
收斂性能、安全性和延遲性能、吞吐量
5.1 收斂性能
我們可以看到,所有方案的吞吐量都從學(xué)習(xí)過程開始時的低水平迅速增加,并在大約5000次訓(xùn)練后變得平坦。
5.2 安全性和延遲
設(shè)置分片大小m = 80,90,110,130,150,計(jì)算故障系統(tǒng)的概率。如圖所示,當(dāng)系統(tǒng)節(jié)點(diǎn)數(shù)小于10000時,分片大小m = 150時,安全概率可達(dá)98%。此外,還可以觀察到,隨著越來越多的新節(jié)點(diǎn)加入系統(tǒng),不安全概率緩慢增加,這意味著區(qū)塊鏈分片系統(tǒng)需要在系統(tǒng)節(jié)點(diǎn)數(shù)量變化時調(diào)整分片大小以保證安全性。
圖5示出了延遲的變化,也就是委員會內(nèi)部共識時間。當(dāng)塊大小逐漸增加時,從中可以看出共識延遲與塊大小和分片大小有關(guān)。塊大小不能無限制地增加,因?yàn)樗鼤黾有聣K添加到區(qū)塊鏈的時間,導(dǎo)致約束條件之一不滿足。
5.3 吞吐量
在圖6至圖11中展示了不同系統(tǒng)參數(shù)對區(qū)塊鏈分片系統(tǒng)性能的影響。基于DRL的動態(tài)分片框架的吞吐量與具有不同閾值的共識延遲,安全參數(shù),平均事務(wù)大小,傳輸速率,初始節(jié)點(diǎn)數(shù)和分片數(shù)限制的基線進(jìn)行了比較。
圖6:我們可以觀察到,固定的塊大小方案中保持穩(wěn)定,而其他在隨著限制比的增大而減少。
圖7:討論安全參數(shù)對吞吐量的影響。在打羽5 之后變化較小,這意味著當(dāng)碎片大小足夠大時,系統(tǒng)具有高的安全概率。而具有固定數(shù)目的分片的方案的吞吐量穩(wěn)定地變化,因?yàn)槠浞制笮】梢源_保低的不安全概率。
圖8和圖9討論事務(wù)大小和傳輸速率對吞吐量的影響。
很明顯,吞吐量隨著事務(wù)大小的減小和傳輸速率的增加而顯著增加。原因是一個塊可以為較小的事務(wù)打包更多數(shù)量的事務(wù),并為更高的傳輸速率進(jìn)行更快的通信。而且此方案的吞吐量可以最高。
圖10討論了初始節(jié)點(diǎn)數(shù)對吞吐量的影響。吞吐量可以隨著節(jié)點(diǎn)的加入而增加,并且由于限制分片數(shù)(這里我們將最大分片數(shù)設(shè)置為64)而最終停止增加。
圖11討論了分片數(shù)量的影響。
吞吐量可以隨著分片數(shù)量的增加而有效地?cái)U(kuò)展。當(dāng)最大分片數(shù)為128時,我們提出的方案的吞吐量可以達(dá)到110000 TPS。當(dāng)最大分片數(shù)為128時,固定分片數(shù)方案優(yōu)于固定歷元長度和固定塊大小,但其吞吐量仍低于我們提出的方案。
這一結(jié)果表明,我們提出的方案可以更好地適應(yīng)不同的環(huán)境。文章來源:http://www.zghlxwxcb.cn/news/detail-773747.html
六、總結(jié)
文章提出了一種自適應(yīng)賬本協(xié)議,根據(jù)動態(tài)分片的結(jié)果,保證賬本的有效合并或拆分,并且不會產(chǎn)生沖突。
SkyChain采用基于DRL的動態(tài)分片方法來調(diào)整epoch長度,分片數(shù)量和塊大小,以保持性能和安全性之間的長期平衡。
展望:
在未來的工作中,我們計(jì)劃在區(qū)塊鏈分片系統(tǒng)中考慮更多與動態(tài)環(huán)境相關(guān)的因素,并將我們基于DRL的動態(tài)分片框架應(yīng)用于真實(shí)的區(qū)塊鏈系統(tǒng)。文章來源地址http://www.zghlxwxcb.cn/news/detail-773747.html
到了這里,關(guān)于【論文閱讀】1 SkyChain:一個深度強(qiáng)化學(xué)習(xí)的動態(tài)區(qū)塊鏈分片系統(tǒng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!