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

主流區塊鏈共識算法對比研究

2022-01-01 00:00:00鄧小鴻王智強李娟王俊彬黎康婷
計算機應用研究 2022年1期

摘 要: 共識算法是區塊鏈中的核心技術,直接決定了整個區塊鏈系統的運行效率。對現有的共識算法進行了總結,將其分為基于節點某種屬性值證明的共識算法、基于節點投票機制的共識算法和類Paxos共識算法三類。詳細介紹了三類共識算法的實現細節,并依據蒙代爾不可能三角理論進行對比研究,給出了共識算法的發展方向,為區塊鏈共識算法的深入研究提供借鑒。

關鍵詞: 區塊鏈; 共識算法; 數據一致性; 蒙代爾不可能三角理論

中圖分類號: TP311.13"" 文獻標志碼: A

文章編號: 1001-3695(2022)01-001-0001-08

doi:10.19734/j.issn.1001-3695.2021.06.0210

Comparative research on mainstream blockchain consensus algorithms

Deng Xiaohonga, Wang Zhiqiangb, Li Juanb, Wang Junbinb, Li Kangtingb

(a.College of Applied Science, b.College of Information Science, Jiangxi University of Science amp; Technology, Ganzhou Jiangxi 341000, China)

Abstract: The consensus algorithm is the core technology in the blockchain,which directly determines the operating efficiency of the entire blockchain system.This paper summarized the existing consensus algorithms and divided them into three categories:consensus algorithm based on the proof of a certain attribute value of the node,consensus algorithm based on the node voting mechanism and Paxos-like consensus algorithm.Then it detailedly introduced the implementation details of the three ca-tegories of consensus algorithms,and comparatively studied based on Mundell’s impossible triangle theory,and gave the deve-lopment direction of the consensus algorithm,which provided reference for researchers to conduct in-depth research on the blockchain consensus algorithm.

Key words: blockchain; consensus algorithm; data consistency; Mundell impossible triangle theory

區塊鏈技術最早由Haber等人[1]在1990年提出,直到2008年中本聰提出比特幣,區塊鏈技術隨著比特幣的推廣而受到廣泛關注。如今,區塊鏈與人工智能、云計算、大數據并稱為信息行業的四大黑科技,區塊鏈技術引起了各國政府的高度重視,開始大力推行區塊鏈技術的應用落地,加速了區塊鏈技術的發展[2]。區塊鏈技術也從數字貨幣應用的初級階段向高級應用加速轉型。智能合約的出現極大擴展了區塊鏈的應用領域,其去中心化、不可竄改和分布式存儲等優良特性受到各行業的青睞,如區塊鏈+教育[3]、區塊鏈+醫療[4]、區塊鏈+身份認證[5]、區塊鏈+跨境支付[6]等,區塊鏈技術正在加速將信息互聯網往價值互聯網的方向轉變。不同的區塊鏈框架對于區塊鏈中用戶的權限以及群體規模有著不同的約定[7],現有的區塊鏈框架大致可以分為三種:a)公有鏈,不限定參與者的身份和權限,用戶可以自由參與到區塊鏈系統中,例如比特幣系統和以太坊等,由于節點的加入與退出自由,所以在公有鏈的網絡中節點數量是不可控的;b)私有鏈,該鏈不公開,網絡節點數量和在線狀態都是可控的,一般應用于組織機構內部;c)聯盟鏈,該鏈是介于公有鏈與私有鏈之間,面向聯盟組織成員公開,用戶的數量和狀態是可控的,一般應用于企業與政府聯盟組織機構。一般情況下,不同的區塊鏈框架選用不同的共識算法,由于區塊鏈技術從宏觀的角度來看就是一種分布式的數據庫,區塊鏈網絡節點必須依據一定的規則來自治維持整個賬本的數據一致性。通常解決節點賬本之間一致性問題的關鍵技術是共識算法,一個良好的共識算法可以大大節省區塊鏈網絡節點達到賬本數據同步一致所需要的時間,從而提高整個區塊鏈系統的運行效率。目前,區塊鏈框架所采用的共識算法可以大致分為三類:a)基于節點本身的屬性值證明,典型的代表算法如比特幣系統的工作量證明(proof of work,PoW)[8]、Nextcoin的權益證明(proof of stack,PoS)[9]、EOS v1.0[10]的委托股權證明(proof of delegated,DPoS)[11] 等;b)節點投票制度,典型的代表算法如Ripple(瑞波協議)[12]、Fabric v0.6[13] 的實用拜占庭容錯(practical Byzantine fault tolerance,PBFT)[14];c)類Paxos共識算法,典型的代表共識算法如Paxos[15~17]、Fabric v1.4.4的Raft[18]。

1 共識算法共性分析

1.1 共識算法定義以及功能

本文為共識算法下一個寬泛的定義:在區塊鏈網絡中有n個節點,其中最多有f(flt;n)個節點可能是惡意的、崩潰或者宕機,區塊鏈網絡中至少有n-f個節點是非拜占庭的。節點i~n會根據交易消息輸出一系列值Vi~Vn,所有節點必須從全部輸入值中最終選擇一個決策值,并且滿足下面的共性條件:

a)確定性。記賬節點的選舉方式為隨機抽取、固定選舉或依據某種屬性值來選舉。

b)一致性。對于被選舉為記賬節點的,必須經過大部分節點同意或知曉,并且所有非拜占庭節點的決策值必須相同。

c)可終止性。所有非拜占庭節點必須在有效的時間內結束決策過程。

d)有效性。選擇出的決策值必須為某個或者某些節點的輸出值。

滿足以上四種共性條件的執行過程被稱為共識算法。

圖1給出了一個區塊鏈網絡的運行過程。首先,產生一筆新的交易,將交易在網絡中進行廣播;其次,網絡中的節點需選舉產生一個或者一組記賬節點,負責將新的交易打包生成區塊;最后,區塊生成后記賬節點將區塊發給網絡中其他節點進行驗證,驗證通過后將區塊上鏈,形成一條最新的區塊鏈。共識算法在其中承擔了選舉記賬節點和生成區塊并分發的功能。

1.2 共識算法對區塊鏈系統性能影響

一種好的共識算法會對區塊鏈系統的性能產生兩方面的影響:

a)安全性。該問題最常見的是雙花與分叉兩種問題。在區塊鏈網絡中,當新的交易消息產出經過礦工打包區塊和分發時,由于網絡延遲與堵塞,含有同一筆資產會被使用兩次,即雙花問題。由于網絡延遲與堵塞,不同的礦工可能將不同區塊同時上鏈,從而導致分叉,如圖2所示。

