首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

中本聪都开始用DPOS了!三分钟教会你DPOS是什么

有关于你想知道的DPOS(委托权益共识机制)的内容,都在这里

前日,Twitter 上出现了一个名为Satoshi Nakamoto(中本聪英文名)的用户,这位“中本聪”表示对比特币核心团队失去信心,并宣布将推出真正的比特币——BCX。最重要的是“中本聪”说BCX会把POW改成DPOS,那么DPOS到底是什么引来“中本聪”(是不是中本聪本尊还有待商榷)的青睐,本文用简明的语言来介绍DPOS委托权益机制。

内容摘要

-浅谈共识机制的意义

-DPOS共识原理解析

-DPOS应用实例(BTS,EOS)

-总结

共识机制的意义-从拜占庭将军问题说起

拜占庭将军问题

古代有一座城邦叫拜占庭,围城里面有巨额的财富,城邦周围是一些附属小国,所有附属国都觊觎拜占庭城的财富,都希望伺机去占领。但是这些附属国力量太弱小,必须联合起来才能与之对抗。然而,在商定进攻时间这件事情上很难达成一致。因为,他们既要协商进攻的时间,同时也要防范被那些所谓的“友军”给攻占,导致城邦沦陷。所以这是一个由互不信任对方构成的网络,但是他们又必须一起努力以完成最终的目标。

此时,拜占庭将军问题产生了,各国的将军们要采用什么样的方式确保自己发出的信息没有被篡改,并且自己收到的别国的战报是没有被作恶分子修改的。引申到互联网的世界里,拜占庭将军问题即是在分布式节点传输信息时如何保持数据的一致,如何达成共识问题。

黎明

在让所有人头疼的时候,男神中本聪出现了,比特币横空出世,人们才发现区块链技术提供了一种极为灵巧的解决方案。

在比特币的网络中各个节点互不认识,互不信任,在这样一个“非安全环境”中比特币用事实证明了,在互相陌生的互联网里,各个陌生节点之间依然可以有条不紊可以根据POW(工作量证明机制)共识机制达成共识,共同创造和维护一个安全的网络。

但是随着时间的推移POW暴露出了越来越多的缺点,例如矿力集中使得比特币挖矿越来越中心化,与中本聪“一cpu一票”的设计初衷背道而驰。另外还有挖矿造成的资源浪费等都是很大的问题。其实还有一个很致命的问题,交易确认速度,现在的比特币网络,平均需要花6轮确认时间,每一轮10分钟左右,也就是60分钟才能够确认一笔交易真正发生。对于未来大规模地商业运用,这样的速度是根本不行的,说明POW共识机制并不能引领区块链技术走向新的高度。

但这些问题在Dan Larimer发明了DPOS委托权益证明机制后又变得简单了许多,接下来重点介绍DPOS。

DPOS共识原理解析

算法简述

DPOS算法分为两部分:选择一组块生产者和调度生产。我们用比特股来举例子,比特股采用了DPOS机制,即使用信誉系统以及无摩擦、实时投票的机制,来创造出一个有限信任的团体。团体中的参与成员有权利创造区块,将其加入区块链并禁止非受信的参与方加入其中。这些受信任的参与方通过随机分配的方式决定创造区块,并且每一轮中分配规则还会被改变。

因为见证人位置的数量是有限的(一般是奇数个),所以见证人会互相竞争来获得记账的工作。如果见证人主动降低他们获得的收入,那么他们就可以吸引到更多人的投票,同样,保护网络安全的费用将通过见证人之间的竞争维持到一个合理的水平。同时,恶意的见证人将会因为自己的作恶行为被快速投票出局。

共识原理解析

为了解释DPOS的共识过程,假设有3个区块生产者,A、B 、C,和工作量证明POW一样,DPOS一般规则是最长链胜出。任何时候当一个诚实的对等节点看到一个有效的更长链,它都会从当前分叉切换到更长的这条链。

接下来举例比较可能的网络条件下的例子说明DPOS是如何运行的,帮助大家理解为什么说DPOS比POW更加地安全高效以及去中心化。

正常情况:

