拜占庭容錯系統簡介

來源:互聯網
上載者:User

拜占庭容錯系統簡介

原始的拜占庭容錯系統由於需要展示理論上的可行性而缺乏實用性。另外,演算法的複雜度也是隨節點的增加而呈指數級增加。實用拜占庭容錯系統(Practical Byzantine Fault Tolerance, PBFT)降低了拜占庭協議的運行複雜度,從指數層級降低到多項式層級,使拜占庭協議在分布式系統中應用成為可能。

什麼是實用拜占庭容錯系統

實用拜占庭容錯系統是一類“狀態機器”拜占庭系統(這裡的狀態機器可以理解為“系統狀態”,以區塊鏈記賬為例,系統每新增一個區塊,賬本就更新到一個新的狀態。前面講過,拜占庭容錯系統是一個強一致性協議,每次記賬後系統都會達成新的狀態。),要求系統所有節點共同維護一個狀態,所有節點採取的行動一致。

實用拜占庭容錯系統需要運行三類基本協議

  • 一致性協議:解決如何達成共識
  • 檢查點協議:類似於作業系統的還原點
  • 視圖更換協議:系統的每個伺服器節點在同樣的配置資訊下工作,該配置資訊被稱為“視圖”。配置資訊由主節點確定,主節點更換,視圖也隨之變化。

我們主要關注支援系統日常啟動並執行一致性協議

PBFT 的 一致性協議

一致性協議至少包含請求(request)、序號分配(pre-prepare)、響應(reply)三個階段。根據協議設計的不同,可能包含相互互動(prepare) 、序號確認(commit)等階段。

PBFT系統通常假設故障節點個數為m個,而整個服務節點數為3m+1個。

顯示了一個簡化的 PBFT 的協議通訊模式,其中C為用戶端,N0~N3為服務節點,N0為主節點,N3為故障節點。協議的節本過程如下:

  1. Request:用戶端發送請求,啟用主節點的服務作業
  2. 當主節點接收請求後,啟動三階段的協議以向各從節點廣播請求

    • Pre-Prepare:主節點給請求賦值一個序號n,廣播序號分配訊息和請求訊息,並構造PRE-PREPARE訊息給各從節點
    • Prepare:從節點接收PRE-PREPARE訊息,並向其他服務節點廣播PREPARE訊息
    • Commit:各節點對視圖內的請求和次序進行驗證後,廣播COMMIT訊息,執行收到的用戶端的請求並給用戶端以響應
  3. Reply:用戶端等待來自不同節點的響應,若有m+1個響應相同,則該響應即為運算的結果

PBFT 示範

在 n ≥ 3m + 1 的情況下一致性是可能解決的,其中,n為總節點數,m為惡意節點總數。我們類比一下PBFT:

n = 4, m = 0

節點 得到資料 最終結果
A 1111 1
B 1111 1
C 1111 1
D 1111 1

n = 4, m = 1

節點 得到資料 最終結果
A 1110 1
B 1101 1
C 1011 1
D 0111 1

n = 4,m = 2

節點 得到資料 最終結果
A 1100 NA
B 1001 NA
C 0011 NA
D 0110 NA

由此可以看出,實用拜占庭容錯系統能夠容納將近1/3的拜占庭節點。

實用拜占庭容錯系統在很多情境都有應用,在區塊鏈應用中,一般適合於對強一致性有要求的私人鏈和聯盟鏈情境。例如,在IBM主導的區塊鏈超級賬本項目中,實用拜占庭容錯系統是一個可選的共識協議。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.