不同的共識算法對這兩種問題的處理方式是不一樣的,以比特幣系統為例:在比特幣系統中引入一種未使用交易輸出(unspent transaction output,UTXO),該模型的原理是每個UTXO都是獨一無二的,它記錄了資金的來源、去向與額度,假設A賬戶有價值100 btc(比特幣單位)UTXO,A向B轉賬價值40 btc的UTXO,會產生價值60 btc的UTXO,而原來價值100 btc的UTXO會被標記不能花費,不可再作為UTXO。假設節點N0同時向N1與N2轉出自己價值2 btc的UTXO并產生Tx1與Tx2兩個交易消息,并且N0同時將這兩筆交易消息傳播到比特幣網絡中,在一般情況下礦工節點將會接收到Tx1或者Tx2,接著會驗證A的賬戶價值2 btc的UTXO是否被花費過,則必然會將Tx1或Tx2其中一個排除在外。接著再考慮分叉的情況,在比特網絡中始終都以最長的鏈為主鏈,如圖2假設礦工節點N0與N1幾乎同時在T0時刻產生兩個區塊,同時兩個交易消息Tx1與Tx2分別被打包在兩個不同區塊n+1中,這時比特幣網絡會將兩個區塊n+1都保留下來,并等待下一個區塊出現,在圖2中,如T1時刻產生的區塊n+2是以區塊n+1為父區塊,則會拋棄下面這個區塊。在比特幣中的小額交易需要等待一個區塊確認,大額交易需要六個區塊的確認,其原因是如果攻擊者需要連續六次掌握51%的算力才能更改主鏈,而連續六次的51%攻擊,攻擊者所消耗的資源大于收益。

b)效率。該問題主要依據共識算法的核心公式,例如比特幣核心公式為不斷的枚舉運算哈希函數,所以導致效率會較低,比特幣每出一個區塊的速度大約為7筆/s。良好的共識算法會帶來顯著的效率提升。

1.3 共識算法與激勵措施

在現有公有鏈框架下,區塊鏈的激勵措施包括激勵的發行制度與分配制度兩種,其主要目的是為了提供激勵措施來吸引更多節點參與到區塊鏈的區塊驗證與分發工作,從而確保整個系統是穩定可靠的。在公鏈中常見的激勵措施是代幣,如比特幣系統給最先運算出hash難題的礦工進行一定的比特幣獎勵;以太坊的激勵措施為手續費,手續費為gas limit乘以gas price,其中gas price中一個gas為10-5 Eth,而gas limit為在交易過程耗費的gas個數上限、通常gas price,gas limit都為用戶設定,gas price設置得越高,交易大概率能夠越早上塊。在聯盟鏈框架下,其架構通常沒有激勵層,所以沒有代幣激勵,而其采取的激勵措施為信譽積分激勵,信譽積分激勵的衡量標準為節點有效消息轉發數量、節點在線時間、節點故意作惡次數等因素,最后參與聯盟鏈公司會按照信譽值積分的高低來進行股期分紅。

2 現有共識算法綜述

最早的分布式算法Paxos[15~17]由Lamport提出,隨后其他共識算法以此為基石并不斷涌現。由于Paxos算法知識理論在生產實踐中無法實現,接著便涌現出Raft等工業界實用算法,而后1982年的Lamport提出經典的拜占庭將軍問題[19],直到20世紀90年代末Castro和Liskov提出了PBFT,較好地解決了拜占庭將軍問題。由于PBFT沒有考慮樂觀情況下的網絡情況,在2007年提出了一種樂觀的拜占庭容錯技術(Byzantine fault tolerance,BFT)算法Zyzzyva[20],接著由于BFT技術會隨著規模越大導致性能的降低,接著便出現了HotStuff[21]、委托權益拜占庭容錯技術[22] (delegated Byzantine fault tolerance,DBFT)等相關BFT算法來對這些問題進行優化。2008年中本聰提出著名的PoW,但使用PoW的區塊鏈框架暴露出性能差的問題;而后PoS算法的出現在一定程度上緩解了這一問題,卻會帶來形成記賬節點成為寡頭等問題,接著出現了許多其他類型的證明類算法嘗試解決這些問題,如基于PoW的Bitcoin NG[23]、矩陣工作量證明[24](matirx of proof,MPoW)等共識算法。本文統計了25種共識算法,并將這25種共識算法按照時間維度來進行排序,劃分出三種不同種類的共識算法及每種算法的原始算法,整個共識算法歷程如圖3所示。

通過對現有共識算法的實施原理進行分析和總結,可以歸納為三大類:a)基于節點屬性的證明類,所謂證明類即最后的共識結果是由某個節點而決定的,例如PoW算法,是通過節點計算工作量來挑選出礦工,最后的共識結果由礦工來發布;b)基于投票制度的共識算法,投票制度是選擇一組節點參與共識,最終結果經過投票且票數達到特定的閾值共識結果才會通過,例如PBFT是通過33%節點回復,共識結果才會通過;c)類Paxos共識算法,此類的共識算法都是在領導者節點運行狀況良好的情況下直接復制領導者節點的日志,從而不斷更新自己的本地日志,例如Raft算法,跟隨者節點始終復制領導者節點的日志。

2.1 基于節點屬性證明類共識算法

2.1.1 PoW

作為比特幣核心的共識算法PoW,其核心公式如式(1)所示,其中data是將時間戳、版本號、區塊高度等信息組合的數據,nonce為一種隨機值,D(d)為目標值,d為挖礦難度,隨著挖礦難度增加,目標值與哈希值也會越難匹配。從式(1)可以看出,PoW是一個不斷枚舉的過程,算法使用嵌套哈希函數求解,當新的交易數據出現時,各個區塊鏈節點開始全力運算(運算過程又稱為挖礦),當某個節點最先滿足式(1)則被稱為礦工,礦工節點有權利將交易打包成區塊,并發給其他節點進行驗證交易合法性,如果交易通過驗證,則將區塊上鏈存儲并在節點間同步。當然為了獎勵礦工節點的工作,比特幣系統獎勵比特幣給礦工作為收益。在比特幣中規定每產生2 016塊就會對難度值進行相應的調整,一個區塊的驗證時間一般為10 min左右。

SHA256(SHA256(data|nonce))≤D(d)

D(d)=2224d(1)

PoW算法主要存在三方面的問題:

a)效率低。在比特幣系統中的區塊容量只有1 MB,其網絡中交易量大約為7筆/s,出塊時間則為10 min左右,這種規格的吞吐量非常不適合高并發的商業場景。

b)資源消耗大。由于礦工節點在挖礦的過程中需要大量的電力與流處理器等挖礦機器,根據Digiconomist比特幣能源消耗指數和劍橋比特幣電力消耗指數等估算,比特幣網絡2018年用電量則相當于菲律賓或芬蘭的用電量。

c)去中心化程度較低。中本聰設計比特幣挖礦的初衷是每個人都用CPU來挖礦,而現在算力大部分掌握在算力礦池手中,礦池與礦池也會聯盟來競爭記賬權利。

