主页 > 如流下载imtoken > 从比特币到波卡:一段共识算法演进史

从比特币到波卡:一段共识算法演进史

如流下载imtoken 2023-01-30 05:37:06

译文:蓝狐笔记社区总部,为了更好地理解为什么我们需要将共识算法引入区块链技术,我们需要了解比特币的区块链技术解决了哪些问题? 最关键的有两个问题:本文首先介绍了比特币解决上述问题的方法,然后讨论了共识的一些微妙之处,比如容错和finality(finality的简称),最后以一些项目为例进行了讨论,以及讨论未来的方向。 ,

从比特币到波卡:一部共识算法进化史

要理解为什么容错对区块链如此重要,有必要解释一下比特币解决的两个问题(双重支出和中心化货币发行)。 换句话说,为了防止任意超发,比特币以可预测、透明、去中心化的方式发行货币。 管理汇款和发行过程的机制是共识算法,它确保整个交易历史的一致性(共识)。 ,共识算法在区块链技术时代并不新鲜,重要的是要强调为什么比特币具有创新性:因为在一个公共的无许可网络中,即使存在潜在的恶意行为者,比特币也可以达成共识。 众所周知,在比特币这样的 PoW 区块链中,节点通过创建新区块产生的新货币奖励来维护整个网络的安全。 这种奖励激励矿工在尽快创建新区块的同时始终诚实行事。 ,获胜的关键是创建一个新块需要解决一个独特且计算困难的数学难题。 其数学问题的难度从根本上限制了新区块的生成速度,而答案的唯一性允许网络识别获胜节点(通过它们的地址)。 虽然恶意行为没有受到特别惩罚,但由于不诚实行为的机会成本,没有动机这样做。 这样做的一个问题是节点之间的通信不是即时的,因此网络不同地理区域的节点可能会收到声称已经解决难题(网络分区/分叉)的不同块。 两个不同的节点(矿工)可能恰好合法地解决了问题,但是由于全网不同区域之间没有即时通信,网络中的不同分区会选择根据不同的获胜区块(临时)来构建区块链。

比特币一个区块多少币_比特币区块确认时间多久一次_比特币区块确认

这会导致临时分叉,但由于总是有新块添加到每个分支,最终总会有更长的分支。 ,选择最长的区块分支实际上是比特币为了达成共识而制定的一个规则,称为最长链规则。 较短分支上的块被丢弃,所有不在主分支上的交易最终都被添加到主分支的块中。 请注意,构成最长链的区块中不包括非法交易(例如那些试图双花的交易)。 包含此类交易的区块也将被丢弃,因为任何“硬币”只能花费一次。 这里需要注意的是,大多数节点是诚实的(至少 51%),这些节点不会尝试破坏协议。 ,理论上可以通过拥有更强的挖矿能力来创建新的最长链。 但这是“链头”(最近的区块)附近区块的最大风险。 区块在链中越深,被逆转的可能性就越小。 ,这意味着 PoW 链上的区块总是有可能被逆转,因此这些区块中的交易可能不会发生。 由于上述原因,在恶意创建的链上,交易不会保存在新区块中。 ,比特币白皮书建议等待6个区块就足以保证交易不会被拒绝,因为此时区块被丢弃的可能性很小。 从这里,我们可以理解“finality”(以下简称finality):不能逆转的区块可以称为“finality”。

比特币区块确认_比特币区块确认时间多久一次_比特币一个区块多少币

在比特币和其他 PoW 区块链中,最终性并不是那么完美,因为区块总是有被逆转的可能性。 ,以上说明比特币具有强大的抗故障能力,并且可以在公共和无许可的网络中以去中心化的方式发行货币。 通过探索确保最终性的方法,可以确保更高级别的安全性。 稍后将在容错部分探讨这一观点。 , 还应该注意的是,一些权益证明 (PoS) 区块链的运作方式与比特币类似。 大多数 PoS 链使用选举来生成块而不是挖掘。 与获胜矿工创建下一个区块的 PoW 链不同,PoS 链的新区块由随机选择的节点(“领导者”)创建。 ,被选中(创建新区块)的概率由权益数量决定。 这个想法是,你持有的币越多,你就越希望区块链成功,所以这样的节点将有更大的概率创建下一个区块。 ,NXT 是最早使用这种随机(选举)领导者方法来创建新区块的 PoS 链之一。 NXT 的共识机制与比特币相同:新创建的区块将添加到最长的链中。 通过遵循这条规则,任何分叉都可以被解决,并且节点可以继续在最长的链上创建区块。 ,(网络)当参与者做了违反协议的事情时就会出错。 对于区块链,我们希望协议足够安全以防止任何故障,因为可能会有恶意行为者试图利用协议的弱点。

比特币区块确认时间多久一次_比特币区块确认_比特币一个区块多少币

