可降低網路複雜性!Facebook發布新版本LibraBFT協議
灑脫喜/張詠晴編譯
2019-09-27 11:30

 

LibraBFT協議作為Facebook Libra區塊鏈的核心,其負責的是確保安全的狀態機複製。

 

而在今日,其開發團隊Calibra,發布了LibraBFT核心協議的重要更新。

 

據悉,新版本的LibraBFT v2 協議包含了一些優化,旨在減少網路連接,並改善Libra區塊鏈的commit延遲。

 

另外,Calibra還提供了Rust模擬器代碼以供參考,這部分代碼可在Calibra研究團隊的github儲存庫中找到。

 

在實踐中降低網路複雜性

 

LibraBFT是HotStuff協議的一種改進版本,其明確了用於實現節點間循環同步(round synchronization)的機制。非正式地說,在一輪投票期內,某個特定的領導者(leader)會被信任以推動進展(通常透過提議一個區塊(B)、收集投票(V)和廣播一個法定人數證書(C))(見下圖)。循環同步的目的是使節點最終執行具有足夠長overlap(重疊)的同一循環,以便該循環的領導者(leader)能夠成功。

 

libraBFT2 (1)

 

在樂觀的情況下,LibraBFT v2 協議將循環同步的開銷,減少到每輪每個節點一條消息(參見圖中的綠色箭頭)。

 

LibraBFT的「v1」版本依賴於隨機性的gossip協議來確保仲裁證書 (C)的統一傳播。這種統一的傳播需要實現循環同步,並保證在存在惡意領導者(leader)的情況下保持系統活性(liveness)。

 

雖然機率gossip協議是一種適用於很多應用的流行技術,但它通常需要非線性的消息數,並且由於中間跳數(hop)而導致延遲增加。從工程的角度來看,網路開銷和gossiping的隨機性也可能使debug變得複雜化。

 

相比之下,LibraBFT v2 協議在不使用隨機性gossip的情況下,以不同的方式實現了循環同步。首先,新的協議引入了一種新型的故障保護機制,其在沒有進展的情況下定期抽出丟失的數據。其次,LibraBFTv2簡化了區塊提議的約束。新的約束確保誠實的領導者(leader )總是在第一個誠實節點進入其循環之後,立即提出一個區塊並強制循環同步。

 

LibraBFT v2的活性證明表明,新協議在拜占庭(最壞情況)場景下,仍能以令人滿意的方式執行,而在最佳情況下,消息的數量會是線性的。

 

本文為巴比特資訊授權刊登,原文標題為「Facebook發布新版本LibraBFT協議,可降低網路複雜性