在正常操作模式下,块生产者每3秒钟轮流生成一个块。假设没有人错过自己的轮次,那么这将产生最长链。块生产者在被调度轮次之外的任何时间段出块都是无效的,也就是说你无法在轮到你之前提前产生块,并且如果你错过了自己的轮次,你可能会被淘汰,被投票产生的新的生产者取代。

正常情况下的块生产流程

少数恶意或者故障节点的情况:

不超过节点总数三分之一的恶意或故障节点可能创建少数分叉。由图可知,在分叉的那条链中,每9秒(设一个轮次三秒,三个轮次)只能产生一个块,而多数分叉每9秒可以产生两个块。这样,诚实的2/3多数将永远比少数分叉的链更长。

少数分叉情况

少数的多重生产:

少数人可能试图产生无限数量的分叉,但是他们的所有分叉都将比多数人的那条链短,因为少数人在出块速度上注定比多数人来的更慢。所以这种情况下,诚实的2/3多数还是永远比少数分叉的链更长。

少数多重生产的情况

多数生产者集体作恶:

如果多数生产者(2/3)变得腐败,那么他们可以产生无限数量的分叉,每个分叉都看起来以2/3多数确认向前走。这种情况下,会遵循最长链选择。最长链就是为最大多数所批准的那条链,而这将由少数剩下的诚实节点决定。这种行为不会持续很长时间,因为利益相关方最终会投票替换生产者。

多数集体作恶情况

生产者洗牌规则

在上面所有例子中,我们展示的都是块生产者按循环调度出块。实际上,每出N个块(N是生产者数量),块生产者集合都会洗牌一次,生产者生产的次序会变化。这种随机性确保块生成者B不会总是忽略块生成者A,每当形成多个拥有相同数量生产者的分叉时,平局最终都会被打破。

DPOS应用实例

BM的开山之作比特股(bitshares)将DPOS真正地运用到了实际生活中。在比特股的设计中BM采用DPOS机制让用户进行投票选出代表,每个比特股为一票,利用比特股作为支持票选出候选代表,得票最多的101个候选代表为正式代表,由他们生产区块,保证系统运行。正由于DPOS算法带来的节能高效安全的优势,比特股现在的每日区块链记载记录已雄居全球第一,成为一个真正能运用在实际生产生活中的区块链应用。

科技的发展是迅速的,今年BM带来了他的第三个巨作EOS,在EOS上同样要运用DPOS共识机制,但是相较于比特股的DPOS机制EOS又作出了改进。

因为EOS主打的是作为下一代的区块链商用系统,它将授权代表减少到了21人,并且取消了交易费用,这使得未来EOS网络能实现更快更高效的秒级共识验证,更适合多方参与的商业模式。

总结

所有区块链本质上都是一种由交易驱动的确定性状态机,共识是商定确定性交易顺序和过滤无效交易的过程。

DPOS引人注目的安全性来自于其选择块生产者和验证节点质量的算法。运用赞成投票的过程可以确保一个人即使拥有50%的有效投票权也不能独自挑选哪怕一个生产者。DPOS旨在优化拥有强壮网络连接的诚实节点100%参与(共识过程)的名义条件。

DPOS网络里只有少量奇数个节点参与,使得DPOS有能力在平均只有1.5秒(甚至更少)的时间内以99.9%的确定性确认交易,相比现在的比特币网络,平均需要花6轮确认时间,每一轮10分钟左右,也就是60分钟才能够确认一笔交易真正发生。1.5秒钟相比60分钟而言是一个飞跃。

在我看来,DPOS就像议会制度,每个持有数字货币的人都是选民,每个人用自己手里的选票选出最合理的议员。并且每个议员的权利都是相等的,没有高低贵贱之分。同时只要某个议员表现得不够好,他马上就会被选民门踢出去,而后备代表随时顶上去。这样就把权利归还到每个持有数字货币的人手上,而使得任何重大决定不完全是由大户说了算。我想这也是更符合中本聪最初的美好愿景,即真正做到一cpu一票,这或许也是这位“中本聪”要分叉的BCX采用DPOS的真正意图吧。

请加EOS群秘

加入EOS中国社区

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171210G06SRQ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券