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

一種可證安全的權益有向無環圖共識機制

2023-05-11 12:51:14羅玉琴關沛冬田海博
西安電子科技大學學報 2023年2期

羅玉琴,關沛冬,田海博

(1.中山大學 計算機學院,廣東 廣州 510000;2.廣東省信息安全技術重點實驗室,廣東 廣州 510000)

1 引 言

共識機制是區塊鏈的核心。隨著區塊鏈技術越來越受到關注,眾多的研究也在致力于開發更實用和更有效率的區塊鏈共識機制[1]。目前,區塊鏈中常用的共識機制有工作量證明(Proof Of Work,POW)、權益證明(Proof Of Stake,POS)、BFT(Byzantine Fault Tolerance)算法等。

工作量證明是早期的共識機制,在比特幣、門羅幣、萊特幣等民間數字貨幣系統中使用。參與方通過算力競爭來獲得記賬權。在正常情況下,系統中只能有單個參與方獲得記賬權。當不誠實的參與方算力小于50%時,參與方具有一致賬本的概率較高[2]。工作量證明機制的缺點是較為消耗資源。

權益證明共識機制最早用在Peercoin中,它依賴參與方持有幣的數量和時間。參與方的資產越多,持有時間越長,越可能獲得記賬權。文獻[3]中提出了可證明安全的POS協議Ouroboros。該協議采用了有界延遲網絡,誠實節點發送的消息在已知的延時內可以被其他誠實節點收到。協議中的時間劃分為時槽,每個時槽有一個領導節點負責生成區塊。Praos協議[4]針對Ouroboros領導節點存在拒絕服務攻擊的問題,采用了可驗證隨機函數(Verifiable Random Function,VRF)來選擇領導節點,并證明了共識的安全性。文獻[5]中提出的Algorand協議也采用了可驗證隨機函數選舉領導節點,針對異步網絡,需要至少3輪消息驗證和m輪拜占庭共識算法(Byzantine Agreement,BA)。權益證明共識機制中產生新的區塊幾乎不消耗資源,這帶來了許多新的安全威脅,其中之一為長程攻擊(Long Range Attack)[6-7],攻擊者通過獲取某個曾經擔任領導者的節點私鑰,接入某個舊帳本,并偽造新賬本。可驗證隨機函數可能導致權益較少的領導者被選中,增加了長程攻擊的風險。

BFT算法希望在系統存在拜占庭行為參與方的情況下,仍能就某一提議達成一致[8]。實際的BFT(Practical BFT,PBFT)算法[9]是第一個較為實用的BFT類算法,用在聯盟鏈Fabric 1.0中。為了提升效率,HoneyBadgerBFT算法[10]結合可靠廣播協議和二值異步拜占庭共識算法(Binary BA,BBA),實現了異步網絡的共識。Dumbo算法[11-12]進一步提出了可證明的可靠廣播協議和多值異步拜占庭共識協議[13],提升了共識效率。

上述共識算法需要單個記賬節點或者領導節點提出建議,其他節點驗證記賬不能容忍多個記賬節點的情況,同時沒有考慮共識對象間內在的關系。設共識對象為交易,每個記賬節點通過在交易中包含舊交易的信息,可以形成交易間的引用關系。以該引用關系為邊,以交易為頂點,可以構成不同記賬節點所發出交易的有向無環圖(Directed Acyclic Graph,DAG),進而利用有向無環圖的拓撲結構輔助達成關于交易的共識。因此,基于有向無環圖的共識機制具有容忍多節點并行記賬的能力,受到了極大的關注。

