区块链共识算法的相关说明

互联网 2019-03-05 22:00:01

不要恐慌。在每一个伟大的加密货币背后,都有一个伟大的共识算法。没有一种共识算法是完美的,但它们各有优点。在密码学的世界里,共识算法是用来防止双重支出的。下面是一些迄今为止最流行的共识算法的简要介绍,从区块链到DAG,以及中间的所有算法。

工作量证明(PoW)——OG共识

流行实现: 比特币,Ethereum, Litecoin, Dogecoin,(大部分)

优点:我们知道它有效

缺点:缓慢的吞吐量;

工作量证明是第一个区块链共识算法。由中本聪(Satoshi Nakamoto)设计,用于比特币区块链。我们要感谢全世界的大规模采矿活动和电力消耗。我们知道它是有效的,但它开始被认为是一种遗留技术。就连以太坊也在从PoW转向更节能、更经济的PoS。有了这么多新的替代品,很难理解为什么新的区块链会使用PoW。

在POW中,矿工们要解决难以解决的、无用的问题,以制造块。POW以“最长链获胜”为原则。“因此,假设大多数矿商都在同一条链上工作,那么增长最快的那条链将是最长、最值得信赖的。”因此,只要矿商投入的50%以上的工作是诚实的,比特币就是安全的。

权益证明(PoS)

流行实现: Decred、Ethereum (soon)、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的集中性,您不太可能看到它在公共链上运行。

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

流行的实现:Algorand、Filecoin、Chia

优点:可定制;可伸缩的

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

PoWeight是一种广泛的基于Algorand共识性模型的算法分类。一般的想法是,在PoS中,您在网络中拥有代币的百分比表示您“发现”下一个块的概率,在PoWeight系统中,就是使用其他一些相对加权的值。具体的例子:Filecoin的PoWeight证明是根据您存储的IPFS数据的多少进行加权的。其他系统可能包括诸如声誉证明之类的权重。

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

流行的实现: Hyperledger, Stellar,

优点: 高吞吐量;低成本;可伸缩的

缺点: 不完全受信任的

有一个经典的问题是分布式计算,通常用拜占庭将军来解释。问题是几个拜占庭将军和他们各自所在的拜占庭军队包围了一座城市。他们必须一致决定是否进攻。如果一些将军独自进攻,他们的围攻将以悲剧告终。将军们之间通常隔着距离,必须传递信息才能交流。一些加密货币协议使用某些版本的BFT来达成共识,每个协议都有其优缺点:

实用拜占庭式容错(PBFT): 最早解决这个问题的方法之一就是提出实用拜占庭式容错。目前使用的Hyperledger Fabric,用很少(< 20,以后的事情得到一点)预先选定的将军PBFT运行非常有效。优点:高事务吞吐量、缺点:集中式的。

联邦拜占庭协议(FBA): FBA是另一类解决拜占庭将军问题的货币,如Stellar和Ripple。一般的想法是,每一个拜占庭将军,都要对自己的链条负责,在他们进来建立真理时,对信息进行分类。在Ripple中,将军(验证器)由Ripple基金会预先选择。在Stellar中,任何人都可以是验证器,因此您可以选择信任哪个验证器。

由于其惊人的吞吐量、低事务成本和网络可伸缩性,我相信FBA类的协商共识算法是我们发现的用于分布式协商共识的最佳算法。

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

流行的实现:Iota、Hashgraph、Raiblocks/Nano

优点:网络可伸缩性;低成本

缺点:取决于实现

DAG现在比Vitalik的Tinder还火。DAG是一种共识形式,它不使用区块链数据结构,主要以异步方式处理事务。理论上,专业人士每秒的交易是无限的,但DAG和其他共识一样,也有优点和缺点。

Tangle: Tangle是Iota使用的DAG共识算法。为了发送Iota事务,您需要验证接收到前两个事务。随着交易的增多,“一赔二、先付后付”的共识增强了交易的有效性。因为共识是由事务建立的,理论上,如果有人可以生成1/3的事务,他们就可以说服网络的其他部分是有效的。直到有足够的事务量使得创建1/3的事务量变得不可行的时候,Iota有点像在一个名为“协调器”的集中节点上“重复检查”所有网络事务。Iota协调器就像系统的辅助轮,一旦缠结足够大,就会被移除。

Hashgraph: Hashgraph是由Leemon Baird开发的一种八卦协议共识。节点随机地与其他节点共享它们已知的事务,因此最终所有的事务都被散布到所有节点。Hashgraph非常快,但对Sybil攻击没有抵抗力。所以Hashgraph对于私有网络是一个很好的选择,但是您不会很快看到它在像以太坊这样的公共网络中实现或分发。

Block-lattice: Nano(以前称为Raiblocks)在区块链上运行时带有一个称为Block-lattice的结构。Block-lattice是这样一种结构:每个用户(地址)都有自己的链,每个人都持有所有链的副本。每个事务都被分解为发送方链上的发送块和接收方链上的接收块。

Block-lattice似乎太简单而无法工作,但它已经在野外运行了。这种独特的结构确实让Block-lattice向一些独特的攻击向量开放,比如Penny-spend攻击,攻击者通过向大量的空钱包发送微不足道的数据来增加节点必须跟踪链的数量。

工作证明事件的序列化: 通过确认事务

Recursive Elections (更广为人知的名称是SPECTRE)是一种提议的比特币伸缩解决方案,它利用PoW和DAG的组合来达成可伸缩的共识。在SPECTRE中,块被挖掘指向多个父节点,而不仅仅是一个父节点,因此网络可能每秒处理多个块。挖掘指向某些父节点的块来支持这些块的有效性。与POW “最长链胜利”相比,SPECTRE使用的是“子节点获胜最多的区块”。 SPECTRE尚未在野外进行过实战测试,新的攻击载体可能会出现,但它似乎是修复比特币的一种非常聪明的潜在方式。

相关资讯Relevent