EOS 共识机制 DPOS+BFT

Posted thefist11

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EOS 共识机制 DPOS+BFT相关的知识,希望对你有一定的参考价值。

1. DPoS共识

  • 通过在一群数量有限的节点中,使用轮换或者其他算法来筛选出某个节点作为主节点。并且赋予该节点出块的权利。

  • 主节点是将该时段的交易打包成区块后用自己的私钥对该区块签名,并将其广播到所有节点。

  • 当主节点收到至少三分之二的不同节点的签名区块后,则该区块完成了所有节点的验证成为不可逆区块串联到区块链中

70个节点数 = 21个主节点(生产区块)+ 49个备用节点。

当21个主节点出问题时,通过竞选机制,备用节点可上任成为主节点。

1.1 BFT(拜占庭容错机制)

当一个小区块在区块链网络内被广播时,其余节点将会立即对这个区块进行确认。经过2/3节点确认的区块将会进入不可逆状态。在这个共识机制下,安全确认的时间为0.5s(区块间隔)+0.3s(区块传播延时)<1s,从而到了秒级的确认性能。

  • 恶意攻击
    除非控制了超过2/3的节点,否则无法恶意区块进入不可逆状态。这里特意提一下,如果恶意节点控制了超过1/2但小于2/3的节点,由于恶意区块不会进入不可逆状态,这样可以留给其它观察者节点和见证人节点足够的时间,将恶意节点投票出局。

EOS区块的出块顺序和速度都是安排好的,并不存在哪个节点权力大,哪个节点权力小的问题。要恶意控制EOS超级节点来达到威胁网络安全的目的的话,需要控制21个节点中的15个,才能有效地发起攻击。

1. 2 不可逆状态

一旦某个区块后面跟随了超过2/3总见证人数量的区块,则该区块进入不可逆状态,等于确认了该区块是主链中的区块的地位,之后再也不可回滚回该区块之前的区块进行分成,否则视为违规。

因为每个节点最多同时参与一条链,所以只可能同一个高度的区块只可能存在一个不可逆的区块,这更加保证了区块的安全性,防止恶意攻击及恶性分叉。

一般来说,在21个区块产生节点的模型里,15个区块(15/21>2/3)进入不可逆状态的时间(即交易100%安全)为45秒

1.3 小区块

为了加快出块速度,该改进的核心思想是让同一个节点产生6个小块。这个能提升性能的核心原因是6个小块的产生没有等待确认的环节。

  • 如果将小块的出块间隔继续分割,理论上确认所需要的时间,会约等于区块传播的网络延时,甚至可以小于0.5秒。将3秒的区块继续分割成间隔为0.5秒的若干小块,这些小块之间不切换记账权。
  • 每一个小块一出来之后,就会马上广播。

这样的设计可以使得区块更加快速得到确认的同时,尽可能减少因为网络延迟而产生的分叉影响。

参考
[1]. csdn. EOS的BFT-DPOS共识机制的进化过程及背后逻辑

以上是关于EOS 共识机制 DPOS+BFT的主要内容,如果未能解决你的问题,请参考以下文章

许晓笛详解 EOS 的新共识机制 BFT-DPoS

许晓笛详解 EOS 的新共识机制 BFT-DPoS

EOS 共识机制 DPOS+BFT

共识算法比较Tendermint的BFT与EOS的dPoS

EOS 共识机制 DPOS再议

第14讲 | 深入区块链技术:DPoS共识机制