网盛创新研究院 - AI、区块链、云计算、大数据技术的研究与应用交流平台!

网盛创新研究院/百科/正文

DPoS共识机制

相关新闻/

Related Info

EOS信任网络的基础——DPoS共识机制

为什么发明DPoS共识机制?

早在2010年7月,一名叫做Daniel Larimer的工程师意识到比特币挖掘太浪费能源,并且在论坛上发表自己的看法,当时还的到了中本聪的回应:If you don't believe me or don't get it, I don't have time to try to convince you, sorry(如果你不相信我或者看不懂它,我没有时间去说服你,抱歉)。

Daniel Larimer,后来江湖人称Byte Master,简称BM,在得到中本聪消极的回复后并没有放弃自己的想法。BM还认识到,除了消耗大量能源以外,比特币矿业将在未来使得比特币出现中心化风险,大型矿业集团可能控制比特币网络。此外,他还想建立一个能够实现每秒100,000次交易速度的系统,而比特币的系统由于其PoW共识机制导致系统过于缓慢。他决定发明和建立一个使用能源非常少的新系统,闪电般快速且非常安全。

于是BM在PoS的基础上进行了改进,推出了DPoS的共识机制,并以此为基础创立了Bitshares比特股。Bitshares是全球第一个去中心化的数字货币交易所,比特股的代币BTS就是使用DPoS发行的。

DPoS的工作原理

DPoS主要有五大部分组成:Token、区块链、社区、计算机和规则

在一个区块链社区里,token的持有人以token为选票,投票选出他们认可的节点来运行区块链计算机网络。在EOS网络里,最终会选出21名主节点,他们被称为区块生产者, 简称BP (Block Producor)。EOS由 21 名BP轮流产生新的区块,并获得EOS网络的奖励

值得一提的是,人们的投票所占的比重取决于他们持有多少token。这意味着拥有更多token的人将比拥有极少token的人更多地影响网络。这其实很好理解,因为持有网络的运行的好坏会对持有更多token的人的利益产生更大的影响,这使得他们的投票更谨慎。

随着社区发展,会有越来越多的人想要称为BP,而EOS系统每10轮区块生产就会进行新的投票,所以现任的BP需要很好地为社区服务才能获得认可。这种机制是可行的,它能够清除不良生产者,并识别其他有价值的成员。比如现行DPoS共识机制的Steem社区,BP的位置就根据候选人的信誉总有人来来去去,兼顾实现了去中心化与高效。

DPoS vs PoW vs PoS

中心化风险

EOS网络中DPoS默认使用21个节点来产生区块,对比PoW与PoS共识机制的成千上万个节点少太多了,从数量上看DPoS共识机制绝对有中心化的嫌疑,但是真实情况确实如此吗?

采用PoW共识机制的比特币算力前三的矿池占算力接近50%,而PoS共识机制会有拉大贫富差距的风险,强者恒强——PoW和PoS并没有解决趋向于中心化的问题。DPoS共识机制从算法层面定义了一个分布范围,21个主节点只要作恶就会被投票出局。每个token持有者都有投票权,并且有非常多的没有记账权的候选节点等待接班,因此其中心化的风险反而相对比较低。

Δ 图片来源:巴比特

从此图我们直观可以感受,DPoS要比PoW更为去中心化(目前尚未有成熟运用PoS的区块链应用,PoS暂列入比较)。

效率问题

EOS由BM主力开发,他曾经开发过其他两款成功的区块链应用,Bitshares和Steem,都采用了DPoS共识机制。Bitshares和Steem分别于2014年和2016年发布,稳定运行至今已经证明DPoS技术的可行性,并且他们是全网效率最高的的区块量网络。

Δ 图片来源:Block'tivity

参看此图,Bitshare和Steem的每日处理的交易量和比特币及以太坊这两个市值最大的区块链应用一起位列前茅,但前二者的日交易量只占其处理能力的0.04%和0.14%,而后二者日交易量分别占其处理能力的40.66%和53.95%。在效率方面,DPoS相对于PoW和PoS的优势也不言自明。

分叉风险

对于运行PoW和PoS共识机制的区块链网络而言,现有的区块链升级和解决问题的方式有两种,软分叉和硬分叉。硬分叉现在越来越多了,比如说比特币的各个儿子已经多到名字都记不全的程度了,并且很多时候硬分叉的目的已经不再是为了解决实际问题,而是因利益驱动而分叉。以太坊也经历过一次非常著名,分叉的原因是由于合约漏洞,the DAO 项目众筹的ETH被盗,一部分以太坊社区成员认为应该为了挽回损失将区块进行回滚,另一部分则认为这样的做法有违去中心化的初衷,于是以太坊因利益之争而非解决网络本身的问题或升级网络而产生了硬分叉。

相对于PoW和PoS,一个DPOS共识机制下正常运行的区块链不会经历任何的分叉,因为被选举出来的区块生产者是通过合作而非竞争的方式来生产区块。 即便真的出现了分叉,共识也将自动的切换到最长的链上。在DPoS共识机制下,区块添加到一个区块链分叉的速率与公用同一共识的区块生产者比例是相关的,具有更多生产者的区块链分叉会比拥有较少生产的那一个条增长的速度更快。 而且,没有一个BP会同时在两个分叉上同时生产区块。 如果一个BP被抓到做这样的行为,将被投票投出局。

在一些特殊情况下会有例外,比如,软件出现BUG,网络拥塞,或一个恶意的区块生产者制造了两个或更多的分叉。 在DPoS共识机制下,在分叉开始的 9 秒内,一个节点就可以警告用户他们极可能正处于分叉中。 在连续丢失 2 个区块后,有 95% 的概率可以确认一个节点处于分叉中。 在连续丢失 3 个区块后就有 99% 的概率确认。同时,为了确保一个交易绝对是不可逆的,一个节点可以选择等待 21 个区块生产者中的 15 个给出确认。一般情况这个过程平均需要 45 秒的时间。 默认情况下,所有的节点将认为当 21 个生产者中有 15 个给出确认后这一区块就是不可逆的了,并且不管长度如何都不会切换到没有这一区块的分叉。

节点之争,群雄逐鹿

了解了DpoS共识机制,我们终于明白EOS正在酝酿的节点之争是怎么一回事了。作为一个普通的EOS持有人,我们要充分行使自己的投票权益才能推动EOS更好地发展,也使得自己手中的EOS更有价值

标签:
关于我们创新研究院大讲堂服务介绍
© 生意宝(002095) 版权所有  浙公网安备 33010002000015号 工商执照 浙ICP证  网络工商