Advertisement

PBFT——拜占庭协议在Go语言中的简单实现

阅读量:

BFT 是什么
⚫ BFT( Byzantine Fault Tolerance)称为拜占庭容错

作为分布式系统中的一种容错机制,拜占庭容错技术旨在模拟一种特殊的故障模型——拜占庭假设,在此框架下计算机与网络可能表现出不可预知的行为。该假设通过抽象分析实际系统的潜在故障情况来增强容错能力:如硬件故障、网络拥塞、通信中断以及遭受恶意攻击等情形可能导致系统运行异常或不可预测的状态

拜占庭容错技术旨在应对这些异常行为,并符合为解决相关问题制定的相关规定。

拜占庭容错系统

⚫ 区块链网络的记账共识和拜占庭将军的问题是相似的

在共识记账中工作的每个节点都类似于一位将军,在区块链系统中扮演着关键角色。在区块链网络中进行信息交换的过程类似于使者的工作职责,在正常运行时各实体之间能够高效完成信息共享。然而,在某些情况下可能出现异常信息在网络上传播开来的情形,在这种情况下相关的实体将被视为出现故障的状态并被归类为拜占庭实体类型;而在正常工作状态下未出现此类问题的所有实体则被归类为非拜占庭类型

假设有分布式系统由n个节点构成,并且整个系统的拜占庭容错能力最多为m个节点(其中n ≥ 3m +1),则该系统的拜占庭容错算法需满足以下两个必要条件:

所有非拜占庭节点均采用相同的输入数据,并得出一致的结果;而在区块链系统中,则可理解为:当随机数、区块算法以及原账本相同时,在这种情况下计算所得

全部评论 (0)

还没有任何评论哟~