目前,有向無環圖的共識機制與工作量證明結合在一起,通過共識對象的直接和間接工作量來完成共識。文獻[14-15]要求創建交易時進行工作量證明,從而形成每個交易的權重,進而可以根據引用關系來計算某個交易的累積權重,以期達到該交易是否入鏈的共識。文獻[16]中提出了GHOST共識機制,給出通過找到最大權重子樹來確定主鏈的協議。以太坊早期采用該共識機制來解決其因挖礦難度低造成的出塊碰撞問題。文獻[17]中提出了Conflux共識,增加了引用邊,使得主鏈以外的合法交易也可以參與排序。文獻[18]中提出的Byteball共識引入了見證人機制,主鏈確認算法依賴于見證人的信譽。基于有向無環圖和工作量證明的共識機制,新的區塊產生時消耗的資源很少,這一點帶來了新的安全威脅[15,18]。其中一種威脅為分裂攻擊,攻擊者通過發送交易,使得有向無環圖分裂為不相交的子圖,破壞共識記賬。

文獻[19]是首個基于有向無環圖和工作量證明的共識機制。該共識機制利用了有向無環圖允許多個記賬節點的特點,由基于權益證明的領導者節點集合共同記賬。攻擊者此時進行長程攻擊,需要獲取領導者集合中不少于1/3的節點私鑰,提高了攻擊代價。同時,不多于1/3的攻擊者即便在領導者節點集合中,也很難破壞共識記賬過程,可以抵御分裂攻擊等行為。然而,該文只是就已有的雙花等多種攻擊進行了分析,并沒有進行嚴格的安全性證明,同時其關鍵的委員會協議和交易確認算法也采用的是描述性語言,存在歧義性理解。因此,筆者給出委員會協議和交易確認算法的正式描述,并給出詳細的安全性證明,提出了一個完整的可證明安全的權益有向無環圖共識機制。最后,基于該共識機制實現了一個簡單的區塊鏈系統,測試了共識機制的性能。

2 基礎知識

權益有向無環圖共識機制涉及的一些基本概念包括有界延遲網絡、參與方及交易[19]。

2.1 有界延遲網絡

在有界延遲網絡中,如果誠實節點發送交易,則其他誠實節點一定會在Δ時間內接收到交易。Δ是交易的最大容忍時延。有界延遲網絡是一個常用的同步網絡模型,例如PBFT[9]、Praos[4]等協議都采用了該模型。

比時延Δ大的一個時間單位是時槽,通常一個時槽定義為3倍時延。e個時槽在一起形成的一段連續時間稱為一個世代,世代從0開始計數。

2.2 參與方及交易

參與方區分為客戶端節點和鏈節點。鏈節點按照其工作任務分為活躍鏈節點、候選鏈節點和靜默鏈節點。

客戶端節點主要生成常規凈交易(Normal Net Transaction,NNT) 。常規凈交易用于改變鏈中賬戶的狀態,例如賬戶的權益值。常規凈交易的字段包括時間戳T、計數器值c、參數消息m和前述內容的簽名σ。

活躍鏈節點主要接收常規凈交易和生成鏈交易(Chain Transaction,CT)。生成鏈交易用于形成有向無環圖,輔助記賬。生成鏈交易的字段包括時間戳T、計數器值c、管理消息或常規凈交易哈希值、引用生成鏈交易的個數及引用生成鏈交易的哈希值、穩定狀態根R和前述內容的簽名σ。其中穩定狀態根是S個時槽前活躍鏈節點狀態數據庫的默克爾根,S為系統參數,通常為2。狀態數據庫存儲所有節點賬戶的狀態。賬戶的狀態包含權益值、計數器值等內容。

候選鏈節點主要產生管理凈交易(Management Net Transaction,MNT)。管理凈交易用于委員會協議。管理凈交易的字段包括時間戳T、世代編號r、穩定狀態根R和前述內容的簽名σ。靜默鏈節點不產生任何交易,可以偵聽和驗證交易或同步它們的交易數據庫。鏈節點的交易數據庫存儲生成鏈交易、管理凈交易和常規凈交易這3類交易。另外還有交易池,存儲沒有被確認的常規凈交易和暫時無法驗證的生成鏈交易。

3 權益有向無環圖共識

權益有向無環圖共識主要包含委員會協議和常規凈交易確認算法。其中委員會協議迭代地生成每個世代的活躍鏈節點。常規凈交易確認算法則由該世代的活躍鏈節點對常規凈交易進行有向無環圖輔助下的投票記賬。

