news 2026/5/23 13:32:26

【PBFT算法】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【PBFT算法】

口信消息型拜占庭问题之解的局限

该算法存在两个主要问题:

  • 消息复杂度高:将军数为n、叛将数为f时,算法需要递归协商f+1轮,消息复杂度为O(n^(f+1))。例如叛将数为64时,消息数量远超int64表示范围。
  • 理论化严重:算法仅关注忠将达成共识,不关心共识结果是否合理(如适合进攻时可能达成撤退共识)。

PBFT算法的核心原理

PBFT通过签名约束恶意节点行为,基于三阶段协议和大多数原则(2f+1)实现共识:

三阶段协议

  1. 预准备阶段:主节点广播预准备消息给备份节点。
  2. 准备阶段:备份节点广播准备消息,确认收到一致的指令。需收到2f个一致消息才进入下一阶段。
  3. 提交阶段:节点广播提交消息,收到2f+1个验证通过的消息后执行指令。

关键点

  • 签名机制:防止伪造消息,确保消息来源和内容可信。
  • 客户端验证:客户端需收到f+1个相同响应才确认共识达成。
  • 视图变更:主节点作恶时,通过轮换机制选举新主节点。

消息复杂度优化

PBFT将消息复杂度从O(n(f+1))降至O(n2),但仍需较多消息。例如13节点集群(f=4)需237条消息,适用于中小型系统。

适用场景

  • 联盟链:如Hyperledger Sawtooth、Zilliqa。
  • 相对可信环境:能容忍(n-1)/3个恶意节点,不依赖算力(与PoW对比)。

思考题答案

客户端需收到f+1个响应才能确保至少一个来自忠将。若仅收f个响应,可能全来自叛徒,导致错误共识。

对比其他算法

  • Raft:不适用恶意节点场景。
  • PoW:消耗算力,PBFT更高效但规模受限(O(n^2)复杂度)。

通过PBFT,苏秦可确保忠将们一致执行指令,即使存在叛徒干扰。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/22 7:37:00

Vue2 前端开发方案实战:构建现代化 Web 应用

引言 在当今快速发展的 Web 开发领域,选择一个高效、灵活且易于上手的前端框架至关重要。Vue.js,特别是其成熟稳定的 Vue2 版本,凭借其简洁的 API、优秀的性能、渐进式的特性和强大的生态系统,成为了众多开发者和团队的首选。本文…

作者头像 李华
网站建设 2026/5/22 13:31:02

个人博客系统的设计与实现毕业论文+PPT(附源代码+演示视频)

文章目录 个人博客系统的设计与实现一、项目简介(源代码在文末)1.运行视频2.🚀 项目技术栈3.✅ 环境要求说明4.包含的文件列表(含论文) 数据库结构与测试用例系统功能结构前台运行截图后台运行截图项目部署源码下载 个…

作者头像 李华
网站建设 2026/5/22 7:30:06

终极指南:用Draw.io Mermaid插件实现文本到图表的快速转换

终极指南:用Draw.io Mermaid插件实现文本到图表的快速转换 【免费下载链接】drawio_mermaid_plugin Mermaid plugin for drawio desktop 项目地址: https://gitcode.com/gh_mirrors/dr/drawio_mermaid_plugin 还在为绘制复杂的流程图和系统架构图而烦恼吗&am…

作者头像 李华
网站建设 2026/5/22 0:33:39

时序数据库

时序数据库的核心特点 时序数据库专门存储按时间顺序生成的数据(如监控指标、传感器数据),其核心特点是高写入吞吐和时间范围查询。数据通常带有时间戳,写入后极少更新,但需支持高效的时间区间聚合分析。 InfluxDB企业…

作者头像 李华