任何对任意故障具有鲁棒性的协议对于随机故障和恶意行为者也足够安全。 , 拜占庭容错 (BFT) 协议即使在一小部分参与者行为异常的情况下也能正常工作。 行为不端的节点,无论是意外故障还是恶意行为。 当然,这是假设大多数参与者都遵守协议。 这个观点在一篇名为“拜占庭将军问题”的研究论文中有所提及。 这个问题讨论了多个参与者如何就一个简单的消息达成一致。 (蓝狐笔记注:拜占庭问题请参考上一篇《蓝狐笔记》

比特币一个区块多少币_比特币区块确认_比特币区块确认时间多久一次

简单阅读拜占庭容错”),当在拜占庭协议中达成共识时,约定的结果必须是正确的。也就是说,约定的结果可以被视为确定性正确而不是概率正确。当应用于区块链时,拜占庭算法保证交易的最终性。这意味着一旦在一个区块中达成协议,该区块就被最终确定,其中的交易不可逆转。,显然这与比特币和其他 PoW 链不同。如上所述,那些链只能以一定的概率实现确定性。比特币的共识类型通常被称为“中本聪共识”,很容易看出为什么它会与拜占庭容错相混淆,因为两者都是容错的,但只有后者才能保证最终性。更深层次的混淆来自于比特币的区块创建和共识算法之间的高度重叠。但实际上它不需要。 以太坊未来路线的建议之一是像现在一样继续由矿工出块,但让部分节点作为验证者提供最终性,从而加强共识。 验证者对已创建的块进行投票。 通过投票给一个区块,他们表示他们相信这个区块是正确的。 一旦三分之二的验证者投票,该块就可以被认为是最终确定的。 这种挖矿后的拜占庭共识机制被称为“finality component”。 ,大多数正在开发的新项目将块创建与共识分开。 一些未来的区块链也将采用混合共识算法。 本节介绍一些正在探索的未来方向。

比特币区块确认_比特币一个区块多少币_比特币区块确认时间多久一次

, Cosmos 的区块创建也是由随机选择的领导者完成(通过 stake 的权重比例),但 Cosmos 共识中没有最长链规则。 因此,它采用了一种称为 Tendermint 的拜占庭算法。 这意味着每个区块都可以保证最终性。 此外,如果验证者无法就单个区块达成共识比特币区块确认时间多久一次,根据 Cosmos 的设计,Cosmos 会暂时停止以防止分叉。 , Polkadot 采用混合共识算法。 块将由随机领导者创建,他将把下一个块添加到最长的链中。 Polkadot 也将采用拜占庭协议,但不是每轮投票只产生一个区块,而是在一次投票中确定多个区块。 采用混合共识机制的好处之一是,区块链可以在最长的链上不断产生区块,同时最终实现拜占庭终结性,而不影响链的活跃性(即链永远不会停止)。 ,目前在Polkadot当前的测试网络PoC-2(也称为Krumme Lanke)中,其共识类似于Cosmos。 区块由随机选择的验证者节点产生,通过拜占庭协议最终确定后,产生下一个区块。 简单来说,Cardano 的共识算法类似于比特币(最长链规则)。 与 NXT 一样,块生产由随机选择的领导者完成。 卡尔达诺

该团队竭尽全力解决随机选择领导者时出现的一些问题。 他们确保选择领导者的随机性与当今比特币区块的产生方式一致。 ,但是比特币没有领导者,区块是由随机矿工生产的。 挖矿难题的解决方案集将分布在具有最大哈希能力的矿工周围。 ,以太坊也尝试通过添加一个步骤来加强共识算法比特币区块确认时间多久一次,以确保区块产生后的最终性。 区块仍然是通过 PoW 生成的,但是会有一组验证者节点对已经发布的区块的正确性进行投票。 这就是所谓的“最终性组件”。 也就是说,该方法结合了最长链规则和拜占庭容错算法:即两种共识算法的混合体。 最近,似乎有迹象表明以太坊可能会用权益证明 (PoS) 取代 PoW,从而使以太坊与正在开发的新链保持一致。 块将由随机领导者创建,并由终结组件终结。 ,区块链的“旧时代”主要围绕着使用PoW挖矿和使用最长链规则来增强网络共识。 后来,为了使用更节能的方式,我们开始尝试使用 PoS 代替挖矿。 过去的 PoS 链仍然使用最长链规则; 然而,近年来的趋势是将拜占庭容错协议纳入共识机制:要么没有最长链规则(Cosmos),要么两者并存(以太坊和 Polkadot)。 ,以上说明比特币具有强大的抗故障能力,并且可以在公共和无许可的网络中以去中心化的方式发行货币。 通过探索确保最终性的方法,可以确保更高级别的安全性。 稍后将在容错部分探讨这一观点。 , 还应该注意的是,一些权益证明 (PoS) 区块链的运作方式与比特币类似。 大多数 PoS 链使用选举来生成块而不是挖掘。 与获胜矿工创建下一个区块的 PoW 链不同,PoS 链的新区块由随机选择的节点(“领导者”)创建。 ,显然这与比特币和其他 PoW 链不同。 如上所述,那些链只能以一定的概率实现确定性。 比特币的共识类型通常被称为“中本聪共识”,很容易看出为什么它会与拜占庭容错相混淆,因为两者都是容错的,但只有后者才能保证最终性。 更深层次的混淆来自比特币的区块创建和共识算法之间的高度重叠。 但实际上大可不必。

欢迎加入社区讨论web3,分享项目空投信息