ChainJoy-春哥带你学区块链我爱编程EOS区块链

EOS共识算法

2018-05-28  本文已影响14人  六弦起舞

6月2日,是eos主网上线的日子,届时会掀起怎样的风浪,我们拭目以待。

在期待eos主网上线的过程中让我们再来复习一下eos的共识算法,看看BFT-DPOS究竟是如何运行的,是如何达成效率与去中心化的平衡的和如何做到防止节点作恶的。

在白皮书中这样写到:EOS.IO软件,能够精确地每0.5秒产生一个区块,并且在任一时间仅有一个生产者获权生产区块,如果在预定的时间没有区块生成,则跳过该区块,相应的当跳过一个或多个区块时,区块链中会存在一个大于等于0.5秒的时间间隔。

没人产生126个区块(共21个区块生产者,一轮都有一个特定的生产者负责产生六个块,既一轮的时间为63秒),在每轮开始时,根据代币持有者的投票选出21个不同的区块生产者,获选的生产者的生产顺序有十五个或更多生产者一致同意决定。如果一个生产者错过了一个块,并且在过去24小时,均未产生任何块,则会被从生产者的名单中剔除。直到他通过区块链表明,他打算再次开始生产区块,这种方式可以排除不可靠的生产者来最小化错过的区块数量,从而确保网络的顺畅运行。

在正常情况下,dpos区块链不会产生任何分叉,因为生产者生产区块的方式是合作而非竞争,如果出现分叉那么共识的处理方式是自动的切换到最长的链上。其工作原理是,一个区块链的分叉上新区块链的添加速度与在这个分叉上达成共识的生产者的多寡直接相关。换言之,生产者数量多的分叉,其增长速度要比生产者交少的分差增长的速度更快,这是因为生产者数量多的分差错过的区块往往会更少。

此外,任何区块生产者都不应该在同一时刻在两个分叉上竞争出块。如果有块产生者被发现这么做,肯定会被投票出局,这种双重生产会留下密码学证据,是识别并自动清除这类区块生产者是可行的。

在dpos算法中添加了拜占庭容错机制,则需要所有生产者签名所有区块,但禁止同一个生产者签名两个时间戳和高度相同的区块,一个区块一旦被15个生产者签名。那么这个区块就可以被视为不可逆了,任何一个生产者一旦签名两个相同时间戳和相同区块高度的区块,这种不诚信行为就会留下密码学证据,并且在这一模型下不可逆的共识将在一秒内完成。

eos通过这样的共识算法的设计,虽然达不到完全的去中心化,但是也在一定程度上提高了效率,使得大型的商业应用得以实现,并且可以做到不可篡改,解决了信用问题。所以区块链的去中心化并不是关键,关键是能不能做到“不可篡改”,再加上e os的交易免费、转账快的特点,是的eos变成了真正的伟大发明。

再一个得我们期待的一点是eos代币的租赁。

e os白皮书上是这样表述的:如果一个区块链是使用EOS.IO系统开发的,而eos代币持有人如不需要立即消耗全部或部分可用带宽,其可以选择将未消耗的带宽给与或出租给他人,使用e os.io系统的区块生成者将识别这样的授权,并直接分配相应的带宽。

这样一来我们拥有eos代币其实就真正的拥有了一项资产,我们可以用来交易、买卖、租赁。所以,可以想象eos生态形成之后的商业用途之广泛。

所以虽然我自己持有的e os代币数量很少,但是还是希望eos能够腾飞,让我们共同见证这个伟大的时刻吧!

上一篇下一篇

猜你喜欢

热点阅读