針對上述問題,研究者提出了PoW的改進算法。

a)康奈爾大學提出Bitcoin-NG算法,首先通過PoW選舉出記賬節點,該算法將區塊劃分為關鍵區塊與微區塊,關鍵區塊與比特幣系統中的區塊不同之處在于增加了記賬節點的公鑰且不含交易消息,而微區塊含有記賬節點的簽名,當前區塊哈希值、時間戳以及交易,記賬節點的記賬周期稱為一個epoch。每個epoch選舉出不同的節點,選舉出節點會產生一個關鍵區塊,接著該節點一直按照一定的速度來產生微區塊,一直到下個節點在上個節點產生的微區塊基礎上產生新的關鍵區塊,當前節點的epoch結束。該算法的吞吐量理論上能提升到200~400 TPS。該算法規定前后記賬節點之間的利益分成4:6,該算法一直存在一種問題,即前序節點算力超過33%,可以偽裝建立微區塊從而獲得100%激勵,使得算法激勵措施失效。

b)Byzcoin[25]也是由關鍵區塊與微區塊構成,與Bitcoin-NG不同的是,Byzcoin引入了BFT技術,Bitcoin-NG的微區塊的交易信息是經過同步之后才會驗證,而Byzcoin在產生微區塊的時候則會經過共識小組(共識小組節點由最近發現區塊的礦工組成)的驗證,驗證成功經過大部分節點簽名,微區塊才會上鏈,這樣有效地防止了雙花。該算法還可以對領導節點進行投票,如果發現領導節點有欺詐行為,超過67%的節點同意則會將領導者剔除。在比特幣系統中存在著節點會立即得到獎勵,從而引起一種自私挖礦的問題,所謂的自私挖礦是挖礦攻擊節點惡意隱藏若干區塊,等到其他礦工節點挖到第一個區塊,這時將隱藏的區塊廣播出去,按照最長鏈的原則會以隱藏區塊的節點為最長鏈,攻擊節點則會獲得多份獎勵,在該算法中提出的延遲獎勵有效解決了這一問題。

c)PoW中哈希算法運算由于GPU與ASIC算力參與,使得大量個人用戶參與挖礦變得毫無意義,MPoW使用由n個哈希構成的哈希矩陣來使得礦工計算子矩陣的行列式,而不是計算哈希運算來尋找目標值,該算法要求參與挖礦的節點使用哈希函數獲取n個特定的哈希,接著使用這n個哈希來構成一個矩陣,該矩陣滿足n×n子矩陣的行列式不小于一個可根據出塊時間動態調整的目標,構成的非負數行列式的子矩陣數目必須達到特定的閾值,該算法使得網絡算力更加均勻且分散,從而達到抗GPU與ASIC的目的。

d)PoW算法中無論是本身還是基于其改良的算法,其算法核心步驟都是進行沒有實際用途的哈希運算,而2020年有效工作量證明(proof of useful work,PoUW)算法[26]將區塊鏈與機器學習相結合,參與挖礦的節點任務變成訓練模型,參與節點在訓練完成之后可以得到一次鑄幣權,另外客戶除了提交機器學習的模型訓練任務并額外支付一筆費用給予貢獻者,該算法有效地將哈希運算轉換為實際的用途。

2.1.2 PoS

PoS由文獻[27]提出,之后被Nextcoin采用,PoS針對PoW的資源過于浪費以及出塊時間過慢的問題提出解決措施,讓每個參與節點擁有持幣量與幣齡兩個屬性,幣齡的計算如式(2)所示。每當區塊鏈網絡中新的交易消息開始出現,根據每個節點的幣齡來進行計算權重,節點根據權重來進行一輪選舉,權重越大的節點被挑選為記賬節點的概率也就越大,接著記賬節點開始交易消息打包,其幣齡會削減,記賬節點獲得激勵與一些交易費用。PoS雖然在一定程度上解決了PoW所帶來的問題,但是從根本上來說去中心化程度較低,記賬權利還是掌握在少部分幣齡大的節點手上,容易形成持幣人兩極分化的現象。理論上攻擊者需要有51%的持幣量,才會攻擊成功。

幣齡=持幣量×持幣天數(2)

PoS原始算法面臨的第一個問題就是無利害攻擊(記賬節點惡意分叉從而獲得雙倍的利益),該問題出現的主要原因是應用框架中對記賬節點沒有明確的權益分配與懲罰措施。另一個問題則是長程攻擊[28],由于公鏈大部分都是以最長鏈原則為主鏈,如果惡意節點創造出比主鏈更長的偽鏈,其中將所有的交易記錄都竄改掉,公鏈中有許多長期不在線或者在同步數據的時候有新加入的節點,區塊鏈便會分叉,根據最長鏈的原則,會選擇偽鏈為主鏈。

針對上述問題,研究者們提出如下解決方案:

a)針對無利害攻擊的問題,文獻[29]提出需要參與挖礦的節點需要支付一定的保證金,如果節點試圖同時廣播兩個區塊,則會沒收保證金,這種方式遏制了無利害攻擊的這種現象。

b)針對長程攻擊問題[30],分為三種情況:(a)簡單攻擊,這種攻擊方法是記賬人在盡可能短的時間段生成更多的區塊來,而應對這種攻擊的方式只需要通過驗證時間戳的方式來進行判別即可;(b)變節攻擊,由于挖礦節點的速率被時間戳限制,這時驗證節點可以通過行賄或者攻擊來獲得舊的驗證節點的密鑰,這種攻擊方式可以增加主鏈被偽鏈替代的可能,應對的方法則是動態的密鑰變更技術,舊驗證人的私鑰會時段性地失效,以及使用移動檢查點技術來解決;(c)權益流失,這種攻擊方式與自私挖礦類似,這種攻擊方式一邊延遲主鏈出塊時間,另一邊在分叉的鏈上廣播更多的區塊,分叉鏈超過主鏈就會成功偽造區塊,應對這種攻擊方式的解決方式為充裕法則。充裕法則的核心思想是在一段時間統計權益密度,如果出塊節點的權益密度超過其他誠實節點的權益密度,則惡意出塊節點就會被檢測出來。在針對獎勵機制還未具體完善從而導致中心化的問題,文獻[31]提出一種基于計算沙普利值的原理來抑制PoS中心化的趨勢。

2.1.3 PoW+PoS

PoW+PoS是一種混合共識機制,該算法的核心思想是PoW仍然作為挖礦節點的選擇方式,在出現分叉的情況下,PoS負責持幣人可以進行投票決定哪個分支應該被選擇。Decred[32]框架作為代表應用之一,很好地完成了這種混合算法,即解決PoW分叉問題,其中也解決其他純PoS作為記賬節點的過于集權化的問題。這種混合共識記賬獎勵被較好均衡,其中60%歸于挖礦節點,30%歸于投票節點,10%歸于基金會,但是吞吐量與可擴展性度很差。

