999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于激勵相容的權益分散共識算法

2023-01-27 09:08:24田有亮袁延森高鴻峰楊旸熊金波
通信學報 2022年12期

田有亮,袁延森,高鴻峰,楊旸,熊金波

(1.貴州大學公共大數據國家重點實驗室,貴州 貴陽 550025;2.貴州大學計算機科學與技術學院,貴州 貴陽 550025;3.貴州大學密碼學與數據安全研究所,貴州 貴陽 550025;4.貴州省密碼學與區塊鏈技術特色重點實驗室,貴州 貴陽 550025;5.新加坡管理大學計算機與信息系統學院,新加坡 188065;6.福建師范大學計算機與網絡空間安全學院,福建 福州 350117)

0 引言

區塊鏈作為比特幣[1]等加密貨幣的底層技術,自問世以來引起廣泛的關注。區塊鏈是在分布式、不可信環境中,所有節點通過特定的共識算法就區塊鏈狀態的更新達成一致的技術。共識算法為區塊鏈提供了核心功能[2],從根本上決定了整個區塊鏈系統的安全性、可用性等性能[3]。

區塊鏈系統中涉及的數據記錄由全網節點進行維護和生成,從而實現了去中心化。由于任何人都可以參與創建和驗證區塊,因此為防止節點的惡意行為,系統需要參與節點付出一定代價。工作量證明(PoW,proof of work)也叫PoW 共識[1],通過引入節點間的算力競爭來保證數據一致性,使女巫攻擊[4]等惡意行為的作惡成本增加。作為成功挖礦的回報,礦工將獲得與他們投入的計算能力成比例的獎勵。

然而,PoW 共識的安全性存在一些隱患。首先,由于挖礦過程受到計算能力和概率因素的影響,導致單個礦工的期望收入較低,獎勵波動較高,因此,礦工通過加入礦池聚合計算能力來穩定收入。雖然礦池對穩定礦工收益有利,但大型礦池對系統來說是有風險的[5-6]。其次,PoW 共識已被證明是激勵不相容的[5,7],在某些情況下,礦工的最佳策略是不立即公布他們找到的區塊,而是將其保留一段時間,通過偏離協議來獲得不成比例的利益,即自私挖礦攻擊[8-9]。最后,PoW 共識在不一致的情況下(即區塊鏈中的分叉),系統收斂速度會減緩,浪費大量計算資源[10-11],同時降低發動自私挖礦攻擊的算力閾值[5,12],嚴重危害系統安全性。

針對上述問題,本文提出一種基于搜索空間劃分的工作量證明(SSPoW,proof of work based on spatial segmentation)算法。SSPoW 的核心設計是局部解,局部解視為礦工的部分工作量證明,公布該局部解的礦工獲得對應的部分收益。同時定義了全局解和局部解的算力值,以此來量化最終區塊的聚合算力,并通過在全局解中附加局部解來提高區塊算力,以此加快分叉的收斂速度。局部解的引入和附加提高了挖礦的透明度和共識效率。本文主要貢獻如下。

1) 改進挖礦算法:基于搜索空間劃分引入局部解,激勵礦工合作挖礦提高共識效率。

2) 重新設計獎勵方案:通過削減獎勵差異來提高礦工挖礦積極性,抑制算力中心化。

3) 更改主鏈選擇協議:通過量化最終區塊的聚合算力來加快分叉的收斂速度。

1 相關工作

