首页文章详情页

BM与V神再次交锋 EOS针对DPOS BFT共识机制做出改进

本文共2490字,需花费7分钟来阅读
如今在EOS系统中所采取的的基于拜占庭容错的DPOS共识机制使用了一种流水线的方式来传输提案、预提交、已提交这三个状态的消息。

本文翻译自BM在Medium的文章,比较了当前的几种主流共识算法,论述了在DPOS在拜占庭容错机制下的优势和可用性,原文见https://medium.com/@bytemaster/dpos-bft-pipelined-byzantine-fault-tolerance-8a0634a270ba。

原文翻译

有两种普遍的区块链共识系统:在给定一系列验证者下,达成100%的确认;依赖于大概率,但不保证100%的最终确认。

第一代区块链共识算法(PoW,PoS,以及BitShares的DPoS)仅提供了随时间增长的大概率的确定性。从理论上讲,有人可以支付足够的钱来分叉一条更长的比特币区块链,分叉的链甚至可以追溯到创世区块。

最近的共识算法,无论是HashGraph,Casper,Tendermint还是DPOS BFT都采用Paxos早已经确定的原则和相关共识算法。在这些模式下,只要有超过2/3的参与者是诚实的,就可以在所有网络条件下达成确定性的共识。

对于所有希望支持跨链通信的区块链来说,客观而明确的100%共识确认是一个关键属性。如果没有100%的确认,一条链上的重复,可能会在所有相互关联的区块链上产生不可调和的连锁反应。

▲Abstract BFT Life Cycle

一些最新共识协议的摘要包括以下几点:

1.提案区块

2.所有参与者承认这个区块(处于“预提交”状态)

3.当⅔的区块已经发送给参与者“预提交”状态消息, 所有参与者承认这个“预提交”(处于已提交状态)

4.一旦节点收到⅔+的“已提交”消息,这个区块就被确定下来。

5.最终被确定下来的明确协议是有保证的,除非⅓+节点的诚信度不高,并且所有人都看到不良行为记录。

使各种共识协议的区别在于:

  1. 决定何时和何人去提案一个区块。

  2. 决定如何记录和交流保证承诺

  3. 拜占庭行为的记录方式

  4. 拜占庭行为的惩罚方式

其中一些差异是政治性的,其中一些差异性是技术性的。政治差异的例子包括:

1.DPOS根据权益选举一组提案者和验证者

2.Casper依靠PoW来确定何时和何人提案一个区块,以及用抵押权益权重来决定谁是验证者。

3.DPOS通过票选出局来惩罚主观和客观的不良行为

4.Casper通过削减保证金,而且仅惩罚客观的不良行为

在正常情况下,政治分歧不会对依靠共识机制订购和确定交易的用户的体验产生日常影响。恶意行为的门槛如此之高,惩罚如此之大,以至于所有的实际目的都不会发生。

协议的技术差异会对用户体验产生真实的影响。这包括直到确认的延迟,确认的程度,带宽以及证明生成/验证的开销等事情。

最简单的算法是每个人都可以在一个区块上达成共识,然后才能在下一个区块上取得进展。这意味着,每一个参与者给其他参与者在每个区块上发送两条信息。

在全球网络中,光速限制了实际的延迟,从提案的时间到节点接收⅔+提案消息的时间大约为1秒(500ms往返延迟* 2次往返)。

我观察到的所有网络似乎都在2-3秒的延迟阵营中。这些简单的协议也有一个“计时器”,如果没有就当前提案的有效性达成共识,则会引入新的提案。该计时器通常比预期的确认时间长。

像Casper这样的协议试图减小开销,它的方案是依靠工作证明来达到短期共识,并且每第100个区块(即检查点)就会达成最终的确定性。这意味着基于Casper的区块链每20到30分钟才能达成最终的确定性。

DPOS BFT 流水线化的共识机制

如今在EOS系统中所采取的的基于拜占庭容错的DPOS共识机制使用了一种流水线的方式来传输提案、预提交、已提交这三个状态的消息。这意味着在正常的情况下,每一个区块都会促进区块的确定性,并且这是通过每个时间空档仅需要一个提案来实现的。换而言之,基于拜占庭容错的DPOS的传输机制,无论是在签名验证、哈希计算还是网络带宽等方面,都与之前的DPOS体系是一样的,他们都基于最终的一致性和最长链法则,有点类似比特币和以太坊。