3.1 委員會協議

委員會協議通過當前世代的委員會選舉出下一世代的委員會。委員會成員即成為下一世代的活躍鏈節點。協議主要從自主注冊的節點中,以當前世代開始時槽的穩定狀態根所確定的這些節點的權益值為依據,選擇權益值較大的節點作為委員會成員。第0世代的委員會成員由初始鏈交易定義,稱為{N0,…,Nl-1}。簡單起見,設3|l且這l個節點一直在線。初始鏈交易是每個節點都知曉的一個配置性交易。其他世代的委員會成員由委員會協議確定。為了成為委員會成員,鏈節點需要通過常規凈交易盡可能地增大自己的權益值,以增加成為委員會成員的概率。

委員會協議如協議1所示。

協議1委員會協議。

在第r世代,對于鏈節點pi:

① 初始化:權益降序表Si、哈希表HCi、有序確認表Confirmedi置空;

② 在當前世代的倒數第2個時槽結束前:

③ 若pi是候選鏈節點,廣播MNTi=r‖Ri‖Ti‖σi;

④ 當收到候選鏈節點pj發出的MNTj后,執行fr(MNTj),若返回值非空,則解析返回值為(pkj,stakej);

⑤ 將(pkj,stakej)插入到表Si中;

⑥ 在最后一個時槽開始時:

⑦ 對Si中的每對二元組計算哈希值hc,并初始化每個哈希值的投票數Vhc=1,(hc,Vhc)寫入哈希表HCi;

⑧ 若pi是活躍鏈節點,則:

⑨ 設置管理消息Mi為HCi中所有的哈希值,生成并廣播交易CTMNTi=Ti‖ci‖Mi‖引用數據‖Ri‖σi,更新ci=ci+1;

⑩ 在最后一個時槽開始后的2Δ時延內:

協議1分為以下幾個階段:

(1) ②~③行:自主注冊。希望成為下一世代活躍鏈節點的候選節點在當前世代發送管理凈交易。

(2) ④行:主動退位。鏈節點接收管理凈交易。若該管理凈交易各個字段合規性檢查通過,則函數fr恢復發送該管理凈交易的節點公鑰pk,檢查管理凈交易的數字簽名,簽名驗證通過則繼續檢查恢復的公鑰是不是當前任意活躍鏈節點的公鑰,檢查通過則繼續從狀態數據庫中找到該世代開始時槽的穩定狀態所確定的該節點的權益值stake,返回二元組(pk,stake);任意檢查不通過,則停止處理該交易,返回空值。其中函數fr恢復公鑰的實現方法較多,例如簽名σ中附帶公鑰或者采用橢圓曲線數字簽名算法(Elliptic Curve Digital Signature Algorithm,ECDSA)的公鑰恢復算法。

(3) ⑤行:權益優先。權益降序表Si初始為空,在一次委員會執行周期內,該表按照權益由大到小的順序插入二元組(pk,stake),當權益值相同時,公鑰較小的節點優先排序。

委員會協議設計上具有自主注冊、權益優先和主動退位的特點。任何一個靜默鏈節點都可以在一個新世代開始時使它自己成為一個候選鏈節點。對于一個誠實的節點,自主注冊是為了體現鏈節點想要成為一個活躍鏈節點的主動性,這可以盡量避免選到睡眠中的節點。權益優先是盡可能讓高權益節點來完成共識,以避免權益證明共識機制固有的長程攻擊等問題。主動退位則是為了盡可能地增加共識節點的動態性,以減輕權益證明中“富者越富”的問題。

委員會協議在每個世代結束時明確了下一世代的委員會成員。攻擊者根據委員會成員的公鑰可以確定委員會成員的交易,進一步嘗試分析委員會成員的IP地址,進而發動拒絕服務攻擊。然而,與單一記賬節點相比,委員會成員中有l個記賬節點,這事實上增加了拒絕服務攻擊的代價。另外,即便采用可驗證隨機函數等方式匿名選出一個隨機的委員會,在有向無環圖模式下,當這些成員提供共識服務時,同樣給了攻擊者拒絕服務攻擊的機會,并且增加了長程攻擊的風險。

