1.2.3共识机制

共识层

下面我们对几种算法进行简单的介绍

1.2.3共识机制_第1张图片
55CC5967-815C-4F6F-BCFF-B502ED6ABB36.png

1、PoW(工作量证明机制)

PoW机制诞生于1997年Adam Back 设计的Hashcash系统,它最初被创造出来用于防御邮件系统中漫天遍地的垃圾邮件。2009年,中本聪将PoW机制运用于比特币区块链网络中,作为达成全网一致性的共识机制。从严格意义上讲,比特币中所采用的是一种可重复使用的Hashcash工作证明,使得生成工作证明量可以是一个概率意义上的随机过程。在该机制中,网络上的每一个节点都在使用SHA256哈希算法运算一个不断变化的区块头的哈希值。共识要求算出的值必须等于或值小于某个给定的值。在分布式网络中,所有的参与者都需要使用不同的随机数来持续计算该哈希值,直到达到目标为止。当一个节点的出了确切的值,其他所有的节点必须相互确认该值的正确性。之后,新区块中的交易将将被验证以防欺诈。然后,用于计算的交易信息的集合会被确认为认证结果,用区块链中的新区块表示。在比特币中,运算哈希值的节点被称作“矿工”,而PoW的过程被称为“挖矿”。由于认证的计算是一个耗时的过程,所以也提出了相应的激励机制(例如向矿工授予一小部分比特币)。总的来说,工作量证明就是对于工作了的证明,每个区块加入到链上,必须得到网络参与者的同意验证,矿工对它完成了相对应的工作量。PoW的优点是完全的去中心化和分布式账薄。缺点也很明显,即消耗资源:挖矿行为造成了大量的资源浪费,同时PoW达成共识的周期也比较长,比特币网络会自动调整目标值来确保区块生产过程大约需要10分钟,因此它不是很适合商业运用。

2.PoS(股权证明机制)

PoS的想法源于尼克。萨博,是PoW的一种节能替代选择,它不需要用户在不受限制的空间中找到一个随机数,而是要求人们证明货币数量的所有权,因为其相信拥有货币数量最多的人攻击网络的可能性更低。由于基本账户余额的选择是非常不公平的,因为单一最富有的人势必在网络中占主导地位,所以提出了许多解决方案,结合股权来决定谁来创建下一个块。其中Blackcoin使用随机选择来预测下一个创建者,而Peercoin则倾向于基于币龄来选择。Peercoin首次开创性地实现了真正的股权证明,它采用工作量证明机制发现新币,采用股权证明机制维护网络安全,这也是“虚拟货币”历史上的一次创举。同比特币网络要求证明人执行一定量的工作不同,该机制只需要证明人提供一定数量“数字货币” 的所有权即可。在股权证明机制中,每当创建一个区块时,矿工需要创建一个称为“币权”的交易,这个交易会按照一定的比例预先将一些币发给矿工。然后股权证明机制根据每个节点特有代币的比例和时间,依据算法等比例降低节点的挖矿难度,以加快节点寻找随机数的速度,缩短达成共识所需的时间。与PoW相比,PoS可以节省更多的资源,更有效率。但是,由于挖矿成本接近于零,因此可能会遭受攻击。且PoS在本质上仍然需要网络中的节点进行挖矿运算,所以它同样难以应用于商业领域。 
1.2.3共识机制_第2张图片
image.png

3.DPoS(股权授权证明机制)

DPoS由比特股项目组发明,股权拥有者选举他们的代表来进行区块的生产和验证。DPoS类似于现代企业董事会制度,比特股系统将代币持有者称为股东,由于股东投票选出101名代表,然后由这些代表负责生成和验证区块。持币者若想成为一名代表,需先用自己的公钥去区块链注册,获得一个长度为32位的持有者身份标识符,股东可以对这个标识符以交易的形式进行投票,得票数前101位被选为代表。代表们轮流产生区块,收益平分。如果有的代表不老实生产区块,很容易被其他代表和股东发现,他将立即被踢出“董事会”,空缺位置由票数排名102的代表自动填补。DPoS的优点在于大幅减少了参与区块验证和记账的节点数量,从而缩短了共识验证所需要的时间,大幅提高了交易了效率。从某种角度来说,DPoS可以理解为多中心系统,兼具去中心化和中心化优势。

4.PBFT(实用拜占庭容错算法)

这个算法最初出现在MIT的Miguel和Barbara Lisokov的学术论文中,初衷是为一个低延迟存储系统所设计,歼敌算法的复杂度,该算法可以应用于吞吐量不大但需要处理大量事件的数字资产平台。它允许每个节点发布公钥,任何通过节点的消息都由节点签名,以验证其格式。验证过程分为三个阶段:预备、准备、落实。如果已经收到超过1/3不同节点的批准,服务操作将是有效的。实用PBFT,区块链网络N个节点中可以包含f个拜占庭恶意节点,其中f=(N-1)/3。换句话说,PBFT确保至少2f+1个节点在将信息添加到分布式共享账簿之前达到共识。目前,HyperLedger联盟、中国ChianLedger联盟等诸多区块链联盟都在研究和验证这个算法的实际部署和应用。

你可能感兴趣的:(1.2.3共识机制)