DPOS(股份授权证明机制)
EOS的最大的创新之处在于其应用了石墨烯技术。石墨烯技术具体是指EOS调整了支撑btc和ETH的工作量证明(POW)的共识机制,而采用DPOS(DelegatedProof Of Stake, 股份授权证明机制)的共识机制。
在POW模式下,所有节点都有机会赢得记账权,节点间是通过相互竞争,谁先破解出答案,就可以获得记账权。获得记账权的概率与节点的算力成正比。
而DPOS的模式,是改为由所有该链的token的持有者,选举出一定数量的节点,然后由这些节点协作,轮流进行记账。
在EOS的DPOS模式下,所有EOS token的持有者,可以根据其持有的EOS的数量1:1获得选票,投票选出21个区块生产者(见证人)。然后由这21个区块生产者,相互协作,按照一定的顺序,轮流进行记账。出块间隔为3秒一个大区块。此外,这21个区块生产者,不仅记账,还需要提供EOS全链所需要的计算和网络资源(包括CPU、内存、存储容量等等)。
如果其中某个区块因为断网等原因暂停了出块,那么会发生跳块,下一个记账节点仍会跟上继续记账。这样的机制保障了哪怕最后只有一个节点在工作,整个系统仍然可以工作下去,然后继续选择新的节点从而保证运行稳定。
如果在过程中产生了分叉,DPOS仍然采用的是最长链原则,并且约定每个节点不能同时在两个链上出块(否则节点将被判定为违规,且失去资格),这使得当产生分叉之后,最多过一半见证人节点总数的高度之后(在EOS里是11个区块高度),就只会保留一条链了。
另外,DPOS下还有不可逆原则,一旦某个区块后面跟随了超过2/3总见证人数量的区块,则该区块进入不可逆状态,等于确认了该区块是主链中的区块的地位,之后再也不可回滚回该区块之前的区块进行分成,否则视为违规。因为每个节点最多同时参与一条链,所以只可能同一个高度的区块只可能存在一个不可逆的区块,这更加保证了区块的安全性,防止恶意攻击及恶性分叉。一般来说,在21个区块产生节点的模型里,15个区块(15/21>2/3)进入不可逆状态的时间(即交易100%安全)为45秒。
因此,DPOS的优势在于:
1、解决了POW模式下,消耗大量电能的问题。
2、节点由竞争改为协作,并且只有21个节点,更加容易迅速的达成共识,有利于提升主链的性能(TPS)。
3、不会产生硬分叉,因为节点也会遵循最长链原则,并且每个节点不能同时参与两条链。所以,当产生分叉之后,最多过一半见证人节点总数的高度之后(在EOS里是11个区块高度),就只会保留一条链了。每次系统大升级也不会导致硬分叉,只需要让所有见证人节点同时升级即可。
4、安全性更强,要控制超过2/3的节点才能够将错误的区块定为不可逆状态。
5、确认速度非常快
但是DPOS的问题在于,实质上,DPOS并不是去中心化的,而是弱中心化的。并且,随着这些见证人节点存在的时间的推移,由于参与记账的奖励,会使得中心化程度越来越高。这对整个社群可能是潜在的风险。根据以往基于DPOS模式的项目,例如BitShares和Steemit来看,确实最终的中心化程度非常高,有一段时间绝大部分的见证人实际上是BM自己或受BM控制的节点。
BFT(拜占庭容错机制)及不可逆状态
此外,为了实现秒级确认的性能,在前述DPOS此基础上,EOS还做了一些改进。
EOS为了提高区块确认的速度,还提出了小区块的概念,并且加入了拜占庭容错机制(BFT)和不可逆状态。
EOS每3秒出一个大块,而目前EOS团队又提出一个方案,将3秒的区块继续分割成间隔为0.5秒的若干小块,这些小块之间不切换记账权。每一个小块一出来之后,就会马上广播。这样的设计可以使得区块更加快速得到确认的同时,尽可能减少因为网络延迟而产生的分叉影响。
此外,EOS还引入了BFT的机制:每当一个小区块在区块链网络内被广播时,其余节点将会立即对这个区块进行确认。经过2/3节点确认的区块将会进入不可逆状态。在这个共识机制下,安全确认的时间为0.5s(区块间隔)+0.3s(区块传播延时)<1s,从而到了秒级的确认性能。此外,如果将小块的出块间隔继续分割,理论上确认所需要的时间,会约等于区块传播的网络延时,甚至可以小于0.5秒。
此外,恶意攻击,除非控制了超过2/3的节点,否则无法恶意区块进入不可逆状态。这里特意提一下,如果恶意节点控制了超过1/2但小于2/3的节点,由于恶意区块不会进入不可逆状态,这样可以留给其它观察者节点和见证人节点足够的时间,将恶意节点投票出局。因此,这种模式也极大的提升了安全性。
并行机制
在DPOS的基础上,EOS的链已经可以实现远超BTC或ETH的系统吞吐量,但是离十万或百万的TPS还有相当大的距离。
因此,EOS还提出了并行的机制,计划通过并行N多条链,实现超高的TPS。目前,并行机制还在测试中,究竟是否能够实际落地,让我们拭目以待。
网站模版