拜占庭容错

在2008年比特币问世时,其他各种加密货币也进入了加密货币市场。所有这些加密货币都将区块链作为其架构的核心元素。区块链是去中心化的系统,可以作为分布式账本,由计算机节点的分布式网络维护。

这些节点具有相同和单个版本的事务历史记录。当新交易被广播到网络中时,这些计算机节点有权将其包括在副本中或忽略它。如果大多数节点都同意一个决定,则可以达成共识。 

这里出现的问题是,如果几个节点不同意该决定怎么办?如果他们可能失败或不诚实行事怎么办?

这些问题来自产生拜占庭容错性的拜占庭将军问题。让我们详细了解这些概念。 

 

拜占庭将军的问题

Lamport,Shostak和Pease提出了一篇题为“拜占庭将军问题”的论文,阐明了问题的严重性。 

很久以前,拜占庭帝国想进攻并占领一座城市。这个故事有很多可能性,在本文中,我们考虑一下帝国中四位将军的情景。这四位将军围绕着这座城市,每位将军都可以进攻或撤退。 

如果所有将军都决定进攻,他们就会进攻并赢得这座城市。如果所有将军都决定撤退,他们仍然会因为没有人死亡而获胜。这是此方案的两个结果。 

但是,这是一个转折。只有所有将军都同意相互同意,他们才能获胜。如果一位将军不同意其他三位怎么办?如果他是叛徒怎么办? 

在这种情况下,守卫城市的敌人将摧毁军队。 

这支部队中有一个统帅,称为统帅,而其他3个是中尉。在这四名将军中,可能有一个叛徒,他不遵守命令并传达不正确的信息,这可能会破坏整个任务。同样,将军们都不知道谁是叛徒。 

该方案的图片形式在此处: 

比特币拜占庭容错(BFT)

将军只能通过信使互相传递口头信息。如果其中大多数人采取恶意行动,那么整个部队将崩盘。 

现在让我们考虑一个场景,其中副官之一是叛徒。 

指挥官也有可能是叛徒。让我们稍后考虑这种情况。 

拜占庭容错

假设指挥官是忠诚的,并下达了“进攻”命令。没有人知道谁是叛徒,忠诚的副官们不知道该信任谁。在这种情况下,所有中尉都同意一种算法,该算法描述了每个将军将评估他收到的所有消息。稍后,根据收到的大多数动作,他将决定其动作。

指挥官命令进攻。正如所暗示的,该消息将中继到所有中尉。让我们将中尉1视为叛徒。在他收到指挥官的“攻击”命令后,他说他收到了“撤退”并执行相同的操作。中尉2很忠诚,并说他被告知要“攻击”。3中尉还说,他收到了指挥官的“攻击”命令并执行了同样的操作。 

指挥官很忠诚,所以他会进攻。中尉1是叛徒,因此他可能会进攻也可能不会进攻。如果他撤退,忠实的副官将收到两次“攻击”和一项“撤退”命令。忠诚的副官们同意“攻击”。4名副官中有3名同意共识。因此达成共识。

当指挥官是叛徒时,他可以通过给不同的中尉不同的命令来弄乱事情。这些被称为拜占庭断层。通过接收错误的命令,中尉可能无法达成共识。 

拜占庭容错

如果我们考虑前面的示例“ 1名指挥官和3名中尉”,那么Commander是叛徒,他将命令1号和3号中尉“进攻”,而2号中尉“撤退”,以弄乱事情。 

由于所有中尉都很忠诚,他们每个人都受到2次攻击和1个撤退命令。因此,即使指挥官是叛徒,他们都攻击并同意共识。 

假设有2个忠实的将军和2个叛徒,则不可能达成共识。因此,根据研究论文,该算法仅在叛徒数量不超过将军人数的1/3的33%时才有效。 

现在让我们将此上下文应用于区块链,其中每个一般对象都是网络节点,城市是区块链网络。他们必须就系统的当前状态达成共识。在分布式系统的情况下,达成共识的唯一方法是拥有2/3个忠诚和诚实的网络节点。否则,系统可能会遭受故障和攻击。 

当一个系统可以容忍拜占庭式的故障并且仍然达成共识时,就称其为拜占庭式的容错。 

让我们更深入地了解拜占庭容错。 

什么是拜占庭容错(BFT)?

拜占庭式容错是分布式系统的特征,它可以容忍所有拜占庭式错误并同意共识。他们的目的是减少诚实节点中恶意节点的影响,并帮助系统达成共识。BFT源自拜占庭将军问题。 

拜占庭容错技术适用于飞机发动机系统,核电站以及几乎任何依赖于许多传感器的动作的系统。基于区块链的系统还使用拜占庭式容错在其节点之间建立信任。

虽然我们对BFT概念进行了概述,但让我们了解共识如何适合区块链技术的背景。

区块链共识

区块链技术以其安全性,透明性和私密性而闻名。没有中央机构来控制区块链中的交易,即使那样,它仍被认为是最安全和经过验证的平台。这是因为共识协议是区块链网络的核心部分。 