為了更清晰地展示委員會協議,給出一個世代內的委員會協議工作流程圖,如圖1所示。假設有m個鏈節點,k個候選鏈節點和l個委員會節點。每個候選鏈節點將自己的公鑰和權益封裝在管理凈交易中,于該世代倒數第2個時槽結束前完成廣播;所有鏈節點接收到MNTi后,根據收到的MNTi更新本地權益降序表;在最后1個時槽開始時,所有鏈節點在本地構建哈希表,其中委員會節點將哈希表封裝在生成鏈交易中廣播出去;所有鏈節點收到CTMNTi后,在最后1個時槽開始后2Δ時延內完成本地哈希表的更新,即更新每個候選鏈節點的投票數;在最后1個時槽結束前Δ時延內,鏈節點檢查本地哈希表中的投票數,根據協議來確定下一世代委員會。委員會協議只需要2次廣播:一次是候選鏈節點廣播的管理凈交易消息;另一次是當前委員會成員廣播的CTMNT消息。與其他共識協議相比,通信代價較低。另外,委員會協議在一個世代內只執行一次,對整個共識機制的效率影響較小。

圖1 一個世代內的委員會協議工作流程圖

3.2 常規凈交易確認算法

當前世代的委員會成員接收常規凈交易,生成并發送生成鏈交易,從而擴展有向無環圖,確認交易。其中常規凈交易由客戶端節點生成。常規凈交易中的計數器用于防止重放攻擊,每生成一個常規凈交易該計數器值都加1。

常規凈交易確認算法由鏈節點執行,如算法1所示。

算法1常規凈交易確認算法。

在第r世代,對于鏈節點pi:

① NNTPooli為常規凈交易池,NNTDBi為常規凈交易數據庫,CTPooli為生成鏈交易池,CTDBi為生成鏈交易數據庫;

② 當接收到常規凈交易時:

③ 檢查常規凈交易的有效性,若有效則:

④ 計算h=Hash(NNT),增加常規凈交易和表(h,{})到NNTPooli;

⑤ 如果pi是當前委員會成員:

⑥ 以概率Pe生成CTNNTi=Ti‖ci‖h‖引用數據‖Ri‖σi;

⑦ 更新ci=ci+1,CTNNTi存入CTDBi,廣播CTNNTi;

⑧ 當收到節點pj廣播的CTNNTj時:

⑨ 檢查CTNNTj的有效性,若有效則:

算法1包含以下幾個階段:

(1) ①~④行:接收常規凈交易。鏈節點驗證常規凈交易中的數字簽名、生成時間和計數器值。驗證常規凈交易的生成時間的有效性指節點接收時間和交易時間戳的差值絕對值不大于Δ;驗證計數器值的有效性是指在收到交易后,要求交易中計數器值大于當前節點狀態數據庫中的對應計數器值。

如果驗證通過,則交易有效,首先更新發送該常規凈交易的客戶端賬戶中計數器的值,然后計算這個常規凈交易的哈希值h,為該常規凈交易構建一個空的哈希確認表,將常規凈交易和確認表存入常規凈交易池中。

(2) ⑤~⑦行:生成并發送生成鏈交易。對于委員會成員,接收常規凈交易后會以概率Pe生成CTNNT,封裝該常規凈交易的哈希值。其中,引用數據構造如下:

首先需要確認引用數量,一般該數量大于等于2,這里假設為2。然后從生成鏈交易數據庫的未被引用生成鏈交易中,按照均勻分布隨機選取兩個生成鏈交易,計算其哈希值并作為引用數據。如果所有生成鏈交易都已經被引用,就選取生成鏈交易數據庫中新近存儲的任意兩個生成鏈交易,計算其哈希值并作為引用數據。

