LibraBFT協(xié)議作為FacebookLibra區(qū)塊鏈的核心,其負責的是確保安全的狀態(tài)機復制。而在今日,其開發(fā)團隊Calibra發(fā)布了LibraBFT核心協(xié)議的重要
LibraBFT協(xié)議作為FacebookLibra區(qū)塊鏈的核心,其負責的是確保安全的狀態(tài)機復制。
而在今日,其開發(fā)團隊Calibra發(fā)布了LibraBFT核心協(xié)議的重要更新。
據(jù)悉,新版本的LibraBFT v2 協(xié)議包含了一些優(yōu)化,旨在減少網(wǎng)絡連接并改善Libra區(qū)塊鏈的commit延遲。
另外,Calibra還提供了Rust模擬器代碼以供參考,這部分代碼可在Calibra研究團隊的github存儲庫中找到。
在實踐中降低網(wǎng)絡復雜性
LibraBFT是HotStuff協(xié)議的一種改進版本,其明確了用于實現(xiàn)節(jié)點間循環(huán)同步(round synchronization)的機制。非正式地說,在一輪投票期內,某個特定的領導者(leader)會被信任以推動進展( 通常通過提議一個區(qū)塊(B)、收集投票(V)和廣播一個法定人數(shù)證書(C))(見下圖)。循環(huán)同步的目的是使節(jié)點最終執(zhí)行具有足夠長overlap(重疊)的同一循環(huán),以便該循環(huán)的領導者(leader)能夠成功。
在樂觀的情況下,LibraBFT v2 協(xié)議將循環(huán)同步的開銷減少到每輪每個節(jié)點一條消息(參見圖中的綠色箭頭)。
LibraBFT的“v1”版本依賴于概率性的gossip協(xié)議來確保仲裁證書 (C)的統(tǒng)一傳播。這種統(tǒng)一的傳播需要實現(xiàn)循環(huán)同步,并保證在存在惡意領導者(leader)的情況下保持系統(tǒng)活性(liveness)。
雖然概率gossip協(xié)議是一種適用于很多應用的流行技術,但它通常需要非線性的消息數(shù),并且由于中間跳數(shù)(hop)而導致延遲增加。從工程的角度來看,網(wǎng)絡開銷和gossiping的概率性也可能使debug變得復雜化。
相比之下,LibraBFT v2 協(xié)議在不使用概率性gossip的情況下,以不同的方式實現(xiàn)了循環(huán)同步。首先,新的協(xié)議引入了一種新型的故障保護機制,其在沒有進展的情況下定期抽出丟失的數(shù)據(jù)。其次,LibraBFTv2簡化了區(qū)塊提議的約束。新的約束確保誠實的領導者(leader )總是在第一個誠實節(jié)點進入其循環(huán)之后立即提出一個區(qū)塊并強制循環(huán)同步。
LibraBFT v2的活性證明表明,新協(xié)議在拜占庭(最壞情況)場景下仍能以令人滿意的方式執(zhí)行,而在最佳情況下,消息的數(shù)量會是線性的。(作者:Mathieu Baudet)