由于赢国的某些特殊原因,某些视频,图片无法上传,看无损版本,到 github仓库
共识算法的百科全书
共识算法是作为区块链技术,DAG技术的基础,同时也是其重要组成部分。如果没有共识算法,那么区块链顶多就是一个不可变(immutable)的数据库。
接下来,介绍主要的共识算法,并且评估其优点和缺点。当然也是希望大家能多多拍砖,如果有错误,我会第一时间更正。
当然,这篇文章希望你能有对区块链共识算法基础的知识。
1. Proof of Work (PoW)
优点:
- 从2009年到现在都稳定运行,是经过测试的有效的共识算法。
缺点:
- 达成共识慢。
- 使用大量能源,对环境不友好。
- 容易受到经济规模的影响。
使用案例:Bitcoin,Ethereum,Litecoin,Dogecoin etc。
类型:竞争性共识算法。
解释:这是第一种共识算法(由中本聪在他的文章中提出),以创造分布式无信任的共识,解决双重支出问题。POW并不是一个新概念,但是中本聪将这个和其他现有概念——加密签名、merkle链和P2P网络——结合成一个可行的分布式共识系统,其中加密货币是第一个和基本的应用,非常具有创新性。
区块链的参与者(被称为矿工)必须解决一个复杂但无用的计算问题,以便在区块链中加入一大块交易。
基本上,这样做是为了确保矿工们投入一些资金/资源(采矿机器)来完成这项工作,这表明他们不会损害区块链系统,因为损害系统将导致他们失去投资;这样伤害自己。
问题的难度可以在运行时改变,以确保持续的阻塞时间。有时,有一种情况是,不止一个矿工同时解决这个问题。在这种情况下,矿商选择其中一条链,最长的链条被认为是赢家。因此,假设大多数矿工都在同一条链条上工作,那么最快的矿商将是最长和最值得信赖的。因此,只要有超过一半的工作是由诚实旷工提供的,那么比特币是安全的。
更多阅读: Proof of work
2. Proof of Stake
优点:
- 能源效率高
- 攻击者发动攻击的成本更高
- 不受规模经济影响
缺点:
- nothing-at-stake problem (没有利害关系)
使用案例:Ethereum (soon), Peercoin, Nxt。
类型:竞争性共识算法。
解释:创建股权证明作为工作证明(PoW)的替代,以解决后者的固有问题。在这里,您不必使用挖掘,而是必须在系统中拥有一些赌注(硬币)。因此,如果您持有10%的股份(硬币),那么您下一次开采的概率将为10%。
挖掘需要大量的计算能力来运行不同的加密计算以解决计算挑战。计算能力转化为工作证明所需的大量电力和电力。 2015年,据估计,一笔比特币交易需要每天为1.57个美国家庭供电所需的电量。因此,为了节省电源浪费,引入了PoS。
在PoS中,一美元是一美元。例如,考虑10,000个矿工,每个花费1美元/分钟(8760万美元/年)可能比一个花费10,000美元/分钟的采矿池(尽管每年花费8,760万美元)的散列能力更少。但是在PoS的情况下,你不能一次性使用它。这里一美元是一美元。因此,它不易受规模经济影响。
此外,引用Vlad Zamfir的观点,攻击PoS系统比攻击PoW系统更昂贵。
PoS重复51%攻击的成本情况就好像每隔一轮“你的ASIC农场被烧毁”一样。
这意味着每次攻击PoS系统时都会丢失赌注,而在PoW中,如果攻击系统,则不会丢失采矿设备或硬币;相反,你只是让它(攻击PoW系统)难以执行。
但是可能出现的一个问题是“没有利害关系”的问题,其中块生成器通过投票支持多个区块链历史(分叉)而没有任何损失,从而阻止了共识的实现。
[图片上传失败...(image-d886ae-1532875907241)]
因为与工作量证明系统不同(你需要进行大量计算以扩展链),因此在几个链上工作的成本很低。许多项目试图以不同的方式解决这个问题(在进一步阅读中提到)。例如。如上所述,其中一个解决方案是惩罚不好的验证者。
更多阅读:Proof of stake
3. Delayed Proof-of-Work
优点:
- 节能
- 增加安全性
- 通过间接提供类似比特币(或者其他安全的链)的安全性,而不需要支付比特币交易过程的手续费,这样能增加其他区块链的价值。
缺点:
- 只有使用PoW或PoS的区块链才能成为这种共识的一部分。
- 在“Notaries Active”模式下,必须校准不同节点(公证节点和普通节点)的哈希值,否则哈希值之间的差异可能会爆炸(有关更多说明,请参见下文)
使用案例:Komodo
类型:合作的共识
解释:
延迟工作证明(dPoW)是一种混合共识方法,允许一个区块链利用通过二级区块链的散列能力提供的安全性。这是通过一组公证节点实现的,这些公证节点将第一个区块链中的数据添加到第二个区块链上,这将要求两个区块链被破坏以破坏第一个区块链的安全性。第一个使用这种共识方法的是Komodo,它附加在比特币区块链上。
[图片上传失败...(image-4b116b-1532875907241)]
依赖于dPoW的区块链可以利用工作证明(PoW)或股权证明(PoS)共识方法来发挥作用;它可以附加到任何所需的PoW区块链。但是,比特币的哈希率目前为dPoW保护的区块链提供了最大程度的安全性。下图显示了各个记录与主要区块链及其附加的PoW区块链之间的关系:
[图片上传失败...(image-f46afd-1532875907241)]
dPoW系统中有两种类型的节点:公证节点和普通节点。 64个公证节点由dPoW区块链利益相关者选出,以将来自dPoW区块链的已确认块添加(公证)到附加的PoW区块链上。一旦块完成,其哈希值将被添加到由33个公证节点签名的比特币交易中,从而在比特币区块链上创建dPoW块哈希记录,该记录由大多数网络的公证节点进行公证。
为了防止公证节点之间的采矿战争,这会降低网络效率,Komodo设计了一种循环采矿方法,可以在两种模式下运行。 “无公证”模式允许所有网络节点挖掘块,类似于传统的PoW共识机制;但是,在“公证人活动”模式下,网络公证人将以显着降低的网络难度率进行挖掘。在该方案中,允许每个公证人以其当前难度率挖掘一个块,而其他公证节点必须在10倍高度挖掘并且所有正常节点将总是以公证节点的难度率的100倍挖掘。
但这会导致一些问题。正如我与Komodo创始人的一次谈话中提到的那样,它可能导致公证矿工和普通矿工之间的差异很大:
[图片上传失败...(image-529152-1532875907241)]
dPoW系统旨在允许区块链在没有公证节点的情况下继续运行。在这种情况下,dPoW区块链可以根据其初始共识方法继续运行;但是,它将不再具有附加区块链的附加安全性。
[图片上传失败...(image-3460d3-1532875907241)]
因此,延迟工作证明可以利用这种共识方法提高安全性并减少任何区块链的能耗。例如,由于Komodo使用Equihash散列算法来防止使用ASIC进行挖掘,并且它依赖于循环挖掘公证节点的方法,因此激励结构可以降低节点之间竞争导致过度使用能源或算力的可能性。
此外,像Komodo这样的dPoW区块链可以通过间接提供比特币安全性而不需要支付比特币交易的成本来增加其他区块链的价值:使用dPoW的第三个区块链可以将自己附加到Komodo,随后将其附加到比特币。通过这种方式,dPoW区块链可以从比特币的高哈希率中受益,而无需直接连接到比特币区块链。
最后,系统内公证节点和正常节点的分离功能确保初始共识机制在公证节点失败的情况下继续运行。这种相互依赖性激励其他网络支持比特币网络的持续维护,而不会完全依赖其直接功能。
更多阅读: Delegated-Proof of Work
4. Delegated Proof-of-Stake
优点:
- 节能
- 快速,Steemit,一个高流量的博客网站使用它。EOS出块时间0.5秒。
缺点:
- 有一点中心化
- 高风险的参与者可以投票自己成为验证者。最近在EOS中看到的东西。
使用案例:BitShares, Steemit, EOS, Lisk, Ark
类型:合作的共识
解释:
在DPoS中,系统中的利益相关者可以选出将代表他们投票的领导者(证人)。这使得它比普通的PoS更快。
例如。在EOS的情况下,21名证人一次当选,并且一组节点(潜在证人)保持待命状态,这样如果证人节点的某人死亡或做了一些恶意活动,那么它可以立即被新节点取代。证人收取生产积木的费用。费用由利益相关者确定。
通常,所有节点以循环方式一次一个地生成块。这可以防止节点发布连续的块,从而阻止他执行双重攻击。如果见证人在他们的时间段中没有产生一个阻止,则跳过该时间段,并且下一个证人产生下一个阻止。如果证人不断错过他的积木或发布无效交易,那么赌注者会将他投票并以更好的证人代替他。
在DPoS中,矿工可以合作制作积木,而不是像PoW和PoS那样竞争。通过部分集中创建块,DPoS能够比大多数其他一致性算法快几个数量级地运行。 EOS(使用dPoS)是第一个实现0.5秒阻塞时间的区块链!
那很快。
更多阅读:Delegated-Proof of Stake
5. Proof-of-Authority
优点:
- 节能
- 快
缺点:
- 有一点中心化,可以在公链上应用,但通常是在私链和联盟链中应用。
使用案例:POA.Network, Ethereum Kovan testnet, VeChain
类型:合作的共识
解释:在基于PoA的网络中,事务和块由经批准的帐户验证,称为验证器。验证器运行软件,允许它们将事务放入块中。该过程是自动化的,不需要验证器持续监控其计算机。但是,它确实需要维护计算机(授权节点)不妥协。
确定验证器必须满足的三个主要条件是:
1.必须在链上正式验证身份,并且可以在公共可用域中交叉检查信息
2.必须难以获得资格,才能获得验证所获得和重视的区块的权利。 (例如:潜在的验证人需要获得公证书)
3.建立权力机构的检查和程序必须完全统一
PoA个人有权成为验证人,因此有动力保留他们获得的职位。通过将声誉附加到身份上,验证者可以通过激励来维护交易过程,因为他们不希望自己的身份与负面声誉相关联,从而失去了来之不易的验证者角色。
更多阅读:Proof of Authority
6. Proof-of-Weight
优点:
- 节能
- 高度可定制和可伸缩。
缺点:
- 激励可能很难。
使用案例: Algorand
类型:竞争性共识。
解释:
权重证明是基于Algorand共识模型的共识算法的广泛分类。一般的想法是,在PoS中,您在网络中拥有的令牌百分比代表您“发现”下一个块的概率,在PoWeight系统中,使用其他一些相对加权的值。它的一些实现是声誉证明和空间证明。
更多阅读:Proof of Weight
7. Proof of Reputation
优点:
- 对私有或者联盟允许网络是非常有利的。
缺点:
- 只能够用于私有或者联盟允许的区块链。
使用案例:GoChain
类型:合作的共识。
解释:与权威证明相似。正如GoChain所说:
声誉证明(PoR)共识模型取决于参与者保持网络安全的声誉。参与者(区块签名者)必须具有足够重要的声誉,如果他们试图欺骗系统,他们将面临重大的财务和品牌后果。这是一个相对的概念,因为几乎所有企业如果被抓到试图欺骗就会遭受重大损失,但是大公司通常会有更多损失,因此被选择的公司使用较少(较小的企业)。
一旦公司证明声誉并通过验证,他们就可以作为权威节点投票进入网络,此时,它的运作方式类似于权威证明网络(PoA),其中只有权威节点才能签署和验证块。
您可以在进一步阅读中找到更多关于声誉证明的信息。
更多阅读:Proof of Reputation
8. Proof of Elapsed Time
优点:
- 参与成本低。因此,更多的人可以轻松参与,从而分散。
- 所有参与者都很容易验证领导者是否合法选择。
= 控制领导人选举过程的成本与从中获得的价值成正比。
缺点:
- 即使它很便宜,你也必须使用专门的硬件。因而无法大规模采用。
- 不适合公共区块链。
使用案例:HyperLedger Sawtooth
类型:竞争性共识。
解释:
PoET是一种共识机制算法,通常用于许可的区块链网络,以决定网络上的采矿权或区块获胜者。许可的区块链网络是那些要求任何潜在参与者在被允许加入之前进行身份识别的网络。基于公平彩票系统的原则,其中每个节点同样可能成为赢家,PoET机制基于在最大可能数量的网络参与者之间公平地分配获胜的机会。
PoET算法的工作如下。网络中的每个参与节点需要等待随机选择的时间段,并且完成指定等待时间的第一个节点赢得新块。区块链网络中的每个节点都会生成一个随机等待时间,并在指定的持续时间内进入休眠状态。首先唤醒的那个 - 即具有最短等待时间的那个 - 唤醒并向区块链提交新块,向整个对等网络广播必要的信息然后重复相同的过程以发现下一个块。
PoET网络共识机制需要确保两个重要因素。首先,参与节点真正地选择确实是随机的时间而不是由参与者为了获胜而故意选择的较短持续时间,并且两个,获胜者确实已经完成了等待时间。
PoET概念是由着名芯片制造巨头英特尔于2016年初发明的。它提供了一个现成的高科技工具来解决“随机领导者选举”的计算问题。
根深蒂固的机制允许应用程序在受保护的环境中执行受信任的代码,这确保满足两个要求 - 即随机选择所有参与节点的等待时间和获胜参与者的等待时间的真正完成。
在安全环境中运行可信代码的机制还负责网络的许多其他必需品。它确保可信代码确实在安全环境中运行,并且不能被任何外部参与者改变。它还确保结果可由外部参与者和实体验证,从而提高网络共识的透明度。
PoET控制共识流程的成本并使其保持灵活性,以使成本与流程中获得的价值保持成比例,这是加密货币经济继续蓬勃发展的关键要求。
更多阅读:Proof of Elapsed Time
9. Proof of Capacity aka Proof of Space
优点:
- 与PoW类似,但使用空间而不是计算。因此非常环保。
- 通过确定处理器的L1高速缓存是否为空(例如,有足够的空间来评估没有高速缓存未命中的PoSpace协程)或包含拒绝被驱逐的协程,可以用于恶意软件检测。
- 可用于反垃圾邮件措施和拒绝服务攻击防范。
缺点:
- 激励可能是一个问题。
使用案例:Burstcoin, Chia, SpaceMint
类型:合作的共识。
解释:
更多阅读:空间证明(PoSpace),也称为容量证明(PoC),是一种通过分配非平凡的内存量来表明一个人对服务(如发送电子邮件)有合法利益的方法。或磁盘空间来解决服务提供商提出的挑战。该概念由Dziembowski等人制定。在2015年。(Ateniese等人的论文,同时也称为空间证明,实际上是一种记忆难度的工作证明协议。)
空间证明与工作证明非常相似,除了使用存储而不是计算。空间证明与记忆难度函数和可检索性证明有关,但也有很大不同。
空间证明是证明者发送给验证者以证明证明者已经预留了一定量空间的一段数据。实际上,验证过程需要高效,即消耗少量的空间和时间。为了稳健,如果证明者实际上没有保留所声称的空间量,则证明者应该很难通过验证。实现PoSpace的一种方法是使用hard-to-pebble graphs。验证者要求证明者建立一个hard-to-pebble graph的标签。证明者承诺标签。验证者然后要求证明者在承诺中打开几个随机位置。
由于存储的通用性和存储所需的较低能源成本,空间证明被视为更公平和更环保的替代方案。
更多阅读:Proof of Space
10. Proof of History
使用案例:Solana
解释:这里的基本思想是,您可以证明事务发生在事件之前和之后的某个时间,而不是信任事务上的时间戳。
当您拍摄“纽约时报”封面照片时,您正在创建一份证据,证明您的照片是在该报纸发布后拍摄的,或者您可以通过某种方式影响“纽约时报”的出版物。通过历史证明,您可以创建历史记录,以证明事件在特定时刻发生。
[图片上传失败...(image-40fa97-1532875907241)]
历史证明是一种高频可验证延迟功能。可验证的延迟功能需要特定数量的连续步骤来评估,然后产生可以有效和公开验证的独特输出。
此特定实现使用顺序的预映像抗性散列,该散列连续运行,其中先前的输出用作下一个输入。定期记录计数和当前输出。
对于SHA256散列函数,如果没有使用 2¹²⁸核心的暴力攻击,这个过程是不可能并行化的。
然后我们可以确定每个计数器在生成时已经过了实时,并且每个计数器的记录顺序与实时相同。
您可以在进一步阅读中找到所有细节。
更多阅读: Proof of History
11. Proof of Stake Velocity
使用案例:Reddcoin
解释:
更多阅读:提出了股权速率证明(PoSV)作为工作证明(PoW)和股权证明(PoS)的替代方案,以保护对等网络并确认Reddcoin的交易,Reddcoin是专门为促进社交互动而创建的加密货币。数字时代。 PoSV旨在鼓励所有权(股权)和活动(Velocity),它直接对应于Reddcoin作为真实货币的两个主要功能:价值存储和交换媒介。 Reddcoin也可以作为异构社会背景下的帐户单位。
详细描述可在进一步阅读中找到。
更多阅读: Proof of Stake Velocity
12. Proof of Importance
优点:
- 在评估股份方面比PoS更好。
使用案例:NEM
解释:
NEM的共识网络不仅取决于硬币的数量,还取决于生产系统行动应该获得报酬的可能性。放置区块的可能性是各种因素的组成部分,包括恶名(由不同目的设计框架控制),平衡以及进出该位置的交易数量。这被称为重要性计算。这为“有用的”系统成员提供了更全面的图像。
为了有资格进行重要性计算,用户需要在其余额中至少有10,000个XEM。考虑到流通中只有不到90亿的XEM,实现这一目标并不是过于昂贵。这个10,000 XEM的阈值有可能在未来发生变化,但就目前而言,它仍然是相同的。但重要性计算是利用特定算法完成的,而不仅仅是其份额的概率和大小。
同样重要的是要注意NEM的重要性证明可以抵抗任意操纵。使用共识的潜在机制减轻Sybil攻击和循环攻击。同样重要的是要记住重要性的证据不是赌注的证明,尽管很容易在两者之间找到相似之处。
更多阅读: Proof of Importance
13. Proof of Burn
使用案例:Slimcoin, TGCoin (Third Generation Coin)
解释:通过燃烧证明,您可以通过将硬币发送到无法挽回的地址来“烧掉”硬币,而不是将钱投入昂贵的计算机设备中。通过将您的硬币投入永不落地,您将获得终身特权,可以根据随机选择过程在系统中进行挖掘。
根据如何实施燃烧证据,矿工可能会烧掉本国货币或替代链的货币,比如比特币。你燃烧的硬币越多,被选中开采下一个区块的机会就越大。
随着时间的推移,你在系统中的股份会衰减,所以最终你会想要燃烧更多的硬币来增加你在彩票中被选中的几率。 (这模仿比特币的采矿过程,你必须不断投资更现代的计算设备来维持散列能力。)
虽然刻录证明是工作证明的有趣替代方案,但协议仍然不必要地浪费资源。另一个批评是,采矿权只是那些愿意焚烧更多钱的人。
14. Proof of Identity
解释:身份证明(PoI)是一种加密证据(数据片段),它告诉任何用户知道与授权身份进行比较并以加密方式附加到特定交易的私钥。来自某个组的每个人都可以创建一个PoF(仅一个数据块)并将其呈现给任何人,例如提供给处理节点。
更多阅读:Proof of Identity
15. Proof Of Activity
使用案例:Decred
解释:
为了避免恶性通货膨胀(当太多货币充斥系统时会发生什么),比特币只能产生2100万比特币。这意味着,在某些时候,比特币区块奖励补贴将结束,比特币矿工将只收取交易费用。
一些人猜测这可能会导致“公地悲剧”导致的安全问题,人们为了自身利益行事并破坏系统。因此,活动证明被创建为比特币的替代激励结构。活动证明是一种混合方法,结合了工作证明和权益证明。
在活动证明中,采矿以传统的工作证明方式开始,矿工们正在竞相解决加密难题。根据实现,挖掘的块不包含任何事务(它们更像模板),因此获胜块将只包含标题和矿工的奖励地址。
此时,系统切换到权益的证明。基于标题中的信息,选择随机的验证器组来对新块进行签名。验证器拥有的系统中的硬币越多,他或她被选中的可能性就越大。一旦所有验证器签名,模板就会变成一个完整的块。
如果某些选定的验证器不可用于完成块,则选择下一个获胜块,选择一组新的验证器,依此类推,直到块接收到正确数量的签名。矿工和在区块上签字的验证人之间分摊费用。
对活动证明的批评与两种工作证明(挖掘块需要太多能量)和桩的证据(没有任何东西可以阻止验证者进行双重签名)相同。
更多阅读:
16. Proof of Time
使用案例:Chronologic
解释:
时间证明由Chronologic引入。他们计划建立一个单独的区块链。正如他们的首席开发人员所说:
The problem here is that the largest number that can be stored in a variable in solidity is of the order of magnitude 1076. This is making it difficult for us to work with time and the generation of tokens.
更多阅读: Proof of Time
17. Proof of Existence
使用案例:Poex.io, HeroNode, DragonChain
解释:
存在证明是一种在线服务,通过比特币区块链中的时间戳交易来验证特定时间内计算机文件的存在。
它于2013年作为开源项目推出。它由Manuel Araoz和Esteban Ordano开发。
用户案例:
- 数字签署协议,不泄露实际内容。
- 在不泄露实际数据的情况下展示数据所有权。
- 记录时间戳。
- 证明所有权
- 检查文档完整性
更多阅读: Proof of Existence
18. Ouroboros
使用案例:Cardano
解释:
卡尔达诺使用的一种股权证明(具有严格的安全保证)。
更多阅读: Ouroboros
19. Proof of Retrievability
使用案例:Microsoft
解释:
可检索性证明(POR)是文件系统(证明者)对客户端(验证者)的紧凑证明,即客户端可以完全恢复它,目标文件F是完整的。由于POR比F本身的传输具有更低的通信复杂性,因此它们是用于高保证远程存储系统的有吸引力的构建块。它作为云计算系统的一致性算法非常有用。
详细描述可在进一步阅读中找到。
更多阅读: Proof of Retrievability
20. Byzantine Fault Tolerance
优点:
- 快速,可扩展。
缺点:
- 通常用于私人的、许可的网络。
使用案例:Hyperledger Fabric, Stellar, Ripple, Dispatch
解释:
这个经典问题是分布式计算,通常由拜占庭将军解释。问题在于拜占庭军队的几位拜占庭将军及其各自的部分已经包围了一座城市。他们必须一致决定是否进行攻击。如果一些将军在没有其他将军的情况下进攻,他们的围攻将以悲剧告终。将军通常按距离分开,必须传递信息进行交流。一些加密货币协议使用某种版本的BFT达成共识,每种都有各自的优点和缺点:
Practical Byzantine Fault Tolerance (PBFT):这个问题的第一个解决方案之一是创造了实用拜占庭容错。目前正由Hyperledger Fabric使用,只有少数(<20,之后事情稍微有点)预先选定的将军PBFT运行效率极高。
- 优点:高交易吞吐量
- 缺点:中心化/需要许可
Federated Byzantine Agreement (FBA):
FBA是Stellar和Ripple等货币使用的拜占庭将军问题的另一类解决方案。一般的想法是,每个负责他们自己的链的拜占庭将军在他们进来建立真相时对消息进行分类。在Ripple中,将军(验证者)由Ripple基金会预选。在Stellar中,任何人都可以成为验证器,因此您可以选择要信任的验证器。
由于其令人难以置信的吞吐量,低交易成本和网络可扩展性,我相信FBA类的一致性算法是我们发现的最佳分布式共识。
21. Delegated Byzantine Fault Tolerance (dBFT)
优点:
- 快速,可扩展。
缺点:
- 每一个都努力成为根链,可能会有多个根链。
使用案例:Neo
解释:
dBFT称为委托拜占庭容错,一种拜占庭容错共识机制,通过代理投票大规模参与共识。 NEO令牌的持有者可以通过投票选择它支持的簿记员。所选择的簿记员组通过BFT算法达成共识并生成新块。 NEO网络中的投票实时进行,而不是按照固定期限进行。
对于由n个共识节点组成的共识系统,dBFT为f = [(n-1)/ 3]提供容错。此容错还包括安全性和可用性,可抵抗一般和拜占庭故障,并且适用于任何网络环境。 dBFT具有良好的最终性,这意味着一旦确认是最终的,块就不能分叉,并且事务不会被撤销或回滚。
在NEO dBFT共识机制中,生成一个块需要大约15到20秒,交易吞吐量最高可达1000 TPS,这在公共链中表现出色。通过适当的优化,有可能达到10,000 TPS,使其能够支持大规模的商业应用。
dBFT结合了数字身份技术,这意味着簿记员可以是个人或机构的真实姓名。因此,由于对它们的司法判决,可以冻结,撤销,继承,检索和所有权转移。这便于在NEO网络中注册合规金融资产。 NEO网络计划在必要时支持此类操作。
更多阅读: dBFT
22. RAFT
[图片上传失败...(image-52e100-1532875907241)]
优点:
- 比Paxos算法更加简单的算法模型,但提供更多安全性。
- 可在许多语言中使用。
缺点:
- 通常用于私人的,许可的网络。
使用案例:IPFS Private Cluster, Quorum
解释:
Raft是一种共识算法,旨在替代Paxos。它意味着通过逻辑分离比Paxos更容易理解,但它也被正式证明是安全的,并提供了一些额外的功能。 Raft提供了一种在计算系统集群中分布状态机的通用方法,确保集群中的每个节点都同意一系列相同的状态转换。它有许多开源参考实现,具有Go,C ++,Java和Scala中的完整规范实现。
筏通过当选的领导者达成共识。筏集群中的服务器是领导者或追随者,并且在选举的精确情况下可以是候选者(领导者不可用)。领导者负责将日志复制到关注者。它通过发送心跳消息定期通知追随者它的存在。每个跟随者都有一个超时(通常在150到300毫秒之间),它期望领导者的心跳。接收心跳时重置超时。如果没有收到心跳,则关注者将其状态更改为候选人并开始领导者选举。
强烈建议使用此信息图表来理解RAFT。
更多阅读: Raft
23. Stellar Consensus
[图片上传失败...(image-34ed5c-1532875907241)]
优点:
- 分散控制
- 低延时
- 弹性信用
- 渐近的安全
使用案例:[Stellar](https://www.stellar.org/
解释:
它基于联合拜占庭协议(如上所述)。
恒星共识协议(SCP)提供了一种达成共识的方法,而不依赖于封闭系统来准确记录金融交易。 SCP具有一系列可证明的安全属性,可以优化安全性而不是活跃度 - 如果节点分区或行为不当,它会暂停网络的进度,直到达成共识。 SCP同时享有四个关键属性:分散控制,低延迟,灵活信任和渐近安全性。
更多阅读: Stellar Consensus
24. Proof of Believability
[图片上传失败...(image-c914b7-1532875907241)]
优点:
- 通过使用Servi的概念(在解释中提到),使传统的PoS更加分散。
- 与传统PoS相比,快速完成。
使用案例:IOST
解释:
传统的Proof-of-Stake共识机制面临的主要挑战是集中化的趋势。为了减轻这种风险,IOST引入了Servi既衡量用户对社区的贡献,又鼓励成员为IOSChain的持续发展做出贡献。它具有以下属性:
- Non-tradable:由于Servi不是作为交换媒介而设计的,因此Servi不能以任何方式进行交易或交换。
- Self-destructive:验证块后,系统将自动清除验证器拥有的Servi余额。通过这种方式,具有高可信度得分的节点可以轮流验证块,以确保公平块生成过程。
- Self-issuance:在某些贡献之后,Servi将自动生成并存入用户帐户,例如提供社区服务,评估其他实体提供的服务和/或进行其他特殊贡献。
传统的区块链系统在安全性和吞吐量之间存在固有的折衷,具体取决于碎片大小。具有大量小碎片的系统可提供更好的性能,但对不良演员提供的弹性较小,反之亦然(Casper也面临的问题之一)。为了以保持安全和提高吞吐量的方式打破权衡,IOST为IOSChain提出了一种创新的可信度证明(PoB)共识协议。 PoB保证节点行为不端的可能性微乎其微,同时通过size-one-shard显着增加事务吞吐量。
可比性证明共识协议使用分片内可信第一方法。该协议将所有验证者分为两组,一个可信的联盟和一个正常联盟。可信的验证器在第一阶段快速处理交易。之后,普通验证人员在第二阶段对交易进行抽样和验证,以提供最终结果并确保可验证性。节点被选入可信联盟的机会由可信度得分确定,该可信度得分由多个因素(例如,令牌余额,对社区的贡献,评论等)计算。具有较高可信度得分的人更有可能被选入可信联盟。可信的验证器遵循程序来决定已提交的交易及其订单的集合,并按顺序处理它们。可信的验证器也形成较小的组 - 每组一个验证器。交易将在这些可信的验证者之间随机分配。因此,它们产生具有极低延迟的较小块。
但是,由于只有一个节点正在执行验证,因此可能会引入安全问题。因此,行为不当的验证器可能会提交一些损坏的事务。为了解决这个安全问题,他们指定了一个采样概率,即普通验证器将对事务进行采样并检测不一致性。如果验证器被检测为不良行为,它将丢失系统中的所有令牌和声誉,而被欺诈的用户将获得任何损失的补偿。可信的第一种方法使处理事务处理得非常快,因为只有一个(可信的)验证器正在进行验证,并且不太可能行为不端。
要了解有关其分片策略的更多信息,请参阅进一步阅读。
更多阅读: Proof of Believability
25. Directed Acyclic Graphs
优点:
- 由于其非线性结构,高度可伸缩。
- 快速。
- 节能。
- 结尾是立即实现的。
缺点:
- 智能合约的实现只能通过使用oracles来实现。
[图片上传失败...(image-a0ea20-1532875907241)]
使用案例:Iota, HashGraph, Byteball, RaiBlocks/Nano
DAG或有向非循环图是区块链的更一般形式。由于其独特的结构,它们因固有的高可伸缩性而广受欢迎。
基本上,在任何区块链系统中,我们都有一个线性结构,一个接一个的块被添加到链中。这使得区块链本身就很慢,因为这些区块不能平行地添加到链中。但是在并行添加DAG块/事务的情况下,每个块/事务确认多个先前块。这使得DAG具有固有的可扩展性。
依据下面几个不同,有几个变种:
- 用于选择哪些先前块以验证也称为尖端选择算法的算法。
- 如何完成交易顺序?
- 如何达到最终目标?
下面是几个用DAGs的受欢迎的项目。
25 a) Tangle (IOTA)
[图片上传失败...(image-6bd90f-1532875907241)]
解释:Tangle是Iota使用的DAG一致性算法。要发送Iota交易,您需要验证您之前收到的两笔交易。这种一对一的支付前瞻性共识加强了交易的有效性,更多的交易被添加到Tangle。由于交易确定了共识,理论上,如果有人可以生成1/3的交易,他们可以说服网络的其余部分,他们的无效交易是有效的。直到有足够的事务量创建1/3的卷变得不可行,Iota就会在一个名为“协调器”的集中节点上“仔细检查”所有网络的事务。 Iota说协调员就像系统的训练轮一样工作,一旦Tangle足够大就会被移除。
更多阅读:Tangle
25 b) Hashgraph
[图片上传失败...(image-767817-1532875907241)]
解释:Hashgraph是由Leemon Baird开发的八卦协议共识。节点随机地与其他节点共享它们的已知事务,因此最终所有事务都被闲置到所有节点。 Hashgraph是私有网络的一个很好的选择,但你不会看到它在像以太坊这样的公共网络中实现或者很快就会发送。
更多阅读: HashGraph
25 c) Holochain
解释:非常类似于HashGraph,但不是Hashgraph。它提供了一种可用于构建分散式应用程序的数据结构。您有自己的链,可以添加数据,包括金融交易。链可以以复杂的方式合并,拆分和交互。数据以分散的方式存储(如Bittorrent)。数据具有散列,散列是与数据对应的数学指纹。如果有人篡改数据,则会注意到数据和散列之间的不匹配,并且数据被拒绝为无效。数字签名保证了数据的作者身份。这是Bittorrent加git加上数字签名。
更多阅读: HoloChain
25 d) Block-Lattice (Nano)
解释:
Nano(以前称为Raiblocks)在区块链上运行,称为块状格子。块格是一种结构,每个用户(地址)都有自己的链,只有他们可以写,每个人都拥有所有链的副本。
[图片上传失败...(image-61b2-1532875907241)]
每个事务都分解为发送方链上的发送块和接收方链上的接收块。 Block-lattice似乎太简单了,但它已经在野外运行了。这种独特的结构确实让Block-lattice对一些独特的攻击向量开放,比如Penny-spend攻击,攻击者通过向链接数量增加链接节点必须通过向大量空钱包发送可忽略的数量来跟踪。
更多阅读: Nano
25 e) SPECTRE
解释:工作证明事件的序列化:通过递归选举确认事务,更好地称为SPECTER,是一种提议的比特币扩展解决方案,它利用PoW和DAG的组合来达到可扩展的共识。在SPECTER中,块被挖掘为指向多个父节点,而不仅仅是一个节点,因此网络可能每秒处理多个块。挖掘指向某些父块的块支持这些块的有效性。与PoW的“最长连锁胜利”相比,SPECTER使用的东西就像“拥有最多儿童胜利的街区”.PETTER尚未在野外进行过战斗测试,并且可能会出现新的攻击媒介,但它感觉非常像聪明的潜在方式来修复比特币。
更多阅读: SPECTRE
25 f) ByteBall
解释: Byteball使用DAG,它在事务之间建立部分顺序,并在DAG中添加主链。
[图片上传失败...(image-770366-1532875907241)]
主链(MC)允许定义交易之间的总订单:在MC之前(直接或间接)包含的交易在总订单中被认为是较早的。如果存在双倍支出,则总订单中较早出现的交易版本视为有效,其他所有交易均视为无效。
主链是根据图中交易的位置确定性地定义的。有关详细信息,请参阅白皮书,但作为一般规则,MC倾向于由知名用户撰写的交易,我们称之为证人。证人列表由用户自己定义,因为它们包括他们发布的每个交易中的列表。然后,MC遵循DAG内的路径,以便:
- 1.链上相邻交易的见证清单相同或仅有一个突变,
- 2.与其他连锁店相比,该连锁店经历了大量见证撰写的交易。
它也是第一个在系统中包含oracles的平台,这是在DAG中添加智能合约功能所必需的。
以上是非常简短和粗略的描述,省略了许多重要细节,请参阅白皮书了解完整的技术故事。
更多阅读: ByteBall
此文根据 Vaibhav Saini 的文章 ConsensusPedia: An Encyclopedia of 30 Consensus Algorithms翻译而来。