美文网首页区块链研习社
小白区块链笔记007:几个常见的共识机制

小白区块链笔记007:几个常见的共识机制

作者: 来吃布丁 | 来源:发表于2019-03-07 21:10 被阅读4次

    比特币是区块链技术的第一个应用,比特币采用了工作量证明(PoW)共识机制。共识机制简单的说采取一种方案,在众多节点中选出一个可以被大家认可的节点,来将数据记录在一个区块中。随着技术的不断发展,PoW共识方案也暴露出了不少缺陷,因此不断有人试图提出新的方案来克服旧方案的缺陷。今天会做一个简单的共识机制的汇总分享给大家。

    1.工作量证明机制(Proof of Work, PoW)

    PoW是比特币系统采用的共识机制,简单来说,就是通过对比各个节点计算一道难题的时间,最先解出答案的计算机胜出,此计算机拥有了一个区块的记录圈,同时也会得到部分比特币的奖励。

    选择的难题是解出一个符合特定要求的哈希函数的解,比特币中使用的是SHA-256哈希函数,特定的要求是指:对一个区块的头部进行两次哈希运算,要求得到的哈希值前n位为0。n的值会定期根据网络中的计算机的计算能力自动调整,以保证解出这个难题的平均时间大约为10分钟,n的值越大,解题的难度就越高。

    解题的方案就是不断重复运算,一个区块的头部中包含一个随机数,每次对区块头进行运算,如果结果不符合要求,就改变这个随机数后再通过哈希运算,直到结果符合要求。如果一个节点最先解出了符合要求的答案,也就是找到了这个随机数,使得区块头经过两次哈希运算的前n位为0,则节点会向全完广播这个信息,其他未计算出结果的计算机会停止运算,认可这个计算出结果的计算机拥有区块的记录权。胜出的计算机会将最新一个区块追加到区块链末尾,然后开始下一轮工作量证明的过程。

    比特币最开始设想通过CPU的计算能力进行工作量证明的竞争,但随着时间的推移,从CPU运算开始变为GPU运算、FPGA直至目前广泛使用的专门用于哈希运算的ASIC矿机,计算能力越来越集中,这和最初的去中心化的设想越来越违背。而且大量计算能力被用于消耗在工作量证明过程中,消耗了大量的电能,也因此一致被许多人诟病。因此,出现了一些其他的新的机制。

    CPU-GPU-FPGA-ASIC

    2.权益证明机制(Proof of Stake, PoS)

    PoS机制最基本的思想就是:通过‘币龄’来竞争。在这个机制里,‘币龄’和节点拥有的货币和其持有时间相关,不同的系统中可能计算方式会有不同。最简单的算法就是:货币数量乘以拥有货币的时间。比如,A持有10单位货币1天,B持有5单位货币5天,那么A的币龄就是10,B的币龄是5×5=25。因此A持有的货币更多,但由于其持有时间较短,A的权益小于B的权益。如果参与竞争B会胜出,但同时也会将B的币龄清零,PoS机制会选择消耗币龄最多的链条为最终共识。

    这里我们可以看出,持有货币时间越长,其权益越大。为了防止有人囤积货币,企图攻击网络。PoS中往往会对最大币龄进行限制,同时限制一个账户进行竞争的时间间隔,有些系统还会规定经过一定次数确认的数据不可更改。

    虽然PoS的出现可以解决PoW机制中大量计算能力被浪费的缺陷,但它仍然会使得积累货币较多的成员拥有优势,并没有彻底解决权利出现集中的问题。

    3.权益授权证明机制(Delegated Proof of Stake, DPoS)

    DPoS引入了民主投票的机制,每个参与者都可以对节点进行投票,作为对某一节点的信任和授权,获得支持的节点作为代理人,如果这些代理人作恶,投票者可以改投其他人来更换代理人。在网络中,得票多的节点在共识的竞争中便有了更多胜出的机会,如果在竞争中胜出,则胜出的节点和投票者都会得到相应的奖励。

    DPoS是一种比较灵活的共识模型,目前很多区块链项目都采用了这种机制。投票的机制使得权利分散到参与的各个节点手中,同时通过投票选出多个代理节点参与竞争,减少竞争节点的数量使得系统的运行效率更高,这是一种“弱中心化”的方式。可以以我国的人民代表大会的制度来做简单的理解,人民投票选出人大代表,表示对其信任和授权,人大代表在聚集到一起,讨论对某一个议题的共识。在相对小的范围内进行共识的竞争,使得效率更高。如果没有这种制度而采用所有人都参与的全民公投,系统成本会大大增加,效率会大大降低。


    DPoS简易示意图

    总结一下,目前区块链的发展还处于一个比较初期的阶段,区块链的各种共识机制也层出不穷,本文仅对三种常见的共识机制作了简要的介绍。各种机制各有优缺点,针对各种机制的争论也在不断进行,而对于这些新的共识机制的安全性可靠性等方面还有待更深入的研究。除了上面提到的几种,目前还有一些其他共识协议也有着不小的影响力,如实用拜占庭容错协议(Practical Byzantine Fault Tolerance, PBFT),Raft共识协议,Ripple协议等。相信随着技术的发展,最终会形成一些对共识机制的共识,很多问题也会迎刃而解。

    相关文章

      网友评论

        本文标题:小白区块链笔记007:几个常见的共识机制

        本文链接:https://www.haomeiwen.com/subject/jjtkpqtx.html