在每一个伟大的数字货币背后,都有一个很好的共识算法。没有一种共识算法是完美的,但它们都有各自的优点。在密码术的世界里,存在着防止双倍支出的共识算法。这里有一个到目前为止最流行的一些算法的快速概述,从区块链到DAG和所有介于两者之间的东西。
工作量证明(PoW)
流行的实现方式:比特币、Ethereum、Litecoin、Dogecoin(大多数比特币)
优点:我们知道它是有效的
缺点:缓慢的吞吐量;
工作证明是第一个区块链共识算法。由中本聪(Satoshi Nakamoto)设计,用于比特币区块链。我们要感谢全球范围内的大规模采矿作业和电力消耗。我们知道它是可行的(对于许多其他的共识算法,我们可以说它是可行的),但在游戏的这个阶段,它开始被视为一种遗留技术。甚至以太坊也在从PoW迁移到更节能、更经济的PoS。有了这么多新的替代方案,很难理解为什么新的区块链会还会使用PoW。
在POW中,矿工们通过解决一些困难的、无用的问题来制造块。PoW运行在“最长链获胜”的系统上。“因此,假设大多数矿商都在同一条链上工作,那么增长最快的那条链将是最长、最值得信赖的。”因此,只要矿商投入的工作中有50%以上是诚实的,比特币就是安全的。
权益证明(PoS)
一些常用的实现: Decred、Ethereum、Peercoin
优点: 攻击更昂贵;更多的分散
缺点: 没有什么利害关系
在PoS中,块不是由正在工作的矿工创建的,而是由矿工用他们的代币“打赌”哪些块是有效的。在使用分叉的情况下,铸造者使用代币投票来支持某个分叉。假设大多数人都在正确的分叉上投票,那么在错误的分叉上投票的验证器就会在正确的分叉上“失去他们的利益”。
权益证明的常见论点是利益无关问题。令人担忧的是,由于与PoW不同,验证器几乎不需要计算能力来支持一个分叉,所以验证器可以为发生的每个分叉的两边投票。这样一来,在PoS的分叉可能会比POW的分叉普遍得多,一些人担心这会损害货币的信誉。
委托权益关系证明 (DPoS)
流行的实现: Steemit, EOS, bitshare
优点: 廉价的交易;可伸缩性的;
缺点: 部分集中
DPoS是Daniel Larimer的产物,实际上和PoS有很大的不同。在DPoS中,代币拥有者并不会投票给块本身,而是投票给选举人来代表他们进行验证。DPoS系统中一般有21-100名当选代表。代表们定期洗牌,并接到命令,要把他们的块送进去。只有少量的委托允许它们有效地组织自己,并为每个委托创建指定的时间间隔来发布它们的块。如果委托持续丢失它们的块或发布无效的事务,赌注就会将它们的投票排除,并使用更好的委托替换它们。
在DPoS中,采矿者可以协作生成块,而不是像在PoW和PoS中那样进行竞争。通过部分集中化块的创建,DPoS能够比大多数其他共识算法运行速度快几个数量级。EOS设置为第一个块乘以《 1秒的区块链!比比特币的10分钟阻塞时间快一点。
权威证明(PoA)
流行的实现: POA.Network, Ethereum Kovan testnet
优点: 高吞吐量;可伸缩性的
缺点: 集中系统
PoA是一种共识算法,其中事务由经过批准的帐户验证,有点像系统的“管理员”。这些帐户是其他节点从其接收真相的权威。PoA具有较高的吞吐量,并针对私有网络进行了优化。由于PoA的集中性,您不太可能看到它在公共区块链上运行。
权重证明(PoWeight)
流行的实现: Algorand、Filecoin、Chia
优点: 可定制;可伸缩性的
缺点: 激励可能是一个挑战
PoWeight是一种广泛分类的协商共识算法。一般的想法是,在PoS系统中,您在网络中拥有代币的百分比代表您“发现”下一个块的概率,在PoWeight系统中,可以使用其他一些相对加权的值。具体示例:Filecoin的PoWeight是根据您存储的IPFS数据的多少来确定的。其他系统可能包括一些权重,比如声誉证明。
拜占庭式容错(BFT)
流行的实现: Hyperledger, Stellar, Dispatch和 Ripple
优点: 高吞吐量;低成本;可伸缩的
缺点: 半信任
这个经典问题是分布式计算,通常用拜占庭将军来解释。问题是几个拜占庭将军和他们各自所在的拜占庭军队包围了一座城市。他们必须一致决定是否进攻。如果一些将军没有攻击其他将军,他们的围攻将以悲剧告终。将军们通常隔着一段距离,必须传递信息进行沟通。一些加密货币协议使用一些版本的BFT来达成共识,每个协议都有各自的优缺点:
实用拜占庭式容错(PBFT):最早解决这个问题的方法之一就是发明实用拜占庭式容错。优点:高事务吞吐量。缺点:集中。
联邦拜占庭协议(FBA): FBA是另一种解决拜占庭将军问题的方法,类似于Stellar和Ripple。一般的想法是,每一个拜占庭将军,对他们自己的锁链负责,在他们进来建立真理时,对信息进行分类。在Ripple基金会中,将军(验证器)是预先选定的。在Stellar系统中,任何人都可以是验证程序,您可以选择信任哪个验证程序。
由于其惊人的吞吐量、低事务成本和网络可伸缩性,我相信FBA类的协商共识算法是我们发现的用于分布式协商共识的最佳算法。
定向无环图(DAG)
流行的实现: Iota, Hashgraph, Raiblocks/Nano
优点: 网络可伸缩性;低成本
缺点: 取决于实现
DAG现在比Vitalik的Tinder更火。DAG是一种共识形式,它不使用区块链数据结构,主要异步处理事务。从理论上讲,big pro是每秒无限次的交易,但与其他共识一样,DAG也有优点和缺点。
Tangle: Tangle是Iota使用的DAG共识算法。为了发送Iota事务,您需要验证接收到的前两个事务。随着越来越多的交易被添加到混乱之中,“一赔二、一付一”的共识增强了交易的有效性。因为共识是由事务建立的,理论上,如果有人能产生1/3的事务他们就能说服网络的其他部分。除非有足够的事务量,以至于无法创建三分之一的事务量,否则Iota就是在一个名为“协调器”的集中节点上“重复检查”所有网络事务。Iota说,协调员就像系统的辅助轮,一旦缠结足够大,就会被移除。
Hashgraph: Hashgraph是由Leemon Baird开发的一个八卦协议共识。节点随机地与其他节点共享它们已知的事务,因此最终所有的事务都被散布到所有节点。Hashgraph非常快(每秒超过250,000个事务),但是不能抵抗Sybil攻击。所以Hashgraph对于私有网络来说是一个很好的选择,但是你不会很快看到它在公共网络中实现,比如Ethereum或者Dispatch。
Block-lattice: Nano(以前称为Raiblocks)在区块链上运行时带有一个称为Block-lattice的扭转。Block-lattice是一个结构,在这个结构中,每个用户(地址)都拥有自己只能写入的链,每个人都拥有所有链的副本。每个事务都被分解为发送方链上的发送块和接收方链上的接收块。块似乎太简单而不能工作,但它已经在野外运行了。这种独特的结构确实让块向一些独特的攻击向量开放,比如Penny-spend攻击,攻击者通过向大量的空钱包发送微不足道的数据来增加节点必须跟踪的链的数量。
工作证明事件的序列化: 通过确认交易
Recursive Elections (更广为人知的名称是SPECTRE)是一种提议的比特币可伸缩性解决方案,它利用PoW和DAG的组合来达成可伸缩的共识。在SPECTRE中,块被挖掘指向多个父节点,而不仅仅是一个父节点,因此网络可能每秒处理多个块。挖掘指向某些父块支持这些块的有效性。与PoW的“最长链的胜利”相比,SPECTRE使用了类似“最多块胜利”这样的东西。SPECTRE还没有经过实战考验,新的攻击载体可能会出现,但它似乎是修复比特币的一种非常聪明的潜在方式。
评论
查看更多