【猫眼看全球】共识算法的“黑客指南”

2018-04-09  本文已影响128人  46879ab645d1

在每一个成功的加密货币背后,都有一个顶级的共识算法 -- 在加密领域,共识算法可以防止双重支出。虽然没有一个共识算法是完美的,但它们各有其优势。区块链创业公司patchLabsIO首席技术官、SF Ethereum Meetup创始人Zane Witherspoon将给大家简述当下大部分的主流共识算法 -- 从区块链发展之初到DAG (有向无环图)面世,共识机制是怎样演变的。

本文由猫眼财经聚焦编译自Hackernoon,原标题为“A hitchhiker's guide to consensus algorithms”,内容有一定删减。

来源 | Hackernoon

编译 | Meredith Yu 

工作量证明(PoW - 常用的共识算法

热门应用:比特币,以太坊,莱特币,狗狗币

优点:已经成熟投入使用

缺点:吞吐速度慢; 资源消耗大

工作量证明(PoW)是自区块链出现以来的第一种共识算法。该算法由中本聪设计,并用于记录比特币之间的交易。而世界各地的大规模采矿作业和巨型能耗也归因于PoW。我们已经知道这种算法是有效的,但在随着区块链技术的发展,PoW已经逐渐被淘汰 — 甚至于以太坊都从PoW中抽身而退,转到节能且经济效率高的PoS。有了这么多新的选择,一个新的区块链没什么理由去坚持用PoW了。

在PoW中,矿工解决困难却无用的问题来创造区块,而PoW本身也依托于“链越长越好”的系统。假设大多数矿工正在同一个链上工作,那么增长最快的链就是最长且最值得信赖的。因此,只要矿工投入的工作超过50%,那么比特币就是安全的。

权益证明(PoS) - 区块(链)的“新新人类”

热门应用: Decred、以太坊(即将投入应用)、点点币

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

缺点:“ 无风险” 问题

在PoS中,区块不是由挖矿的矿工创建的,而是由铸币工人来“下注”哪些区块是有效的。在多个分叉中,铸币工人会花他们的代币去投票支持某一个分叉。假设大多数人都投对了分叉,那么投错分叉的验证者会在正确的分叉上“失去他们赌注”。

权益证明的反对者常常会诟病其“ 无风险” 问题 — 验证者几乎不需要付出算力就可以支持一个分叉,而且可以对发生的每一个分叉进行双面投票。那么PoS中的分叉可能比PoW的更常见,这就会使人们质疑货币的可信度。

股份授权证明(DPoS) - 选择你的验证者


热门应用: Steemit、EOS、比特股

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

缺点:牺牲去中心化理念来换取高交易速度

股份授权证明(DPoS)是比特股创始人Daniel Larimer 的智慧结晶,这种共识系统其实和PoS差别很大。在DPoS中,代币持有者不会对区块本身的有效与否进行投票,而是投票选出代表来代表他们进行验证。DPoS系统中通常有21-100个当选代表。由于代表人数很少,他们可以有效地组织自己,并为每位代表创建指定时间段以发布代表区块。如果代表们不断缺席或发布无效交易,那么货币持有者会将其投票罢免,并选出可以胜任的代表。

在DPoS中,矿工们可以合作制造区块,而不是像PoW和PoS那样竞争记账权。通过部分集中创建区块,DPoS的交易吞吐量能够比其他大多数共识算法快几个数量级。EOS将成为第一个出块时间小于1秒的区块链,相较10分钟出块的比特币更加快速。

权威证明(PoA) - 相信权威

热门应用: POA Network、以太坊高文测试网

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

缺点:集中化系统

权威证明是另一种共识算法,交易有效性由被许可帐户进行验证 — 被许可账户类似于系统的“管理员”,它们是其他节点的权威。PoA具有高吞吐量,并针对专用网络进行了优化。但是由于PoA的高度中心化,公链很少应用这种共识机制。

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


热门应用:Algorand,Filecoin,Chia

优点:可定制; 可扩展性

缺点:激励机制较难设定

权重校验是基于Algorand共识模型的一个共识算法的广泛分类。具体来说就是,在PoS中,你所持有的代币数占整个网络的百分比代表了你“发现”下一个区块的概率,在PoW系统中,使用了一些其他相对加权的值。比如,Filecoin的Proof-of-Spacetime会根据你存储的IPFS数据量来进行加权,其他系统也将诸如声誉证明之类的纳入权重。

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

热门应用:超级账本、恒星币、Dispatch和Ripple

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

缺点:半可信

经典的拜占庭问题是说几个拜占庭将军带领着各自的军队,围绕着一座城市。他们必须一致决定是否进行攻击。如果某几位将军单打独斗,他们的围剿将宣告失败。将军们通常按距离分开,并且必须通过传递消息进行沟通。与此相同,一些加密货币协议使用某几种版本的BFT来达成共识,每种BFT都有自己的优点和缺点:


实用拜占庭容错(PBFT:拜占庭容错是这个问题的解决方案之一,也是Hyperledger Fabric目前正在使用的算法,只有很少的(通常小于20)预先选定的“将军”PBFT运行效率非常高。优点:高交易吞吐量   缺点:使用准入机制

联邦拜占庭协议(FBA): FBA是由Stellar和Ripple等货币使用的拜占庭将军问题的另一类解决方案 。也就是说,每一个拜占庭将军负责自己的链,他们一进来就建立真相排序消息。在Ripple中,将军们(验证者)由Ripple基金会预选。而在Stellar中,任何人都可以成为验证者,因此你需要选择自己信任的验证器。

由于其惊人的吞吐量,低交易成本和网络可扩展性,我认为FBA类共识算法是所有分布式共识算法中最好的一个。

有向无环图(DAG - 区块链杀手

热门应用:Iota,Hashgraph,Raiblocks / Nano

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

缺点:取决于实施

DAG是一种不使用区块链数据结构并且以异步处理交易为主的共识算法,与其他任何共识算法一样具有优势和劣势。

TangleTangle是Iota使用的DAG共识算法。为了发送Iota交易,你需要验证两个过往交易。这种二对一的付费共识增强了交易的有效性,Tangle从而获得更多的交易。因为共识是由交易确定的,那么理论上来说,如果有人能够产生1/3的交易,他们甚至可以将无效交易变成有效的。直到不够创建1/3的交易量时,Iota才能在一个名为“ The Coordinator ” 的集中式节点上对所有网络交易进行“双重检查””。Iota说, The Coordinator像系统的辅助轮一样工作,一旦Tangle足够大,将被移除.

Hashgraph:Hashgraph是由Leemon Baird开发的一种八卦协议共识算法。所有节点随机地与其他节点共享其已知交易,因此最终所有交易可传递到各个节点。Hashgraph速度非常快(每秒交易250,000次以上),且适用于私链或者联盟链,但短期内不会应用于以太坊、Dispatch等公链中。

区块点阵:在区块点阵中,每个用户(地址)都有自己的链条,只有他们可以写入,每个人都拥有所有链条的副本。而每笔交易都分解为发送方链上的发送区块和接收方链上的接收区块。这种独特的结构确实使区块点阵难以抵御诸如Penny-spend的特殊攻击途径 — 攻击者发送少量节点到多个空钱包中,以夸大链上必须跟踪的节点数量。

SPECTER 工作证明事件的序列化:通过递归选举确认交易,也就是所谓的SPECTER,它是一个提议的比特币扩展解决方案 — 利用PoWDAG的组合来达成可扩展的共识算法。在SPECTER中,区块被挖掘指向多个父级,而不仅仅是一个,所以网络每秒可处理多个区块。挖掘一个指向父级的区块可增强这些区块的有效性。与链越长越好PoW相比,SPECTER遵循子级越多的区块越好的原则。SPETER还没有广泛投入应用,新的攻击途径也有可能出现,但它依然是未来修复比特币的最佳方式之一。

对于共识算法,你有什么看法?欢迎在留言区与小编互动,也可以扫码加入我们的社群,与更多爱好者交流探讨。添加微信:maoyanqunzhu,即可申请入群哦~

上一篇下一篇

猜你喜欢

热点阅读