封裝完成后,將生成鏈交易存儲在生成鏈交易數據庫中,并廣播給其他鏈節點。

(1) 優先按照常規凈交易的創建時間排序,創建時間更早的常規凈交易排在前面。

(2) 如果兩個常規凈交易有同樣的創建者,那么它們應有不同的創建時間,且有更小的創建時間的常規凈交易應有更小的計數器值。如果違反了該規則,觸發懲罰機制,即兩個常規凈交易都被丟棄,且該創建者的權益或令牌被共享給該世代中的活躍鏈節點。

(3) 如果兩個有相同創建時間的常規凈交易被不同的創建者創建,則應計算兩個哈希值。哈希函數的輸入是當前世代數、常規凈交易發送者的公鑰和當前世代委員會成員的公鑰。計算后,哈希值小的常規凈交易排在前面。

排序的第1個規則鼓勵客戶端節點使用盡可能早的創建時間來創建交易。但是客戶端節點的交易是需要委員會成員確認的,因此,委員會成員會約束客戶端節點創建交易的時間,使得客戶端節點創建交易的時間在一個合理的范圍內。排序的第2個規則主要是針對客戶端節點的雙花攻擊進行的約束,該規則意味著常規凈交易的接收方可以通過發送方計數器值的連續性來確認發送方沒有雙花。排序的第3個規則是通過引入環境參數來打破排序僵局,屬于常用方法。

為了更清晰地展示常規凈交易確認算法,給出該算法的主要工作流程,如圖2所示。

圖2 常規凈交易確認算法工作流程圖

設某客戶端向鏈接點廣播了一個NNT。鏈節點收到NNT后,檢查NNT的有效性,有效則加入本地常規凈交易池中,并在常規凈交易池中構建新的哈希確認列表,其中,委員會節點將常規凈交易封裝在生成鏈交易中廣播出去;所有鏈節點收到CTNNTi后,檢查其有效性,有效則將其加入本地生成鏈交易數據庫中,并更新常規凈交易池中的哈希確認列表,包括NNT的哈希確認數的更新、以CTNNTi為根節點的子樹中的樹節點包含的NNT的哈希確認數的更新等。

4 安全性分析

4.1 安全模型

權益有向無環圖共識機制包含鏈節點和客戶端節點。鏈節點又分為活躍鏈節點、候選鏈節點和靜默鏈節點。鏈節點和客戶端節點都在一個點到點網絡中,誠實的鏈節點會轉發其他鏈節點或者客戶端節點的消息。客戶端節點發送的消息為常規凈交易,鏈節點發送的消息為生成鏈交易。鏈節點將確認的常規凈交易存入常規凈交易數據庫。

攻擊者既可以是鏈節點又可以是客戶端節點,這些節點稱為拜占庭節點。拜占庭節點可以有任意行為,例如發起合謀攻擊、延遲轉發消息、不轉發消息或者單播某個消息。拜占庭節點的這些行為囊括了網絡故障或者誠實節點故障等意外情況。因此,如果誠實節點發送交易,根據有界延遲網絡假設,其他誠實節點會在交易最大容忍時延Δ內接收到交易。

假設在每個世代中,候選鏈節點中拜占庭節點的占比小于1/3,且按照權益排序時,分布均勻。假設第0世代的委員會成員一直在線,是誠實節點,則可以在必要時加入委員會。

考慮共識機制的如下安全屬性:

(1)一致性

如果某個誠實鏈節點將某個常規凈交易存入了常規凈交易數據庫,那么其他誠實鏈節點也會將該常規凈交易存入其常規凈交易數據庫。

(2)可結束性

如果某個誠實的鏈節點收到了某個常規凈交易,則該鏈節點要么停止處理該常規凈交易,要么將其存入常規凈交易數據庫。

4.2 安全性證明

為了證明常規凈交易確認算法的一致性和可結束性,首先需要明確委員會協議的安全屬性。由于委員會協議僅僅有2次廣播,并不能確保每個鏈節點都有一致的委員會視圖。然而,委員會協議可以確保每個鏈節點關于誠實節點有一致的視圖,并且委員會協議是可以連續更迭的。

