区块链共识和最终性简史:从比特币到波卡

2019-05-08 13:48 栏目:经验之谈 来源: 查看()
前言:权力下放特征决定了区块链中达成共识的必要性。区块链的共识机制逐渐从比特币的PoW开发出新的模型,如PoS和BFT。 Boca使用混合一致性算法。共识机制一直是区块链技术发展的关键领域。本文作者Edward A Thomson由“Blue Fox Notes”社区的“HQ”翻译。

为了更好地理解为什么我们需要将共识算法引入区块链技术,我们需要了解比特币区块链技术解决了哪些问题?有两个最关键的问题:

·双重付款
·集中货币发行

本文首先介绍比特币解决上述问题的方法。其次,它讨论了一些共识的微妙之处,例如容错和终结性(最终确定性的简称)。最后,讨论了一些项目作为例子,并讨论了未来的方向。

区块链共识和最终性简史:从比特币到波卡

比特币如何解决双重支付和货币发行的问题?

要理解为什么容错对区块链如此重要,有必要解释比特币解决的两个问题(双重开花和集中货币发行)。

换句话说,为了防止任意超调,比特币以可预测,透明和分散的方式发行资金。管理汇款和发行流程的机制是一种共识算法,可确保整个交易历史的一致性(共识)。

在区块链技术时代,共识算法并不新鲜。重要的是要强调为什么比特币是创新的:因为在公共的,未经许可的网络中,即使存在潜在的恶意行为者,也可以实现比特币。共识。
 
PoW共识算法

众所周知,像比特币一样的PoW区块链,该节点通过获得通过创建新块产生的SGD奖励来维护整个网络的安全性。奖励为矿工提供了一种激励机制,使他们在尽快创建新区块的同时保持诚实。

获胜的关键是创建一个新的块需要解决一个独特的,计算上困难的数学问题。其数学难度从根本上限制了生成新块的速度,并且答案的唯一性允许网络识别获胜节点(通过其地址)。虽然恶意行为没有受到特别惩罚,但由于不诚实行为的机会成本,没有动力去做。

存在的一个问题是节点之间的通信不是瞬时的,因此网络的不同地理区域中的节点可以接收声称已经解决了问题的不同块(网络分区/分叉)。两个不同的节点(矿工)可能会合法地解决问题,但由于整个网络不是即时通信,网络中的不同分区将选择基于不同的获胜块(临时)构建区块链。这会导致临时分叉,但由于每个分支总是添加新块,因此总会有更长的分支。

选择最长的块分支实际上是比特币为达成共识而设定的规则。此规则称为最长链规则。丢弃较短分支上的块,并且最终将不在主分支上的所有事务添加到主分支中的块。请注意,非法交易(例如,那些试图进行双重支付的交易)将不会包含在构成最长链的区块中。包含此类交易的块也将被丢弃,因为任何“货币”只能用于一次。这里应该注意的是,大多数节点是诚实的(至少51%),并且这些节点不会尝试破坏协议。

理论上,通过拥有更强大的采矿能力,可以创造出一条新的最长的链条。但这是接近“链条头”(最近生成的区块)的区块的最大风险。块越深,链越深,反转的可能性越小。

这意味着PoW链上的块将始终反转,因此这些块中的事务可能不会发生。在恶意创建的链中,由于上述原因,事务不会保存在新块中。

比特币白皮书表明,等待六个块足以确保交易不被拒绝,因为块被丢弃的可能性非常小。我们可以从这里了解“最终确定性”(以下简称终结性):无法逆转的块可称为“最终确定”。在比特币和其他PoW区块链中,最终结果并不完美,因为区块总是相反的。

如上所述,比特币具有很强的抗故障能力,可以在公共和非授权网络中以分散的方式发布。通过探索确保最终结果的方法,可以确保更高级别的安全性。该视图将在容错部分的后面部分中进行探讨。

PoS区块链

还应注意,一些权利证明(PoS)区块链以与比特币类似的方式操作。大多数PoS链使用选举区而不是采矿区。与允许获胜矿工创建下一个块的PoW链不同,PoS链的新块由随机选择的节点(“领导者”)创建。

被选中的概率(创建新区块)由权益数决定。我们的想法是,您拥有的硬币越多,您希望区块链成功的次数越多,因此这样的节点将更有可能创建下一个区块。

NXT是最早使用这种随机(选举)领导方法创建新块的PoS链之一。 NXT的共识机制与比特币相同:创建的新块被添加到最长的链中。通过遵循此规则,可以解决任何fork问题,并且节点继续在最长链上创建块。

拜占庭协议和容错

