区块链之拜占庭容错算法——Practical Byzantine Fault Tolerance(PBFT)

实用拜占庭容错算法(PBFT)是由 Barbara Liskov 和 Miguel Castro 于 90 年代末提出的一种共识算法。原论文链接如下:

http://pmg.csail.mit.edu/papers/osdi99.pdf

pBFT 被设计为在异步(响应请求的时间没有上限)系统中高效运行。它针对低开销时间进行了优化。其目标是解决现有拜占庭容错解决方案中存在的许多问题。应用领域包括分布式计算和区块链。

PBFT在保证可用性和安全性(liveness & safety)的前提下,提供了(n-1)/3的容错性,意思就是如果系统内有n台机子,那么系统最多能容忍的作恶/故障节点为(n-1)/3个。(作恶节点可以不响应或者回应错误的信息)。

也就是说为了保证pbft算法的正确性,节点总数量n和作恶节点数量f必须满足n > 3f,如何证明呢?

我们在设计异步通信算法的时候,我们不知道那f个节点是恶意节点还是故障节点,这f个节点可以不发送消息,也可以发送错误的消息,所以在设计阈值的时候,我们要保证必须在n-f个状态复制机的沟通内,就要做出决定;而且我们并不知道,这n-f个里面有几个是作恶节点,我们必须保证正常的节点大于作恶节点数。所以有 n-f-f > f,从而得出了n > 3f。

一、拜占庭将军问题

Byzantine Generals' Problem 拜占庭将军问题在 1982 年微软研究院由 LESLEY LAMPORT、ROBERT SHOSTAK 和 MARSHALL PEASE 撰写的论文中得到了恰当的解释:

想象一下,拜占庭军队的几个分队在敌对城市外扎营,每个分队由各自的将军指挥。将军们只能通过信使互相通信。在观察了敌人之后,他们必须制定一个共同的行动计划。然而,一些将军可能是叛徒

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值