文獻[13]利用不可偽造的時間戳提出了新鮮度首選(FP,freshness preferred)策略,優先選擇較新的區塊,降低保留區塊的競爭力從而降低自私挖礦的收益能力,然而,這種方法需要一個可信的時間戳機構來生成不可偽造的時間戳,并要求誠實的礦工記錄所有最近的時間戳發布日志。因此,文獻[14]利用工作量證明的泊松性質提出了一種無時間戳防御策略Zeroblock,通過設置區塊的最大接受時間來限制自私挖礦,但由于哈希率波動,區塊的預期時間可能會出現高方差,使有效區塊失效。文獻[15]引入區塊的“真實狀態”概念,通過為每個交易分配一個預期的確認高度,以檢測網絡中的自私挖礦行為,但網絡中誠實區塊傳播的意外時延會導致交易實際高度增大,反而會有利于自私的礦工。文獻[16]引入透明度并激勵參與者盡快公布區塊來避免自私挖礦,但是誠實礦工的算力仍會被大量浪費。同時在獎勵機制設計方面,文獻[17]證明當可用費用不足時,理性礦工會避免挖礦,并會傾向于加入自私挖礦礦池。文獻[18]提出一種獎勵共享方案(RSS,reward sharing scheme),通過適當激勵參與者,實現效率和安全性的均衡,但是存在富者愈富的現象。文獻[19]基于以太坊提出權益證明檢查點協議Casper,其結果表明該協議通過激勵相容確保了區塊鏈系統的活性,同時提供了比標準工作量證明協議更好的安全保證。在分叉處理方面,文獻[20]提出了一種概率驗證方案PvScheme,可以有效降低區塊傳播時延,從而避免區塊鏈分叉的發生,但安全設計增加了系統的時延,隨著驗證度的提高,分叉概率也呈現出遞增的趨勢。上述方案均存在一些缺陷,本文針對現有共識算法存在的激勵不相容等問題,設計一種基于激勵相容的共識算法,在保證挖礦參與者的積極性的同時,提高共識效率,且可更快地進行分叉處理以及對抗自私挖礦攻擊,對區塊鏈技術的發展具有重要意義。

2 基礎知識

2.1 PoW 共識算法

區塊鏈系統中PoW 共識算法的常見形式為

其中,param 表示與區塊頭部信息相關的數據,nonce 表示隨機數,Target 表示目標值(由網絡中當前難度值決定)。由哈希函數的性質可知,想要找到符合條件的nonce 就必須通過窮舉的方法來實現。最先求得滿足式(1)的nonce 值的礦工獲得記賬權,其余礦工僅需將各參數代入即可驗證其正確性。PoW 算法通信復雜度為O(n),節點數可擴展,參與過程不需要身份驗證。但是,PoW 算法浪費算力資源,效率較低,且容易導致算力中心化。

同時,區塊鏈網絡的整體哈希率和挖礦難度決定了整個網絡生成一個新區塊的時間(區塊間隔)。以比特幣為例,為了將區塊間隔穩定在10 min 左右,以適應不斷變化的總挖礦能力,比特幣網絡每隔2 016 個區塊(即一個難度窗口)就會根據式(2)調整目標Target,即

其中,Timei表示過去第i個塊的生成時間,i∈ [1,2016]。如果平均區塊間隔超過10 min,目標值就會增加,即難度降低。

2.2 自私挖礦攻擊

PoW 共識算法并不總是激勵相容的。通過偏離協議和戰略性地扣留發現的區塊,擁有總計算能力比例α的礦工可能會占據區塊鏈上超過α的區塊,因此獲得與其算力份額不成比例的高回報[21-22]。更具體地說,只要區塊鏈處于比當前主鏈分支多一個或多個區塊的有利位置,攻擊者就試圖通過對發現的區塊保密來創建一條私有鏈。只有當主鏈幾乎趕上時,他才會公布他的私有鏈,從而使公有鏈和誠實的礦工所做的一切努力失效,這種攻擊被稱為自私挖礦。當一個自私礦工的計算能力超過一定的閾值(約33%)[5]時,會更有效率。因此,如果算力足夠分散,自私挖礦攻擊對比誠實挖礦將無效率優勢。

2.3 礦池和算力中心化

由于PoW 共識的挖礦收益取決于算力,因此礦工傾向于集中計算資源以獲取更高收益。挖礦是零和博弈,只有競爭成功得到記賬權的幸運礦工才會得到獎勵,而其他為創造區塊貢獻計算資源但未得到記賬權的礦工則完全無收益。因此礦工會激烈地競爭區塊記賬權,導致計算能力有限的礦工獲得的回報出現極高的差異,單獨的礦工可能需要等待極長時間才能得到回報?;谏鲜銮闆r,礦工聚合計算資源形成礦池以提高獲得記賬權的概率,并根據礦工的算力貢獻來分享獎勵。以比特幣為例,截至2022 年4 月,全球最大的3 個礦池占據了整個網絡50%以上的算力。礦池不僅破壞了區塊鏈的去中心化特性,還引發了各種池內或跨池安全問題[23-24]。

2.4 最長鏈原則和分叉