定理1委員會協議可以在兩個時槽內結束,每一世代可以確認下一世代的委員會成員,且委員會成員中不少于2l/3個成員是誠實且一致的。

證明 采用數學歸納法證明。

(1)第0世代的委員會成員為初始鏈交易定義的l個鏈節點。根據假設,這些鏈節點是誠實節點。

(2)第r世代確定第r+1世代的委員會時(r≥0),第r世代委員會成員中有不少于2l/3個成員是誠實的。假設候選節點中有x′個惡意節點,x個誠實節點,則根據拜占庭節點占比假設有x′≤(x′+x)/3。根據協議1的第②~③行,x個誠實的候選節點廣播管理凈交易。根據有界延遲網絡假設,當前委員會成員中不少于2l/3個成員在倒數第2個時槽的第1個Δ時延內會收到x個誠實節點發出的所有管理凈交易。

收到管理凈交易的誠實委員會成員根據協議1的第④~⑤行對收到的管理凈交易進行處理,根據協議1的第⑥~⑨行,在最后一個時槽開始時產生并廣播CTMNT。根據有界延遲網絡假設,誠實鏈節點在最后一個時槽開始后不超過2Δ的時間內可以收到不少于2l/3個委員會成員發出的所有CTMNT。

在委員會成員中有不少于2l/3個成員是一致的這個前提下,可以證明常規凈交易確認算法可以確保單個常規凈交易在誠實鏈節點中經過一段時間后總是可以得到確認的。

證明 首先分析在有向無環圖中,引用數至少為2時,單個生成鏈交易被引用的情況。

設客戶端節點每Δ時間產生λ個常規凈交易。根據算法1的第⑥行,委員會節點會以概率Pe生成包含常規凈交易哈希值的生成鏈交易,則單個委員會成員每Δ時間產生約Peλ個生成鏈交易。設全體誠實委員會成員每Δ時間產生λ1個生成鏈交易,由定理1可知誠實委員會成員數量不少于2l/3個,所以λ1≥2lPeλ/3。

設每Δ時間,單個委員會成員向其生成鏈交易數據庫存入λ2個生成鏈交易,顯然有λ2≤λ1。

根據算法1第⑥行的描述,每產生一個生成鏈交易,其引用數至少為2,則Δ時間內產生Peλ個生成鏈交易需引用至少2Peλ個生成鏈交易。

因為生成鏈交易引用規則是按照均勻分布隨機選取的,所以每Δ時間存入生成鏈交易數據庫的單個生成鏈交易被直接引用的概率至少是2Peλ/λ2。為了讓單個生成鏈交易的直接引用概率趨于1,需要有x≈λ2/(2Peλ)個委員會成員。因λ1≥2lPeλ/3,且λ2≤λ1,故可得x≤l/3。

因為委員會成員中不少于2l/3個成員是誠實的,所以單個生成鏈交易在Δ時間內直接被引用次數至少是2次。單個生成鏈交易經過y個Δ時間后,被直接和間接引用的次數至少是2+…+2y=2y+1-2。

下面考慮單個世代內,某個常規凈交易從被接收到被確認的時延。當該常規凈交易被一個誠實鏈節點確認時,根據算法1的行,該常規凈交易一定在該誠實節點的常規凈交易池中,即該誠實節點接收了該常規凈交易。根據有界延遲網絡假設,其他誠實節點在Δ時間內也接收了該常規凈交易。根據算法1的第⑥行,有2lPe/3個誠實節點生成了包含該常規凈交易的不同生成鏈交易。因此,對于某個常規凈交易,在接收后至多經過1個Δ時間會在有向無環圖中出現包含該常規凈交易的生成鏈交易。經過y個Δ時間,該常規凈交易被直接和間接確認的次數至少為2lPe(2y+1-1)/3,其中包含生成鏈交易對該常規凈交易的一次引用。

