LibraBFT协议作为Facebook Libra区块链的核心,其负责的是确保安全的状态机复制。而在今日,其开发团队Calibra发布了LibraBFT核心协议的重要更新。
据悉,新版本的LibraBFT v2 协议包含了一些优化,旨在减少网络连接并改善Libra区块链的commit延迟。另外,Calibra还提供了Rust模拟器代码以供参考,这部分代码可在Calibra研究团队的github存储库中找到。
在实践中降低网络复杂性
LibraBFT是HotStuff协议的一种改进版本,其明确了用于实现节点间循环同步(round synchronization)的机制。非正式地说,在一轮投票期内,某个特定的领导者(leader)会被信任以推动进展( 通常通过提议一个区块(B)、收集投票(V)和广播一个法定人数证书(C))(见下图)。循环同步的目的是使节点最终执行具有足够长overlap(重叠)的同一循环,以便该循环的领导者(leader)能够成功。
在乐观的情况下,LibraBFT v2 协议将循环同步的开销减少到每轮每个节点一条消息(参见图中的绿色箭头)。
LibraBFT的“v1”版本依赖于概率性的gossip协议来确保仲裁证书 (C)的统一传播。这种统一的传播需要实现循环同步,并保证在存在恶意领导者(leader)的情况下保持系统活性(liveness)。
虽然概率gossip协议是一种适用于很多应用的流行技术,但它通常需要非线性的消息数,并且由于中间跳数(hop)而导致延迟增加。从工程的角度来看,网络开销和gossiping的概率性也可能使debug变得复杂化。
相比之下,LibraBFT v2 协议在不使用概率性gossip的情况下,以不同的方式实现了循环同步。首先,新的协议引入了一种新型的故障保护机制,其在没有进展的情况下定期抽出丢失的数据。其次,LibraBFTv2简化了区块提议的约束。新的约束确保诚实的领导者(leader )总是在第一个诚实节点进入其循环之后立即提出一个区块并强制循环同步。
LibraBFT v2的活性证明表明,新协议在拜占庭(最坏情况)场景下仍能以令人满意的方式执行,而在最佳情况下,消息的数量会是线性的。