• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    一種面向公有鏈的輕量級可擴展技術(shù)

    2020-07-18 03:30:42王意潔
    計算機研究與發(fā)展 2020年7期
    關(guān)鍵詞:累加器分片客戶端

    陳 幻 王意潔

    (并行與分布處理國家重點實驗室(國防科技大學) 長沙 410073)(國防科技大學計算機學院 長沙 410073)

    區(qū)塊鏈技術(shù)[1-3]被視為繼云計算、物聯(lián)網(wǎng)、人工智能之后的又一項顛覆性技術(shù),受到了金融機構(gòu)、政府部門以及各科技企業(yè)的高度關(guān)注,將開啟下一代互聯(lián)網(wǎng)——價值交換網(wǎng)絡(luò)的新時代.區(qū)塊鏈解決了在不可信環(huán)境中建立信任的基礎(chǔ)難題,具有去中心化、不可篡改、不可抵賴、抗審查等特征,能夠廣泛運用于支付清算、物聯(lián)網(wǎng)、政務(wù)服務(wù)、醫(yī)療、物流、博彩娛樂等多種領(lǐng)域.

    然而,區(qū)塊鏈存在2個嚴重的問題:1) 系統(tǒng)吞吐率低.目前比特幣每秒處理交易數(shù)量(transactions per second, TPS)在3~7筆之間,以太坊TPS在7~15筆之間.相比之下,主流的中心化支付系統(tǒng),例如Visa和MasterCard,平均每秒能處理2 000筆交易,峰值性能能夠達到56 000 TPS.低吞吐率導(dǎo)致網(wǎng)絡(luò)中未處理的交易無限堆積,交易平均處理時間延長,使得區(qū)塊鏈無法運用于實時領(lǐng)域.此外,隨著越來越多的分布式應(yīng)用(distributed applications, DApps)運行于同一條鏈上,低吞吐率的問題將會越發(fā)嚴重,極大地限制了區(qū)塊鏈的運用.2)每個驗證節(jié)點都需要獨立保存一份完整的歷史數(shù)據(jù)賬本和對應(yīng)的狀態(tài)信息,這將消耗大量的存儲資源.一方面,賬本大小隨著新區(qū)塊的產(chǎn)生持續(xù)增長,存儲全部歷史區(qū)塊需要消耗大量的磁盤空間.可以預(yù)測在不久的將來,區(qū)塊鏈賬本數(shù)據(jù)將輕松到達1TB,超過目前絕大多數(shù)普通商用機的存儲能力.另一方面,由于區(qū)塊鏈歷史數(shù)據(jù)過于龐大,從區(qū)塊中檢索信息需要消耗大量的時間開銷.為了加速對交易和區(qū)塊的驗證,驗證節(jié)點會在內(nèi)存中維護一個叫驗證狀態(tài)的索引結(jié)構(gòu).盡管驗證狀態(tài)相比于歷史區(qū)塊占用的空間較少,但他們需要被快速訪問,通常放在內(nèi)存數(shù)據(jù)庫中(例如LevelDB),對節(jié)點內(nèi)存容量提出了較高要求.如果驗證狀態(tài)大小超過了節(jié)點的內(nèi)存容量,一部分狀態(tài)信息需要保存在磁盤或其他二級存儲器中.由于二級存儲器訪問時間較長,容易遭受分布式拒絕服務(wù)(distributed denial of service, DDoS)攻擊.例如在2016年9月[4],攻擊者利用以太坊EXTCODESIZE指令的漏洞,讓交易頻繁訪問放置在硬盤上的狀態(tài)信息,導(dǎo)致了單個區(qū)塊的驗證時間長達60 s.

    區(qū)塊鏈歷史數(shù)據(jù)以及驗證狀態(tài)不斷增長的特點,將帶來以下問題.首先,由于對磁盤和內(nèi)存容量的較高要求,只有少量的“超級”節(jié)點能夠運行完整的區(qū)塊鏈全節(jié)點,將導(dǎo)致中心化的出現(xiàn).其次,大量資源較少的節(jié)點只能運行輕客戶端(例如移動錢包、輕節(jié)點),它們依賴全節(jié)點提供的查詢服務(wù),不能獨立驗證交易和區(qū)塊的有效性,容易遭受長城等類型的攻擊.此外,對于新加入網(wǎng)絡(luò)的全節(jié)點,它們需要同步從創(chuàng)世區(qū)塊到最近的所有歷史區(qū)塊,并建立驗證狀態(tài)的索引結(jié)構(gòu),需要消耗大量的時間開銷.

    針對系統(tǒng)吞吐率低的問題,研究人員提出了多種擴容技術(shù).然而,絕大多數(shù)擴容技術(shù)無法完全破除區(qū)塊鏈的三角難題,即同時實現(xiàn)安全、去中心化和可擴展.目前,分片技術(shù)被廣泛視為一種能夠解決區(qū)塊鏈三角難題的有效方法,通過將交易和狀態(tài)進行分割,使得不同的分片能夠并行處理不相關(guān)的交易,線性提升系統(tǒng)的處理能力.然而,為了避免惡意節(jié)點集中到某個特定分片發(fā)起攻擊,需要周期性地將分片節(jié)點進行重組.由于分片節(jié)點只存儲了當前分片的數(shù)據(jù),當被劃分到其他分片后,需要下載新分片的數(shù)據(jù),這個過程被稱為狀態(tài)遷移.狀態(tài)遷移需要下載大量數(shù)據(jù),不僅中斷了系統(tǒng)的處理,同時也限制了分片切換的頻率.

    針對節(jié)點存儲資源占用高的問題,研究人員首先提出了賬本剪枝技術(shù)[5],將對于驗證交易和區(qū)塊無用的歷史數(shù)據(jù)進行裁剪,只維護驗證狀態(tài)信息.該方法可以有效降低整個區(qū)塊鏈的賬本大小和歷史區(qū)塊同步問題.然而,賬本剪枝技術(shù)只解決了歷史數(shù)據(jù)對于磁盤的負擔,并不能減輕狀態(tài)對于內(nèi)存的需求.針對內(nèi)存占用高的問題,研究人員進一步提出了無狀態(tài)客戶端[6-10]的概念.無狀態(tài)客戶端利用承諾(commit-ment)技術(shù),將不斷增長的狀態(tài)壓縮到固定字節(jié)的承諾.但與賬本剪枝技術(shù)不同的是,節(jié)點并不需要保留具體的驗證狀態(tài).然而,無狀態(tài)客戶端面臨3個挑戰(zhàn):

    1) 證明信息過大,增加網(wǎng)絡(luò)帶寬開銷.基于默克爾樹(Merkle)構(gòu)建的承諾需要提交從葉子節(jié)點到根節(jié)點的Merkle路徑,以目前比特幣未消費交易輸出(unspent transaction outputs, UTXO)集合和以太坊賬戶的規(guī)模,構(gòu)建的Merkle證明分別是交易大小的4倍與20倍.

    2) 承諾更新代價高.基于Merkle樹的承諾更新,需要已修改節(jié)點的所有數(shù)據(jù);而基于通用累加器的承諾更新,刪除操作需要進行大量的計算.

    3) 由于每個證明只對應(yīng)1個承諾,當承諾更新后,會導(dǎo)致交易有效性證明過期無效.由于網(wǎng)絡(luò)傳輸延遲過高,新發(fā)起的交易并不能得到及時地處理,交易過期將會成為一個常態(tài)問題.讓用戶頻繁提交更新后的證明信息無疑會增加用戶使用的負擔.

    基于3個挑戰(zhàn)的問題,構(gòu)建一種可擴展的輕量級區(qū)塊鏈,不僅具有較高的系統(tǒng)吞吐率,同時讓所有節(jié)點只需利用少量的存儲資源(包括磁盤和內(nèi)存),便可以獨立驗證和打包交易,成為了加密貨幣領(lǐng)域一個迫切需要解決的難題.為此,本文提出了PocketChain,一種面向UTXO模型的公有鏈的輕量級擴容技術(shù).首先,PocketChain使用無狀態(tài)客戶端設(shè)計,創(chuàng)新性地提出了基于RSA累加器構(gòu)建的已消費交易輸出(spent transaction outputs, STO)承諾技術(shù),極大提升了狀態(tài)累加器的更新效率,使得驗證節(jié)點只需存儲區(qū)塊頭便可以驗證交易的有效性.其次,將本文提出的無狀態(tài)客戶端與分片技術(shù)相集合,利用無狀態(tài)客戶端低存儲的優(yōu)勢,克服分片周期性隨機重組導(dǎo)致的狀態(tài)遷移問題,從而能進一步提升分片重組頻率,增加分片系統(tǒng)安全性.

    綜上所述,本文聚焦區(qū)塊鏈數(shù)據(jù)膨脹和低吞吐的問題,提出了PocketChain,一種面向UTXO模型的可擴展輕量級區(qū)塊鏈.本文的主要貢獻有4個方面:

    1) 提出了基于RSA累加器構(gòu)造的具有批處理能力的增量STO承諾技術(shù),將狀態(tài)累加器更新效率從O(n2)提升到O(n);

    2) PocketChain使用STO承諾技術(shù)構(gòu)建無狀態(tài)客戶端,驗證節(jié)點只需要保存歷史區(qū)塊頭以及少量的緩存數(shù)據(jù),有效降低了對磁盤和內(nèi)存的負擔;

    3) PocketChain將無狀態(tài)客戶端與分片技術(shù)進行結(jié)合,避免了分片周期性隨機重組導(dǎo)致的狀態(tài)遷移問題,從而能進一步提升分片重組頻率,增加了分片系統(tǒng)的安全性;

    4) 實驗結(jié)果表明:在不犧牲去中心化與安全性的前提下,PocketChain能夠極大降低節(jié)點的存儲壓力,并且系統(tǒng)吞吐率能夠隨著分片數(shù)量的增加線性增長.

    1 相關(guān)工作

    在本節(jié)中,我們主要介紹無狀態(tài)客戶端與分片技術(shù)的相關(guān)概念以及研究現(xiàn)狀.

    1.1 無狀態(tài)客戶端

    1.1.1 無狀態(tài)客戶端系統(tǒng)結(jié)構(gòu)

    定義1.區(qū)塊鏈狀態(tài).給定一個數(shù)據(jù)結(jié)構(gòu)Sstate={s1,s2,…,sn},表示系統(tǒng)中當前所有賬戶(或地址)的快照.節(jié)點可以通過訪問Sstate來驗證交易的合法性,從而避免遍歷所有歷史區(qū)塊.這樣的數(shù)據(jù)結(jié)構(gòu)稱為區(qū)塊鏈狀態(tài).

    需要注意的是,狀態(tài)信息對于區(qū)塊鏈完整性并不是必須的.由于狀態(tài)信息相比歷史區(qū)塊鏈占用的存儲空間較少,可以放入內(nèi)存數(shù)據(jù)庫中,從而提高檢索效率,對于加速交易的驗證具有十分重要的作用.根據(jù)驗證節(jié)點是否保存完整的狀態(tài)信息,區(qū)塊鏈可以分為2類:狀態(tài)區(qū)塊鏈與無狀態(tài)區(qū)塊鏈.

    Fig. 1 Stateful blockchain architecture圖1 狀態(tài)區(qū)塊鏈系統(tǒng)結(jié)構(gòu)

    狀態(tài)區(qū)塊鏈的系統(tǒng)結(jié)構(gòu)如圖1所示,每個節(jié)點根據(jù)歷史區(qū)塊建立狀態(tài)信息,并用狀態(tài)信息來驗證交易的合法性.當新區(qū)塊產(chǎn)生后,根據(jù)區(qū)塊中的具體交易,對狀態(tài)進行更新.狀態(tài)區(qū)塊鏈的優(yōu)點在于,用戶不需要保存任何狀態(tài)就可以發(fā)起交易.然而,狀態(tài)區(qū)塊鏈存在狀態(tài)“爆炸”的隱患.隨著有效賬戶(或地址)的增加,狀態(tài)空間不斷增長,一方面需要節(jié)點不斷提升內(nèi)存容量,另一方面會降低驗證交易和區(qū)塊的效率.

    相比之下,無狀態(tài)區(qū)塊鏈只需要維護狀態(tài)的承諾,不需要保存任何具體的狀態(tài)信息.如圖2所示,每個區(qū)塊頭包含當前狀態(tài)的承諾,每個節(jié)點只需要保存歷史區(qū)塊頭,并根據(jù)用戶提交的交易有效性證明對交易進行驗證.無狀態(tài)區(qū)塊鏈的優(yōu)點在于,不需要保留具體的歷史區(qū)塊和維護狀態(tài)信息,降低了節(jié)點對磁盤和內(nèi)存的需求,使得配置較低的節(jié)點(包括手機等移動設(shè)備)能夠運行完整的驗證節(jié)點.其缺點在于,承諾更新效率低下,無法適用于高吞吐的環(huán)境下.

    1.1.2 無狀態(tài)區(qū)塊鏈研究現(xiàn)狀

    無狀態(tài)區(qū)塊鏈概念首次由以太坊創(chuàng)始人Buterin[7]提出,用于解決以太坊狀態(tài)爆炸問題.使用默克爾帕特里夏樹(Merkle patricia tree, MPT)存儲所有用戶賬戶的狀態(tài)信息.礦工節(jié)點在打包區(qū)塊時,需要負責生成相關(guān)賬戶狀態(tài)的Merkle證明,并附加在每個區(qū)塊的后面.全節(jié)點只需要存儲狀態(tài)樹根,便可以驗證區(qū)塊.然而,每筆交易的默克爾證明的字節(jié)大小是交易的20倍,極大地增加了網(wǎng)絡(luò)帶寬開銷.

    Todd[9]基于默克爾山脈(Merkle mountain range, MMR)提出了交易輸出(transactions outputs, TXO)承諾技術(shù)來解決比特幣UTXO無限增長的問題.它將舊的UTXO進行歸檔,允許全節(jié)點丟棄歸檔的具體數(shù)據(jù).當交易消費已歸檔UTXO時,全節(jié)點(或服務(wù)節(jié)點)生成對應(yīng)的默克爾分支.驗證節(jié)點根據(jù)默克爾分支對MMR進行重建,從而能夠?qū)εf的UTXO進行驗證,并相應(yīng)更新MMR.證明MMR中的任意狀態(tài),可以僅使用大小為lbn的證明.然而,正如作者提到的,檢查承諾是否被正確更新會產(chǎn)生較大的開銷.

    Reyzin等人[8]提出使用加密認證數(shù)據(jù)結(jié)構(gòu)來提升交易驗證效率.礦工節(jié)點需要持有完整的狀態(tài),在處理交易時對狀態(tài)進行更新,并發(fā)布每筆交易導(dǎo)致狀態(tài)改變的證明.相比之下,驗證節(jié)點僅需要持有狀態(tài)的簡短摘要,驗證證明并計算出新摘要.由于驗證節(jié)點不需要存儲具體的狀態(tài)信息,使得配置較低的節(jié)點依然能夠獨立驗證交易,提升了系統(tǒng)的安全.

    Chepurnoy等人[6]提出了一種無狀態(tài)交易驗證的通用框架,稱為EDRAX.所有節(jié)點,包括礦工和驗證節(jié)點只需持有最新被確認的區(qū)塊,便可以驗證交易并更新狀態(tài).他們提供了EDRAX的2種實例:一種使用稀疏默克爾樹(sparse Merkle tree, SMT)構(gòu)建基于UTXO模型的區(qū)塊鏈;另一種使用代數(shù)向量承諾(vector commitment, VC)構(gòu)建基于賬戶模型的區(qū)塊鏈.然而,EDRAX并沒有考慮證明過期問題導(dǎo)致用戶頻繁提交更新后的證明,增加了用戶使用的負擔.

    Boneh等人[10]首先針對通用累加器和向量承諾,提出了多種批處理技術(shù),極大地提升了累加器的驗證效率并降低了傳輸開銷.其次,使用Class Group未知階群構(gòu)建無陷門的通用RSA累加器,避免進行可信的初始化設(shè)置.最后,將以上具有批處理能力、無陷門特征的RSA累加器用于創(chuàng)建基于UTXO模型的無狀態(tài)公有鏈,極大地降低了交易的證明大小和驗證開銷.然而,在不知道群階的情況下,RSA累加器批量刪除操作的復(fù)雜度為O(n2),效率低下.基于RSA累加器構(gòu)建的UTXO承諾,需要進行大量刪除操作,導(dǎo)致累加器更新效率低,無法適用于高吞吐的環(huán)境下.

    1.2 分片技術(shù)

    1.2.1 區(qū)塊鏈分片技術(shù)基礎(chǔ)模型

    分片技術(shù)在運用于區(qū)塊鏈之前,已經(jīng)在數(shù)據(jù)庫領(lǐng)域得到了廣泛運用,用于提升數(shù)據(jù)庫的吞吐能力,例如OpenDHT[11],Google spanner[12]等.簡單來說,分片技術(shù)將數(shù)據(jù)庫的不同表(或相同表中的不同行)分別放置在不同的服務(wù)器中,根據(jù)數(shù)據(jù)訪問請求的對象,將請求分發(fā)到對應(yīng)的服務(wù)器.從而,數(shù)據(jù)庫的響應(yīng)能力能隨著服務(wù)器數(shù)量的增加呈線性增長,極大地提升了數(shù)據(jù)庫的服務(wù)能力.類似地,在區(qū)塊鏈中,可以將單鏈拆分多條并行運行的子鏈(分片).從實現(xiàn)的角度,分片可以進一步分為交易分片和狀態(tài)分片.交易分片根據(jù)特定規(guī)則,將網(wǎng)絡(luò)中的交易分發(fā)到不同的子鏈,各子鏈并行驗證和打包交易,從而使區(qū)塊鏈的吞吐量實現(xiàn)質(zhì)的提升.狀態(tài)分片將區(qū)塊鏈的驗證狀態(tài)(廣義上來講,包括歷史數(shù)據(jù))分為多個不相交的子集,各分片只需保存其中的一個狀態(tài)子集和處理與狀態(tài)相關(guān)的交易,從而降低每個節(jié)點的數(shù)據(jù)存儲量,如圖3所示.實現(xiàn)狀態(tài)分片往往意味著同時實現(xiàn)交易分片.

    Fig. 3 State sharding architecture圖3 狀態(tài)分片架構(gòu)

    1.2.2 區(qū)塊鏈分片技術(shù)研究現(xiàn)狀

    Elastico[13]是最早面向公有鏈的交易分片技術(shù).首先,各節(jié)點需要進行第1輪工作量證明(proof of work, PoW)建立身份,避免遭受女巫攻擊.為了防止惡意節(jié)點集中到特定分片中,利用絕對的算力(或權(quán)益)對該分片進行攻擊(稱為1%攻擊),需要將節(jié)點隨機地分配到各個分片.分片形成后,分片內(nèi)部采用PBFT[14]協(xié)議達成共識,形成micro block發(fā)往0號分片.0號分片通過驗證和打包mirco block,再次運行PBFT共識,生成最終區(qū)塊.然而,Elastico不支持跨片交易處理,并且分片內(nèi)部采用傳統(tǒng)的PBFT協(xié)議,參與共識的節(jié)點數(shù)量較少,具有較高的錯誤率.此外,Elastico為了避免1%攻擊,需要周期性地對節(jié)點進行重新分配.為了避免每次分片切換時下載大量新分片的數(shù)據(jù),各節(jié)點需要保存所有分片的數(shù)據(jù),節(jié)點存儲壓力較大.

    Zillqa團隊[15]在Elastico的基礎(chǔ)上,進行了架構(gòu)和性能優(yōu)化.在設(shè)計架構(gòu)上,提出雙鏈架構(gòu),一條是交易鏈,一條是目錄服務(wù)鏈.交易鏈上保存交易數(shù)據(jù),目錄服務(wù)鏈存放礦工元數(shù)據(jù)信息.其中最近的c個節(jié)點形成最終委員會,負責劃分分片以及收集各分片的micro block形成final block.在共識方面,Zillqa借鑒了CoSi[16]多重簽名技術(shù),并用數(shù)字簽名代替MAC,極大提升了PBFT的擴展性,使得PBFT可以適用于幾百個節(jié)點.此外,Zillqa第1次創(chuàng)新性地提出數(shù)據(jù)流編程框架,利用全網(wǎng)算力來實現(xiàn)大規(guī)模計算,如MapReduce和神經(jīng)網(wǎng)絡(luò)計算等.雖然Zilliqa在共識方面有較大改善,但是依然沒有實現(xiàn)狀態(tài)分片.

    OmniLedger[5]首次實現(xiàn)了狀態(tài)分片并提出了并行共識算法.通過移除塊的全序要求,將塊組織成有向無環(huán)圖(directed acyclic graph, DAG)結(jié)構(gòu),增加了系統(tǒng)的吞吐量、降低了交易確認延遲.此外,OmniLedger使用原子提交協(xié)議來處理跨分片交易;并使用賬本剪枝技術(shù),引入檢查點,將檢查點之前的歷史數(shù)據(jù)進行裁剪,降低節(jié)點的存儲壓力.然而,原子提交協(xié)議采用以用戶為中心的2階段提交方法,需要用戶參與跨分片交易處理;每次分片切換,都會導(dǎo)致狀態(tài)遷移.

    RapidChain[17]在OmniLedger的基礎(chǔ)上,加入了基于糾刪碼[18-20]的信息分發(fā)技術(shù)來加快大區(qū)塊的傳播速度,實現(xiàn)了覆蓋通信、計算與存儲的全分片技術(shù).為了降低狀態(tài)遷移代價,RapidChain采用了Cuckoo協(xié)議,每次分片切換只需替換部分節(jié)點.

    以太坊2.0[21]在階段0將引入基于權(quán)益證明(proof of stake, PoS)的信標鏈(beacon chain),完成從PoW到PoS共識機制的轉(zhuǎn)變.在階段1將引入分片,分片是以太坊網(wǎng)絡(luò)未來擴容技術(shù)的核心,允許同時進行交易、存儲和信息處理,從而線性地增加整體網(wǎng)絡(luò)的吞吐量.根據(jù)以太坊2.0規(guī)范,信標鏈將支持1 024個分片鏈,每條分片鏈將有128個節(jié)點進行驗證工作.信標鏈的關(guān)鍵功能是管理PoS協(xié)議以及所有的分片鏈:在每一步為每個分片隨機選擇區(qū)塊的提議者,組織驗證者進入委員會,對擬議的區(qū)塊進行投票;對驗證者實施獎勵和處罰;執(zhí)行交聯(lián)(crooslinks)的處理,將整個分片系統(tǒng)連接在一起,并協(xié)助完成跨片交易處理.整體而言,以太坊2.0分片技術(shù)較為完善,能夠同時實現(xiàn)交易分片和狀態(tài)分片,但每個分片依然會面臨數(shù)據(jù)與狀態(tài)增長問題.

    2 系統(tǒng)簡介

    2.1 主要思想

    針對目前公有鏈系統(tǒng)吞吐率低下和節(jié)點存儲壓力不斷增加的難題,本文提出了PocketChain,它需要滿足3個目標:

    1) 低存儲.節(jié)點不需要保留具體的歷史區(qū)塊和狀態(tài)信息便可以驗證交易的有效性,大大降低運行驗證節(jié)點的存儲資源開銷.

    2) 高吞吐.系統(tǒng)吞吐率能夠隨著網(wǎng)絡(luò)節(jié)點數(shù)量的增長線性增加.

    3) 安全與去中心化.系統(tǒng)不犧牲任何安全性和去中心化的特性.

    2.2 挑 戰(zhàn)

    為了降低驗證節(jié)點的存儲開銷,已有的賬本剪枝技術(shù)只能降低歷史賬本大小.隨著系統(tǒng)中有效地址和賬戶的不斷增加,節(jié)點內(nèi)存開銷逐漸加大.無狀態(tài)客戶端采用累加器將狀態(tài)數(shù)據(jù)壓縮到固定字節(jié)的承諾,能夠同時解決歷史區(qū)塊與狀態(tài)數(shù)據(jù)膨脹問題,但面臨交易證明信息過大(基于Merkle的累加器)、承諾更新代價高(通用累加器)的挑戰(zhàn).

    此外,分片技術(shù)被廣泛視為提升區(qū)塊鏈吞吐率最有效的方法之一,已被多個公有鏈采用.然而,為了避免惡意節(jié)點集中到某個特定分片發(fā)起定向攻擊,需要周期性地將節(jié)點隨機分配到各個分片中.由于每個分片只保留了當前分片的數(shù)據(jù),當節(jié)點劃分到其他分片后,需要同步下載新分片的數(shù)據(jù),這個過程稱為狀態(tài)遷移.狀態(tài)遷移需要下載大量數(shù)據(jù),不僅增加了網(wǎng)絡(luò)帶寬開銷,同時限制了分片切換的頻率,對系統(tǒng)安全性造成負面影響.

    綜上所述,本文將結(jié)合無狀態(tài)客戶端與分片技術(shù)來解決區(qū)塊鏈數(shù)據(jù)增長與吞吐率低下的雙重難題,其面臨的主要挑戰(zhàn)有2點:1)構(gòu)造證明信息短小、更新效率高的狀態(tài)累加器.2)克服分片技術(shù)周期性隨機重組導(dǎo)致的狀態(tài)遷移問題.

    2.3 技術(shù)路線

    無狀態(tài)客戶端的關(guān)鍵在于構(gòu)造證明信息短小、更新效率高的狀態(tài)累加器.RSA累加器建立在冥模運算之上,具有證明信息短小、固定等優(yōu)點,能夠滿足以上需求.此外,RSA累加器支持批處理操作,多個證明可以合并為一個證明,能有效減少交易證明的字節(jié)大小,并降低驗證的時間開銷.在公有鏈環(huán)境下,沒有任何可信的第三方,需要借助未知階群,構(gòu)造無陷門的RSA累計器.然而,在不知道群階的情況下,RSA累加器刪除操作的復(fù)雜度為O(n2),添加操作的復(fù)雜度為O(n).當需要進行大量刪除操作時,累加器的更新效率將快速下降.例如UTXO承諾技術(shù)需要動態(tài)刪除大量已消費的交易輸出,導(dǎo)致UTXO承諾更新效率低下.

    針對以上問題,在3.2節(jié)中,本文首先創(chuàng)新性地提出了STO承諾技術(shù),使用RSA累加器將所有已消費的交易輸出進行壓縮.STO是一個只支持添加操作的數(shù)據(jù)結(jié)構(gòu),從而避免進行代價較高的刪除操作.接著,PocketChain基于STO承諾技術(shù)建構(gòu)無狀態(tài)客戶端.用戶為了證明交易有效,需要提供交易輸入的存在性證明和交易輸入的未花費證明.輸入存在性證明可以通過輸入產(chǎn)生時的Merkle路徑進行自證;輸入的未花費證明可以通過提交STO非成員見證.只要輸入不在STO集合內(nèi),便不存在雙花.最后,在第4節(jié)中將無狀態(tài)客戶端運用于分片技術(shù)架構(gòu)下,利用低存儲的優(yōu)勢,降低分片技術(shù)周期性隨機重組導(dǎo)致的狀態(tài)遷移代價.

    3 基于RSA累加器的無狀態(tài)客戶端

    無狀態(tài)客戶端設(shè)計將交易驗證的一部分工作分配給用戶,用戶在發(fā)起交易時,需要附加提交交易有效性證明.驗證節(jié)點和礦工節(jié)點只需保存狀態(tài)的簡短摘要,根據(jù)交易有效性證明和當前狀態(tài)摘要進行交易驗證.無狀態(tài)客戶端不需要存儲具體區(qū)塊和狀態(tài)信息,大大降低了節(jié)點的磁盤和內(nèi)存壓力.然而,目前無狀態(tài)客戶端主要面臨交易有效性證明過大、狀態(tài)累加器更新效率低,以及交易頻繁過期問題.

    為此,本節(jié)針對UTXO模型的公有鏈,提出了基于RSA累加器的無狀態(tài)客戶端PocketChain.首先,使用無陷門、具有批處理能力的RSA累加器壓縮狀態(tài),使得證明信息簡潔短小,并且能將多個證明合并為一個證明,有效降低了證明的字節(jié)大??;將RSA累加器作用于STO集合,STO是一個只支持添加操作的數(shù)據(jù)結(jié)構(gòu),避免了進行代價較高的RSA累加器的刪除操作,大大提升了累加器的更新效率;最后,引入緩存,使得交易可以在接下來的n個區(qū)塊時間內(nèi)被處理,避免每次新區(qū)塊產(chǎn)生后都需要重新提交更新后的有效性證明.

    3.1 累加器

    1993年累加器(accumulator)首次被Benaloh等人[22]提出,能夠?qū)⒁粋€大集合的數(shù)據(jù)壓縮到一個短小的、固定字節(jié)的值,稱為累加值.對于每一個在集合內(nèi)的數(shù)據(jù),都存在一個成員見證(membership witness)證明該數(shù)據(jù)在集合內(nèi).對于不在集合內(nèi)的數(shù)據(jù),無法偽造成員見證.Camenisch等人[23]進一步提出了動態(tài)累加器(dynamic accumulator),能夠高效地向累加值添加或刪除指定元素.在動態(tài)累加器的基礎(chǔ)上,Li等人[24]提出了通用累計器(universal accumulator),不僅支持成員見證,對于不在集合內(nèi)數(shù)據(jù),也能夠生成非成員見證(non-membership witness),證明該數(shù)據(jù)不在集合內(nèi).目前,累加器已廣泛運用到多個領(lǐng)域,包括成員測試、數(shù)據(jù)外包時的隱私保護、匿名電子現(xiàn)金系統(tǒng)等.

    RSA累加器是在強RSA的假設(shè)下,基于RSA模數(shù)的模冪運算.其最簡單的形式工作為:累加器的秘鑰是RSA的模數(shù)N=pq的因子,其中p和q為強素數(shù),累加值初始化為g∈ZN.對于任意大小的素數(shù)集合S={x1,x2,…,xn},其累加值為

    A(S)=gx1×x2×…×xnmodN.

    (1)

    對于任何在集合S中的數(shù)據(jù)xi,其成員見證wi為S集合中除去xi的累加值:

    wi=gx1×x2×…×xn-1×xn+1×xnmodN.

    (2)

    驗證成員見證wi是否正確可以通過判斷:

    (3)

    是否成立.

    傳統(tǒng)的RSA累加器在初始化時需要生成2個強素數(shù)p和q,任何知道素數(shù)p和q的人都可以使用歐幾里得定理φ(N)=(p-1)(q-1)計算RSA群的階,從而可以進一步偽造任何成員證明和非成員證明.然而,在公有鏈環(huán)境下,不存在任何可信第三方,如何確保RSA累加器秘鑰不泄露是需要解決的首要問題.這里我們借鑒了Boneh等人[10]的工作,他將動態(tài)累加器建立在未知階的群之上,避免進行可信的初始化設(shè)置.Class Group作為一種虛構(gòu)的二次方階群,可以用于構(gòu)建去信任化的RSA累加器.相關(guān)工作本文不做展開,讀者可以參考Boneh以及其他相關(guān)工作.

    3.2 STO承諾技術(shù)

    在UTXO模型的區(qū)塊鏈中,狀態(tài)由所有的UTXO組成.每筆交易消費已有的UTXO,并產(chǎn)生新的UTXO記錄.已有的工作將RSA累加器作用于UTXO集合上,通過構(gòu)建UTXO承諾來壓縮狀態(tài).當新區(qū)塊產(chǎn)生后,從UTXO承諾中刪除所有已消費的UTXO并添加新產(chǎn)生的UTXO.然而,在不知道群階的情況下,從RSA累加器中刪除元素的復(fù)雜度為O(n2),而添加操作的復(fù)雜度僅為O(n),頻繁地從累加器中刪除元素將導(dǎo)致累加器更新效率低下.

    為此,本文提出了STO承諾技術(shù),使用RSA累加器將所有STO進行壓縮.由于STO是一個只支持添加操作的數(shù)據(jù)結(jié)構(gòu),避免了進行代價較高的累加器刪除操作.

    3.3 基于STO承諾的無狀態(tài)客戶端

    PocketChain基于STO承諾技術(shù)構(gòu)建無狀態(tài)客戶端,其系統(tǒng)結(jié)構(gòu)如圖4所示,主要包含3個模塊:STO承諾、證明生成與更新.

    Fig. 4 System architecture of PocketChain 圖4 PocketChain系統(tǒng)結(jié)構(gòu)

    3.3.1 STO承諾

    每個區(qū)塊頭除了包含交易的Merkle樹根(Merkle transactions root, MTR),還包含了由所有已消費的交易輸出組成的STO累加值A(chǔ)CC.當新區(qū)塊產(chǎn)生后,需要向ACC中添加區(qū)塊中已消費的交易輸出,構(gòu)造新的STO累加值.此外,RSA累加器的輸入必須限制為素數(shù)才能保證其無碰撞的特性,為此我們需要將STO轉(zhuǎn)變?yōu)樗財?shù),這可以通過函數(shù)HashToPrime[25]進行轉(zhuǎn)化.具體過程如算法1所示:

    算法1.狀態(tài)累加器批處理更新與驗證算法.

    FuncGGen(λ):

    ①GRSA←GGen(λ);

    ②A0←GRSA;

    ③ returnA0.

    FuncAccUpdate(At,tx):

    ①p=1;

    ② for eachuintx.inputsdo

    ③p*=HashToPrime(u);

    ④ end for

    ⑥Q←NI_POE_PROVE(At,p,At+1);

    ⑦ returnAt+1,Q.

    FuncAccVerify(At,tx,At+1,Q):

    ①p=1;

    ② for eachuintx.inputsdo

    ③p*=HashToPrime(u);

    ④ end for

    ⑤ returnNI_POE_VERIFY(At,p,At+1,Q).

    1)Gen(λ)首先根據(jù)系統(tǒng)安全參數(shù)λ對系統(tǒng)進行初始化,返回累加初始值A(chǔ)0;

    2)AccUpdate(At,tx)根據(jù)新區(qū)塊所消耗的交易輸出,對累加器進行批處理更新.首先,使用HashToPrime對每個交易的輸入進行求質(zhì)運算,并計算它們的乘積,然后進行冥模運算更新累加值.最后使用非交互式NI-POE協(xié)議提交正確更新的證明Q.

    3)AccVerify(At,tx,At+1,Q)根據(jù)交易和證明Q,使用NI-POE協(xié)議驗證累加值是否被正確更新.

    其中,NI-POE[10,26]協(xié)議允許證明人P向驗證人V證明(u,w,x)滿足w=ux,V只需進行少量計算,便可以相信P進行了正確計算.NI-POE協(xié)議能夠很大程度上降低驗證累加器被正確更新的代價.

    3.3.2 交易有效性證明生成

    交易有效性證明需要包括2個部分:交易輸入的存在性證明和交易輸入的未花費證明.其中,輸入的存在證明可以使用交易輸入產(chǎn)生時的Merkle證明,包含從葉子節(jié)點到MTR的路徑.由于不同的交易輸入可能產(chǎn)生于不同的區(qū)塊,所以無法對存在性證明進行合并.

    交易輸入的未花費證明是對當前STO累加值的非成員見證.由于STO包含了所有已消費的輸入,只要能提供非成員見證,就能證明輸入沒有被消費.具體過程如算法2所示.其中,非成員見證生成算法NonMemWitCreate以UTXO生成時所在區(qū)塊的STO累加值作為初始值,獲取之后所有的STO記錄進行求質(zhì)運行并計算乘積,利用通用累加器的非成員見證生成算法進行生成.類似地,NonMemWitVerify算法對非成員見證進行驗證,具體可以參考Li等人[24]關(guān)于通用累加器的非成員見證生成與驗證算法.值得注意的是,交易輸入的未花費證明可以被合并.例如2個分別產(chǎn)生于區(qū)塊t與區(qū)塊t+1的輸入,我們可以構(gòu)造一個從區(qū)塊t開始的合并證明,因為產(chǎn)生于區(qū)塊t+1的輸入并不能提前被消費.

    算法2.證明生成、更新和驗證算法.

    FuncNonMemWitCreate(An,STOn:m,Am,xn):

    ①p=1;

    ②xn←HashToPrime(xn);

    ③ for eachstoinSTOn:mdo

    ④p*=HashToPrime(sto);

    ⑤ end for

    ⑥a,b←Bezout(xn,p);

    ⑧ returnum(xn)←(d,b).

    FuncNonMemWitVerify(An,Am,xn,um(xn)):

    ①xn←HashToPrime(xn);

    ②d,b←um(xn);

    FuncNonMemWitUpdate(An,un(xt),x,STOn:m):

    ①d,b←um(xn),p=1;

    ② for eachstoinSTOn:mdo

    ④p*=HashToPrime(sto);

    ⑤ end for

    ⑥a0,b0=Bezout(HashToPrime(xt),p);

    ⑦r=a0b;

    3.3.3 交易有效性證明更新

    交易輸入的存在性證明使用輸入產(chǎn)生時的Merkle路徑,該證明保持不變,不需要更新.然而,交易輸入的未花費證明是對當前STO集合累加值的非成員見證,當STO累加值更新后,需要同步更新未花費證明.

    用戶在發(fā)起交易時提交的最新有效性證明,可能會因為網(wǎng)絡(luò)傳播延遲或礦工無法及時打包交易,導(dǎo)致交易有效性證明會過期.讓用戶重復(fù)提交更新后的有效性證明無疑會增加用戶使用的負擔與體驗.為此,PocketChain引入了STO緩存機制,每個驗證節(jié)點保存最近n個區(qū)塊(例如 1 h或1 d)的數(shù)據(jù)以及對應(yīng)的STO集合,通過驗證輸入存在性證明與未花費證明后,附加驗證輸入不在STO緩存內(nèi),從而允許交易在發(fā)起后的n個區(qū)塊時間內(nèi)被處理,避免用戶重復(fù)提交證明信息.

    對于那些長期沒有更新的未花費證明,用戶可以選擇自己更新或交由服務(wù)節(jié)點更新.用戶自己更新的算法見UpdateNonMemWit,通過獲取上次更新之后所有的STO記錄,逐個區(qū)塊地進行更新.然而,在計算資源較少的環(huán)境下,更新非成員證明較為耗時.在忽略網(wǎng)路傳輸延遲的情況下,一個2.6 GHz Intel Core i5 處理核心每秒只能處理150個添加操作.因此,我們引入了服務(wù)節(jié)點,服務(wù)節(jié)點利用算力為用戶更新證明從而獲得報酬.

    4 基于分片的擴容技術(shù)

    分片技術(shù)的主要思想可以簡單描述為分而治之,將單鏈結(jié)構(gòu)拆分為多條并行運行的子鏈(分片),通過增加分片數(shù)量來提升系統(tǒng)的處理能力.分片技術(shù)可以分為交易分片和狀態(tài)分片.交易分片僅僅實現(xiàn)交易的并行處理,每個節(jié)點依然需要保存所有分片的數(shù)據(jù).當大量提升系統(tǒng)吞吐后,節(jié)點的存儲壓力極具增大.相比之下,狀態(tài)分片不僅僅將交易的處理并行化,每個分片只需保存與自己處理交易相關(guān)的狀態(tài)信息,降低了分片的存儲壓力.然而,為了防止惡意節(jié)點集中到某個特定分片發(fā)起攻擊,目前的分片技術(shù)通常建立在周期性隨機重組的架構(gòu)下,每次分片重組都需要重新下載新分片的數(shù)據(jù)和狀態(tài),節(jié)點的帶寬開銷增加,并且嚴重限制了分片切換的頻率.為此,本節(jié)將無狀態(tài)客戶端與分片技術(shù)相結(jié)合,利用無狀態(tài)客戶端低存儲的特點,降低分片切換時的狀態(tài)遷移量.介紹了分片周期性隨機重組的系統(tǒng)結(jié)構(gòu),將分片技術(shù)與無狀態(tài)客戶端進行結(jié)合,消除分片周期性隨機重組導(dǎo)致的狀態(tài)遷移問題.

    4.1 分片周期性隨機重組

    分片技術(shù)將全網(wǎng)算力(或權(quán)益)劃分為多個部分,每個分片只擁有全網(wǎng)算力的一小部分,為了避免惡意節(jié)點集中到某個特定分片發(fā)起定向攻擊,目前絕大部分基于分片的擴容技術(shù)都采用周期性隨機重組的架構(gòu).如圖5所示,每個階段開始,全網(wǎng)節(jié)點都會根據(jù)上一階段末產(chǎn)生的新的隨機數(shù)進行分片重組,節(jié)點無法預(yù)知它將分配到具體哪個分片中.此外,為了防止分片內(nèi)節(jié)點串通作惡,分片切換的周期越短,系統(tǒng)越安全.

    Fig. 5 Periodically reshuffling architecture of sharding圖5 分片周期性隨機重組結(jié)構(gòu)

    然而,周期性隨機重組的架構(gòu)面臨2矛盾:1)在支持狀態(tài)分片的情況下,每個分片只保留了當前分片的狀態(tài)與數(shù)據(jù),當切換到其他分片后,需要重新下載新分片的狀態(tài)與數(shù)據(jù),這個過程稱為狀態(tài)遷移.狀態(tài)遷移極大地增加了網(wǎng)絡(luò)帶寬開銷,同時也限制了分片切換的頻率;2)在不支持狀態(tài)分片的情況下,節(jié)點存儲每個分片的狀態(tài)與數(shù)據(jù),雖然不存在狀態(tài)遷移問題,但節(jié)點的存儲壓力急劇增大.

    4.2 無狀態(tài)客戶端降低狀態(tài)遷移代價

    在第3節(jié)中,我們介紹了無狀態(tài)客戶端,節(jié)點只需要保存區(qū)塊頭以及最近n個區(qū)塊的數(shù)據(jù),不僅降低了節(jié)點存儲歷史區(qū)塊的開銷,同時將GB級的狀態(tài)壓縮到固定的KB級,降低了節(jié)點對內(nèi)存的開銷.在周期性隨機重組的分片架構(gòu)下,主要面臨分片重組時的狀態(tài)遷移問題,無狀態(tài)客戶端設(shè)計能夠完美解決以上問題.在支持狀態(tài)分片的情況下,每次分片切換只需要下載新分片的區(qū)塊頭和少量的緩存數(shù)據(jù),大大降低狀態(tài)遷移代價.此外,由于區(qū)塊頭占用極少的存儲空間,驗證節(jié)點有能力存儲所有分片的區(qū)塊頭,在每次分片重組后,節(jié)點可以不進行任何狀態(tài)遷移,可以立即切換到新分片開始工作.

    5 實驗與結(jié)果

    在本節(jié)中,我們使用本文提供的技術(shù)構(gòu)建了一個輕量級、可擴展的區(qū)塊鏈模型PocketChain,并測試了系統(tǒng)的吞吐量和節(jié)點的存儲開銷.

    5.1 實驗環(huán)境與設(shè)置

    我們基于RSA累加器、Merkle樹以及非成員見證的源碼實現(xiàn)了PocketChain的無狀態(tài)客戶端.其中,RSA累加器使用3 072 b的模,素數(shù)采用128 b,Merkle節(jié)點為32 B,這些參數(shù)在密碼領(lǐng)域被公認為安全的.我們使用60個物理節(jié)點構(gòu)建了本地集群,每個節(jié)點配置一個8核Intel Xeon E5-1620 3.6 GHz處理器、48 GB內(nèi)存、3 TB硬盤和10 Gbs的以太網(wǎng)卡.在測試分片的擴展性時,我們使用docker模擬了1 800個節(jié)點.

    5.2 RSA累加器更新效率

    本節(jié)我們測試了RSA累加器在未知秘鑰的情況下,針對批量刪除和添加操作的更新效率.累加器的更新效率直接影響了系統(tǒng)的吞吐能力.其中,Boneh使用RSA累加器構(gòu)建UTXO承諾,需要進行大量刪除操作,而PocketChain使用RSA累加器構(gòu)建STO承諾,只需要進行添加操作.

    圖6展示了PocketChain與Boneh累加器的更新效率對比.實驗結(jié)果表明,PocketChain STO承諾的更新效率遠大于Boneh UTXO承諾的更新效率,并且隨著操作數(shù)量的增加,性能差距越明顯.例如,當操作數(shù)量達到1 000時,Boneh累加器更新時間是PocketChain的50倍.這就導(dǎo)致,依賴于RSA累加器刪除操作的無狀態(tài)客戶端設(shè)計面臨嚴重的性能問題.

    Fig. 6 Performance of accumulator update圖6 累加器更新效率

    我們綜合考慮累加器更新效率、交易驗證時間開銷,測試了系統(tǒng)支持的最高吞吐.我們假設(shè)每個區(qū)塊包含500筆交易,每筆交易有2個輸入和2個輸出.同樣,我們與Boneh的工作進行了對比.實驗結(jié)果如表1所示,Boneh由于累加器更新效率低,最高吞吐只能實現(xiàn)3.2 TPS,相比之下,PocketChain能實現(xiàn)100 TPS.

    Table 1 A Single Chain Maximum TPS表1 單鏈系統(tǒng)最高吞吐

    5.3 單節(jié)點存儲

    在本節(jié)中,我們測試了單鏈環(huán)境下節(jié)點的存儲壓力.我們獲取了比特幣從2015-01—2019-01的歷史交易數(shù)據(jù),并將其運用到PocketChain中.此外,我們將STO緩存設(shè)置為1 d,足夠絕大多數(shù)交易被處理.

    圖7展示了PocketChain和比特幣的內(nèi)存開銷對比.比特幣內(nèi)存開銷從2015—2019年增加了4倍,目前已經(jīng)到達了2.7 GB,相比之下,PocketChain采用無狀態(tài)客戶端設(shè)計,每個節(jié)點只需要保存58 MB(最近一天)的STO緩存數(shù)據(jù).

    Fig. 7 RAM usage comparison between Bitcoin and PocketChain圖7 比特幣與PocketChain內(nèi)存使用量對比

    Fig. 8 Disk usage comparison between Bitcoin and PocketChain圖8 比特幣與PocketChain磁盤使用量對比

    圖8展示了PocketChain與比特幣硬盤使用開銷對比.比特幣需要保存所有歷史區(qū)塊的數(shù)據(jù),目前已經(jīng)占用了233 GB的硬盤存儲空間.相比之下,PocketChain只需要保存區(qū)塊頭,增長速度緩慢,目前僅需0.27 GB的存儲空間.

    5.4 分片擴展能力

    本節(jié)我們首先測試了分片的擴展能力,然后與最新的分片工作進行了對比,結(jié)果如表2所示.其中:k表示分片數(shù)量.

    在TPS方面,所有的工作都能線性提升系統(tǒng)吞吐.在磁盤消耗方面,OmniLedger采用基于檢查點賬本剪枝技術(shù),只需存儲從上一個檢查點到最近的歷史區(qū)塊,能夠大大降低磁盤存儲空間;相比之下,PocketChain僅需要存儲所有歷史區(qū)塊頭,由于區(qū)塊頭占用極少的存儲空間,依然能有效降低磁盤存儲.

    Table 2 Comparison of PocketChain with State-of-the-art Sharding-based Blockchain Protocols表2 PocketChain與最新的分片協(xié)議的對比

    在內(nèi)存的消耗方面,OmniLedger,RapidChain,SSChain支持狀態(tài)分片,只需存儲1k的狀態(tài),隨著時間的增長,狀態(tài)空間依然保持增長.相比之下,PocketChain使用無狀態(tài)客戶端,節(jié)點只需保存最近n個區(qū)塊的狀態(tài)信息(MB級),內(nèi)存消耗為常數(shù).

    在狀態(tài)遷移方面,OmniLedger和RapidChain在分片切換時,都需要下載大量狀態(tài)信息;SSChain在雙層架構(gòu)下,利用經(jīng)濟激勵機制避免了分片重組.PocketChain可以存儲所有分片鏈的區(qū)塊頭,分片切換時不需要下載額外數(shù)據(jù);在沒有保存其他分片鏈的情況下,也只需要同步區(qū)塊頭,大大降低同步帶寬和時間開銷.

    5.5 去中心化與安全性分析

    PocketChain采用無狀態(tài)客戶端來降低節(jié)點存儲壓力,節(jié)點僅需存儲歷史區(qū)塊頭與最近n個區(qū)塊,硬盤消耗增長緩慢,內(nèi)存開銷固定,大大降低了運行一個礦工節(jié)點和驗證節(jié)點的存儲成本,去中心化程度得到提升.相比之下,目前的公有鏈,例如比特幣和以太坊,硬盤和內(nèi)存資源消耗隨著時間快速增長,運行礦工節(jié)點和驗證節(jié)點的成本不斷增加,可以預(yù)測在不久的將來,只有少數(shù)“超級”節(jié)點能夠完成交易的驗證,系統(tǒng)中心化程度逐漸增加.

    在安全性方面,使用Class Group構(gòu)建RSA累加器,避免了可信第三方的初始化設(shè)置.此外,分片重組頻率與分片系統(tǒng)的安全性密切相關(guān),在賄賂攻擊模型下,惡意節(jié)點可以通過賄賂改變?nèi)魏握\實節(jié)點的行為.假設(shè)全網(wǎng)節(jié)點數(shù)量為m,分片數(shù)量為n,惡意節(jié)點數(shù)量為k,分片切換周期為x.在隨機分組下,每個分片初始分配的惡意節(jié)點數(shù)量為kn.假設(shè)攻擊者平均每t時間成功賄賂1個誠實節(jié)點,那么必須保證:

    PocketChain將無狀態(tài)客戶端運用于分片技術(shù)架構(gòu)下,由于無狀態(tài)客戶端低存儲的特點,降低了分片周期性隨機重組導(dǎo)致的狀態(tài)遷移代價,從而可以提升分片重組頻率,進一步增加分片系統(tǒng)的安全性.

    6 結(jié)論與下一步工作

    本文聚焦于公有鏈低吞吐和數(shù)據(jù)增長問題,提出了一種面向UTXO模型的輕量級、可擴展的公有鏈PocketChain.首先,PocketChain使用具有批處理能力的RSA累加器構(gòu)建無狀態(tài)客戶端,驗證節(jié)點只需保存歷史區(qū)塊頭和最近的n個區(qū)塊,避免存儲大量歷史區(qū)塊和狀態(tài)信息.然后,將無狀態(tài)客戶端運用于分片技術(shù)架構(gòu)下,一方面通過增加分片數(shù)量,能大大提升系統(tǒng)的處理能力;另一方面,由于無狀態(tài)客戶端低存儲的特點,克服了分片周期性隨機重組導(dǎo)致的狀態(tài)遷移問題,從而能進一步提升分片重組頻率,增加分片系統(tǒng)安全性.實驗結(jié)果表明,本文提出的PocketChain能有效解決驗證節(jié)點存儲增長問題,并降低分片技術(shù)周期性隨機重組導(dǎo)致的狀態(tài)遷移代價.

    本文提出的將無狀態(tài)客戶端與分片技術(shù)相結(jié)合的方法,還遺留2個問題有待進一步研究:1)針對服務(wù)提供者提出恰當?shù)慕?jīng)濟激勵機制.對于那些長久沒有更新未消費證明的用戶,他們依賴服務(wù)提供者的計算服務(wù),如何激勵服務(wù)提供者為用戶服務(wù)是一個有待解決的經(jīng)濟問題;2)進一步降低見證更新頻率.基于RSA累加器的狀態(tài)壓縮方法,每次累加值更新后,對應(yīng)的(非)成員見證都需要同步更新.雖然PocketChain引入了緩存機制,僅僅避免了在交易沒被及時處理的情況下頻繁更新見證的問題.如何設(shè)計更優(yōu)秀的累加器、降低見證的更新頻率,是一個非常值得研究的方向.

    猜你喜歡
    累加器分片客戶端
    格上身份基簡短關(guān)聯(lián)環(huán)簽名及其電子投票應(yīng)用
    無線電工程(2024年5期)2024-07-20 00:00:00
    上下分片與詞的時空佈局
    詞學(2022年1期)2022-10-27 08:06:12
    密碼累加器研究進展及應(yīng)用
    分片光滑邊值問題的再生核方法
    CDN存量MP4視頻播放優(yōu)化方法
    基于模糊二分查找的幀分片算法設(shè)計與實現(xiàn)
    縣級臺在突發(fā)事件報道中如何應(yīng)用手機客戶端
    傳媒評論(2018年4期)2018-06-27 08:20:24
    孵化垂直頻道:新聞客戶端新策略
    傳媒評論(2018年4期)2018-06-27 08:20:16
    基于Vanconnect的智能家居瘦客戶端的設(shè)計與實現(xiàn)
    電子測試(2018年10期)2018-06-26 05:53:34
    基于霍夫變換的工位點識別算法設(shè)計與實現(xiàn)
    老鸭窝网址在线观看| 特大巨黑吊av在线直播| 99久国产av精品| 欧美高清性xxxxhd video| 久久久精品大字幕| 天天一区二区日本电影三级| 国产免费男女视频| 在线观看午夜福利视频| 波多野结衣高清作品| 色哟哟·www| 嫩草影院精品99| 欧美成人一区二区免费高清观看| 午夜老司机福利剧场| 别揉我奶头~嗯~啊~动态视频| 特大巨黑吊av在线直播| 午夜精品一区二区三区免费看| 欧美乱色亚洲激情| 国产精品乱码一区二三区的特点| 一进一出抽搐gif免费好疼| 精品国产三级普通话版| 国产男靠女视频免费网站| 欧美黄色片欧美黄色片| 国产成人福利小说| 国产亚洲欧美在线一区二区| 男女之事视频高清在线观看| 成年人黄色毛片网站| 国产成人av教育| 欧美高清性xxxxhd video| 禁无遮挡网站| 99热只有精品国产| 老熟妇仑乱视频hdxx| 美女免费视频网站| 久久精品国产清高在天天线| 狠狠狠狠99中文字幕| 69人妻影院| 中国美女看黄片| 日韩有码中文字幕| 日本三级黄在线观看| 午夜精品一区二区三区免费看| 亚洲成av人片在线播放无| 黄色配什么色好看| 国产亚洲精品久久久久久毛片| 2021天堂中文幕一二区在线观| 他把我摸到了高潮在线观看| a级毛片免费高清观看在线播放| 色播亚洲综合网| 日韩亚洲欧美综合| 精品无人区乱码1区二区| 欧美极品一区二区三区四区| 日韩欧美在线二视频| 日韩欧美在线乱码| 欧美三级亚洲精品| 亚洲乱码一区二区免费版| 黄色女人牲交| 亚州av有码| 亚洲黑人精品在线| 能在线免费观看的黄片| 亚洲一区高清亚洲精品| 别揉我奶头 嗯啊视频| 人妻丰满熟妇av一区二区三区| 老司机福利观看| 亚洲三级黄色毛片| 免费在线观看日本一区| 伊人久久精品亚洲午夜| 国产视频一区二区在线看| 国产伦精品一区二区三区视频9| 成人午夜高清在线视频| 欧美丝袜亚洲另类 | 美女cb高潮喷水在线观看| 丰满人妻熟妇乱又伦精品不卡| 久久久久国产精品人妻aⅴ院| 亚洲成人精品中文字幕电影| 国产精品自产拍在线观看55亚洲| 日韩 亚洲 欧美在线| 免费在线观看日本一区| 国产精品一区二区性色av| 亚洲av美国av| 欧美xxxx黑人xx丫x性爽| 欧美日韩亚洲国产一区二区在线观看| 国产精品99久久久久久久久| 精品人妻偷拍中文字幕| 亚洲自偷自拍三级| 99riav亚洲国产免费| 婷婷丁香在线五月| 亚洲国产日韩欧美精品在线观看| 欧美+亚洲+日韩+国产| 亚洲精品粉嫩美女一区| 久久久国产成人免费| 人妻丰满熟妇av一区二区三区| 999久久久精品免费观看国产| 一级a爱片免费观看的视频| a级毛片免费高清观看在线播放| 禁无遮挡网站| 在线播放国产精品三级| 国产伦在线观看视频一区| 一进一出抽搐gif免费好疼| 国产精品,欧美在线| 狠狠狠狠99中文字幕| 精品人妻熟女av久视频| 老女人水多毛片| 亚洲无线观看免费| 久久精品人妻少妇| 88av欧美| 在线观看午夜福利视频| 色综合欧美亚洲国产小说| 久久伊人香网站| 亚洲三级黄色毛片| 日韩国内少妇激情av| 999久久久精品免费观看国产| 3wmmmm亚洲av在线观看| 久久久久久国产a免费观看| 日韩高清综合在线| 国产成人欧美在线观看| 免费人成在线观看视频色| 国产乱人伦免费视频| 亚洲真实伦在线观看| 我的女老师完整版在线观看| 男女之事视频高清在线观看| 一进一出抽搐动态| 久久人妻av系列| 白带黄色成豆腐渣| 久久久久亚洲av毛片大全| 午夜亚洲福利在线播放| 午夜福利成人在线免费观看| 黄色日韩在线| 国产黄a三级三级三级人| 免费在线观看亚洲国产| 欧美激情国产日韩精品一区| 欧美午夜高清在线| 国产欧美日韩一区二区精品| 日本熟妇午夜| 精品午夜福利在线看| 亚洲人成电影免费在线| 欧美日本视频| 色噜噜av男人的天堂激情| 午夜福利免费观看在线| 久久香蕉精品热| 国产乱人伦免费视频| 又紧又爽又黄一区二区| 国内少妇人妻偷人精品xxx网站| 国产高清激情床上av| 日本免费a在线| 国产欧美日韩一区二区精品| av在线老鸭窝| 婷婷精品国产亚洲av| www日本黄色视频网| 欧美日韩中文字幕国产精品一区二区三区| 国产精华一区二区三区| 欧美xxxx黑人xx丫x性爽| 亚洲第一欧美日韩一区二区三区| 欧美一级a爱片免费观看看| 国内精品一区二区在线观看| 91字幕亚洲| 亚洲无线在线观看| 如何舔出高潮| 国产精品综合久久久久久久免费| 色播亚洲综合网| 精品一区二区三区av网在线观看| 久久国产乱子免费精品| 国模一区二区三区四区视频| 午夜日韩欧美国产| 精品久久久久久久久亚洲 | 国产美女午夜福利| 熟妇人妻久久中文字幕3abv| 五月玫瑰六月丁香| 热99re8久久精品国产| 国内精品一区二区在线观看| 日韩欧美三级三区| 亚洲人与动物交配视频| 成人高潮视频无遮挡免费网站| 亚洲精品成人久久久久久| 欧美xxxx黑人xx丫x性爽| 窝窝影院91人妻| 亚洲精品日韩av片在线观看| 97热精品久久久久久| 欧美最黄视频在线播放免费| 久久精品国产自在天天线| 亚洲成av人片免费观看| 国产精品人妻久久久久久| 中文字幕人成人乱码亚洲影| 亚洲人成电影免费在线| 国产精品乱码一区二三区的特点| 色哟哟·www| 成熟少妇高潮喷水视频| 国产一级毛片七仙女欲春2| 嫩草影院精品99| 国产久久久一区二区三区| 人妻夜夜爽99麻豆av| 亚洲av一区综合| av黄色大香蕉| 无遮挡黄片免费观看| 一区二区三区免费毛片| 看片在线看免费视频| 日韩中字成人| 18禁黄网站禁片午夜丰满| 少妇熟女aⅴ在线视频| 久久中文看片网| aaaaa片日本免费| 99久久九九国产精品国产免费| 美女高潮喷水抽搐中文字幕| 精品99又大又爽又粗少妇毛片 | 久久久久久久久久黄片| 久久99热6这里只有精品| 免费av不卡在线播放| 精品久久国产蜜桃| 中文字幕免费在线视频6| 成年女人看的毛片在线观看| 成人午夜高清在线视频| 啦啦啦韩国在线观看视频| 美女大奶头视频| 国产亚洲精品久久久com| 亚洲无线观看免费| 美女黄网站色视频| 日本撒尿小便嘘嘘汇集6| 在线a可以看的网站| 国产三级黄色录像| 亚洲av电影不卡..在线观看| 男人舔奶头视频| 一边摸一边抽搐一进一小说| 成人永久免费在线观看视频| 亚洲内射少妇av| 成熟少妇高潮喷水视频| 老熟妇仑乱视频hdxx| 国产精品久久久久久人妻精品电影| 免费在线观看日本一区| 国产一区二区在线观看日韩| 在线免费观看不下载黄p国产 | 精品国产三级普通话版| 51国产日韩欧美| 国产探花极品一区二区| 88av欧美| 黄色丝袜av网址大全| 午夜福利在线在线| 亚洲欧美清纯卡通| 国产免费男女视频| 国产国拍精品亚洲av在线观看| 精品久久久久久成人av| 亚洲 国产 在线| 中国美女看黄片| 色5月婷婷丁香| 97超视频在线观看视频| 99久国产av精品| 每晚都被弄得嗷嗷叫到高潮| 男插女下体视频免费在线播放| 欧美+日韩+精品| 亚洲激情在线av| 色视频www国产| 欧美日韩黄片免| 亚洲欧美日韩卡通动漫| 美女被艹到高潮喷水动态| 男人舔女人下体高潮全视频| 国产成人欧美在线观看| ponron亚洲| 亚洲五月天丁香| 国产亚洲精品综合一区在线观看| 国产黄a三级三级三级人| 日本在线视频免费播放| 亚洲av成人不卡在线观看播放网| 国产亚洲精品久久久com| 黄色配什么色好看| 亚洲无线在线观看| 亚洲av成人精品一区久久| 男人舔女人下体高潮全视频| 国产精品伦人一区二区| 日韩免费av在线播放| 最近最新免费中文字幕在线| 成人国产综合亚洲| 国产精品自产拍在线观看55亚洲| 亚洲av中文字字幕乱码综合| 哪里可以看免费的av片| 亚洲人成网站在线播| 国产精品久久久久久亚洲av鲁大| 麻豆国产av国片精品| 国语自产精品视频在线第100页| 噜噜噜噜噜久久久久久91| 国产综合懂色| 99久久精品热视频| 久久99热6这里只有精品| 麻豆久久精品国产亚洲av| 国产精品久久久久久人妻精品电影| 国产亚洲精品av在线| 一二三四社区在线视频社区8| 欧洲精品卡2卡3卡4卡5卡区| 色噜噜av男人的天堂激情| aaaaa片日本免费| 国产精品一区二区性色av| 色精品久久人妻99蜜桃| 99国产精品一区二区三区| 丰满乱子伦码专区| 午夜精品一区二区三区免费看| 婷婷六月久久综合丁香| 久久精品国产99精品国产亚洲性色| 国产精品综合久久久久久久免费| 国产欧美日韩一区二区精品| 日本黄大片高清| 最近最新免费中文字幕在线| 老熟妇乱子伦视频在线观看| 午夜亚洲福利在线播放| 欧美高清成人免费视频www| 免费高清视频大片| 又爽又黄a免费视频| 日韩中字成人| 人妻久久中文字幕网| 2021天堂中文幕一二区在线观| 国产淫片久久久久久久久 | 日韩中文字幕欧美一区二区| 亚洲18禁久久av| 老司机午夜十八禁免费视频| 亚洲在线自拍视频| 国产精品一区二区三区四区久久| 久久久色成人| 国产亚洲精品av在线| 中文字幕人成人乱码亚洲影| 一本久久中文字幕| 精品人妻一区二区三区麻豆 | 成人特级av手机在线观看| 国产精品伦人一区二区| 好看av亚洲va欧美ⅴa在| 国产成年人精品一区二区| 美女 人体艺术 gogo| 赤兔流量卡办理| 久久国产乱子免费精品| 狠狠狠狠99中文字幕| 国产在线精品亚洲第一网站| 国产精品乱码一区二三区的特点| 亚洲激情在线av| 成人av在线播放网站| 免费av观看视频| 久久中文看片网| 亚洲人成电影免费在线| 久久国产精品人妻蜜桃| 国内少妇人妻偷人精品xxx网站| 69人妻影院| 中文字幕免费在线视频6| 亚洲中文字幕一区二区三区有码在线看| 色综合站精品国产| 精品日产1卡2卡| 欧美日韩黄片免| 日日干狠狠操夜夜爽| 国产单亲对白刺激| 三级男女做爰猛烈吃奶摸视频| 免费大片18禁| 国产成人啪精品午夜网站| 国内精品美女久久久久久| 露出奶头的视频| 精品人妻一区二区三区麻豆 | 极品教师在线免费播放| 国产高清三级在线| 色在线成人网| 日韩欧美精品免费久久 | 69人妻影院| 国产综合懂色| 国产爱豆传媒在线观看| 在线观看美女被高潮喷水网站 | 亚洲国产高清在线一区二区三| 午夜福利欧美成人| ponron亚洲| 黄片小视频在线播放| 99久久无色码亚洲精品果冻| 欧洲精品卡2卡3卡4卡5卡区| 久久精品人妻少妇| 午夜福利视频1000在线观看| 色综合婷婷激情| 久久久成人免费电影| 夜夜夜夜夜久久久久| 亚洲人成网站在线播放欧美日韩| 黄色女人牲交| 欧美极品一区二区三区四区| 12—13女人毛片做爰片一| 亚洲性夜色夜夜综合| 久久伊人香网站| 久久久久久九九精品二区国产| 日本a在线网址| 国产又黄又爽又无遮挡在线| 色哟哟哟哟哟哟| 一个人免费在线观看的高清视频| 亚洲男人的天堂狠狠| 午夜两性在线视频| 亚洲内射少妇av| 精品一区二区三区视频在线| 国产亚洲精品av在线| 国产不卡一卡二| 日韩亚洲欧美综合| 少妇熟女aⅴ在线视频| 欧美一区二区国产精品久久精品| 精品久久久久久久久久免费视频| 精品久久久久久久久亚洲 | 亚洲av二区三区四区| 免费观看人在逋| 国产av麻豆久久久久久久| 精品一区二区免费观看| 亚洲av电影不卡..在线观看| 2021天堂中文幕一二区在线观| 简卡轻食公司| h日本视频在线播放| 欧美一区二区国产精品久久精品| 亚洲三级黄色毛片| 九九久久精品国产亚洲av麻豆| 91麻豆av在线| 亚洲精品一区av在线观看| 中国美女看黄片| 性色av乱码一区二区三区2| 免费看日本二区| 亚洲av电影不卡..在线观看| 很黄的视频免费| 亚洲av一区综合| 国产av不卡久久| 一区二区三区免费毛片| 亚洲一区二区三区色噜噜| 午夜福利高清视频| 成年女人永久免费观看视频| 成人av在线播放网站| 啦啦啦观看免费观看视频高清| 熟女电影av网| 美女xxoo啪啪120秒动态图 | 欧美区成人在线视频| 国产精品日韩av在线免费观看| 国产精品亚洲av一区麻豆| 一个人看的www免费观看视频| 国产免费av片在线观看野外av| 亚洲人成电影免费在线| 国产免费男女视频| 亚洲综合色惰| 能在线免费观看的黄片| 99国产精品一区二区三区| 99热只有精品国产| 在线看三级毛片| 人人妻人人澡欧美一区二区| 免费在线观看亚洲国产| 久久国产乱子免费精品| 男人狂女人下面高潮的视频| 色噜噜av男人的天堂激情| 亚洲久久久久久中文字幕| 久久精品国产亚洲av香蕉五月| 99热这里只有精品一区| 国产蜜桃级精品一区二区三区| 级片在线观看| 一二三四社区在线视频社区8| 啦啦啦韩国在线观看视频| 亚洲国产欧美人成| 中文在线观看免费www的网站| 成人毛片a级毛片在线播放| 最近最新中文字幕大全电影3| 国产免费男女视频| 精品久久久久久久久亚洲 | 久久欧美精品欧美久久欧美| 99热只有精品国产| 少妇人妻精品综合一区二区 | 欧美xxxx黑人xx丫x性爽| 小说图片视频综合网站| 给我免费播放毛片高清在线观看| 国产精品综合久久久久久久免费| 国产日本99.免费观看| 午夜影院日韩av| 极品教师在线视频| 久久婷婷人人爽人人干人人爱| 亚洲va日本ⅴa欧美va伊人久久| 日韩欧美免费精品| 白带黄色成豆腐渣| 天美传媒精品一区二区| 国产色爽女视频免费观看| 亚洲专区中文字幕在线| 淫秽高清视频在线观看| 日本三级黄在线观看| 免费av不卡在线播放| 亚州av有码| 可以在线观看毛片的网站| 九九热线精品视视频播放| 国产伦在线观看视频一区| 久久6这里有精品| 在线天堂最新版资源| 国产欧美日韩一区二区精品| 亚洲精品在线观看二区| 成熟少妇高潮喷水视频| 91麻豆精品激情在线观看国产| 欧美一级a爱片免费观看看| 国产一区二区亚洲精品在线观看| 国产伦在线观看视频一区| 天天躁日日操中文字幕| 国产一级毛片七仙女欲春2| 日韩有码中文字幕| 亚洲成人中文字幕在线播放| 一本精品99久久精品77| 国产一区二区在线av高清观看| 国产精品不卡视频一区二区 | 久久香蕉精品热| 99在线视频只有这里精品首页| 亚洲精品一区av在线观看| 精品日产1卡2卡| 久久精品国产清高在天天线| av专区在线播放| 欧美一区二区亚洲| 黄色日韩在线| 久9热在线精品视频| 99国产极品粉嫩在线观看| 国产v大片淫在线免费观看| 国产精品久久久久久精品电影| 亚洲欧美日韩高清在线视频| 国产精品自产拍在线观看55亚洲| 激情在线观看视频在线高清| 国产亚洲精品久久久com| 好男人电影高清在线观看| 久久久国产成人精品二区| 久久婷婷人人爽人人干人人爱| 欧美最黄视频在线播放免费| 国产精品女同一区二区软件 | 草草在线视频免费看| 久久久久久久亚洲中文字幕 | 伦理电影大哥的女人| 午夜精品在线福利| 2021天堂中文幕一二区在线观| 亚洲人成网站在线播| 深夜精品福利| 中文资源天堂在线| 性插视频无遮挡在线免费观看| 成人特级黄色片久久久久久久| 国产成人av教育| 精品久久久久久久久亚洲 | av在线蜜桃| 99热这里只有是精品在线观看 | 国产色婷婷99| 欧美日韩乱码在线| 久久香蕉精品热| 在线看三级毛片| 亚洲综合色惰| 欧美高清成人免费视频www| 欧美zozozo另类| 亚洲中文字幕一区二区三区有码在线看| 国产中年淑女户外野战色| 一a级毛片在线观看| 成人美女网站在线观看视频| 国产精品精品国产色婷婷| 亚洲av二区三区四区| 别揉我奶头~嗯~啊~动态视频| 精品久久久久久,| 亚洲天堂国产精品一区在线| 九九热线精品视视频播放| 婷婷精品国产亚洲av| 国产真实乱freesex| 国产一区二区在线观看日韩| 亚洲在线观看片| 欧美一区二区亚洲| 久久精品91蜜桃| 97超级碰碰碰精品色视频在线观看| 国产主播在线观看一区二区| 欧美潮喷喷水| 久久6这里有精品| 91久久精品电影网| 人妻久久中文字幕网| 国产黄a三级三级三级人| 免费看光身美女| 欧美成狂野欧美在线观看| 午夜福利18| 最近最新中文字幕大全电影3| 美女xxoo啪啪120秒动态图 | 在线看三级毛片| 高清日韩中文字幕在线| 国产精品人妻久久久久久| 日本 欧美在线| 大型黄色视频在线免费观看| 国产精品久久电影中文字幕| 成人特级av手机在线观看| 精品福利观看| 欧美xxxx性猛交bbbb| 精品一区二区免费观看| 国产精品人妻久久久久久| 午夜福利免费观看在线| av专区在线播放| 又黄又爽又免费观看的视频| 麻豆国产97在线/欧美| 一本精品99久久精品77| 精品久久久久久,| 午夜激情福利司机影院| 99久久久亚洲精品蜜臀av| 国产亚洲av嫩草精品影院| 欧美日韩综合久久久久久 | 一本久久中文字幕| 亚洲乱码一区二区免费版| 真实男女啪啪啪动态图| 在线观看美女被高潮喷水网站 | 久久亚洲真实| 国产三级中文精品| 观看免费一级毛片| 一级毛片久久久久久久久女| 亚洲国产高清在线一区二区三| 欧美3d第一页| 男女床上黄色一级片免费看| 少妇高潮的动态图| 能在线免费观看的黄片| 亚洲综合色惰| 国产探花极品一区二区| 国产精品美女特级片免费视频播放器| 免费av毛片视频| 国产午夜精品论理片| 久久九九热精品免费| 婷婷色综合大香蕉| 看黄色毛片网站| 最后的刺客免费高清国语| 国产野战对白在线观看| 免费人成在线观看视频色| 久久天躁狠狠躁夜夜2o2o| av中文乱码字幕在线| 日本一本二区三区精品| 亚洲国产精品成人综合色| 成人毛片a级毛片在线播放| 精品久久久久久久久久久久久| 观看美女的网站| 日韩欧美 国产精品| 又爽又黄a免费视频| 一级毛片久久久久久久久女| 一进一出抽搐gif免费好疼| 欧美国产日韩亚洲一区| 听说在线观看完整版免费高清| 精品一区二区三区视频在线观看免费| 如何舔出高潮|