主页 > 下载最新版imtoken钱包 > DPOS共识机制

DPOS共识机制

下载最新版imtoken钱包 2023-02-19 05:44:56

想知道更多关于区块链技术知识,请百度【链客区块链技术问答社区】
链客,有问必答!!

EOS在第一版白皮书中使用了DPOS共识机制,在新版白皮书中对共识机制进行了改进,采用了BFT+DPOS混合共识机制。 出块速度由3秒变为0.5秒,tps明显提升,达到每秒3590次的测试。

EOS共识机制第一版DPOS

EOS系统跑链采用的共识机制为第一版白皮书,即纯DPOS共识机制。

DPOS是授权权益证明的共识机制。 与比特币的POW机制相比,DPOS不需要浪费计算资源来争夺记账权,而是通过对EOS代币持有者的投票选出21个超级节点作为记账人,保证了整个网络的正常运行。 值得一提的是,人们的投票权重取决于他们持有多少代币。 这意味着拥有更多代币的人比拥有很少代币的人对网络的影响更大。 这其实很好理解,因为持有网络的运行会对持有更多代币的人的利益产生更大的影响,从而让他们的投票更加谨慎。

21个超级节点轮流负责记账。 每一轮都会随机打乱自己出块的顺序,每个超级节点在出块节点时只负责出块。 每个区块产生后,会按顺序传递给下一个超级节点。 第二个超级节点负责打包新区块,同时确认前一个区块的内容。 当一个区块被超过2/3的超级节点确认时比特币采用的共识机制的是,该区块将成为不可逆区块,即链上区块。

该算法显然在某些地方需要改进。 例如,容易发生块泄漏。 21个超级节点分布在全球各地。 如果随机打乱顺序比特币采用的共识机制的是,则始终有序的节点将彼此远离。 比如中国和美国。 这两个国家网络传输单程时间为300毫秒。 600 毫秒。 然后中国出块,其他20个节点确认后返回,假设总时间为4秒; 然后美国出块,反馈时间3秒,比中国快1秒,肯定是先上链的,结果中国的块被丢弃了。 目前设置的出块时间为3秒,理论上可以解决这种漏块现象,但是如果要提高eos的性能,就必须要改进这个块。

最新版EOS共识机制BFT-DPOS

BFT 代表拜占庭容错算法。 EOS引入该算法主要是为了赋予出块节点更多的权力,加快出块速度,解决节点出块全部漏掉的问题。

EOS共识算法的升级,必然需要超级节点更新代码,使用新的程序,然后在当前链上继续运行。 但如果超过1/3的节点拒绝更新代码,就可能出现硬分叉问题。 那么如何做好过渡是EOS面临的最大问题。

我们来分析一下改进后的共识机制是如何协同工作的。

EOS采用BFT+DPOS共识机制后,不再让超级节点按照出块顺序逐一验证区块内容,而是出块节点成为主节点。 区块产生后,该区块会同时广播给其他20个超级节点,并获得他们的验证。 如果超过 2/3 的节点通过验证,该区块将成为不可逆区块。

BFT 可以显着提高 EOS 区块的生成速度。 目前,采用BFT+DPOS共识机制的EOS可以实现0.5秒出块速度,1秒出块不可逆。 为了避免因出块速度过快导致区块泄露,EOS超级节点根据其他地理位置轮流成为主节点,尽可能降低超级节点的网络延迟。 比如中国、美国、加拿大、日本都有超级节点,那么成为主节点的顺序就是中国>日本>美国>加拿大,反之亦然。

同时规定每个主节点连续产生6个区块,至少要保证6个区块中的前几个区块能够被确认和完成,不存在跳过整个超级节点的现象。 可以看出每轮记账节点的出块总时间还是3秒。 在这3秒内,因为他信任自己的区块,所以他可以继续出块。 一边广播一边出块,3秒内第一个广播的块一定会被确认。 在网络畅通的情况下,6个区块都可能被确认。

EOS 共识非常简单地处理分叉问题。 与比特币一样,节点只会将最长的链识别为合法链。 如果一个节点开始作恶,它就产生自己的区块,产生自己的链,即每轮到它产生6个区块。 但是总共有21个超级节点,每一轮产生理论上的126个区块。 根据选择最长链作为主链的原则,必须作恶的链不会被认可。 因此,EOS不会出现分叉问题。