什么是DPOS?DPOS共识的秘密是什么呢?EOS一直以来就是很多人的聚焦,但是近期谈起它时,都要后边跟一嘴DPOS:”BM抛弃DPOS”,“DPOS不安全性”李笑来在文章内容中直言不讳EOS较大的风险性就是DPOS。甚至出一些不怀好意,各种各样大会也总要说DPOS不太好,某某某新项目的XX的共识才算是确实棒。
有关DPOS究竟是什么,小编穷极百度搜索,也只有找出大家对它浅显、模糊不清的评定。查来查去才发觉,原先人们基本上没有人能真实掌握DPOS体制的基本原理,也非常少有一篇通俗易懂的文章内容对你说DPOS是啥?今天小编就带大家来了解一下。
图解DPOS出块
DPOS机制可以简单的分为选举节点,和出块机制两部分。选举出节点的目的主要是服务于出块。但是实际上我们对DPOS的抱怨都集中在前一部分,出块的安全才是DPOS机制的核心。保证出块层面共识才是保证你我资产的重点。下面提到的技术讲解结合了BM对DPOS的解释以及dantheman的《DPOS Consensus Algorithm – The Missing White Paper》
为了更加方便的理解DPOS机制,我们把dpos从EOS的21个节点,缩小到3个节点,最小规模来看DPOS运行情况。
正常情况
假设只有3个节点A、B、C,彼此按照顺序出块。完成一次顺序出块为一轮次。当没有节点出错的时候,自然而然形成一条最长链,最长链就是所有节点的共识。
少数作恶节点
在出块过程中,假设C节点是恶意分叉节点,A、B为诚实节点。
因为限制必须按照A-B-C这样的出块顺序,因此C节点只有在轮到自己出块的时间才有机会制造出分叉块。但是紧接着轮到A节点出块时,根据最长链原则,并不会选择跟随C,而会选择原主链。如果C节点执意继续在自己分叉的链条出块,那么在一轮次里,主链产出2个块,分叉链只能产出一个块,主链长度永远2倍于分叉链,安全。
那么其他节点需要有一个判断原链是主链,不会选择到分叉链的办法。这就需要用到不可逆区块这个概念了。例如打开你的EOS钱包,就就可以看到每一笔新转账会有一个12个区块验证的指示图。每产生一个新的区块,其实都在为上一个区块加固。同理,当节点判断该链为主链时,只要看该链中前面的区块是否经过2/3+1节点的认可。
例如下图中,2号区块是经过3号和4号区块链确认的。也就是经过C、A节点确认的。
网络问题
假设因为网络问题导致A、B、C节点造成通讯中断、延迟。那么A、B、C还是在特定时间出块,会形成三条长度一样的“主链”。当网络恢复时,第一个面临选择主链的节点就决定了哪一条会是最长链。
从图中可以看出,每一个节点都在网络中断中出了2个块,出于利益考量,选择加入另一条链,就是放弃网络中断期间,自己出块的利益。当B、C节点拒绝加入A节点的链条,继续在各自链条出块时,会形成僵局。不过DPOS机制其中有一条可以轻松解决该类问题:会在一定的时间重新排序各个节点的出块顺序,所以当打破僵局的时候,最长链一定会出现,网络问题并不会导致不安全。
超过2/3的恶意节点
如图所示:假设C、A节点为联合恶意节点。当C在出块期间,可以同时出3个分叉块,形成3条链。而A节点也会在三条链上出块,这样三条链都经过2/3节点确认得以存在。这个时候,就需要“最后不可逆块”来确认主链了。
什么是不可逆块?
在比特币中,“最长链”就是所有人的共识,每个矿工都可以发动攻击,都可以从一个旧块重新生成一条链来竞争成为主链,只不过你要想赶超已经产生好几个块的主链,需要付出极大的经济成本。是巨大的经济成本构成了比特币的不可逆性,越久远的块越不可逆。
而在DPOS里,经过2/3+1个节点确认的块就是不可逆块,而最后一个不可逆块可以决定哪一条成为主链。
在这个问题中,回到时间点5.当B节点产出块后,经过时间6、时间7各节点出块,就代表时间点5出的块,经过了出块的节点:A、B、C三个节点(超过2/3+1)确认,该块就是不可逆块,同样也是目前链最后一个不可逆块。因此可以确认它所在的链1也就成为了主链。
以上简洁版的DPOS共识都可以安全得运行,在真实情况中,EOS为了确保共识做到了更加安全,有21个超级节点,以及100个备选节点。要是有节点破坏共识,就会被票选下去。有超级节点出现问题,也会由备选节点顶替。可以看到,DPOS共识并没有公众所说得不安全,那么大家对DPOS的误解又在哪里?
对DPOS的误解
随着区块链的快速升温,共识算法虽然在变多。但经过长时间检验、被大众熟知的却没有几个。尤其是在EOS自身巨大的光环效应,DPOS被放大在聚光灯下审视、评判、猜忌。其实讨论本是好事,可是基于正确认知的前提之下才可行。
“一票一投”和“一人一投”
我听到过对DPOS最大的非理性评判就是:“一票一投”假民主。诚然在社会生产活动中,人类尽可能的实现一人一投,在各级市县、国家的重要选举中,在每一次的重要岗位变动里,在好声音、相声小品的晋级赛内。社会为了每一个人而努力做到公平公正,一人一投。生为社会的一份子,我感恩这样的机制。但是这并不代表“一人一投”就适用于所有情景,尤其在金融世界里。
自从1606年荷兰发行了面值150荷兰盾的东印度公司股票开始,就很少听到对“一票一投”的反对,发展到现在,社会早已承认了金融世界中的投票制度,甚至你愿意,可以花钱买下一家公司所有权。仔细想来,“一票一投”更深层次的意义在于,你花费了比别人更多的金钱,就拥有更多风险,也理应获得更多的回报和控制权。DPOS共识机制之所以要选择一票一投,就是为了确保投入金钱最多的节点,在共识被破坏,运行不畅的时候,他们会是亏损最大的一方。只有这样的束缚才是有效的,如果持有1EOS的人和持有几百万EOS的人拥有相同的权力,那才是最大的不公。
去中心化=基础层存储价值?
是否足够的去中心化就可以等价于成为基础层来存储价值?其实用这句话来抨击DPOS根本站不住脚。5月26日,比特金遭受51%的双花攻击,11月29日-12月2日,加密货币Vertcoin遭到了51%双花攻击。不断在发生的例子,已经验证了单纯的共识算法不能保证安全。
我们要知道,不论什么共识,它的终极目的就是为了安全,为了保证存储在其上的价值安全。谈到去中心化,就必须要谈及被标榜为完全去中心化的BTC,难道它真的完全去中心化?前段时间吴忌寒在和奥本聪的算力战开打之前,说过比特币价格会受损。结果接下去几天就下跌。相比被矿场主宰的BTC,难道DPOS不是更加的去中心化么?
依然在发展的DPOS
合理的看待DPOS共识,并不是完美无瑕的。比如说选举21个超级节点,是否可以添加一定比例的考核,后面100个备选节点的收益是否太低导致积极性缺释,是否出现了一定的贿选情况,又该如何界定以及预防。但是这些问题都是在选举节点内的问题,并不会对出块部分造成影响,真正支撑DPOS的核心依然很健康。
在DPOS面临一些抨击的时候,一些潜在的信息也应该被公众知道。采用DPOS机制的并非只有EOS一家,Bitshare拥有101个节点、Steemit拥有21个节点、Lisk拥有101个节点、Ark拥有51个节点、Torn拥有27个节点、EOS Force拥有23个超级节点。
经BM之手,从Btishare第一次采用DPOS机制距离现在已经有3年了,期间又经过Steemit验证,我们可以看到DPOS机制没有被证伪,也没有被破坏,还被越来越多的项目采用、接纳。如果说一种共识有问题,那么怎么可能会用在更多的项目身上。
而且DPOS并不止于此,BM和他的团队依然在补充、完善共识机制,BM在2018年5月3日,在eos.io 3.0版本中,加强了最后不可逆块导致的DPOS共识丢失问题,DPOS,依然在健康的继续发展。
以上就是什么是DPOS?DPOS共识的秘密是什么呢?的相关介绍,希望小编的解说能让你真正的明白,更多数字货币及区块链知识下期币圈子小编再为大家解说。