在每一个伟大的加密货币背后,都有一个很棒的共识算法。 没有共识算法是完美的,但它们各有其优势。 在加密领域,共识算法可以防止双重支出 。 以下简要介绍一些迄今为止流行的共识算法,从区块链到DAG以及其间的所有内容。


工作证明(PoW) - OG共识

拉一个蕾哈娜和工作工作的工作

流行的实现: 比特币 , 以太坊 , 莱特 币 , 狗狗 币 ,(其中大多数)

优点:我们知道它的工作原理

缺点:吞吐速度慢; 杀死地球

工作证明是第一个区块链共识算法。 Satoshi Nakamoto设计用于比特币区块链 ,我们希望PoW能够感谢我们在世界各地看到的大规模采矿作业和能耗。 我们知道它是有效的(我们可以对其他许多共识算法进行更多说明),但在游戏的这个阶段,它开始被认为是一项传统技术。 甚至以太坊正在从PoW迁移出更多的能源和经济高效的PoS。 有了这么多新的选择,很难看出为什么一个新的区块链会使用PoW。

在PoW中, 矿工解决困难,无用的问题来创造积木。 PoW运行在“最长的连锁赢利”系统上。因此,假设大多数矿工正在研究同一个连锁店,那么这个连锁店的增长速度最快将是最长和最值得信赖的。 因此,只要矿工投入的工作超过50%是诚实的,比特币就是安全的。


证明权益(PoS) - 街区(链)上的新孩子

斯塔基要去岔开你

流行的实现: Decred , Ethereum(很快) , Peercoin

优点 :攻击更昂贵; 更分散; 高效节能

缺点:没有什么风险

在PoS中,这些块不是由做矿工的矿工创建的,而是由铸币厂用来“下注”哪些矿块是有效的。 在分叉的情况下,minters会花费他们的代币投票支持哪个分支。 假设大多数人对正确的分支进行投票,那么对错误分支投票的验证者会在正确的分支上“失去他们的利益”。

关于证明权益的常见论点是股权无关 问题。 值得关注的是,由于它不像PoW那样支持分支,所以验证者几乎没有计算能力,验证者可以对发生的每一个分支进行投票。 PoS中的叉可能比PoW更常见,有些人担心这会损害货币的可信度。


授权证明(DPoS) - 选择您的验证器

只是避免说客,我们会好起来的

受欢迎的实现: Steemit , EOS , BitShares

优点:便宜的交易; 可扩展性; 高效节能

缺点:部分集中

DPoS是丹尼尔Larimer的脑子,实际上与PoS非常不同。 在DPoS中,令牌管理员不会对块本身的有效性投票,而是投票选举代表来代表他们进行验证。 DPoS系统中通常有21-100个当选代表。 代表们定期洗牌,并下达命令将代表块交付给代理人。由于少数代表允许他们高效组织,并为每位代表创建指定时间段以发布其代码块。 如果代表们不断缺席或发布无效交易,那么佼佼者将其投票出去,并以更好的代表取而代之。

在DPoS中,矿工们可以合作制造积木,而不是像PoW和PoS那样竞争。 通过部分集中创建块,DPoS能够比大多数其他共识算法快几个数量级。 EOS将成为块时间<1秒的第一块区块链! 比比特币10分钟的时间更快一点。


权威证明(PoA) - 相信这一切

你会尊重我的权威!

流行的实现: POA.Network , 以太坊高文测试网

优点:高吞吐量; 可扩展性

缺点:集中系统

权威证明是一种一致性算法,交易由经批准的账户验证,类似于系统的“管理员”。 这些帐户是其他节点从其收到真相的权威。 PoA具有高吞吐量,并针对专用网络进行了优化。 由于其集中性,您不太可能看到PoA在公共链上运行。


重量证明(PoWeight) - 更大更好

验证的任何

受欢迎的实现: Algorand , Filecoin , Chia

优点:可定制; 可扩展性

缺点:激励可能是一个挑战

权重校验是基于Algorand一致性模型的共识算法的广泛分类。 总体思路是,在PoS中,网络中拥有的令牌的百分比代表了“发现”下一个块的概率,在PoWeight系统中,使用了一些其他相对加权的值。 具体的例子:Filecoin的Proof-of-Spacetime会根据您存储的IPFS数据量加权。 其他系统可以包括诸如声誉证明之类的权重。