活躍度證明(proof of actiivity,PoA)[33]也是基于PoS與PoW的混合共識機制。該算法利用哈希運算來挑選N個持股節點,只要N個節點任意一個節點不在線,此次區塊作廢,所有活躍節點在收到完整節點之后,進行驗證(例如N個簽名必須正確),若驗證通過則認為該節點是一個合法的新區塊,將其加入區塊鏈。

文獻[34]設計了一種主從多鏈結構,通過主鏈和從鏈的錨定,確保區塊信息的不可竄改;提出了一種基于信譽度的主鏈共識機制,確立了影響信譽度的行為和獎懲規則,根據參與者的權益份額進行區塊記賬權的分配;同時,提出了一種主鏈的聯合共識機制,在主鏈中使用多種共識機制共同計算的方法,經過多次確認之后進行從鏈區塊的驗證。在雙花攻擊、累積攻擊和女巫攻擊方面攻擊成本較大,有效地預防了此類攻擊。但是,從鏈選擇區塊生成者未考慮到當該出塊者宕機時應該如何處理。

2.1.4 空間證明(PoSpace)

PoSpace(proof of space)[35]的核心思想是以用戶的硬盤空間作為證明的代價從而取代PoW的算力資源,通過節點所下載內容的大小從而判斷用戶工作量的大小,節點在付出磁盤容量之后,后續挖礦無須再付出額外的代價,存儲空間越大的節點,就越容易成為記賬節點。在PoSpace算法中,參與節點通過Shabal算法創建nonce值,nonce非常難以計算,所以需要預先計算存儲nouce值,每兩個哈希值構成一個scoop,nouce由多個scoop構成,用戶的空間越多,nouce值也就越多,在開始挖礦前,節點需要將它可用的磁盤空間不斷地存儲nouce值,這些哈希值中存在一個與網絡中謎題最為接近的哈希,則贏得了挖礦的權利,這種算法具有去中心化程度高、獲得代幣的要求低,以及能源消耗較小等特點。

2.1.5 時空證明(PoST)

作為Filecion的共識算法,PoST(proof of space time)[36]是在空間證明上加上了時間段的概念,是基于多次復制證明(proof of replication,PoRep)算法,數據通過密封的操作以分片的方式進行加密,從而獲得數據分片的摘要并生成特定的目錄,這樣做的目的是因為星際文件系統(interplanetary file system,IPFS)網絡是基于內容尋址的網絡,根據目錄在生成復制證明,PoRep算法的目的是證明存儲系統中的確存儲了一段數據,在IPFS網絡中每隔1 h驗證一次復制證明,而多次證明的目的是證明數據在一定時間內存儲過,從而以此為證明來競爭記賬權利,其中有效算力為經過時空證明的扇區數乘以扇區大小,扇區大小通常為32 GB已加密驗證數據的大小,目前的Filecoin不穩定,PoST算法尚未推廣,大部分還是依賴GPU礦機去挖礦。

2.1.6 燃燒證明(PoB)

PoB(proof of burn)[37]是將一定價值的數字貨幣送到無法追尋回貨幣的地址,地址是隨機生成的,并且與任何私鑰都無關系,這就出現存在該地址的錢都是不可訪問不可花銷,該算法用數字貨幣來代替昂貴的硬件設備算力從而競爭記賬權利,燃燒的貨幣越多,獲得記賬的權利可能性就越大,但是也會導致富人越富。該算法的優點是可以減少能源消耗,不需要采礦硬件,缺點就是表面上是能源消耗較少,但如果作為燃燒的貨幣本身就是用算力資源消耗所得到的,也就不存在能源較少的情況,目前的性能沒有得到真正的應用去證明。

2.1.7 幸運值證明(PoL)amp;逝去時間證明(PoET)

PoET(proof of elapsed time)[38]與PoL(proof of luck)[39]兩種算法都是基于inter SGX技術的芯片硬件所支撐的可信執行環境,其中PoET算法是節點根據一定的概率來生成隨機數以決定等待時間,等待時間最短的節點會被選擇來記賬,SGX技術會對等待時間進行驗證并證明,芯片硬件提供了CreateTime與CheckTimer兩種函數,其中CreateTime 將通知節點它們需要等待的時間,函數 CheckTimer 將檢查節點是否等待了足夠的時間。PoL算法也是采用類似的思想,利用硬件設備來生成隨機數從而來選擇記賬節點。但是上述兩種方式依賴于特定的環境與硬件,與區塊鏈去中心化的原則沖突,不適合廣泛的使用,并且挖礦的要求較高。

2.1.8 重要性證明(PoI)

PoI(proof of importance)的思想是為每個賬戶分配一定的權重,權重會影響成為記賬及節點的可能性,在PoS中記賬的權利取決的因素往往只是幣齡,所以會出現財富累積的寡頭現象,在NEM[40]項目中規定幾個特征來決定權重,分別是累計一定時間的數字貨幣數量、交易關系、用戶與越多的用戶之間進行越多的交易,獲得交易關系分數就越高,交易規模與數量、過去三十天的交易規模與數量,每次交易的規模超過最小閾值會增加相應的分數、越大與越頻繁的交易會帶來更高的分數,PoI可以高效且快速地選擇記賬節點,更加地去中心化,挖礦門檻降低。PoI使用NCDawareRank[41]來計算總的分數,從而可以抵抗女巫攻擊,但是卻面臨循環攻擊的問題(重復發送交易消息從而獲得更高的分數)。

2.1.9 基于權重tips選擇(馬爾可夫鏈+蒙特卡羅節點選擇)

有向無環圖(directed acyclic graph,DAG)方案是直接提出一種新的區塊鏈結構,是一種有向無環圖的形式,而不是單鏈表形式如圖4所示。傳統區塊中包含很多信息,單鏈表不能并行操作,而DAG直接將每筆交易作為最小的操作單位,這樣就可以并行操作,典型的應用是物聯網艾歐塔(IOTA)[42]。IOTA將這種有向無環圖稱為tangle,賬本數據被稱為纏結,site為其中的頂點,頂點有自帶的保留概率(權重),權重作為site加入的條件。如圖4所示,節點中間的數字為累計權重,而右下角為自身權重,概率是代表無沖突的可能性,含有沖突的site會暫時保留,直接被節點發現,選擇保留概率低的節點剔除,隨著節點不斷加入,保留節點概率會收斂到1,分數是固定值,累計權重為可變。如圖4所示,纏結的累加權重是可變化的,權重為間接頂點或者直接頂點的自身權重累加,頂點中的自身權重都為3n(創世塊自定義權重),如A可以由B證明,而B可以由C證明,所以A累加權重為B與C累加權重之和,即為5。