依次類推,可知在原世代結束前yΔ時延內的常規凈交易,在新世代根據常規凈交易確認算法能夠以概率1被確認,最大延遲不變。

最后,分析當一個誠實鏈節點確認某個常規凈交易后,其他誠實鏈節點的行為。

推論常規凈交易確認算法具有一致性和可結束性。

5 區塊鏈系統及性能

圖3所示為基于權益有向無環圖共識機制,實現了一個區塊鏈系統。為了測試筆者提出的共識機制性能,在4臺主機配置了20臺虛擬機,每臺虛擬機配置6 GB內存,4個處理器,均運行Ubuntu 18.04系統。主機之間的網絡為百兆局域網,網絡通信采用了HoneyBadger BFT協議開源代碼中Python版本的異步通信模塊。為了確保數據的準確性,給出的數據為多次測量的平均值。根據測試目標的不同,測試次數有所不同,每個測試目標的測試次數在10~20次之間。

圖3 區塊鏈系統

客戶端節點功能單一,僅發送常規凈交易。用Python自帶的len()函數,計算得到每個常規凈交易的長度約360字節,其中包括時間戳32字節、計數器28字節、ECDSA簽名97字節和參數消息59字節。根據測試,單個TCP連接下,客戶端節點每秒鐘可以發送約400個常規凈交易。

鏈節點部署了委員會協議和常規凈交易確認算法,完成委員會更迭和常規凈交易的確認。設置委員會成員數量l∈{4,8,12,16},其他參數包括Pe=0.5,Δ=0.5 s,一個時槽為3 s,一個世代為1 min,算法1的第行中的時間閾值為0.8 s。此時可計算得到生成鏈交易的長度約670字節,包括時間戳32字節、計數器28字節、常規凈交易哈希值113字節、引用數量28個字節、引用2個生成鏈交易哈希值226字節、穩定狀態根113字節、ECDSA簽名97字節。

從表1可以看到,在委員會協議中,候選鏈節點運行1.429 ms,活躍鏈節點運行2.006 ms,其他鏈節點運行0.024 ms。各部分運行時間在預期的Δ延時內,符合節4.1安全模型中的最大容忍時延的假設,且整個委員會協議的運行時間在2個時槽內完成,符合定理1。

表1 委員會協議運行時間

表2 常規凈交易確認算法運行時間

在委員會成員數量分別為4、8、12、16,拜占庭節點數分別為1至4時,測試了文中的共識機制確認單個客戶端交易的時延和系統的吞吐量。類似HoneyBadger BFT協議,交易時延是常規凈交易自發出到該交易進入常規凈交易數據庫的用時,系統吞吐量為常規凈交易數據庫中每秒增加的交易數。

作為對比實驗,在相同局域網、相同節點下運行HoneyBadger BFT協議,測試HoneyBadger BFT協議處理與單個常規凈交易相同大小的交易的時延。由于HoneyBadger BFT協議在處理交易時,并沒有對交易簽名,為公平起見,在HoneyBadger BFT協議中加入了交易簽名和驗證簽名的過程,同樣采用ECDSA簽名。

如表3所示,在處理單個常規凈交易時,隨著局域網內節點數量增加,節點的平均交易處理時延逐漸增加,但依然保持毫秒級時延,明顯低于HoneyBadger BFT協議的單個交易處理時延。

表3 不同情況下的單個交易處理時延 ms

注意到定理2給出的是常規凈交易被確認的最大時延,可見該實驗結果符合定理2。在實驗過程中,采用Wireshark軟件監測網絡,測得局域網內的交易傳播時延在0.04 ms左右,遠低于Δ=0.5 s,符合安全模型中最大容忍時延的假設。

