分叉成功,大都會第一階段「拜占庭」是啥?(技術入門)

10月16日,拜占庭更新完成,以太坊經過第五個硬分叉,促使價格上漲2%,之前有文章介紹的以太坊第三階的「大都會更新」,這個更新包含兩個階段:拜占庭、君士坦丁堡,目前完成第一階段「拜占庭」,君士坦丁堡預期將在2018年更新,此篇先來介紹什麼「拜占庭」更新。

「拜占庭」名字的由來

拜占庭是古代東羅馬帝國的首都,因為擴及地域很寬,邊境的將軍主需要透過差使來傳遞訊息,以達到一致性的戰略共識。

如何應用在以太坊更新上?

拜占庭邊境的將軍,在區塊上可以稱做不同的節點,透過各節點間訊息的傳遞,來達到一致性的結果完成任務。

可能發生的拜占庭問題

拜占庭藉由信使傳遞訊息的方式,如果將軍間存在叛徒,將很有可能中途攔截信使或故意釋放假消息,誤打整體訊息方向,而這,也有可能發生在區塊鏈上。

更新的「拜占庭容錯算法」

如果把區塊上的節點總數設做N,叛變的將軍數設作F,當N ≧ 3F+ 1時,問題才會有解,也就是所謂的拜占庭容錯算法(Byzantine Fault Tolerant, BFT),這麼做的目的,是要讓網路通訊可靠,但部分節點故障的情況下達到一致性,也就是說,只要2/3的節點正常運作,系統就能確保資訊一致性。

資訊經過流程:Pre-Prepare、Prepare 和 Commit

(1)Pre-Prepare階段:主節點接受客戶(Client)的需求,將Pre-Prepare訊息傳送到備份節點,如果被接收,就會進入Prepare階段,相反的,如果備份節點發現這項訊息不符合比對,則會拒絕這則訊息。

(2)Prepare階段:備份節點開始傳送Prepare給主節點與兩個備份節點,若三者驗證訊息一致,則會提供證書(Prepare Certificate),但在傳輸過程中可能有漏洞,所以有了Commit階段。

(3)Commit階段:緊接著Prepare階段,開始傳送Commit訊息,告訴各節點通過Prepare Certificate,三方比對驗證成功後,送回新證書(Commit Certificate),請求到達commited狀態,原先的節點就會被執行。

示意圖會像這樣,資訊交流會越來越複雜,經過各方驗證後傳回給發出訊息者。

看更多區塊鏈知識:以太坊「大都會」更新,終極教學指南來囉

了解新聞資訊:百度加入Hyperledger 聯盟,中國區塊鏈禁得住嗎?

Leave a Reply

Your email address will not be published. Required fields are marked *