欢迎光临
我们一直在努力

区块链共识机制中的最终性(Finality)

今天,我刷了一张信用卡,买了一杯美味的抹茶绿茶。就在刷卡后不久,卖家很乐意把茶给我,以换取我支付的金额。卖家确信这笔交易已经完成,以后不会恢复,他们保证会收到我支付的等值美金。换言之,这次购买已经完成。

在区块链的环境中,最终性是确认所有格式良好的区块一旦提交给区块链将不会被撤销。当用户进行交易时,他们希望确信一旦他们的交易完成,交易就不能被任意更改或撤销。因此,在设计区块链共识机制时,最终性(Finality)变得至关重要。在当前基于中本共识的系统中,51%的攻击和自私的挖矿通过允许区块被撤销的可能性来威胁系统的健康(例如,如果一个恶意的参与者能够累积51%的挖矿能力,他们可以进行双花攻击)。这些协议提供概率终结性,而其他协议可以保证绝对终结性。

最终性(Finality)的类型

概率确定性 是指基于链的协议(例如,比特币的Nakamoto共识)提供的确定性类型,随着包含该交易的区块深入链中,交易将不被还原的可能性将增加。区块越深,包含该区块的分支越可能是最长的链。这就是为什么建议在交易继续进行之前,等到一笔交易进入比特币区块链6个区块(大约需要一个小时)之后,再进行该交易,以确保该交易被还原的可能性很小。

虽然看起来,微不足道的是,似乎绝对最终性比概率最终性更可取,但有一些基本的权衡可以使它更好地选择概率偏好链。在这里,当考虑概率和基于BFT的终结性之间的权衡时,使用Eric Brewer的CAP定理是很有用的。CAP定理指出,在分区的情况下,分布式系统只能保持一致性或可用性。保持一致性的系统将停止而不是让不准确的事务通过。即使允许不准确的事务通过,保持可用性的系统也会继续。一致性有利系统提供了BFT的最终性,而有利于可用性的系统提供了概率确定性。

在进行支付时,用户通常会寻找最终链可能提供的可用性(这就是为什么许多基于DAG的协议,它们更看重可用性而非一致性,都专注于支持支付),然而,许多区块链平台提供的不仅仅是支付,支持由智能合约支持的分散应用程序。不同的dapp在最终性方面可能有不同的偏好——对于需要可用性的dapp,如果交易总是能够在不考虑某些不精确性的情况下通过就更好了,那么dapp更喜欢概率上的最终链,而dapp则更喜欢一致性,对于一致性,整个应用程序都会停止不准确的交易通过是更好的,更喜欢绝对的最终链。最终性从根本上影响用户体验。

在我们对替代共识协议的元分析中,我们考虑了某些主要PoS平台的最终保证。我们考虑了Tendermint、Thunderella、Algorand、Dfinity、Ouroboros Genesis、Casper FFG和Casper CBC。在这里,我们将提供这些最终性保证的简要概述,然而,在决定采用哪种协议时,作为一个整体来检查这些协议是很重要的,而不是只考虑一个参数(在本例中为最终性保证)。

Tendermint: Tendermint达到了绝对的结局。同时接收到⅔或更多预投票和预提交的任何区块都将完成。这一过程将无限期地持续下去,除非⅓或更多验证器没有响应,在这种情况下,网络会停止——因此,Tendermint更喜欢一致性而不是可用性。当PoS消减规则应用于Tendermint时,该协议也达到了经济上的最终性。

Thunderella: Thunderella的快速路径提供了绝对的最终性。任何经过公证的无缺口的最大交易顺序都被视为完全确认的输出。如果快速路径委员会的¾个是诚实和在线的,并且提议者也是诚实的,那么有效的交易将被立即确认。然而,快速路径确认不同于整体最终性,它是乐观的最终性。一旦交易记录在基础区块链上,交易就完全完成,这可以是基于链的,也可以是基于BFT的。当Thunderella在快速路径失败的情况下回到底层区块链时,它会优先考虑可用性。

Algorand: Algorand实现了概率的最终性。只要攻击者控制少于协议货币价值的⅓,Algorand可以保证分叉(forks)的概率可以忽略不计,允许协议在强同步下运行,在每个区块上达成最终协议。在弱同步中,Algorand可以分叉,但使用BA*来商定选择哪个fork。因此,当协议恢复到强同步时,Algorand中的交易最终会最终完成。Algorand优先考虑一致性而不是可用性,更倾向于生成空块,从而产生非生产性的进度,而不是牺牲一致性。

Dfinity: Dfinity实现概率最终性,随着链上区块权重的增加,最终性的概率也随之增加。这假设每轮r,都有一个时间,我们可以排除任何进一步的公证块收到。在这个排除时间,我们可以完成r轮,因为我们知道经过公证的区块已经包含了所有可能在r轮之外解决的链端。在正常操作下,有一个近乎即时的最终性保证,在r轮中,r轮区块中包含的每一笔交易在两次确认后都是最终的加上网络传播延迟。Dfinity优先考虑一致性,因为如果网络分裂,它会自动导致随机信标暂停,不允许网络的任何一半继续。

Ouroboros Genesis:创世纪可以根据它们的链选择规则来实现概率的终结。规则是,对于短距离(最多k个块,其中k是安全参数),遵循最长的链,对于长距离(超过k个块),使用充分性规则,即查看当前链之后发生分叉后的时间段,并选择链的密度。

Casper-FFG:Casper-FFG的目标是给基于链的系统提供绝对/经济的最终性,这是在委员会的绝大多数成员(按股权加权)签署一个区块时实现的。Casper FFG的构建使得它永远不会完成冲突的检查点,即使对手控制了底层区块链的提议机制。然而,由于FFG提供了安全性,而提议机制提供了活跃性,因此对手可以通过拖延共识来阻止Casper最终确定未来的检查点。FFG优先考虑一致性,因为它不允许在没有绝对多数验证器同意的情况下完成检查点终结,否则将不会发生终结。FFG还允许通过削减机制实现经济的最终性。

caspertfg:TFG在具有不同容错阈值的验证器下实现绝对的最终性。也就是说,该协议是异步安全和BFT的,允许验证器具有不同的容错阈值。

恢复区块可能导致数百万或美元的损失,或影响去中心化应用程序中的基本操作。因此,理解最终性对于构建健壮的区块链平台和选择开发应用程序的平台都至关重要。

原文链接:Finality in Blockchain Consensus

评论 抢沙发