在測試系統吞吐量時,采用了類似HoneyBadger BFT協議的批量處理方法。增加了常規凈交易載荷的規模來進行批量處理。交易批量為常規凈交易載荷的規模除以每個客戶端交易的大小。測試結果如圖4所示:首先隨著交易批量增大,系統吞吐量不斷增大;然后當局域網內通信量趨于飽和時,系統吞吐量有所下降;最后隨著部署節點的增多,局域網內通信量增加,系統的吞吐量下降。當部署16個活躍鏈節點,交易批量為106時,本系統的交易吞吐量約17 000 tx/s;在相同配置下,HoneyBadger BFT協議的交易吞吐量為2 600 tx/s。

圖4 不同節點部署情況下的交易吞吐量

分析HoneyBadger BFT協議的共識過程,可知其完成一次共識在RBC階段就需3次廣播,在BA階段也至少需要3次廣播,而筆者提出的共識機制中的共識過程僅需兩輪廣播。因此,本系統在共識過程中,交易通信量會明顯小于HoneyBadger BFT協議,使得本系統的單個交易處理時延遠小于HoneyBadger BFT協議時延,吞吐量也會高于HoneyBadger BFT協議的交易吞吐量。

6 結束語

以上完整地呈現了一個可證明安全的權益有向無環圖共識機制,詳細給出了委員會協議和常規凈交易確認算法,證明了協議和算法的安全性,并基于該共識機制實現了一個區塊鏈系統,給出了基本的性能測試數據。測試結果符合預期。

主站蜘蛛池模板: 亚洲一级毛片| 国产主播在线一区| 国产精品夜夜嗨视频免费视频| 在线欧美日韩| 国产亚洲视频中文字幕视频| 国产女同自拍视频| 国产精品极品美女自在线看免费一区二区| 91欧洲国产日韩在线人成| 亚洲精品第五页| 97se亚洲综合在线天天| 中文字幕一区二区视频| 另类综合视频| 日本国产精品| 色噜噜狠狠狠综合曰曰曰| 欧美成人亚洲综合精品欧美激情| 欧美在线视频不卡第一页| 欧美成一级| 免费观看亚洲人成网站| 日韩精品无码不卡无码| 久久人搡人人玩人妻精品| 午夜a视频| 欧美狠狠干| 国产精品网拍在线| 在线免费亚洲无码视频| 亚洲aaa视频| 青青青国产精品国产精品美女| 亚洲中文字幕手机在线第一页| 蝴蝶伊人久久中文娱乐网| 久久窝窝国产精品午夜看片| 日韩一级毛一欧美一国产| 亚洲欧洲免费视频| 欧美日本在线| 中文字幕乱码中文乱码51精品| 无码中字出轨中文人妻中文中| 欧美视频在线播放观看免费福利资源| 97成人在线视频| 国产91蝌蚪窝| 亚洲色图综合在线| 亚洲二三区| 亚洲精品国产综合99| 2022国产91精品久久久久久| 免费国产好深啊好涨好硬视频| 国产免费观看av大片的网站| 看国产毛片| 亚洲成人动漫在线| 亚洲综合18p| 99国产在线视频| 91成人在线观看| 一级毛片在线播放| 亚洲三级片在线看| 国产在线第二页| 天天婬欲婬香婬色婬视频播放| 日韩成人在线视频| 国产精品欧美激情| 国产成人久久综合一区| 国产国模一区二区三区四区| 毛片免费高清免费| 青青青伊人色综合久久| 日韩成人在线一区二区| 欧美色图第一页| 午夜成人在线视频| 亚洲午夜国产片在线观看| 国产噜噜在线视频观看| 午夜激情福利视频| 美女潮喷出白浆在线观看视频| 久久久无码人妻精品无码| 视频一区视频二区日韩专区| 色婷婷色丁香| 日本久久网站| 在线日韩日本国产亚洲| 亚洲色无码专线精品观看| 国产产在线精品亚洲aavv| 国产精品天干天干在线观看| 国产美女自慰在线观看| 五月激激激综合网色播免费| 国产精品福利社| 青青草国产在线视频| 国产不卡在线看| 狠狠躁天天躁夜夜躁婷婷| 国产一二三区在线| 人妻丰满熟妇啪啪| 亚洲精品国产首次亮相|