最長鏈原則指網絡中最長的鏈被定義為正確鏈(即主鏈),要求礦工在主鏈上挖礦。礦工在接收一個新區塊時,必須停止當前挖礦過程,驗證新區塊是否有效,否則無法保證自己始終在主鏈上工作。借助最長鏈原則,保證每個新區塊均被誠實礦工承認。然而,由于網絡時延等問題,偶爾會出現分叉現象,即在某個區塊高度,多名礦工同時挖出區塊,導致礦工對最新區塊鏈狀態做出不同判斷。雖然基于區塊確認機制,上述沖突最終會被解決(僅剩一個分支被承認,其他競爭失敗的分支鏈被廢棄),但是由于區塊具有相同的算力權重,難以進行量化比較,導致分叉收斂過程較緩慢。因此從系統一致性角度考慮,區塊算力的量化具有重要意義。

3 SSPoW 算法設計

3.1 設計概述

基于PoW 的挖礦并不是透明的,在產生區塊前很難快速評估不同礦工的算力。以比特幣為例,由于生成區塊的平均時間是10 min,且每個區塊的隱含計算能力接近相等。因此,出現分叉問題時,比特幣采用最長鏈原則來解決,而該過程相對耗時,且會造成自私挖礦等問題。理想情況下,惡意隱藏區塊應該受到懲罰,然而在實際情況下難以檢測和證明一個區塊是否被隱藏。通過鼓勵礦工公布當前自身計算狀態可以顯著增加挖礦透明度。例如,通過給予公布計算狀態的礦工一定獎勵,并要求最終區塊包含更多的計算結果來變相增強自己的算力。隨著時間的推移,其他礦工可能會創造出具有更高算力的區塊,從而給刻意隱藏區塊的惡意礦工帶來較大的風險,這將激勵礦工立即公布他們的最終區塊。此外,基于零和博弈的獎勵方案會導致礦工間進行激勵競爭,所引發的礦池問題會影響算力分布,進而違背區塊鏈的去中心化特性。為避免此問題,本文重新設計了獎勵方案。通過引入局部解機制,鼓勵礦工間相互合作從而達到激勵相容,同時消除中心化風險。

SSPoW 系統模型如圖1 所示,整個區塊鏈網絡共有n個礦工{P1,P2,P3,···,Pn},基于礦工數將整個隨機數搜索空間劃分為N份 {S1,S2,S3,···,SN},每個空間大小為k。每位礦工選擇一定數量的搜索空間進行隨機數Nonce 的哈希計算,相當于整個系統中的礦工合作進行挖礦。為保證挖礦透明性,礦工間交換各自的搜索結果,從而快速排除無用搜索空間,避免重復計算。

圖1 SSPoW 系統模型

本文方案中,礦工對搜索空間內的隨機數Nonce進行計算驗證,并將未找到正確Nonce 值的搜索空間作為局部解公布。該局部解為礦工已付出算力的工作量證明,同時避免了其余礦工的重復無效計算。找到正確Nonce 值的礦工可將其他礦工已發布的局部解包含至全局解(最終區塊)中,從而更好地反映當前區塊的聚合算力。當發生分叉時,包含更多算力的區塊所在分支將被規定為主鏈。

此外,本文基于局部解重新設計獎勵方案,旨在杜絕零和博弈。全局解若包含局部解,則公布該局部解的礦工將獲取一定比例的獎勵,此獎勵的大小取決于所有局部解的算力貢獻程度。局部解的獎勵并不會影響出塊礦工的獎勵,這將有利于礦工公布區塊時包含更多的局部解,以此來增強自身區塊的聚合算力。

3.2 詳細設計

3.2.1區塊結構

在本文方案中,區塊由交易列表、局部解列表和全局解頭部組成,其中全局解頭部負責驗證交易和局部解列表。區塊頭部字段組成如表1 所示。本文根據Coinbase 字段對應的地址獎勵局部解的公布者(詳見第3.2.4 節)。因為所有獎勵都是由頭部信息決定的,所以交易列表中不再需要Coinbase 交易。為驗證局部解的正確性,本文為局部解引入Addresses 字段代表局部解對應的搜索空間起始地址。由于局部解并不包含交易信息,因此局部解刪除了MerkleRoot 字段。局部解作為區塊的組成部分,需在礦工間進行交換,本文利用哈希函數的抗碰撞性來確保所有相關局部解的完整性,如式(3)所示。

表1 區塊頭部字段

