什么是实用拜占庭容错机制?

简介: 什么是实用拜占庭容错机制?

实用拜占庭容错机制( Practical Byzantine Fault Tolerance),简称 PBFT, 今天我们就来了解下实用拜占庭容错机制,要想了解实用拜占庭容错机制,我们先从拜占庭将军问题说起。


占庭将军问题

故事是这样的,拜占庭帝国是 5-15 世纪的东罗马帝国,也就是现在的土耳其。拜占庭帝国拥有巨大的财富,它的十个邻邦国家都垂涎已久。但拜占庭城墙高耸,没有一个单独的邻邦能够成功入侵。任何单个的城邦的入侵行动都会失败,而且入侵的军队也会被歼灭,使得自身反而容易受到其他九个城邦的入侵。


这十个邻邦之间也相互觊觎对方的财富而时常爆发战争,拜占庭的防御能力很强,如果有六个或者更多的邻邦一起进攻才会成功。然而,其中一个或者几个邻邦发生背叛,答应一起进攻,但在其他人进攻的时候反悔了,就会导致只有五支或者更少的军队同时进攻,所有的进攻军队都会被歼灭。


因此,每个邻邦都小心翼翼,不敢轻易相信邻邦,因为稍有不慎,就会给自己带来灾难。这就是拜占庭将军问题。

占庭容错机制

通俗的解释就是大家共同商定好的一种规则,大家为了一个共同的目的共同达成的一个认知。区块链网络节点达成的记账共识与拜占庭将军问题的攻城是相似的,可以将区块链中的节点比作将军,不会背叛的将军比作正常节点,会背叛的将军比作恶意节点。


为了方便理解,我们假设有甲、乙、丙、丁 4 位将军攻城。同时有 3 位将军进攻视为进攻成功。我们假设将军乙为叛徒,将军甲派出通信兵告诉其他 3 位将军子时进攻,因为将军乙是叛徒,他收到将军甲的消息后,派出通信兵告诉将军丙和将军丁丑时进攻。将军丙收到将军甲的消息派出通信兵告诉将军乙和将军丁子时进攻。将军丁收到将军甲的消息派出通信兵告诉将军乙和将军丙子时进攻。于是:


将军乙收到:子时、子时、子时;


将军丙收到:子时、丑时、子时;


将军丁收到:子时、丑时、子时;


这样每个将军执行自己收到的最多的消息。将军丙和将军丁收到的子时进攻消息最多,将军甲、将军丙、将军丁 3 位将军于子时进攻,进攻成功。这就是 PBFT 算法,在研究拜占庭将军问题时,分布式节点总数必须大于或等于4,且恶意节点不能超过三分之一时,就可以保障节点达成一致性结果,区块链的中的各个节点按照这种算法即可达成共识。


相关文章
|
数据可视化 数据挖掘
基于Bert的文本聚类工具:BERTopic
基于Bert的文本聚类工具:BERTopic
2265 0
基于Bert的文本聚类工具:BERTopic
|
SQL JSON 数据可视化
权限开发手册,数据权限和接口权限配置
权限开发手册,数据权限和接口权限配置
1909 0
权限开发手册,数据权限和接口权限配置
|
8月前
|
存储 监控 数据挖掘
淘宝店铺所有商品数据接口全攻略
淘宝开放平台提供`taobao.items.onsale.get`接口,可批量获取店铺在售商品列表,包括商品ID、标题、价格等信息,适用于商品管理、竞品监控等场景。调用流程:注册账号、创建应用、申请权限。核心参数有nick、page_no、page_size等。Python示例代码展示如何通过API获取商品数据,并处理分页和异常。注意事项包括权限申请、频率限制及数据安全。扩展应用如结合商品详情接口进行数据分析。
|
安全 算法 网络安全
IPsec VPN简介
IPsec VPN简介
1147 6
|
数据采集 存储 数据挖掘
CDGA|解锁数据价值:基础数据治理的至关重要性
在数据驱动时代,数据成为企业的宝贵资产。本文探讨了数据治理的重要性,介绍其为核心管理活动,确保数据的可用性、完整性、安全性和合规性。良好的数据治理能提升数据质量、加强安全、促进共享,并支持高效决策,从而帮助企业最大化数据价值。通过明确目标、建立组织、制定政策和强化技术支持,企业可以构建起科学的数据治理体系,推动未来发展。
|
存储 供应链 安全
区块链技术原理及应用:深入探索分布式账本技术
【4月更文挑战第30天】区块链,从加密货币的底层技术延伸至多元领域,以其分布式账本、去中心化、不可篡改性及加密技术重塑数据存储与交易。核心组件包括区块、链和节点,应用涵盖加密货币、供应链管理、金融服务等。尽管面临扩展性等挑战,未来潜力无限。
|
Unix Linux 网络安全
林帆:Docker运行GUI软件的方法
欢迎关注大数据和人工智能技术文章发布的微信公众号:清研学堂,在这里你可以学到夜白(作者笔名)精心整理的笔记,让我们每天进步一点点,让优秀成为一种习惯! 继上周的“Kubernetes v1.0特性解析”分享之后,本周我们邀请到ThoughtWorks咨询师林帆为大家带来主题为“Docker运行GUI软件的方法”的分享。
3810 0
|
数据采集 API Python
python 实现QQ自动推送消息
python 实现QQ自动推送消息
220 0
|
安全 Java 大数据
CDH/HDP/CDP等大数据平台中如何快速应对LOG4J的JNDI系列漏洞
CDH/HDP/CDP等大数据平台中如何快速应对LOG4J的JNDI系列漏洞
|
测试技术
JMeter 配置元件之计数器Counter
JMeter 配置元件之计数器Counter
787 0