拜占庭容错(BFT) - 围攻区块链!

那些将军真的很喜欢围城

受欢迎的实现: Hyperledger , Stellar , Dispatch和Ripple

优点:高吞吐量; 低成本; 可扩展性

缺点:半可信

这个经典问题是分布式计算,通常由拜占庭将军解释。 问题在于几个拜占庭将军及其拜占庭军队各自的部分,并围绕着一座城市。 他们必须一致决定是否进行攻击。 如果一些将军没有其他人攻击,他们的围困将以悲剧告终。 将军们通常按距离分开,并且必须通过消息进行沟通。 一些加密货币协议使用某种版本的BFT来达成共识,每种都有自己的优点和缺点:

实用的拜占庭容错(PBFT) :这个问题的第一个解决方案之一是创造了实用的拜占庭容错 。 Hyperledger Fabric目前正在使用,只有很少的(<20,之后事情会有所变化),预先选定的将军PBFT运行得非常有效。 优点:高交易吞吐量缺点:集中/许可

联邦拜占庭协议(FBA): FBA是由Stellar和Ripple等货币使用的拜占庭将军问题的另一类解决方案。 总体思想(heh)是每个拜占庭将军负责他们自己的连锁店,在他们进入建立真相时对信息进行分类。 在波纹中,将军们(验证者)由Ripple基金会预选。 在Stellar中,任何人都可以成为验证者,因此您可以选择要信任的验证器。

对于其令人难以置信的吞吐量,低交易成本和网络可扩展性,我相信FBA类一致性算法是我们在分布式共识方面发现的最好的。


定向非循环图(DAG) - 又名区块链杀手!

意粉共识

受欢迎的实现: Iota , Hashgraph , Raiblocks / Nano

优点:网络可扩展性; 低成本

缺点:取决于实施

DAG比Vitalik的Tinder配置文件现在更热。 DAG是一种共识形式,它不使用区块链数据结构,并且大部分是异步处理事务。 大的专业人员在理论上每秒处理无限次的交易,但DAG像其他任何共识一样具有优势和劣势。

纠结: Tangle是Iota使用的DAG共识算法。 为了发送Iota交易,您需要验证您收到的两个以前的交易。 二对一的付费共识增强了交易的有效性,更多的交易被添加到纠纷中。 因为共识是由交易确定的,理论上,如果有人能够产生1/3的交易,他们可以说服网络的其余部分他们的无效交易是有效的。 直到有足够的交易量创建1/3的交易量变得不可行时,Iota才能在称为“ The Coordinator ”的集中式节点上对所有网络交易进行“双重检查”。 Iota说,协调员像系统的训练轮一样工作,一旦缠结足够大,将被移除。

Hashgraph :Hashgraph是由Leemon Baird开发的一种八卦协议。 节点随机地与其他节点共享其已知事务,因此最终所有事务都闲聊到所有节点。 哈希图非常快(每秒250,000次交易),但不能抵抗Sybil攻击。 所以Hashgraph是专用网络的一个很好的选择,但你不会在任何时候看到它在像Ethereum或Dispatch这样的公共网络中实现。

块格:纳米(以前称为Raiblocks)在区块链上运行时称为块格。 Block-lattice是一种结构,每个用户(地址)都有自己的链条,只有他们可以写入,每个人都拥有所有链条的副本。 每笔交易都分解为发送方链上的发送模块和接收方链上的接收模块。 Block-lattice似乎几乎不能工作,但它已经在外面奔跑了。 独特的结构确实使Block-lattice对于一些独特的攻击媒介开放,例如Penny-spend攻击,攻击者通过向大量空的钱包发送微不足道的数量来夸大链节点数量必须跟踪的数量。

SPECTER: 工作证明事件序列化:通过。确认事务
递归选举,更名为SPECTER,是一个提议的比特币扩展解决方案,利用PoW和DAG的组合来达成可扩展的共识。 在SPECTER中,块被挖掘指向多个父母,而不仅仅是一个,所以网络可能每秒处理多个块。 挖掘指向某些父块的块支持这些块的有效性。 与PoW的“最长连锁胜利”相比,SPECTER使用的是“最赚钱的方块”.SPETER还没有在野外进行过战斗测试,新的攻击媒介可能会出现,但它感觉像一个非常聪明的方式来修复比特币。