利用OP_RETURN 操作來存儲聚合局部解頭部的哈希值,該哈希值作為數據項存儲于區塊中,其中,headeri是一個指向前一個全局解頭部的局部解頭部。與全局解區塊頭相比,局部解區塊頭并不用于驗證交易,包含局部解的主要目的是反映集中在區塊鏈某個分支上的聚合算力。SSPoW 區塊鏈的片段如圖2 所示。每個區塊包含一個單一的全局解頭部、交易列表和聚合局部解的哈希值。在收到一個新區塊時,礦工通過檢查以下內容來驗證該區塊(見算法 4 中的validateB lock())。

圖2 區塊鏈結構

1) 全局解頭部哈希值滿足要求,并指向之前的全局解頭部。

2) 頭部字段值正確,即版本、目標和時間戳等都設置正確。

3) 所有包含的交易均正確,即MerkleRoot 驗證正確,且聚合局部解的哈希值驗證正確。

4) 所有包含的局部解都是正確的:a) 局部解nonce 值計算出的頭部哈希值符合要求;b) 局部解的PreHash 字段指向前一個全局解頭部;c) 局部解的版本、目標和時間戳均正確。如果驗證成功,該區塊被追加上鏈。

3.2.2挖礦算法

與PoW 共識算法相同,在SSPoW 中,礦工將交易收集到區塊中進行驗證。競爭新區塊的記賬權時,每個礦工試圖通過自身算力對同一哈希難題進行窮舉求解,算法1 中的 mineBlo ck()函數對SSPoW中的挖礦過程進行了簡化描述。礦工通過修改區塊Nonce 字段不斷改變區塊頭部header,當一個頭部的哈希值h=H(header)小于目標值Target,即h< Target 時,相應的區塊會被公布到網絡上,其他礦工驗證通過后,將更新本地區塊鏈狀態,同時啟動下一輪挖礦。

算法1挖礦算法

當礦工在搜索空間Si上進行挖礦后并未發現正確的nonce 時,則可以公布關于該搜索空間的局部解,如算法2 所示。局部解僅包含頭部,不包含區塊體(交易列表),局部解頭部需要提供該搜索空間上的最小頭部哈希值min(hi)(i∈ [a,a+k],a為該搜索空間起始地址)以及min(hi)對應的Nonce。當礦工公布一個局部解時,除了將其添加到本地局部解列表中,還將在區塊鏈網絡中廣播該局部解。每個礦工對收到的局部解進行驗證(見算法 3 中onRecvLoca lBlock()函數),并檢查該局部解是否指向當前最后一個區塊的頭部,及其他字段是否正確。另外,本文方案不限制附加的局部解數量,但同一礦工在同一搜索空間的局部解僅會被附加一次。

算法2局部解生成算法

算法3局部解驗證算法

算法4全局解驗證算法

3.2.3分叉處理

通過在區塊中引入局部解,區塊能更精確地反映聚合挖礦能力。每個區塊包含多個局部解,這些局部解對區塊的聚合算力有貢獻。在分叉的情況下,本文方案依賴于最強鏈原則,即擁有最高聚合算力的分支鏈被選定為主鏈。每條分支鏈的聚合算力根據算法5 中的 chain PoW()函數計算。每條鏈上的每個區塊都會被解析,每個區塊的聚合算力分為兩部分。

2) 所有相關局部解頭部的聚合算力。每個局部解頭部的算力受搜索空間影響,計算式為,其中,N為劃分的搜索空間數量,γ為相對影響因子,表示局部解的權重。

該分支鏈的聚合算力被表示為其所有區塊的算力之和。通過比較各鏈的聚合算力,將具有最大聚合算力的鏈確定為主鏈。假設一個區塊C0包含x個局部解,同時存在包含y個局部解的區塊C1,那么如果x>y,該礦工將選擇C0而不是C1。如圖3所示,在區塊鏈分叉時,擁有C0和C1區塊的礦工將立即決定跟隨C0區塊,因為C0比C1區塊聚合了更多的算力。上述規則激勵礦工盡快公布他們的計算結果,避免隨著時間的推移,競爭區塊算力更高導致自身區塊被廢棄。

圖3 分叉示例

算法5聚合算力計算算法

3.2.4區塊獎勵