當一筆新的交易想加入到纏結中時,就需要選擇節點。交易必須選擇出兩個或兩個以上的tips節點(沒有驗證交易的節點),挑選纏結中在區間的交易節點,在有向無環圖中具有相近的權重離最右邊的創世塊距離也相近,這N個節點開始往創世塊方向隨機游走,按照累加權重越相近,游走的幾率就越高的原則,如式(3)所示。其中Hx和Hy為節點的累加權重;α為調節因子;z為X所經過的節點。最先完成隨機游走的兩個tips即為選擇節點。

Pxy=exp(-α(Hx-Hy))(∑z→xexp(-α(Hx-Hz)))-1(3)

這種算法具有較好的吞吐量和擴展性,但是具體框架實現存在效率略差以及雙花問題可能較長時間存在的問題,IOTA自身也會根據累計權重定期刪除累計權重較小的重復交易消息,其使用的有向無環圖為全局無序。

2.2 基于投票制度共識算法

2.2.1 PBFT

作為最經典的BFT問題,該問題的形式如圖5所示,A1~A6需要攻擊B,但是統一進攻才可以戰勝B,那么如何保證攻擊者的消息是可靠的?這個問題的解決方案是在一個拜占庭容忍系統中的拜占庭節點的數量為f,需要滿足誠實節點數量減去拜占庭節點數量大于f+1,所以其中最少具有2f+1個誠實節點即可,但這只是結論的一部分,其關鍵的另一部分在于數字簽名與RSA[43]技術,使用數字簽名才可以保證消息是可靠的。然而BFT問題開始提出沒有考慮到網絡中消息延遲、中斷等異步情況,也就是節點可能不回復消息。

PBFT提出解決BFT問題的一種狀態機副本復制方法,其工作原理如圖6所示,所有的副本狀態都是在視圖中進行轉換,leader節點的選擇方式是主節點視圖編號mod節點個數,一輪共識都是以一個視圖為一個周期,當共識完成時開始切換視圖。PBFT的步驟大致如下:

a)request階段。客戶端向leader節點發送請求(包含時間戳、請求操作、消息、摘要、簽名)。

b)pre-prepare階段。leader接收到請求后開始驗證請求簽名與摘要,如果非法則丟棄,正確則開始廣播消息(視圖編號、消息摘要、消息、客戶端請求排序序號、副本狀態、leader簽名)。

c)prepare階段。副節點收到副本狀態pre-prepare,接收到消息后開始驗證消息簽名和驗證摘要,如果非法則丟棄,正確則開始廣播prepare消息(視圖編號、消息摘要、消息、客戶端請求排序序號、副本狀態、節點簽名、副本節點編號)。

d)commit階段。副節點與leader節點收到prepare消息,接收到消息后開始驗證消息簽名和驗證摘要,如果非法則丟棄,正確并累計收到2f+1個簽名則開始廣播commit消息(視圖編號、消息摘要、消息、客戶端請求排序序號、副本狀態、節點簽名、副本節點編號)。

e)reply階段。副節點與leader節點收到commit消息,接收到消息后開始驗證消息簽名和驗證摘要,如果非法則丟棄,當副節點驗證正確并累計收到2f+1個簽名則開始運行客戶端請求操作,當客戶端累計收到f+1個相同的reply消息(客戶端節點接收到f+1個簽名的原因是至少有一個誠實節點,該誠實節點經過prepare階段,prepare節點已經累計收到2f+1個簽名),則說明消息已經達成共識。

PBFT將BFT問題由指數級降到多項式級。由于節點之間需要不斷廣播,隨著規模越大,對網絡性能的要求也就越高,效率就會越來越低,當PBFT中的leader節點頻繁切換時導致復雜度為O(n3),因此這種方式只適合聯盟鏈。

PBFT沒有考慮leader節點無論是不是非拜占庭的節點,都會切換視圖,需要依賴復雜的P2P通信。而Zyzzyva直接考慮網絡是樂觀的,并且leader節點是誠實可靠的,因此只需進行廣播即可,如果遇到拜占庭節點再退回到PBFT的情況。

2.2.2 DPoS

DPoS由比特股最早提出,其目的在于解決PoS所出現的中心化記賬的問題,DPoS引入代理機制,持幣者人可以選舉超級節點來作為記賬代表,選舉若干代表節點輪流記賬,每個超級節點都有周期,在周期出現異常時則會被剔除。DPoS的能耗較少,網絡運行成本降低,相對PoS更加去中心化,共識達成速度更快,但是社區選舉投票的參與度很低,在應對異常的超級節點時,選舉制度不能及時解決異常、惡意節點所帶來的問題。

2.2.3 DBFT

PBFT的缺陷為當規模大時性能下降,節點無法靈活地加入網絡,對網絡要求也很高,通信復雜度為O(n2)。而DBFT算法將網絡節點劃分成普通節點與授權共識節點,共識節點由持幣節點選舉,普通節點負責驗證與存儲區塊。

共識節點被劃分為議長與議員,議長負責廣播新的提案,議員負責驗證提案與投票,DBFT的算法流程如圖7所示。在pre-prepare階段,議長負責向其他議員廣播新的狀態prepare-request,同時發送(視圖編號、簽名等)提案;prepare階段,議員檢查簽名與驗證視圖編號等信息是否正確,如果正確則廣播prepare-response,并發起投票,當收到至少2f+1個簽名,任意共識節點開始廣播新的區塊。

2.2.4 HotStuff

HotStuff將PBFT的平均通信復雜度從O(n2)降到O(n),HotStuff節點之間并不采用廣播的形式,而是將消息都交給leader節點處理,如圖8所示。在PBFT中視圖切換與共識過程都是分開執行,如果頻繁切換則會導致通信復雜度高達O(n3),HotStuff依靠同步時鐘來切換視圖并與共識過程合二為一,當驗證者在共識過程提出異議,認證有問題,超過時間就會切換視圖。HotStuff采取三段確認,其大致流程如圖9所示,其中leader節點發出提案并廣播區塊b,其他2f+1個節點開始接受提案進入預備狀態,并廣播預確認消息,HotStuff使用門限簽名[44]的方式(門限簽名可以將P2P的復雜度降到O(n))來代替消息傳播,由leader節點聚合簽名并廣播預確認消息,接著依此類推,最后leader收到2f+1個節點確認,區塊b開始廣播,共識完成視圖也就切換完成,在共識過程中也可以切換。HotStuff設計的思想是:當leader節點由于異步網絡的問題在預準備階段沒有收到足夠多的節點回復,則直接替換leader,刪除b塊;而在后續過程沒有收到足夠多的節點的回復,則新的leader節點產生的區塊不會取代b,而是鏈在b之后。共識的時候,領導節點也可以切換,且領導節點所產生的區塊也可以保留。