共识算法是区块链网络的所有节点都同意一个有助于达成共识的共同决策的算法。这些算法在区块链网络的未知节点之间建立信任。共识协议的目标是达成协议,协作,合作,每个节点的平等权利以及每个节点在共识过程中的强制参与。 

由于共识算法,所有节点都同意一个共同的协议。共有多种共识算法:

工作证明(PoW) 

工作量证明是区块链网络中的原始共识算法,用于确认交易并建立新的区块链。工作量证明(PoW)算法需要计算能力才能解决数字难题,以找到所需的哈希。一旦找到所需的哈希,就将其添加到了区块链中。比特币是工作量证明的著名应用。比特币使用工作量证明共识算法达成共识。让我们了解如何实现。

在将块添加到链的初始阶段,节点应进行昂贵的计算以证明其具有该块的有效哈希值。其余收到此块的其他节点可以验证该块是否有效。 

所有执行验证过程的节点都是并行工作的,但是速度更快且具有最大计算能力的节点将赢得竞争。因此,获胜者将获得比特币奖励。

在这种情况下,执行任务的节点称为矿工,而该过程称为挖矿。因此,比特币的共识是通过挖矿过程实现的。

权益证明(PoS)

以太坊(Ethereum)这种加密货币很快计划从工作量证明转换为权益证明。这两个平台具有类似的机制,它们向验证和存储交易的节点提供加密货币奖励。区别在于权益证明取决于用户持有的加密货币数量。而且,挖矿过程将矿工替换为验证人。 

以太坊使用PoS算法的Casper协议达成共识。验证者保留部分以太币作为股份。后来,他们开始验证区块,一旦找到适合链条的区块,便通过下注对其进行验证。

如果区块与链条相邻,则验证者将获得与该质押相关的金额奖励。因此,以太坊达成共识。如果验证者有恶意行为,那么他的股份将被立即削减。

委托权益证明(DPoS)

在委托权益证明算法中,代币持有者将投票给区块生产者。获得最高票数的生产者组可以组织块的生成。EOS是一种加密货币,使用此算法每秒可以增加数百万笔交易。 

代币持有者通过投票过程选择区块生产者。任何人都可以成为积木生产者选举的竞争者,如果获胜,他们可以生产积木。在此过程中,选择了21个块生产者。其中自动选择20个,而第21个自动选择,其投票权相对于其他生产者的投票数成正比。

为了平衡所有其他生产者之间的连接性,使用从块时间得出的伪随机数对它们进行混洗。出块时间(如果为3秒),并且如果制片人在该时间内没有参与,则将从考虑中删除它们。考虑到这一点,生产商必须每24小时至少生产一块。

通常,DPoS系统具有块生产者的100%参与。在中转后的1.5秒钟内以99.9%的确定性确认交易。为了获得绝对的确定性,节点只需要等待15/21的区块生产者同意共识即可。

经过时间证明(PoET)

经过时间证明算法是工作证明算法的替代方法。许可的区块链网络使用PoET算法。该算法遵循以下策略:为每个网络参与者分配一个随机计时器对象,并且到期的第一个计时器将成为新块的领导者。 

为了检查每个参与者的忠诚度,有必要了解获胜者是否选择了自己的等待时间,并且他是否确实完成了指定的等待时间。因此,为了确保这种忠诚度,PoET使用了Intel的Software Guard Extensions,它允许应用程序在受保护的环境中运行受信任的代码。 

为了达成共识,节点下载代码并为代码生成密钥。然后,节点将该密钥转发给参与的网络,现有节点将在该网络中验证密钥。该新节点将被赋予一个随机计时器对象,该对象具有与其关联的随机值。SGX提供的代码保护功能保证了定时器对象的随机性。

第一个完成计时器的人将是获胜者,他可以创建一个新区块并将其附加到当前的区块链上进行奖励。节点再次初始化。

授权证明(PoA)

授权证明算法为区块链网络启动了实用而有效的解决方案。在此算法中,验证者将树立声誉而不是数字资产。该算法依赖于一组“权威”,其中只有预先批准的验证者才能生成新块。 

希望成为权威人士的用户需要公开其身份。他们可以通过使用与平台上相同的身份在公共公证数据库中注册来做到这一点。甄选过程依赖于标准规则,以确保所有候选人都有平等的机会获得特权。PoA的概念适用于私有网络而不是公共网络。 

为了改善原始的BFT机制,出现了实用的拜占庭容错技术。让我们详细了解这种机制。 

