建议和反馈

请填写你的反馈内容

问答 > 共识算法 > 问答详情
求助中

PBFT如何应用于区块链?10LK

我试图了解PBFT(实用拜占庭式容错)如何应用于区块链。看完本文,我发现过程PBFT达成共识是象下面这样:

  1. 客户端发送来调用服务操作到主的请求

  2. 主服务器将请求多播到备份

  3. 副本执行请求和发送回复给客户端

  4. 客户端等待来自具有相同的结果不同副本F + 1页的答复; 这是操作的结果。

这是我的理解它是如何在一块链应用:

  1. 起初,当选主节点要写入事务A链,它会广播事务A到其他节点。

  2. 如果交易的法律的任何节点接收交易检查。如果该交易被认为是合法的,该节点将在这一轮的共识广播信号的法律对所有节点。

  3. 任何收到等于或大于f +1的响应的节点都将把事务写入其自己的链中。

这是我的问题:

对于发生故障的节点,如果他们一直未能写入块到它的链条,他们将与健康的节点不同的链。在接下来的共识,在现有链将首先被拾起。节点如何知道哪一个是正确的链条?

在步骤1中,当选的节点发送交易到其他节点。“其他节点”是否表示网络中的所有节点?如何确保如果包括在协商一致的所有节点,因为没有一个中央机构。


2020-11-03
0
请先登陆或注册

彩手导导2020-12-07

能将主服务器的建议值以状态机复制的方式记录到所有节点,这意味着要使该值被正确的节点接受,至少需要2f +1个约定的匹配消息。

如果没有受信任的身份管理,则可能发生Sybil攻击这就是PBFT不是用于开放式区块链的主要原因,因为开放式区块链允许任何节点自由加入或离开网络。


投一票
评论(0)
赞赏(0)
花落2020-11-03

为了容忍拜占庭式故障节点,它在网络中至少需要3f + 1个节点。PBFT是可以容忍拜占庭式故障的算法之一。因此,PBFT最多可以容忍f个拜占庭节点。 ˚F恶意节点的数量,如果你使用PBFT被容忍。如果有f个恶意节点无法将块写入其链中,从而导致与正确的节点不一致,那么可以认为来自其余2f + 1个节点的相同链是正确的。(正确的节点始终以相同的顺序将完全相同的数据输出到相同的请求)。

“其他节点”是否表示网络中的所有节点?如何确定是否所有节点都包含在共识中,因为没有集中的代理机构。

在PBFT设置中,应建立所有节点的标识。为此,应该有中央机构来确定节点是否可以加入网络。(重要:中央机构仅参与身份管理,而不是算法本身

为什么需要这个?这是因为PBFT通过投票机制起作用,并且任何人(包括恶意节点)都可以加入网络时,投票是不安全的。例如,只能将主服务器的建议值以状态机复制的方式记录到所有节点,这意味着要使该值被正确的节点接受,至少需要2f +1个约定的匹配消息。

如果没有受信任的身份管理,则可能发生Sybil攻击这就是PBFT不是用于开放式区块链的主要原因,因为开放式区块链允许任何节点自由加入或离开网络。


投一票
评论(0)
赞赏(0)
邀请

感谢您的善举,每一次解答会成为新人的灯塔,回答被采纳后获得20算力和相应的LK币奖励