SSPoW 共識算法的獎勵分配由算法6 中的rewardBl ock()函數實現。在PoW 共識中,只有成功出塊的礦工才能獲得全額獎勵,而在本文方案中,所有為區塊的生成做出貢獻的礦工(發布局部解的礦工也被包括在內)都將獲得與其所提供的算力相稱的獎勵。一個局部解的公布者獲得全額出塊獎勵R的一部分,即,作為其相應的局部解對特定分支總算力的貢獻獎勵,其中γ為相對影響因子,其大小影響局部解的獎勵權重。本文方案不限制局部解的獎勵數量,礦工針對同一區塊可獲得其發布的多個不同局部解的獎勵,因此獎勵方案不是零和博弈,出塊礦工無法通過舍棄其他礦工的局部解來增加自己的獎勵;相反,若舍棄其他局部解,將導致自身區塊的聚合算力減少,從而影響自身收益。

算法6獎勵分配算法

基于局部解的機制使誠實礦工收入趨于穩定,降低了因競爭記賬權的不確定性所帶來的收益波動,使系統算力更加分散?;谏鲜銮闆r,同一區塊中所有不同局部解均被獎勵,且局部解求解速度與礦工自身算力成正比。為了保證出塊礦工的積極性,將區塊交易費(B.TxFees)歸于全局解頭部的公布者(他也獲得了全部的獎勵R)。在本文獎勵方案中,新鑄幣的數量恒定為R,且貨幣的總供應量沒有上界。

4 安全性分析

區塊鏈分叉、算力中心化以及自私挖礦對區塊鏈系統的安全性造成了極大的危害,本節根據算法特性對上述問題的解決過程進行詳細闡述與解釋。

4.1 區塊鏈分叉

采用SSPoW 共識算法的挖礦時間相比于PoW共識更短,導致分叉概率上升。因此本文引入了聚合算力的概念,當出現2 個或多個分叉時,礦工優先選擇在聚合算力最高的分支鏈上進行挖礦。PoW共識則選擇最長鏈,如圖3 所示,區塊鏈在C處出現分叉,若采用PoW 共識,新區塊D則會在C0和C1之中任選一個作為父區塊。由于沒有具體的量化指標,區塊鏈最多需要6 個區塊的時間進行收斂。如圖4 所示,區塊C1經過后續6 個區塊的確認保證其不可更改,因此fork2被選定為主鏈,而fork1上的區塊則會成為孤塊,這將導致巨大的資源浪費。如果采用本文所提的SSPoW 算法,當出現分叉時,由于C0的聚合算力大于C1,因此后續的區塊D會立即選擇C0作為父區塊,for1k 會被選定為主鏈,分叉解決僅需一個區塊的生成時間,避免重復無意義挖礦過程所造成的資源浪費。

圖4 分叉展示

4.2 算力中心化

礦池導致的算力中心化問題在很大程度上可歸因于單獨挖礦的高獎勵差異。因此,將單個礦工的獎勵差異保持在較低水平是本文的核心設計目標。設擁有全網α算力的獨立礦工P,記M1為采用PoW 共識進行挖礦后每個區塊獎勵值的隨機變量,M2為采用SSPoW 共識進行挖礦后每個區塊獎勵值的隨機變量。定義隨機變量X~B(1,α)為

可得E(X)=α和D(X)=α(1 -α),其中,E 和D分別表示隨機變量X的期望和方差。在PoW 共識中,出塊礦工獲得固定的控礦獎勵R以及交易手續費,用隨機變量T表示交易手續費,定義T~U(a,b),可得

對式(5)求方差可得

由于XR和XT不獨立,可得

將式(7)代入式(6)可得

設Y為事件X的示性函數,定義為

代入XT=Y(X=1)T,可得

將式(10)代入式(8)得

在SSPoW 中,假設區塊中包含了L個局部解,隨機變量L~P(λ),隨機變量Xi~B(1,α)。為便于與 PoW 共識進行比較,本文引入縮放常數c(0<c< 1),以確保區塊總獎勵保持不變??傻?/p>

當交易手續費用T與挖礦獎勵R相比較小時,式(19)將簡化為

顯然,D(M2) <D(M1),SSPoW 算法降低了獎勵的差異,因此,在采用本文算法的區塊鏈系統中,礦工加入大型礦池的動機會降低,對系統的算力去中心化有積極影響。

4.3 虛假局部解

與PoW 共識不同的是,SSPoW 算法中系統獎勵公布局部解的礦工,因此存在著惡意節點公布虛假局部解的行為。本節將通過分析針對局部解的攻擊來論述該算法的安全性。

4.4 自私挖礦