当参与者违反协议时,会发生错误。对于区块链,因为可能有恶意攻击者试图利用协议的弱点,我们希望协议足够安全以抵御任何失败。任何可以承受任何故障的协议也足够安全,可以防止随机故障和恶意攻击者。

拜占庭容错(BFT)协议即使一小部分参与者表现异常也能正常工作。行为不端的节点可能是意外故障或恶意行为。当然,这里假设大多数参与者都遵守规定。在题为“拜占庭将军问题”的研究论文中提到了这一观点。问题是多个参与者如何就简单信息达成一致。 (蓝狐注:拜占庭问题可参考蓝狐前注文章《简单易懂拜占庭容错》)

当拜占庭协议达成共识时,商定的良好结果必须是正确的。换句话说,商定的结果可以被视为确定性的,而非概率性的。当应用于区块链时,拜占庭算法保证了交易的终极性。这意味着一旦在块中达成协议,块就完成并且事务不能被反转。

显然,这与比特币和其他PoW链不同。如上所述,这些链只能达到一定程度的确定性。比特币的共识类型通常被称为“中本聪共识”。很容易理解为什么它与拜占庭容错相混淆,因为两者都是容错的,但只有后者才能保证最终的确定性。更深层次的混淆来自比特币块创建与共识算法高度重叠的事实。但事实上,这不是必要的。

以太坊未来路线的建议之一是继续像现在一样由矿工生产区块,但它将允许一些节点充当验证者以提供最终的确定性,从而加强共识。验证者对创建的块进行投票。通过投票获得一个区块,他们说他们认为该区块是正确的。一旦三分之二的验证者投票,该块就可以被认为是最终的。这种采矿后的拜占庭共识机制被称为“最终确定性成分”。 

发展探索
 
正在开发的大多数新项目将块创建与共识分开。未来的一些区块链也将采用混合共识算法。本节将介绍正在探索的一些未来方向。
 
宇宙(ATOM)

Cosmos的区块创建也由随机选择的领导者(按权益权重)完成,但Cosmos的共识中没有最长的连锁规则。因此,它使用称为Tendermint的拜占庭算法。这意味着每个块都保证了最终的确定性。此外,如果验证者不能就单个区块达成一致,宇宙将暂时停止以防止根据Cosmos的设计进行分叉。
 
Polkadot Boka(DOT)

Polkadot使用混合一致性算法。该块将由随机领导者创建,该领导者将下一个块添加到最长链。 Polkadot也将采用拜占庭协议,但不是每轮投票只产生一个区块,而是在一次投票中最终确定多个区块。

使用混合共识机制的一个好处是区块链可以在最长链上连续产生块,同时最终实现拜占庭最终确定性而不影响链活动(即链永远不会停止)。

目前在Polkadot目前的测试网络PoC-2(也称为Krumme Lanke)中,共识类似于Cosmos。该块由随机选择的验证者节点生成,并且在通过拜占庭协议完成之后,再现下一个块。

卡尔达诺(ADA)

简单地说,卡尔达诺的一致性算法类似于比特币(最长链规则)。与NXT一样,块生产由随机选择的领导者完成。
Cardano团队竭尽全力解决随机选择领导者时出现的一些问题。他们确保了选择领导者的随机性与当前的比特币方式一致。

然而,比特币没有领导者,并且该区块由随机矿工生产。采矿问题的解决方案将分布在具有最大散列能力的矿工附近。

以太坊以太坊

以太坊还尝试通过添加一个步骤来加强共识算法,该步骤在块发布后保证最终确定性。块仍然由PoW生成,但是将有一组验证者节点投票支持已激活块的正确性。这就是所谓的“最终确定性成分”。也就是说,该方法将最长链规则与拜占庭容错算法相结合:两种一致性算法的混合。

最近似乎有一些迹象表明以太坊可能会使用PoS取代PoW,使以太坊与正在开发的新链保持一致。该块将由随机领导者创建,然后由终结组件完成。

优化方法

区块链的“老年”侧重于使用PoW挖掘并使用最长的规则链来增强网络共识。后来,为了使用更节能的方式,我开始尝试使用PoS而不是挖掘。过去的PoS链仍然使用最长的链规则;然而,近年来的趋势是将拜占庭容错协议纳入共识机制:而不是使用最长链规则(宇宙),或让两者共存(以太坊和波尔卡多)。

在下一篇文章中,我们将仔细研究Polkadot的一致性算法是如何工作的。他们还制定了标准规范,但尚未正式发布。

微信二维码
售前客服二维码

文章均源于网络收集编辑侵删

提示:仅接受技术开发咨询!

郑重申明:资讯文章为网络收集整理,官方公告以外的资讯内容与本站无关!
NFT开发,NFT交易所开发,DAPP开发 Keywords: NFT开发 NFT交易所开发 DAPP开发