HotStuff中區塊確認過程如圖10所示。其中b1、b2代表已確認區塊,b3、b4為可以投票的區塊。確認的區塊第一個條件選區塊高度最高的,而不是最新的,所以b7被拋棄,而后續b5、b6、b9為證明區塊,當有三個區塊鏈證明才可以使區塊變成確認狀態,其中QC可以認為至少2f+1個節點投票證明前一個區塊的正確性。

作為基于HotStuff的共識算法LibraBFT[45],其不同之處是加入起搏器來保持共識算法的活性以及在共識節點被替換時加上獎懲措施。

2.2.5 Ripple

Ripple共識算法將網絡節點分為追蹤節點和驗證節點兩種,追蹤節點的功能將響應客戶端的請求和廣播交易信息,而驗證節點也可以執行追蹤節點功能并且進行投票共識。

Ripple算法的核心思想如圖11所示,驗證節點中有一部分子集為UNL(unique node list)節點。驗證節點在接收到客戶端的交易請求后,將合法的交易存儲在本地交易候選集中,交易候選集再打包形成提案交給UNL節點;UNL節點在T0~TN的時間段進行投票,直到本地交易記錄的投票率達到80%,將交易數據存儲到本地,共識完成。此時的賬本也叫最后關閉賬本(last closed ledger,LCL),UNL對賬本進行簽名并廣播,當相同的LCL累計到一定的數量才會變為接收賬本(accepted ledger),其余驗證節點便開始同步自己的賬本。

該算法的速率很快,但是UNL如何保證節點是可靠的存在一定的問題。

2.2.6 信譽值證明(proof of reputation,PoR)

劉乃安等人[46]針對區塊鏈中的驗證節點易受到攻擊,導致失去對誠實節點的判別能力,提出了一種聲譽證明的共識機制,通過將所有節點構建成有向加權圖,取最大弱連通分支作為積極性最高的驗證節點集合,采用LeaderRank[47]算法,依據節點的出度入度計算驗證節點的貢獻度。對驗證節點創建的有效區塊數、有效投票數以及無效區塊數和無效投票數來計算可靠度,最后對貢獻度和可靠度進行加權求和得出最終的綜合聲譽。基于綜合聲譽排名選擇當前回合的BFT中的leader。該聲譽證明機制能夠有效解決驗證節點被攻擊操控的問題,同時也存在著潛在的聲譽寡頭和貢獻度、可靠度的權重分配問題。

2.3 類Paxos共識算法

2.3.1 Paxos

作為傳統分布式算法的起源,很多共識算法都是基于Paxos演變發展而來。Paxos將節點劃分為提案者、接收者和學習者三類。首先提案者負責將提案編號為n,向系統中的接收者發送提案編號,接收者接收提案n,提案被稱為準備消息,接收者在沒有比n更大編號的消息情況下接收n號提案,如果在此之前響應過其他消息的提案,則返回最大的提案編號以及內容,沒有接收過則返回空集。提案者在接收到大部分接收者的消息時,則開始向接收者發送消息,如果接收者之前已經接受提案,提案者會將最大編號的提案發送給接收者,如果為空,則任意選擇提案即可,接收者沒有接收比提案n編號更大的編號則接收提案n。學習者負責查看提案的投票是否超過半數,如果沒有則繼續。

2.3.2 Raft

Raft的核心思想是將節點劃分為領導者、候選者和追隨者三類,通常追隨者會復制領導者節點的日志,領導者有自己的任期,并不斷向追隨者發送心跳包,如果追隨者沒有收到空日志心跳包,則追隨者將會改變自己的狀態為候選者,候選者增加前任領導者編號,并開始發起投票,當大于N/2+1個節點同意,則成為leader節點。

3 共識算法比較與未來擴展

傳統的分布式算法具有一致性、可用性、分區容錯性(consistency、availability、partition tolerance,CAP[48])不可能三角理論,區塊鏈也有蒙代爾不可能三角理論[49],如圖12所示。不可能三角理論說明共識算法只能在這三種指標內權衡,如犧牲性能來換取較高的去中心化程度,以及較好的安全性(如PoW)。本文將從中心化程度、效率、安全性角度來比較這23種共識算法,其對比結果如表1所示。其中安全性主要包含是否抗雙花、是否抗女巫攻擊、是否抗51%攻擊以及容錯概率。效率主要包括TPS、資源消耗情況等,而去中心化程度則是區塊鏈中網絡節點數量以及參與共識節點數量等。

適用于公有鏈大部分都為基于證明類算法,由于規模較大,需要較高的安全性與去中心化程度,則會犧牲一定的性能,所以證明類共識算法一般安全性會很高,抗雙花的去中心化能力也會很高,但是效率會相應降低。存在一些算法例如PoS算法,由于幣齡屬性的存在,使得該算法的抗雙花能力降低。投票類共識算法大多適用于聯盟鏈和公有鏈的場景,由于共識過程需要部分節點進行投票來形成結果,所以中心化程度可能不及證明類算法,容錯概率也會降低,但是性能會有較明顯的提升。Paxos類算法由于不適用于拜占庭節點的場景,多是主從日志復制類型,所以具有較高的效率,適合用于聯盟鏈場景。

4 結束語

本文對現有主流的共識算法以及其改進算法進行了介紹和分析,首先對現有的共識算法進行了分類,分為:a)基于節點的屬性值證明共識算法,如工作量證明等算法;b)基于投票類,即參加共識的算法以投票結果為準;c)Paxos類,該類算法與前兩種不同的是其不同于拜占庭節點,都是有一類的節點作為領導,并有追隨者來復制其狀態。本文對不同的共識算法分析了其優缺點,并給出其適用環境,從整體上來看,BFT類與Paxos類算法具有很好的性能與擴展性,但是存在隨著規模擴張,性能會下降的缺陷,更適用于一些聯盟鏈場景。而基于節點屬性證明的算法雖然犧牲了一定的性能,但是卻在規模與安全性上得到了一定的擴展,更適用于公有鏈的場景。

近年來共識算法雖然在不可能三角中都獲得最優,但可從如下四個方面進行探索研究:a)區塊的邏輯結構,如有向無環圖或將區塊進行分段分組,劃分交易區塊來進行更快的交易消息記錄;b)利用分而自治的思想將區塊鏈網絡進行分片,從而縮小網絡的通信規模,使得共識速度會更加快速;c)現有的共識算法大多趨勢為混合共識算法,將證明類共識算法與BFT技術融合乃是大勢所趨,共識算法與信用機制和深度學習相結合,例如利用模型來評估節點信用值,從而選舉記賬節點,首先選取相應的特征維度,如在線時間、有效交易打包量、從而選舉出每一輪的若干記賬節點,這些若干節點形成一個BFT共識小組來對交易進行驗證與分發,使用分段式的有向無環圖來作為底層數據結構,通過組內的排序與去重,使得有向無環圖為全局唯一;d)直接將區塊鏈將作為第二層存儲介質,無須在鏈上進行頻繁的操作記錄存取,發展鏈下網絡,如閃電網絡,將交易雙方最終的結果上鏈即可。此外,共識算法是區塊鏈技術創新及應用的關鍵,需要進行不斷的深入探索和研究,現有共識算法也需要在不斷的實踐中證明其有效性。

