在每一种的加密货币背后,都有一种伟大的共识算法。 但没有一种共识算法是完美的,但它们各有优缺点。他们的主要目标是防止双重支出。
重要的是要记住,它们都不是绝对完美的,在分散或部分分散化的环境中,不存在任何普遍达成共识的方法。每一个都有它的优点和缺点。这就是为什么算法被不断地更新补并充各种各样的插件的原因。有时,不同共识的方法会混合在一起,形成混合体。目前,有几种不同的协商共识机制。在我们回顾一些与之相关的内容之前,有两件事很重要:1.目前,还没有达成共识的一种普遍方法。2. 此外,没有绝对好的或坏的算法——它只是关于会计系统的要求。让我们来看看其中一些:
工作量证明(Proof of Work):
PoW是目前区块链技术最常见、最可靠的共识机制之一。这种机制的名称不言自明。为了参与事务验证,必须公开证明已经完成了一定的工作。这条规则禁止假选民参加投票。你做的工作越多,你提出下一个建议的机会就越大。PoW是第一个区块链共识算法。由中本聪(Satoshi Nakamoto)设计,用于比特币区块链。我们要感谢全球范围内的大规模采矿作业和电力消耗。我们知道它是可行的(这比我们能说的许多其他共识算法要多得多),但在游戏的这个阶段,它开始被视为一种遗留技术。
权益证明(Proof of Stake):
这种机制非常类似于公司股东之间的投票——持有更多股份的人获得更多的权力。所以,重要的不是声音的数量,而是声音的分量。在权益证明中,一个新区块的创建者是根据其财富以确定性的方式选择的,也被定义为权力。持有大量代币的用户有很高的动机来确保系统节点之间的协商共识,并以正确的方式实现。除此之外,如何保证网络安全,防止各种攻击、故障、虚假交易确认等诈骗行为的发生,也是他们关注的问题。该算法的优点:验证者诚实的动机很简单。缺点:实际上很难构建一个基于pos的系统来考虑所有可能的恶意行为场景。
委托证明 (Delegated Proof of Stake):
DPoS与PoS有很大的不同,在这里,代币持有者本身并不负责块的有效性,而是选择委托来为它们进行验证。在DPoS系统中,通常有21-100个选定的代表。所选的委托会定期更改,并分配一个订单来交付它们的块。如果委托的数量较少,则允许它们有效地组织自己,并创建设计的时间间隔来发布块。如果委托人员经常丢失它们的块,或者发布无效的事务,代币持有者将它们投票排除,并使用其他选定的委托替换它们。与PoW和PoS不同,DPoS中的挖掘人员可以协作开发块。
拜占庭式容错 (Byzantine Fault Tolerance)
BFT是用来修复一个不可靠节点的问题。如果社区的任何成员向其他成员发送关于事务的不一致信息,区块链的可靠性就会崩溃,并且没有中央权威可以介入来纠正它。为了解决这个问题,PoW已经通过它的处理能力提供了BFT。另一方面,PoS需要一个更加明确的解决方案。节点将定期投票以识别真正的事务。使用与BFT一起工作的PoS版本似乎是在区块链中批准交易的最有希望的方法。
SIEVE
简言之,SIEVE增强了原来的PBFT算法,PBFT主要关注于提供一个实用的拜占庭状态机复制,该复制通过假设存在独立节点故障并操纵由特定独立节点传播的消息来容忍拜占庭式错误。该算法设计为在异步系统中工作, 并通过添加推测性执行和验证阶段来优化, 使其具有出色的开销运行时, 并且延迟仅略有增加。1)检测和过滤可能的不确定性请求,建立进入PBFT三相协议协议的事务的确定性,2)除了经典PBFT提供的对验证器输入状态的一致意见外,还允许对验证器的输出状态运行一致意见。SIEVE以模块化的方式从PBFT派生而来,它重用PBFT视图更改协议,以降低复杂性,避免从头实现新的一共识协议。
权重证明(Proof of Weight)
权重证明是一种广泛分类的协商共识算法。一般的思想是,在PoS中,您在网络中拥有代币的百分比表示您“发现”下一个块的概率,在权重证明系统中,可以使用其他一些相对加权的值。它的一些实现是其声誉和空间的证明。
空间证明 (Proof of Space)
空间证明与工作量证明非常相似,只不过它不是用来计算的,而是用来存储的。空间证明与内存困难函数和可检索性证明有关。空间证明是证明程序发送给验证程序的一段数据,用来证明程序保留了一定数量的空间。为了实现其实用性,验证过程需要高效,即消耗少量的空间和时间。为了稳妥起见,如果验证程序实际上没有保留所声明的空间量,那么它应该很难通过验证。
信誉证明 (Proof of Reputation)
PoR共识模型依赖于参与者的声誉来保证网络的安全。参与者(区块签名者)必须拥有足够重要的声誉,如果他们试图欺骗系统,就会面临重大的财务后果。这是一个相对的概念,因为几乎所有的企业如果被发现试图欺骗,都会遭受重大损失,但大公司通常会损失更多。
唯一节点列表 (Unique Node Lists)
Ripple使用被称为“唯一节点列表”(Unique Node list, UNL)的“集体信任子网络”协商算法来处理高延迟,这通常是bft容忍系统的特征。为了达成共识,节点需要用它自己的UNL代替整个网络。这种机制允许不足五分之一的节点出错。
烧钱证明 (Proof of Burn)
在“烧钱”测试中,你不是花钱买昂贵的电脑设备,而是把代币“烧”到一个无法回收的地址。您可以在一个基于随机选择过程的系统上获得终身特权。矿商可以烧本国货币,也可以烧其他任何货币。你烧的金币越多,你被选中开采下一个方块的几率就越高。如果你在系统中的赌注失败了,那么最终,你会想要燃烧更多的代币来增加你被选中进入下一个方块的几率。PoB是PoW的一个很好的选择,尽管协议会浪费资源。
行动证明 (Proof of Activity)
PoA是比特币矿商的另一种激励机制。这结合了PoW和PoS。在PoA中,矿商从PoW方法开始解决这个难题。如果挖掘出的块不包含任何事务,系统将切换到PoS。根据头信息,将分配一组验证器对新块进行签名。如果验证器拥有更多的代币,他就有最大的机会被选中。一旦所有选中的验证器签名,模板就会变成一个块。如果验证器未能完成该块,那么将选择一组新的验证器,这个过程将继续,直到一个块接收到正确数量的签名。奖励在挖掘人员和验证人员之间进行分配。PoA比PoW和PoS需要更多的能量。
消逝时间证明 (Proof of Elapsed Time)
PoET是一种协商共识机制算法,通常用于被许可的区块链网络,以决定网络上的采矿权或区块赢家。获准的区块链网络是指那些要求潜在参与者在被允许加入之前先表明身份的网络。就像彩票系统的原则一样,即每个节点都有均等的机会成为赢家,PoET机制基于将中奖的机会公平地分配给尽可能多的网络参与者。
权威证明 (Proof of Authority)
权威证明(PoA)是一种可用于授权账簿的协商共识算法。它使用一组“权限”,这些“权限”是指定的节点,允许它们创建新块并保护分类账。使用PoA的账簿需要大多数权威机构的签名才能创建一个块。
重要性证明(PoI)
这种协商共识的网络不仅取决于代币的数量,而且取决于生产系统行动应该得到报酬的可能性。标记一个块的机会是各种因素的一个组成部分,包括恶名(由一个不同的专门设计的框架控制)、平衡,以及往返于该位置事务的数量。这称为重要性计算。