只有DPOS BFT可以高效的扩展至无限的验证者数量(基于延迟成本)。其他协议以0(2N)个参与者的数量增加了对达成确定性的资源需求,因为对于每一个区块或检查点来说,每个人都必须与其他人交流两次。有了多方参与,就需要更多的签名、网络成本和存储空间,这会造成巨大延迟。

假设在DPOS BFT机制下出块间隔为两秒并具有21个生产者,这保证可以在1分钟后可以达成最终确认,但是新的区块每两秒达成最终确定性。 这是通过流水线化BFT确认实现的。 像EOSIO这样的平台每500毫秒产生一个区块,但是只能每12个区块进行一次更迭。 这意味着基于纯粹的BFT DPOS区块确认,最终需要大约3分钟。 结果就是以比Casper快10倍的速度获得单个区块,一个新区块每两秒就可以完成最终的确定性,比Casper漫长的三十分钟快多了。

DPOS混合流水线化/即时拜占庭容错

有许多应用程序需要三分钟的时间才能达成确定性,并且特定区块的轻客户端DPOS证明比预期的要大。 在这种情况下,区块链可以让设计人员选择在每个待形成区块上执行BFT预提交和提交消息。 这会使DPOS-BFT链的终端延迟为1-2秒,但会增加网络开销、存储要求和CPU使用率。 与Tendermint / Cosmos等协议不同,同时可以有多个“在线”提案。 由于网络分裂,有些区块甚至有可能从未收到“实时”消息,但他们最终会被间接确认。

使用混合方法,轻客户端可以验证具有15个签名的区块或使用更高级的加密技术将提交签名合并到单个签名中。 如果没有提交消息,轻客户端仍然可以使用多个连续的块头来达到BFT的确定性。

安全性

人们早就知道,对于很多应用程序,比如博客文章和社交媒体投票,等待100%的确定性是浪费时间的,而99.999%的确定性可以在不到一秒内完成。 像Casper这样的协议,让用户在等待下一个检查点时依赖工作量证明来确认是不值得的。

当所需要的是区块链状态时,一些完整的节点可能并不在意处理所有BFT预提交/提交消息的开销。 知道区块生产者(提议者/验证者)正在达成实时共识,并且他们的区块头最终在几分钟后达成BFT共识,这已经足够了。

每一个共识算法都会为用户作出明确的选择并通过不同的方法消除不安全的可变因素。

不允许用户选择使用未经完全确定的任何事物。 以太坊使得用户退回到PoW的时代,而DPOS-BFT则可以回归到最初的DPOS证明机制。

在DPOS BFT区块提案系统之上,甚至可以通过削减保证金的机制将Casper检查点算法分层。 这种方法将创建多个独立的验证者集合,对于良好的行为既有政治激励又有经济激励效果。

用户体验

DPoS机制结合BFT不仅优化了常规情况,并且能在最坏的情况下及时挽救。在常规情况下,当选的节点是被公众信赖的,肩负法律责任且高度可靠。最终能够成功出块的概率早已达到了99.999%,这意味着每个用户在一秒内就能获得基本确定的结果,完全能够满足所有的日常交易。对于诸如购买汽车等这类较大型的金融交易,用户也只需要等待几秒钟就能完成交易。

每个用户都可以自行决定开销数目或者他们想要搁置的、以及区块链间通信交流中他们想要得到的证明,而其他协议不会给用户这种选择。

所有遵循BFT共识原则的现代共识算法最初都是于二十世纪八十年代引入的,可以在分区网络的最坏情况下保证三分之一的“拜占庭”参与者达到最终安全状态。 只有DPOS BFT和EOSIO实现了对99.999%诚实节点进行优化,而无需网络分割。DPOS BFT无需牺牲其他协议提供的安全保证就实现了此项优化性能。

(本文来源:金色财经)

1、本文仅是传达资讯之目的,不代表猎云财经立场,不构成任何投资建议。投资有风险,入市须谨慎。
2、猎云财经原创文章未经授权不得转载,侵权必究。如需转载请联系官方微信号进行授权。转载时须在文章头部明确注明出处、保留官方微信号、作者署名,如转自猎云财经(微信号:lieyuncj)字样。
共0条 讨论
扫码阅读全文
右键可直接复制图片
×
返回顶部