PBFT节点总数为何是3F+1

本文深入探讨了PBFT拜占庭容错算法,一种基于消息传递的一致性算法,通过预准备、准备和提交三个阶段达成一致性。在N=3f+1的节点假设下,即使存在f个拜占庭错误节点,也能确保算法的安全性和正确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PBFT拜占庭容错算法

PBFT是一种基于消息传递的一致性算法,算法经过三个阶段达成一致性,这些阶段可能因为失败而重复进行。
假设节点总数为N,f为拜赞庭错误节点,N满足:N=3f+1。

  • 当节点发现leader作恶时,通过算法选举其他的replica为leader。
  • leader通过pre-prepare 消息把它选择的 value广播给其他replica节点,其他的replica节点如果接受则发送 prepare,如果失败则不发送。
  • 一旦2f个节点接受prepare消息,则节点发送commit消息。
  • 当2f+1个节点接受commit消息后,代表该value值被确定如下图表示了4个节点,0为leader,同时节点3为fault节点,该节点不响应和发出任何消息。最终节点状态达到commited时,表示该轮共识成功达成。

pbft

这里主要说明一下为什么需要3F+1个节点来保证算法的安全性,这里有N个节点,假设有F个拜占庭节点,则消息需要从N-F个节点中判断,如果由于网络延迟等原因,诚实节点的消息还未到达,极端情况下N-F中有F个拜占庭节点,如果要保证消息的正确性,至少需要诚实消息大于F则有N-2F>F,则至少需要保证N=3F+1。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值