微众银行BCOS平台共识算法PBFT和RAFT

时间:2024-04-13 08:41:50

文章选自BCOS白皮书


共识机制不但是计算机之间的算法和数据共识,也是合作伙伴之间进行协作的共识,共识机制使区块链的参与者通过约定的方式进行共同记账,确保合作者之间的记账正确性、一致性、持续性,避免少数出现故障的节点影响网络运行,并防御少数故意作恶者的破坏。公有链如比特币、以太坊等使用的共识算法通常为工作量证明或权益证明等,可以根据投入权益和记账的行为,对记账者制定奖励和惩罚制度。公有链上的共识算法一般确认时间较长,或需要较多的算力投入。
联盟链共识机制的设计目标和公有链有所不同, BCOS 平台不会根据记账的计算量对记账者进行经济奖励,而是鼓励参与者在共同维护联盟链、 促进生态系统发展、推进商业合作的过程中获得价值或收益。在此过程中产生的纠纷或非法行为,将采用监管审计和法律仲裁结合的方式解决。 BCOS 平台共识机制的实现符合联盟链场景需求,可避免算力浪费、防分叉和提升运行稳定性。


BCOS 平台采用高效的 PBFT、 RAFT 共识算法,采用插件化设计实现,通过修改系统配置,即可以在一个联盟链里使用不同的共识机制,参与到这个联盟链的所有节点必须采用同一种共识配置。
BCOS 平台所使用的 PBFT 共识算法的特性包括:
1.共识节点轮流出块,具有同等的记账权,体现了参与者的对等性,且防止个别记账者作恶

2.秒级出块,可配置为 1 秒到几秒出块,满足交易短时间内响应的需求;
3. 支持 1/3 容错,整个系统中少于等于 1/3 数量的节点出现故障或作恶,均不影响共识进行;
4. 在区块同步的过程中严格校验签名,保证数据的安全性。

微众银行BCOS平台共识算法PBFT和RAFT
PBFT 共识具有高一致性、 高可用性, 抗欺诈能力较强,是联盟链里较为实用的一种共识算法,经过流程优化,也具有较高的效率。

BCOS 平台所使用的 RAFT 共识算法特性包括:
 共识节点达到出块条件,即把当前块作为候选区块发起选举,所有共识节点具有同等选票权重,体现了参与者的对等性;
 候选区块超过半数赞成票才提交到区块链中,保证高一致性;
 如果超时没有收集超过半数的回复票,则重新发起选举,保证系统的容错恢复能力;
 秒级出块,可以配置为 1 秒或多秒出块;
 支持 1/2 节点容错,整个系统中少于 1/2 数量的节点出现故障,均不影响共识进行;
 在选举过程和区块同步过程中严格校验签名,保证数据的安全性。
微众银行BCOS平台共识算法PBFT和RAFT

RAFT 共识具有较高的效率、 高一致性和高可用性。与 PBFT 共识的拜占庭容错特性对比, RAFT 共识并不严格保证抗欺诈性,适用于互信程度较高的联盟链。
联盟链的共识算法在节点总数不多、 网络规模不太大时,可以提供较高的交易并发处理能力。但随着节点数量增多,比如达到几百个共识节点的规模时,由于需要共识节点之间交换较多的信息,会出现明显的性能下降。所以在联盟链中一般会通过协商,在保证公平公开的前提下,控制参与者共识的节点数量,以保证共识算法的效率。
BCOS 平台的共识算法根据联盟链要求的身份对等性、 交易响应时间、并发能力、 以及服务器计算能力和网络带宽等进行深入优化,可提高计算效率,减少重复工作,降低带宽消耗。 在保证高并发的同时, 可保证交易在短时间内能得到确认,且一旦确认后,在联盟链里即达成共识且不可篡改。