LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 币圈百科 > 用于区块链应用的简化拜占庭容错(SBFT)

用于区块链应用的简化拜占庭容错(SBFT)

2019-10-26 头等仓 来源:区块链网络

1571813668230884.png

简化版拜占庭共识

区块链领域的一个最大争论焦点是各个区块链采用的共识算法,因为共识算法决定了区块链的速度、可靠性和可扩展性。本文提出了一种简化版的拜占庭容错共识(sBFT),此版共识改进了当前的实用拜占庭容错共识(PBFT)标准,简化版拜占庭容错出自MiguelCastro和BarbaraLiskov(link)之手,目前瑞波等项目应用了该共识。

区块链技术在数据不可变和可靠性方面发挥重要作用,涉及金融科技(即加密货币)到医疗、生产、研究以及其他行业和应用。因此,用户对区块链功能有很大的改进需求。

实用拜占庭容错(PBFT)

要了解PBFT的工作原理,可以阅读以下精选文章:

· https://medium.com/coinmonks/pbft-understanding-the-algorithm-b7a7869650ae

· https://medium.com/coinmonks/implementing-pbft-in-blockchain-12368c6c9548

总而言之,PBFT是一个达成共识的绝佳方案,但由于发送的消息数会伴随网络增长而呈指数增长,因此它的扩展性很差。最大的消息数计算公式如下:

M=1+3f+3f?+(3f)(3f+1)+3f+1

其中f为给定网络大小为N的允许故障节点数,f的计算公式为:

f=(n-1)/3

也就是说,针对一个拥有7个节点,允许2个故障或损坏节点的网络而言,达成实用拜占庭容错共识至少要发送92条信息。10个故障节点则需要发送191条消息,40个故障节点需要3,161条消息。每创建一个新区块就要重复发送这些消息。

为什么需要简化拜占庭容错(SBFT)?

与PBFT相比,SBFT只需发送它的1/3消息数,达成共识的速度更快,绝大多数情况只需0.2秒,SBFT的消息数计算方法如下:

M=(3f+1)(2f+1)+1

因此,如果有7个故障节点的网络,只需发送36条消息。有10个故障节点则发送71条消息,40个故障节点则发送1081条信息。

SBFT如何工作?

SBFT是专门为区块链应用而设计的,它引入了三种新的机制:

·?将委托中的节点分组,第一节点为领导人,第二个节点为第二领导人,以此类推。

·?每个新区块都由一个事先确定好是“打开”或“关闭”时间戳的特定委托来维护。委托中的其他节点会共享这个时间戳信息。

·?每个节点都有自己采取特定行动的时间以及特定的行动指令。

基础时间轴

假设一个有着4个节点(N=4)的委托允许一个故障节点(f=1),并设定所有节点都知道的新区块“关闭”时间t=0s。而且,每个节点都有那些即将纳入新区块的未决交易。

1571813677990071.png

当t=0时,所有节点自动开启共识过程,各自生成自己区块的哈希和交易,并将区块哈希发送给委托中的其他节点。同时,节点们开始监听其他节点发送的区块哈希。

共识过程

让我们从节点1号(N1,即委托中的第一个节点)的角度来了解共识过程,N1具有最高优先权。A(n)和B(n)是其他节点的哈希。在本例中,N3是一个故障节点,其哈希(B3)不一致。对于一个4节点系统,至少要3个节点达成共识。

如下图所示,一旦第3个节点的哈希一致,N1就认为达成共识了。在本例中,N1是节点共识池的领导人,它负责广播新区块。

1571813684315290.png

其他情况

从N2的角度来看看上面的例子。在这种情况下,N2也可以达成共识,但由于它不是领导节点,所有无权做任何事情。这种情况说明消息的传入顺序并不重要。

1571813689715527.png

时间问题

SBFT共识的另一个好处是,系统不需要等待所有节点的响应,即使领导节点出现故障或延迟,系统也是健壮的。

在下面的例子中,我们假设N=5,至少需要3个节点达成共识。从N2的角度来看,如果所有节点对N1节点的故障达成共识,那么N2就会提升为领导节点,并向网络广播他的区块。委托还能处理潜在领导节点的延迟消息,因为任何正在广播区块的节点都与其他节点达成了共识,所以达成共识后N1的响应不再紧要。

1571814967660111.png

结语

SBFT共识中的每个节点都能自主操作,无需与其他节点来回通信,仅通过一组发送出去的消息达成整体共识。

原文标题 | Simplied Byzantine Fault Tolerance(SBFT) For Blockchain Applications

作者 | Poya Rahmati

翻译 | Tracey_头等仓,翻译由头等仓(First.VIP)提供,转载请保留文末信息。

原文:https://medium.com/altcoin-magazine/simplified-byzantine-fault-tolerance-sbft-for-blockchain-applications-499ca0b90938

稿源(译):https://first.vip/shareNews?id=2337&uid=1

—-

编译者/作者:头等仓

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...