实用拜占庭式容错(pBFT

恶意攻击和软件错误的增加是由于软件的大小和复杂性的增加。这些错误和攻击可能导致故障节点表现出拜占庭行为。因此,为避免这种情况,拜占庭容错是必要的。 

实用拜占庭式容错(pBFT)

Castro和Liskov在1999年发表了一篇介绍实用拜占庭式容错的论文。假设存在独立的节点故障和通过特定节点发送的恶意消息,pBFT提供了实用的恶意节点拜占庭状态机复制功能。pBFT的目标是解决与拜占庭容错相关的所有问题。 

拜占庭式物理容错(pBFT)如何工作?

pBFT算法可在互联网等异步系统中运行,并针对低开销时间进行了优化。同样,延迟的增加也很小。pBFT系统中的所有节点都按顺序排列,其中一个节点为主节点,其余节点为备用节点。

这些节点相互通信,目标是所有诚实节点都将使用多数规则同意共识。这些节点进行通信时,它们需要证明消息来自特定的对等节点,并且还必须确保在传输过程中未对消息进行修改。恶意节点的数量不应等于或超过系统中节点的三分之一。与共识证明算法相似,最好在pBFT网络中拥有更多节点以确保更好的安全性。 

根据实用的拜占庭容错文件:

“该算法同时提供了生命力和安全性,同时提供了总共n个副本中最多((n-1)/⅓个)同时出现故障。这意味着客户最终会收到对其请求的回复,并且根据线性化,这些回复是正确的。

pBFT共识回合可分为四个阶段。它遵循“司令官和中尉”的格式,其中由于领导节点的存在,所有将军都是平等的。这些阶段包括: 

  1. 客户端向领导节点发送请求以执行特定操作。 
  2. 领导节点将操作中继到备用节点。
  3. 备份节点执行请求的操作,然后将答复发送给客户端。 
  4. 仅当客户端从网络的不同节点收到n + 1个答复且结果相同时,操作才能成功,其中n是允许出现故障的最大节点数。 

节点已建立并以相同状态开始。最终结果是所有诚实节点都达成协议,他们接受或拒绝该协议。如果领导者节点在预定的时间内未广播请求,则在每个视图期间都会更改领导者,并通过视图更改协议对其进行更改。在任何紧急情况下,大多数诚实节点都可以对领导者节点的信誉进行投票,并将其替换为排队的下一个领导者节点。 

物理拜占庭容错的优点

实际的拜占庭容错(pBFT)优于其他各种共识模型。让我们了解它们是什么:

交易终结性:交易可以被批准和完成,而无需像工作量证明模型那样进行确认。假设所建议的块由pBFT系统中的节点同意,则该块已完成。这是可能的,因为所有诚实节点在相互通信后的特定时间都同意系统状态。 

更高的能源效率:pBFT不需要能源密集型计算即可达成网络共识。Proof-0f-work仅用于防止Sybil攻击,而不能达成共识。 

低奖励差异:在PoW中,只有领导者才有机会提议下一个区块,而pBFT则遵循集体决策,每个备用者都可以投票选举该领导者。因此,pBFT系统中的每个节点都会得到奖励。 

实际拜占庭容错(pBFT)的局限性

尽管实用拜占庭式容错(pBFT)具有可观的优势,但也应有一些限制。让我们更深入地了解它们:

  • pBFT机制在共识小组规模较小的情况下也可以正常工作。为了保持网络的安全性,每个节点都应与其他节点进行通信,结果,随着节点数量的增加,沉重的通信成本被沉迷了。 
  • pBFT模型容易受到Sybil攻击。在这种攻击中,单方可以操纵网络中的大量节点以损害安全性。当网络规模较大时,可以减少这种威胁。但是,pBFT机制不支持大型网络。因此,可以对其进行优化,或者需要与其他共识机制结合使用。 

哪些平台实现了实用的拜占庭容错(pBFT)?

许多区块链平台使用pBFT的优化版本或混合版本作为其共识模型,或者至少将其一部分与其他共识机制一起使用。当前,Zilliqa和Hyperledger是使用物理拜占庭容错(pBFT)的两个项目。让我们更深入地了解这个概念:

Zilliqa采用经典pBFT的优化版本并结合PoW共识,每隔约100个块执行一次网络分片。每个分片可以并行处理事务,从而提高网络吞吐量。该网络使用多重签名来减少传统pBFT的通信开销。同样,在他们自己的测试环境中,他们每秒可以完成几笔交易。 

Hyperledger Fabric是用于区块链项目的开源协作环境。Linux基金使用平台允许的pBFT版本托管了这些项目。许可的区块链使用小的共识组,不需要与公共区块链相同的去中心化。另外,实用的拜占庭容错技术可以更有效地提供高吞吐量的事务。 

许可的区块链通常具有各方之间信任的元素。因此,消除了对不信任环境的需求,并允许网络不受任何限制地获得了实用的拜占庭容错(pBFT)优势。 

结论

拜占庭将军的问题引起了拜占庭的容错体系。如今,这些系统已在市场上广泛使用。除了区块链行业,BFT还具有某些用例,包括航空,航天和核电行业。比特币通过其去中心化的验证方法解决了拜占庭的一般问题,成为世界上最大的加密货币。

分布式系统中的BFT以及通过实用的拜占庭容错算法将其集成到现实世界中的今天,仍然是加密货币的关键基础结构组件。 

内容搜集自网络,整理者:BTCover,如若侵权请联系站长,会尽快删除。

(0)
BTCover的头像BTCover
上一篇 23 8 月, 2021 3:52 下午
下一篇 23 8 月, 2021 3:52 下午

相关推荐