“币嗨Bihi内容合伙人计划”赞助,了解详情请加微信:mangou1987
看了很多文章,感觉在共识算法上讲得都不是很清楚。但是这个环节却是整个区块链底层设计中最为重要的一环。区块链的底层技术——分布式公开账本——无非就是找一张方法来让大家一起算账,然后把一本属于全社会的账本算得清清楚楚,不被坏人所利用算错账。
所以,之所以说区块链是一个信任机器,就是因为有共识算法确保了这本账本的安全可靠、公开透明以及有效的激励维护。因此在整个区块链发展中,围绕共识算法的讨论和设计层出不穷,就是在性能和安全中权衡,得出一个又快又让人放心的算法。
下面介绍一下目前现有的共识算法。
工作量证明(PoW)
这是传统的比特币系统算法。比特币创始人中本聪在设计比特币时,定义为一个公共账本系统,以纸质账本为例,账本的每一页记载着系统里发生的所有交易,但一页计满时就需要翻页,翻页过程中就需要先把上一页的账本算清楚再接着记录下一页新的交易。
在比特币系统里面,一个区块就是账本的一页,在账本记账的过程叫做挖矿,而参与记账的电脑叫做矿工。为鼓励更多电脑参与记账并在旧区块结束、新区块开启前运算出账本情况,系统会对计算得最快的矿工进行奖励一定数量的比特币,使得全社会有越来越多的电脑参与记账、计算账目、维护账本。而获得比特币奖励的概率,跟电脑的算力有关。算力越快,对账目方程运算速度越快,就更有把握获得比特币。而整个系统的容错性是50%,也就是你只要把系统里面的占有50%算力的电脑攻击,那么就可以篡改这个公共账本(例如攻击者给自己的比特币钱包分多点比特币…)
但比特币能获得全社会的共识,很大程度就是来源于安全性。随着这个网络获得更多人认可,就会更多矿工加入,那么网络被攻击的可能性就越小,所以这是一个闭环加速的过程,所以比特币的安全性是随着分散性及算力增加而增加的。
优点:完全地去中心化,目前而言,是最安全和稳定的解决方案。
缺点:缺点十分明显。由于需要全民参与挖矿,需要的算力、电力等资源耗费越来越大。而且全民记账,确认时间慢,手续费较高。并且算力的追逐会导致节点集中,如比特大陆的矿池占有70%的比特币算力,导致完全去中心化成为了悖论。
权益证明(PoS)
既然通过耗费算力来维护的公共账本方案耗费资源,那有没有不耗费算力的呢?有的,这方面就像社会治理的投票制。美国大选也许就能类似比特币的PoW算法记账过程,而有些国家就有自己的特色,比如我们的祖国,就是一种节点代理制。因此在PoW之后,就有人提出了用一些大节点来代替分散式的每个节点,将这个网络分层了。简单来说,以前记账是系统所有矿工都要去验证的,但现在验证就交给一个人就行。但这个人的选择是非常难设计的,而PoS就是一种设计方法。有名的decred币就是采用PoS算法。
PoS就是根据每个节点所占有的比例和时间,来随机生成整个区块的验证节点。简单来说,就是越有钱(占有的代币),并且持有这个代币的时间,越有可能作为这个账本某一页的验证人。以前你为了能享有这个区块链系统比较大的话事权,你就需要去买更多矿机,但现在不用了,你直接囤币就行。因为你囤这个币越多,对这个系统的健康发展就越关心,所以乱记账的方式到了你这验证时,就可能会被否认掉。
优点:与PoW相对,优势是十分明显的,可以有效地缩短了区块的确认时间,提高了共识达成的速度,同时也节省了资源。而51%的攻击成本更高,因为不是算力了,而是要直接拥有51%的系统代币。而随着代币持有节点越来越分散,各个节点之间的实力角逐保证了安全性。
缺点:也容易沦为有钱人的工具。虽说需要51%的代币才能攻击系统,但是如果大户联立起来,很大可能就成了大户的收割工具。所以在选择节点上还没做好更完善的设计。而且持有代币的人未必会参与记账的,所以可能容易分叉,安全性会降低。
委托权益证明(DPoS)
一看这名字就知道这个算法是基于PoS算法提出来的,而其中著名的NEO和EOS都是采取了这个共识算法。这个算法非常有中国特色,与人民代表大会类似,就是首先通过全网持有代币者通过投票,选举出区块的生产者(BP)。而主链上的每一个区块是由一个生产者来验证整个区块的交易,确认记账无误。但一个BP验证完区块后,就需要换一个新的区块来验证,每个周期里面含有21个区块,因此每个周期需要21个区块生产者(BP)。而每次周期开始前,全网就需要重新选举获得。
这与PoS不同的是,全网在每一个区块周期开始时,就能投票选择代理我们进行验证的BP,因此即使在一个周期里面,出现了一些BP作恶,但是我们能在下一个周期出现时,即使将作恶的节点来剔除,这就导致了节点的作恶成本十分高。
这样就像我们选举人民代表大会制度一样,每5年就进行领导人换届,每次换届就相当于我们选出了一定数量的人民代表去中央参与会议,然后对新的管理班子进行选择的过程,代表人就代表我们行使最终投票权。很容易看到,由于存在淘汰制度,因此,可以肯定的是,如果犯了错误或者是作了恶的区块生产者,就会被我们剔除了BP名单。
优点:有点是十分明显的,有了21个节点行使验证,这个验证流程就能达到秒级,所以完全达到了商用级别。并且结合了拜占庭容错,提高了安全性。
缺点:弱去中心化,还是依赖代币。并且整个生态和投票人的素质息息相关,每个EOS持有者有义务为整个生态健康发展而努力。
佣兵相关文章:
通证经济:
项目分析:
EOS项目:
投资相关:
区块链科普:
币乎:https://bihu.com/people/692