參考文獻:

[1]Haber S,Stornetta W S.How to time-stamp a digital document[C]//Proc of Conference on the Theory and Application of Cryptography.Berlin:Springer,1990:437-455.

[2]Deshpande A,Stewart K,Lepetit L,et al.Distributed ledger technologies/blockchain:challenges,opportunities and the prospects for stan-dards[EB/OL].(2017-05-11).https://www.rand.org/pubs/exter-nal_publications/EP67133.html.

[3]Turkanovic M,Holbl M,Kosic K,et al.EduCTX:a blockchain-based higher education credit platform[J].IEEE Access,2018,6:5112-5127.

[4]Usman M,Qamar U.Secure electronic medical records storage and sharing using blockchain technology[J].Procedia Computer Science,2020,174:321-327.

[5]Gao Zhimin,Xu Lei,Turner G,et al.Blockchain-based identity mana-gement with mobile device[C]//Proc of the 1st Workshop on Cryptocurrencies and Blockchains for Distributed Systems.2018:66-70.

[6]Liu Zhiyong,Li Zipei.A blockchain-based framework of cross-border e-commerce supply chain[J].International Journal of Information Management,2020,52(3):102059-102077.

[7]袁勇,王飛躍.區塊鏈技術發展現狀與展望[J].自動化學報,2016,42(4):481-494. (Yuan Yong,Wang Feiyue.Blockchain:the state of the art and future trends[J].Acta Automatica Sinica,2016,42(4):481-494.)

[8]Nakamoto S.Bitcoin:a peer-to-peer electronic cash system[EB/OL].(2008)[2020-09-28].https://bitcoin.org/bitcoin.pdf.

[9]NXT Generation of Cryptocurrency.NXT whitepaper[EB/OL].(2008)[2020-09-27].https://nxtdocs.jelurida.com/Nxt_Whitepaper.

[10]Ethereum whitepaper:a next-generation smart contract and decen-tralized application platform[EB/OL].(2021-09-29).https://ethereum.org/en/whitepaper/.

[11]BitShares Community.Delegated proof of stake[EB/OL].(2020-08-29).https://how.bitshares.works/en/master/technology/dpos.html.

[12]Armknecht F,Karame G O,Mandal A,et al.Ripple:overview and outlook[C]//Proc of International Conference on Trust and Trustworthy Computing.Berlin:Springer,2015:163-180.

[13]Hyperledger Community.Hyperledger fabric[EB/OL].(2018)[2020-09-27] https://github.com/hyperledger/fabric.

[14]Sukhwani H,Martínez J M,Chang Xiaolin,et al.Performance mode-ling of PBFT consensus process for permissioned blockchain network(Hyperledger Fabric)[C]//Proc of the 36th Symposium on Reliable Distributed Systems.Piscataway,NJ:IEEE Press,2017:253-255.

[15]Lamport L.The part-time parliament[J].ACM Trans on Computer Systems,1998,16(2):133-169.

[16]Lamport L.Paxos made simple[J].ACM SIGACT News,2001,32(4):18-25.

[17]Lamport L,Massa M.Cheap Paxos[C]//Proc of International Confe-rence on Dependable Systems and Networks.Piscataway,NJ:IEEE Press,2004:307-314.

[18]Huang Dongyan,Ma Xiaoli,Zhang Shengli.Performance analysis of the raft consensus algorithm for private blockchains[J].IEEE Trans on Systems,Man,and Cybernetics:Systems,2020,50(1):172-181.

[19]Lamport L,Shostak R,Pease M.The Byzantine generals problem[J].ACM Trans on Programming Languages and Systems,1982,4(3):382-401.

[20]Kotla R,Alvisi L,Dahlin M,et al.Zyzzyva:speculative Byzantine fault tolerance[J].ACM Trans on Computer Systems,2009,2(4):1-39.

[21]Abraham I,Malkhi D,Nayak K,et al.Sync HotStuff:simple and practical synchronous state machine replication[C]//Proc of IEEE Symposium on Security and Privacy.Piscataway,NJ:IEEE Press,2020:106-118.

[22]Zhang Jingjing,Rong Yingyao,Cao Jiannong,et al.DBFT:a Byzantine fault tolerant protocol with graceful performance degradation[C]//Proc of the 38th Symposium on Reliable Distributed Systems.Pisca-taway,NJ:IEEE Press,2019:123-12309.

[23]Eyal I,Gencer A E,Sirer E G,et al.Bitcoin-NG:a scalable blockchain protocol[C]//Proc of the 13th USENIX Conference on Networked Systems Design and Implementation.2016:45-59.

[24]Zeng Luke,Xin S,Xu A,et al.Seele’s new anti-asic consensus algorithm with emphasis on matrix computation[EB/OL].(2019-05-11).https://arxiv.org/abs/1905.04565.

[25]Kokoris-Kogias E,Jovanovic P,Gailly N,et al.Enhancing bitcoin security and performance with strong consistency via collective signing[C]//Proc of the 25thUSENIX Conference on Security Symposium.2016:279-296.

[26]Baldominos A,Saez Y.Coin.AI:a proof-of-useful-work scheme for blockchain-based distributed deep learning[J].Entropy(Basel),2019,21(8):723.

[27]King S,Nadal S.Ppcoin:peer-to-peer crypto-currency with proof-of-stake[EB/OL].(2012-08-19).https://decred.org/research/king2012.pdf.

[28]Deirmentzoglou E,Papakyriakopoulos G,Patsakis C.A survey on long-range attacks for proof of stake protocols[J].IEEE Access,2019,7:28712-28725.

[29]Goodman L M.Tezos:a elf-amending crypto-ledger position paper[EB/OL].(2014)[2020-09-18].https://cryptorating.eu/whitepapers/ ezos/osition_paper.pdf

[30]田國華,胡云瀚,陳曉峰.區塊鏈系統攻擊與防御技術研究進展[J].軟件學報,2021,32(5):1495-1525. (Tian Guohua,Hu Yunhan,Chen Xiaofeng.Research progress on attack and defense techniques in block-chain system[J].Journal of Software,2021,32(5):1495-1525.)

[31]劉怡然,柯俊明,蔣瀚,等.算的區塊鏈中PoS共識機制的改進[J].計算機研究與發展,2018,55(10):2208-2218. (Liu Yiran,Ke Junming,Jiang Han,et al.Improvement of the PoS consensus mechanism in blockchain based on shapley value[J].Journal of Computer Research and Development,2018,55(10):2208-2218.)