https://hackernoon.com/a-hitchhikers-guide-to-consensus-algorithms-d81aae3eb0e3

【译】A Hitchhiker’s Guide to Consensus Algorithms相关推荐

  1. 【Paper】2017_The distributed optimal consensus algorithms for general linear multi-agent systems

    Zhang F, Wang H, Tan C, et al. The distributed optimal consensus algorithms for general linear multi ...

  2. The Hitchhiker’s Guide to Python! — The Hitchhiker's Guide to Python

    The Hitchhiker's Guide to Python! - The Hitchhiker's Guide to Python The Hitchhiker's Guide to Pytho ...

  3. Ehcache 1.5.0 User Guide - Cache Eviction Algorithms (缓存移出算法)

    Ehcache 1.5.0 User Guide -  Cache Eviction Algorithms (缓存移出算法) Ehcache 1.5.0 用户指南) E_mail:jianglike1 ...

  4. [译]1-Key-Value Coding Programming Guide 官方文档第一部分

    Key-Value Coding Programming Guide 官方文档第一部分 2018.9.20 第一次修正 iOS-KVC官方文档第一部分 Key-Value Coding Program ...

  5. 新书介绍 | 图算法指南,A Guide to Graph Algorithms

    来源:专知 本文为书籍,建议阅读5分钟本书介绍图算法研究前沿领域. 图论研究的是一种广泛的数学结构,用于刻画离散的对象及其之间的关系.而图算法则研究图论中计算问题的求解方法.图论和图算法在物理.化学. ...

  6. [译] Kotlin Flow 官方 Guide 指南(2021-06-13)翻译

    原文链接:https://github.com/Kotlin/kotlinx.coroutines/blob/master/docs/topics/flow.md 文章目录 Flow 是冷流 Flow ...

  7. 读书笔记 - The Hitchhiker's Guide to Python

    网址 http://docs.python-guide.org/en/latest/ Reuqests库的作者写的经验 1. 项目需要一个好的结构 https://www.kennethreitz.o ...

  8. python 系统管理_系统管理 — The Hitchhiker's Guide to Python

    Puppet¶ Puppet 是来自Puppet Labs的IT自动化和配置管理软件,允许系统管理员定义他们的IT基础设施状态, 这样就能够提供一种优雅的方式管理他们成群的物理和虚拟机器. Puppe ...

  9. 「论文自译」MIT 6.824 In Search of an Understandable Consensus Algorithm (Extended Version)

    文章目录 Abstract 1 - Introduction 2 - Replicated state machines 3 - What's wrong with Paxos? 4 - Design ...

最新文章

  1. [转] 机器学习那些事儿
  2. 新华社:华尔街专家警告2019年美股或面临剧烈调整
  3. MySQL weekday()函数
  4. start mysql server_mysql5我的难点,快捷操作(mysql.server stop start),开机启动
  5. 【一步一步学习mysql】数据库操作
  6. c++打印素数表(线性筛)
  7. Php维语翻译,维语翻译_维吾尔翻译_维语翻译在线
  8. 小乖乖专属-从数据库里查信息发邮件
  9. LVS DR TUN(IP Tunneling)介绍
  10. MATLAB下批量修改图片名称
  11. 查看自己电脑的开关机记录
  12. 车联网上云最佳实践 七
  13. JavaScript中的计时器与定时器
  14. JavaSE2(Java基础)
  15. 王道书 P360 T03(计数排序)
  16. 黑盒测试和白盒测试定义及区别
  17. 论文分享——推荐算法
  18. 金龙鱼粮油的高光和益海嘉里的隐忧:巨无霸迫切需要一个本土标签
  19. Python WingIDE中文乱码修复
  20. java对PDF电子盖章

热门文章

  1. asp.net 发送邮件
  2. 【转】如何设计动态(不定)字段的产品数据库表?
  3. Kafka之Purgatory Redesign Proposal (翻译)
  4. 租车信息系统数据库设计(3)
  5. python 做词云 -jupyter跟随王树义教程学习
  6. leetcode刷题实录:3
  7. 系统安装操作优化:chapter 3 安装windos操作系统。
  8. 1.在Linux下如何使用软盘、光盘以及DOS等非Linux分区
  9. Resnet的pytorch官方实现代码解读
  10. oracle 一行转多行,oracle 一行变多行