SSPoW 的另一特點是抑制了自私挖礦攻擊。在自私挖礦中,當惡意礦工優先于誠實礦工挖出區塊時,惡意礦工不立即將挖掘到的區塊公布到區塊鏈網絡中,而是選擇隱瞞。當誠實礦工在原有鏈上挖到新的區塊時,惡意礦工突然釋放之前所保留的區塊,增加鏈的長度,使區塊鏈網絡出現分叉,根據最長鏈原則,誠實礦工挖出的區塊無效,從而浪費了大量的算力資源。與此同時,惡意礦工創造的分支鏈成為最長鏈,誠實礦工最終也會趨向于在自私鏈上進行挖礦,嚴重破壞了區塊鏈系統的安全性。

通過分析得知,自私挖礦是針對區塊鏈最長鏈原則的攻擊,而在SSPoW 中引入了基于局部解的新挖礦策略,主鏈選擇的并非最長鏈,而是基于聚合算力的最強鏈。由于更改了鏈選擇協議,同時通過獎勵方案激勵礦工盡早公布計算結果,提高了挖礦過程的透明度。因此如果惡意礦工不公布任何新發現的局部解(“隱蔽”挖礦),推遲發布新區塊或拒絕包含其他礦工的局部解(“惡意”挖礦),那么在前一種情況下,惡意礦工將無法獲得局部解的收益;而在后一種情況下,若誠實礦工公布的區塊聚合算力較高,惡意節點將面臨著自身區塊被廢棄的風險。綜上所述,這些策略都會給惡意礦工帶來利益損失,極大地抑制自私挖礦。

5 仿真結果

本文仿真實驗主機配置如下。CPU 為Intel Core i5-9500,內存為8 GB,操作系統為Window 10 企業版。實驗選用Python3.8 為主要編程語言,并使用其Matplotlib3.5.2 模塊實現數據的可視化。

5.1 性能指標

因為SSPoW 算法是一個劃分搜索空間的合作挖礦,所以除了核心的挖礦模塊和通信模塊,還需要有劃分搜索空間模塊。為了簡化實驗,仿真實驗指定了各個節點的搜索空間。實驗主要比較SSPoW與PoW 的算法效率和挖礦獎勵差異。算法效率通過對比吞吐量和時延進行衡量,獎勵差異則通過對比挖礦獎勵的離散系數進行衡量。離散系數c是度量數據離散程度的相對統計量,用于比較不同樣本數據的離散程度,定義為標準差σ與平均值μ之比,表示為

在本文算法中,挖礦獎勵的離散系數越大,說明挖礦獎勵的差異程度也越大。吞吐量指單位時間內區塊鏈網絡中的交易從產生到被打包并寫入區塊鏈中的交易總數,本文使用每秒交易數(TPS,transaction per second)來表示吞吐量,表示為

其中,Time 為交易產生到區塊被確認的時間間隔,NumofTxs 為在時間間隔Time 內被確認區塊中包含的交易總數。算法的吞吐量越高,則表明算法的性能效率越高。

5.2 吞吐量對比

在區塊鏈系統中還需考慮算法的使用規模,使用規模指算法在系統中運用后所能承載的網絡節點數量。本文分別測試了PoW 和SSPoW 這2 種共識算法在不同節點數量下的吞吐量。為避免誤差,實驗結果取算法運行10 次的平均值,如圖5 所示。通過調整系統的節點數量來測試不同的使用規模對算法吞吐量的影響。由圖5 可知,在同一測試平臺下,SSPoW 算法的吞吐量接近400 tps,而PoW 共識的吞吐量只有100 tps。但是隨著節點數量的增多,吞吐量大小存在著較大的波動。這是因為區塊中額外引入了局部解,導致SSPoW 區塊大小相比PoW 算法有所提高,節點之間的通信開銷也會增大,所以隨著節點數量的增多,受網絡因素的影響也會增大。

圖5 算法吞吐量對比

5.3 獎勵差異對比

由于本文算法為局部解提供一定比例的獎勵,為模擬不同區塊鏈網絡下算法的獎勵分配情況,本節通過在不同節點規模下進行挖礦,測試節點獎勵的離散系數并以此來評估獎勵差異情況。在同一測試平臺下,每個節點規模挖礦100 次,設置搜索空間數N=256,相對影響因子γ=1,表示每個搜索空間對應的局部解獎勵之和與全局解獎勵相等。每組實驗結束后,統計每個節點獲得的獎勵,并由式(21)計算出該組獎勵的離散系數。由圖6 可知,隨著節點規模的增大,PoW算法的獎勵離散系數急劇增大,說明隨著網絡規模的增大,節點的獎勵將會出現較大的差異,因此礦工加入礦池的意愿也會更強烈。而SSPoW 算法的離散系數上升則較緩慢,說明本文算法削減了節點的獎勵差異,在一定程度上降低了算力中心化風險。

