29

从零开始学习区块链——DPOS共识机制

 5 years ago
source link: http://www.huoxing24.com/newsdetail/2018071215451497491.html?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

来源:贝壳手表CCT

在区块链中,大家会经常听到共识机制这个词语,有人把共识机制称作区块链的灵魂。当前应用最广泛的就是POW和POS,它们在去中心化的进程中发挥了很大的作用,但是,随着区块链3.0的到来,他们存在的问题日益暴露。今天,从零开始学习区块链将介绍应用在EOS上的DPOS共识机制。

q2U7jaQ.jpg!web

POW的问世

早在2010年,一名叫Danile Lrimer 的工程师就已经认识到比特币POW共识机制中存在的问题,挖矿需要消耗大量的能量、速度慢、比特币网络可能被大型矿池控制出现中心化。于是,他想建立一种克服这些劣势的新共识机制。Danile Lrimer,就是我们熟知的BM(Byte Master)。2013年,BM发表了一篇论文,阐释了DPOS共识算法如何解决工作量证明网络中的限制。之后,DPOS被先后应用在比特股系统Bitshares和Steem中,表现不俗。当前冉冉升起的公链明星EOS也选用了DPOS作为共识机制。

DPOS的分工

在DPOS共识机制中,存在两种角色,公证人和见证者。公证人是指权益持有者,可以投票选举区块生产者,见证者指被选举出来进行区块生产、验证交易的节点。

在DPOS中,不是每个节点都具有生产区块的权利,但是每个节点都具有投票权,这一点和人民代表大会制度很像,不是每个公民都可以做人大代表,但是每个公民都具有选举自己信任的人大代表的权利。DPOS中投票是根据投票者权益进行加权的,在投票中你使用的权益越多,你的选举的影响力越大。

DPOS的工作原理

DPOS中生产区块主要分为两个步骤:首先选择一群区块生产者,然后安排区块生产。区块生产者选举的过程中,想要成为见证者的节点需要到社区去拉票,获得用户的支持,用户根据自己手中的权益去投票,同时见证者创建区块时投票者也会获得收益,具体收益有他们选出的代表决定。见证者的数量不是固定的,是有权益持有者共同决定的。在投票过程中,大家用自己手中的权益支持信任的候选人,然后根据整体投票情况确定一定数量的见证者,第一步就结束了。

选举出来的见证者的权利是完全相等的,他们共同生成新区块。我们以EOS为例来学习。在EOS中,每生产126个区块为一个周期:每次选举出21个出块的超级节点,每个节点生产6个区块。每0.5秒产生一个区块,一次只分配一个节点进行区块生产。如果有生产者错过出块,就会跳过该块,该生产者也会被删除。每完成一个周期的生产,就会重新投票选举见证者。

DPOS的优势

大量降低能耗:在DPOS中生产区块的节点数量极少,大致几十或几百个,每次只授权一个生产者在给定时间生产区块,区块生产是井然有序的,这些节点之间的关系是合作而不是竞争,因此不需要消耗大量的算力去竞争记账权,这样就极大地降低了能源消耗。

提升确认速度:比如EOS每生成一个区块只需要0.5秒,一笔交易大概经过6-10次确认,时间不超过一分钟。对比来看,采用POW算法的比特币系统中,每生成一个区块需要10分钟,每笔交易的确认则需要一小时,同样,POS共识机制的交易确认时间也很长。所以DPOS的速度优势非常明显。

去中心化:虽然比特币创建的初衷是去中心化,人人拥有记账权,但是随着人为控制的不断加深,比特币的算力基本被几大矿池垄断,美好的初衷已经不复存在了。DPOS机制中,通过选举区块生产在,保证了代币持有者对网络的控制,因此,DPOS实际更加去中心化。

fUB7ZfI.jpg!web

区块链中,存在一个去中心化、速度和安全的三角形,这三个目标是相互牵制的。我们要清楚,去中心化是方法而不是目的,DPOS舍弃了部分去中心化,大大提高了速度和安全。同时,DPOS看似去中心化程度不如POW,POW中人人都可以创建区块,但实际上通过选举保证了代币持有者对网络的控制。

文章声明:本文为火星财经专栏作者作品,版权归作者所有,不代表火星财经观点。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK