AICoin小课堂丨简单了解一下实用拜占庭容错算法(PBFT)

2年前
标签:PBFT011834
文章来源: AICoin信息君

AICoin小课堂丨简单了解一下实用拜占庭容错算法(PBFT)_aicoin_图1

 

PBFT(Practical Byzantine Fault Tolerance),即实用拜占庭容错算法,其核心理论是 n≥3f+1。其中,n是系统中的总节点数,f是允许出现故障的节点数。也就是说,如果这个系统允许出现f个故障,那么这个系统必须有n个节点,才能解决故障。PBFT 模型下,有一个节点会被当做主节点,而其他节点都是备份节点(副本节点)。系统内的所有节点都会相互通信,旨在实现节点能以少数服从多数的原则达成数据的共识。如果主节点出现明显的撒谎迹象,那么其他的节点可以联合起来更换主节点。

 

从实用拜占庭容错算法的核心理论可以看出,PBFT系统的运行至少要4个参与者,一个被选举为“指挥官”,另外三个是“执行者”。好比指挥官下令要求三位执行者分别对信息君这个人做个调查评价。A执行者调查发现信息君是个很好的人,B执行者也反馈信息君是个很好的人,C执行者则说信息君这个人还可以。然后指挥官总结三个执行者的反馈,发现认为信息君是个很好的人占多数(2:1),所以就会忽略C执行者的汇报结果,得出信息君是个很好的人的结论。这就是PBFT算法。

 

实用拜占庭容错算法的共识过程通常包含以下四个步骤:

 

第一步,客户端发一个请求给主节点去执行某个操作;

 

第二步,主节点广播这个请求到各个备份节点;

 

第三步:包括主节点在内的所有备份节点在收到准备消息之后,对消息进行验证,确认信息无误后,执行操作,并把结果返回给客户端;

 

第四步,结果反馈:当客户端收到 3f +1 个来自不同节点的相同的结果后,过程结束。

 

只要客户端能保证多数人认可同一个结果,那么这个结果就是最终的共识。

 

那么,实用拜占庭容错算法有哪些优缺点呢?

 

(一)PBFT算法的优点:

 

1、高效。在PBFT算法中发一个交易是无需等待确认的,如果一个区块通过PBFT算法被系统认可,那么这个区块就会是最终区块,不会被撤销。因为各个节点达成共识是在同一时刻决定的,也就意味着用PBFT维护的区块链不容易出现分叉,所以也就不用等待确认以保证当前区块所在的链是最长链。

 

2、节能。PBFT 算法无需挖矿,每一次共识过程也不会像 PoW 那样需要耗费大量电能了。

 

(二)PBFT算法的缺点:

 

1、不适用于节点数量过大的区块链,扩展性差。PBFT算法的计算效率依赖于参与协议的节点数量,由于每个副本节点都需要和其它节点进行P2P的共识同步,因此随着节点的增多,性能会下降的很快。

 

2、系统节点是固定的,无法应对公有链的开放环境,只适用于联盟链或私有链环境。

 

3、PBFT算法要求总节点数 n≥3f+1,系统的失效节点数量不得超过全网节点的1/3,容错率相对较低。

 

 

【仅供参考,若信息有误,请联系更改】

 

免责声明:本文章仅代表作者个人观点,不代表本平台的立场和观点。本文章仅供信息分享,不构成对任何人的任何投资建议。用户与作者之间的任何争议,与本平台无关。如网页中刊载的文章或图片涉及侵权,请提供相关的权利证明和身份证明发送邮件到support@aicoin.com,本平台相关工作人员将会进行核查。

评论

暂时没有评论,赶紧抢沙发吧!