[32]Feng Qi,He Debiao,Zeadally S,et al.A survey on privacy protection in blockchain system[J].Journal of Network and Computer Applications,2019,126(1):45-58.

[33]Bentov I,Lee C,Mizrahi A,et al.Proof of activity:extending bitcoin’s proof of work via proof of stake[J].ACM SIGMETRICS Perfor-mance Evaluation Review,2014,42(3):34-37.

[34]劉昊哲,李莎莎,呂偉龍,等.基于信譽度的主從多鏈區塊鏈共識機制[J].南京理工大學學報,2020,44(3):325-331. (Liu Haozhe,Li Shasha,Lyu Weilong,et al.Master-slave multiple-blockchain consensus based on credibility[J].Journal of Nanjing University of Science and Technology,2020,44(3):325-331.)

[35]Dziembowski S,Faust S,Kolmogorov V,et al.Proofs of space[C]//Proc of Annual Cryptology Conference.Berlin:Springer,2015:585-605.

[36]Fisch B.Tight proofs of space and replication[C]//Proc of Annual International Conference on the Theory and Applications of Cryptographic Techniques.Berlin:Springer,2019:324-348.

[37]Karantias K,Kiayias A,Zindros D.Proof-of-burn[C]//Proc of International Conference on Financial Cryptography and Data Security.Berlin:Springer,2020:523-540.

[38]Chen Lin,Xu Lei,Shah N,et al.On security analysis of proof-of-elapsed-time(POET)[C]//Proc of International Symposium on Stabilization,Safety,and Security of Distributed Systems.Berlin:Springer,2017:282-297.

[39]Milutinovic M,He W,Wu H,et al.Proof of luck:an efficient blockchain consensus protocol[C]//Proc of the 1st Workshop on System Software for Trusted Execution.2016:article No.2.

[40]NEM Team.NEM WhitePaper[EB/OL]. (2018-02-23)[2020-09-27].https://nemplatform.com/wp-content/uploads/2020/05/NEM_techRef.pdf.

[41]Nikolakopoulos A N,Garofalakis J D.NCDawareRank:a novel ranking method that exploits the decomposable structure of the Web[C]//Proc of the 6th ACM International Conference on Web Search and Data Mining.2013:143-152.

[42]Divya M,Biradar N B.IOTA-next generation block chain[J].International Journal of Engineering and Computer Science,2018,7(4):23823-23826.

[43]Lamport L.Technical constructing digital signatures from a one-way function,CSL-98[R].[S.l.]:SRI International:Computer Science Laboratory,1979.

[44]Harn L.Group-oriented(t,n) threshold digital signature scheme and digital multisignature[J].IEE Proceedings-Computers and Digital Techniques,1994,141(5):307-313.

[45]Li Wenzheng,He Mingsheng.Comparative analysis of Bitcoin,Ethereum,and Libra[C]//Proc of the 11th International Conference on Software Engineering and Service Science.Piscataway,NJ:IEEE Press,2020:545-550.

[46]劉乃安,陳智浩,劉國堃,等.一種面向區塊鏈驗證節點的聲譽證明共識機制[J].西安電子科技大學學報,2020,47(5):61-66. (Liu Nai’an,Chen Zhihao,Liu Guokun,et al.Mechanism for proof-of-reputation consensus for blockchain validator nodes[J].Journal of Xidian University,2020,47(5):61-66.)

[47]Li Qian,Zhou Tao,Lu Linyuan,et al.Identifying influential spreaders by weighted LeaderRank[J].Physica A:Statistical Mechanics and Its Applications,2014,404:47-55.

[48]Gilbert S,Lynch N.Brewer’s conjecture and the feasibility of consis-tent,available,partition-tolerant Web services[J].ACM SIGACT News,2002,33(2):51-59.

[49]Chaudhry N,Yousaf M M.Consensus algorithms in blockchain:comparative analysis,challenges and opportunities[C]//Proc of the 12th International Conference on Open Source Systems and Technologies.Piscataway,NJ:IEEE Press,2018:54-63.

主站蜘蛛池模板: www.91中文字幕| 国产精品视频猛进猛出| 91精品视频在线播放| 国产精品偷伦在线观看| 玩两个丰满老熟女久久网| 精品国产三级在线观看| av无码一区二区三区在线| 亚洲无码37.| 亚洲无码熟妇人妻AV在线| 国产嫖妓91东北老熟女久久一| 免费不卡在线观看av| 亚洲精品色AV无码看| 18禁黄无遮挡免费动漫网站 | 91视频国产高清| 国产亚洲视频中文字幕视频| 99精品免费在线| 国产精品香蕉在线| 国产农村精品一级毛片视频| 日韩毛片在线视频| 国产精品主播| 亚洲国产成熟视频在线多多| 日本不卡视频在线| 成人综合在线观看| 国产熟睡乱子伦视频网站| 亚洲欧美另类久久久精品播放的| 在线看国产精品| 国产偷倩视频| 国产毛片一区| 欧美 亚洲 日韩 国产| 2024av在线无码中文最新| 国产一区二区影院| 国产午夜小视频| 97在线公开视频| www.亚洲国产| 欧美日韩动态图| 亚洲欧美国产五月天综合| 国产99视频精品免费观看9e| 国产综合在线观看视频| 久久久亚洲色| 日韩国产黄色网站| 亚洲国产欧美国产综合久久 | 亚洲日韩高清无码| 亚洲自偷自拍另类小说| 无码一区二区波多野结衣播放搜索| 欧美爱爱网| 黄色网站不卡无码| 国产91成人| 日日拍夜夜操| 欧美一区精品| 高清久久精品亚洲日韩Av| 色吊丝av中文字幕| 欧美成人一区午夜福利在线| 91视频精品| 国产成人夜色91| 久久久久久国产精品mv| 一级爱做片免费观看久久| 亚洲第七页| 成人a免费α片在线视频网站| 国产乱子伦一区二区=| 伊人色在线视频| 午夜福利免费视频| 亚洲精品国产精品乱码不卞 | 国产精女同一区二区三区久| 亚洲国产亚洲综合在线尤物| 久久久久人妻一区精品色奶水| 国产成人无码Av在线播放无广告| 久久人人97超碰人人澡爱香蕉 | 亚洲天堂精品视频| 国产成人亚洲毛片| 亚洲国产日韩一区| 国产精品太粉嫩高中在线观看| 中文字幕波多野不卡一区| 中文字幕日韩欧美| 91精品国产自产在线观看| 欧美性精品不卡在线观看| 午夜一区二区三区| 亚洲综合久久一本伊一区| 亚洲一区二区成人| 国产免费福利网站| 制服丝袜 91视频| 久久综合丝袜日本网| 国产毛片不卡|