圖6 算法獎勵差異對比

5.4 時延對比

SSPoW 算法通過引入局部解提高了共識效率,與此同時,額外字段的引入也會增加通信開銷,因此本節通過測試算法的時延來評估通信開銷。本節實驗對比選用8 臺主機,并在同一測試平臺上分別運行PoW 和SSPoW 算法來測試挖礦的時延,評估指標為50 次挖礦的時間開銷。由圖7 可知,在同一實驗環境下,SSPoW 算法的時延明顯低于PoW算法。同時,本節實驗也計算了2 種算法挖礦50 次的平均時延,SSPoW 算法的平均時延顯著低于PoW算法,說明本文算法在提高共識速度的同時并未帶來過大的通信開銷。

圖7 算法時延對比

6 結束語

對于PoW 共識而言,高獎勵差異帶來的中心化問題以及自私挖礦等問題是危害區塊鏈系統安全的關鍵因素,因此,本文設計并提出了一種新的工作量證明算法——基于PoW共識的SSPoW算法。本文算法引入局部解,并基于局部解重新設計獎勵方案,減少了礦工加入礦池的意愿,從而降低了因算力中心化導致的風險,對區塊鏈的安全屬性有積極貢獻。最后,理論分析與實驗結果表明,相比于傳統PoW 共識算法,本文算法的共識效率和安全性均有提高。未來,筆者希望通過使用新穎的框架和工具來擴展本文工作。

主站蜘蛛池模板: 永久免费av网站可以直接看的| 波多野结衣久久高清免费| 91久久偷偷做嫩草影院电| 欧美精品v欧洲精品| 四虎永久免费在线| jizz国产视频| 亚洲国产中文欧美在线人成大黄瓜| 亚洲av成人无码网站在线观看| 欧美激情视频一区| 日韩成人免费网站| 国产人妖视频一区在线观看| 国产欧美在线| 国产极品美女在线观看| 国产h视频在线观看视频| 99精品福利视频| 精品成人一区二区三区电影| 欧美 国产 人人视频| 国产精品不卡永久免费| 欧美激情网址| 精品福利一区二区免费视频| 日本国产一区在线观看| 国产亚洲精久久久久久无码AV| 四虎精品国产永久在线观看| 成人免费黄色小视频| 美女裸体18禁网站| 日本日韩欧美| 国产欧美日韩资源在线观看| 99久视频| 国产亚洲欧美日本一二三本道| 亚洲福利视频网址| 成人午夜久久| 日本a级免费| 亚洲人成网站色7799在线播放| 免费国产在线精品一区| 国产成a人片在线播放| 在线不卡免费视频| 日韩精品无码免费一区二区三区 | 嫩草影院在线观看精品视频| 国产精品无码制服丝袜| 不卡午夜视频| 欧美精品另类| 天堂在线视频精品| 国产精品成人一区二区不卡| 国产麻豆aⅴ精品无码| 色婷婷亚洲综合五月| 成人a免费α片在线视频网站| а∨天堂一区中文字幕| 三上悠亚在线精品二区| 97视频免费在线观看| 国产午夜无码专区喷水| 欧洲一区二区三区无码| 在线视频精品一区| 拍国产真实乱人偷精品| 无码网站免费观看| 欧美一区二区人人喊爽| 亚洲精品欧美重口| 国产精品大尺度尺度视频| 粉嫩国产白浆在线观看| 黄网站欧美内射| 内射人妻无套中出无码| 国产成人精品一区二区三区| 精品91视频| 亚洲激情99| 免费一级全黄少妇性色生活片| 亚洲欧洲日韩综合色天使| 欧美精品xx| 亚洲男人的天堂久久精品| 国产美女主播一级成人毛片| 亚洲αv毛片| 波多野结衣在线一区二区| 国产高清不卡视频| 亚洲香蕉伊综合在人在线| 国产美女91视频| 成人无码一区二区三区视频在线观看| 中文字幕永久视频| 色综合久久综合网| 国产女人在线观看| 在线观看亚洲国产| 美美女高清毛片视频免费观看| 成人午夜亚洲影视在线观看| 中国一级特黄视频| 国产精品毛片一区视频播|