Please enable JavaScript.
Coggle requires JavaScript to display documents.
Reputation-based Byzantine Fault-Tolerance for Consortium Blockchain -…
Reputation-based Byzantine Fault-Tolerance for Consortium Blockchain
INTRODUCTION
(2)在許多實際情況下,財團成員的話語權是不同的。
例如,股東在股東大會上享有不同的話語權。
通常,大型機構或主導成員在投票過程中會擁有較大的發言權,因為與其他成員相比,它們更可信,因此,必須仔細考慮財團成員的聲譽。但是,PBFT中的所有參與節點都是完全相等的,信譽無法反映出不同的話語權,不能滿足實際場景的要求。
(3)PBFT僅在當前主節點無法完成共識時才執行視圖更改操作並選擇一個新的旋轉主節點。這種設計帶來了主要的延遲攻擊,即主要的故意在某些共識回合中延遲發送新消息以降低系統性能。此外,主數據庫的選擇順序是固定的,因此新主數據庫很容易預測並受到惡意攻擊
(1)故障節點會破壞系統的效率和安全性。眾所周知,這些BFT算法至少需要3f +1個節點才能僅容忍f個拜占庭式故障。如果無法及時發現並清除這些故障節點,它們可能會合謀破壞系統安全性,但是,PBFT缺少一些檢測和清除它們的機制。
CONCLUSION
本文針對聯盟區塊鏈提出了一種新的共識算法RBFT。我們設計了一種信譽模型來對共識過程中所有共識節點的行為進行評分,如果檢測到任何惡意行為,則故障節點的信譽就會降低。通過學習許多公共區塊鏈共識算法,我們考慮了聯盟成員話語權的區別和必要的激勵機制,並提出了一種創新的基於信譽的一次變更方案。由於主要對象的選擇是不可預測的,因此可以降低主要對象的安全風險。為了滿足許多實際情況的要求,我們建立了以下原則:信譽較高的聯盟成員可以在投票過程中獲得更大的話語權,並且更有可能成為產生新區塊的主要成員。我們的實驗表明,RBFT可確保財團區塊鏈系統的安全性和可靠性,因為可以及時有效地識別和處理故障節點。在故障率較高的系統中,隨著系統繼續運行,RBFT的TPS和延遲都比PBFT小。未來的工作將集中在實際財團的區塊鏈系統中RBFT的部署和優化。
BACKGROUND AND RELATED WORK
Byzantine Consensus
Practical Byzantine Fault Tolerance
PERFORMANCE EVALUATION
區塊生產週期和節點數的影響
TPS,延遲和故障節點速率隨時間的變化
SYSTEM MODEL
THE BASIC OF RBFT
Identifying Faulty Consensus Nodes
RBFT主要分為三個階段:預準備,準備和提交。拜占庭節點可以在其中任何一個中發送不一致的消息。在上文中,我們描述了信譽模型的設計,但是如何檢測主節點或其他共識節點的不同惡意行為成為要解決的關鍵問題。由於RBFT使用額外的數據結構(DV)來收集和記錄每個節點的表決塊中Bnew標頭的摘要信息,因此它可以通過比較所有節點的DV來輕鬆檢測拜占庭節點的惡意行為。即使所有節點都未能進入提交階段並在共識回合中達成共識,仍然需要所有節點在此回合結束時廣播DVσi消息,以確保節點能夠獲得所有正確節點的DV信息。 主數據庫負責生成新塊,其錯誤可分為以下兩類: •由於崩潰或故意的不當行為,主服務器不會發送預準備和打包的阻止消息,這導致在該共識回合中沒有生成新的阻止。我們可以檢測到DV [p] = 0來發現此異常行為並降低主要用戶的聲譽。 •主節點在準備階段將不同的塊發送到共識節點的不同子集。在這種情況下,其他節點將檢測到從不同節點接收到的DV [p]的差異,因此也可以檢測到這種行為並將其懲罰,信譽值將直接降低為零。 同樣,其他節點也有兩種錯誤行為: (1)節點未發送投票,將通過驗證節點的DV [i]是否為0來檢測此行為; (2)節點發送不一致的投票,即在準備或提交階段中的模棱兩可。還可以通過比較DV來檢測節點在準備階段的惡意行為,還可以通過強制請求證據來檢測DV信息的惡意修改。識別故障共識節點的具體過程如下:
S3。如果節點k發現接收到的DVi [j]與本地DVk [j]之間存在差異,則表明兩種情況:(1)節點j在準備階段將不同的投票信息發送給不同的共識節點; (2)節點i篡改其DVi並發送偽造的DV信息,試圖對節點j進行構圖。因此,節點k將向節點i詢問證據,並從節點j向節點i發送本地接收到的準備消息。如果節點i是正確的,它還將把收到的準備消息從節點j發送到節點k。
S4。如果節點k從節點i接收到準備信息,並且此消息有效並且與DVi [j]中的信息一致,則節點k將認為節點j在準備階段中是模棱兩可的,並且將節點j標記為錯誤狀態。
S2。如果該節點在比較過程中發現所有接收到的DV信息都相同,它將直接根據信譽模型更新所有節點的信譽值。由於本輪共識過程中沒有錯誤的節點,因此不需要執行以下操作。
S5。如果節點k在當前回合時間段內未從節點i收到有效證據,則節點i將被視為在提交階段發送了虛假DV信息,因此將其標記為錯誤狀態。
S1。節點k收到其他共識節點的DV信息後,會將它們與其本地DV進行比較。
S6。最終,節點k將把本輪發現的故障節點信息和相應證據廣播給其他節點,所有正確的共識節點將根據信譽模型驗證並更新每個節點的信譽值和信任狀態。
The Selection of the Primary
在PBFT中,以p = v mod N的形式選擇新的主要對象,其中v是新的視圖編號。輪換選擇新的主數據庫的方式會帶來安全風險。 RBFT的主要變更方案的核心原則是,節點的信譽值越高,就越容易被選擇為主節點,並且選擇結果是不可預測的。對於節點i,假定其受信任狀態值為TSi,則將其選擇為新主節點的概率如下:
Reputation Model
圖4說明了節點信任狀態的轉換。
將新的共識節點添加到系統後,其默認狀態為正常。如果該節點保持良好的行為,則其信譽值將超過閾值α並可以轉換為良好狀態,並且具有良好狀態的節點有更多機會被選擇為主節點。如果節點執行異常行為,則由於其信譽值不斷降低,它將轉換為異常狀態。當信譽值小於閾值β時,該節點將被判斷為故障節點。最後,所有共識節點在每一輪共識之後都會更新其本地CNL中的節點信譽和狀態信息。
The Discourse Right and Incentive Mechanism
在RBFT中,節點的話語權由其信譽值確定。聲譽值越高,話語權越高。話語權的計算和更新在下一輪共識之前完成。假設Di(t + 1)代表第t + 1次共識回合中節點i的話語權,可指定如下
The Verification of Transaction and Block
交易驗證。共識節點需要驗證所有接收到的交易,並且有效交易必須滿足四個條件:(1)正確簽名; (2)具有有效時間戳記的正確交易格式; (3)交易中的腳本可以正確執行; (4)交易永遠不會出現在歷史區塊中。 阻止驗證。當共識節點在預準備階段從主Sp接收到打包數據塊時,它將驗證Bnew標頭中的hashPrevBlock是否指向最高數據塊高度中的最新數據塊。如果沒有,它將緩存此塊並同步歷史塊以確保其達到區塊鍊網絡的最新狀態。此外,它需要驗證Bnew報頭的NTP簽名,並且時間戳必須在當前塊生產週期內。 作為有效塊,必須滿足另外兩個條件:(1)內部的所有事務都是有效的; (2)所有事務的累積摘要等於Bnew標頭中的hashMercleRoot。
Correctness
引理1:共識過程中所有正確節點話語權的比例不會隨著時間而減少
引理2:如果故障節點的數目不超過N-1 3,則RBFT可以保證聯盟區塊鏈系統的安全性和生命力。
Consensus Process
5.Sp收到Bnew標頭後,將產生一個新塊(即B)。然後,它生成並向所有共識節點廣播帶有B的預先準備消息。消息的格式為PRE-PREPARE,h,d,pσp,B,其中h是新塊的高度,d是Bnew標頭的摘要,p是當前序列號主。
6.節點i收到預備消息後,它首先驗證主節點的身份,然後檢查該塊的有效性。如果該塊有效,它將向其他共識節點發送一條準備消息PREPARE,h,d,iσi,並同時更新其本地DVi [p] = d。
4.NTP服務器提供當前時間戳,並生成Bheader和時間戳的簽名。使用Bheader,時間戳和簽名構造新的塊頭Bnew頭。然後,NTP服務器將Bnew標頭返回給Sp。
7.共識節點i從其他節點收集準備消息,驗證這些消息並更新其本地DV。接收到的匹配消息對應於具有不同話語權的節點。節點i計算話語權的總和(包括自身),如果總和不小於Dthreshold,它將更新共識狀態以提交並發送帶有本地DV的提交消息,該本地DV背負到所有共識節點。消息形式為COMMIT,h,d,iσi,DVσi。
3.在接收到事務tx之後,共識節點將驗證事務是否有效。如果交易有效,則將其寫入本地交易池並轉發到其他共識節點,否則將被直接丟棄。
主Sp將本地有效事務打包到一個塊中,並將該塊的頭(即Bheader)發送到NTP服務器以獲取時間信息。
8.同樣,當共識節點收到具有Dthreshold話語權的匹配消息時,此節點會將共識狀態更新為本地提交並進入存儲階段。
新塊B附加到區塊鏈,並發送到存儲節點進行存儲。
2.系統選擇當前一輪共識的主要Sp。
9.達到本地提交狀態後,所有共識節點將比較它們收到的DV,根據信譽模型計算每個共識節點的信譽值和話語權,並更新其本地CNL。上述任何步驟的失敗可能會導致本輪共識的失敗。最終,這一輪沒有有效的區塊,新的區塊將被推遲到下一輪。
1.交易節點C1發起交易tx並廣播至區塊鍊網絡;