共识机制是区块链的底层技术之一,区块链的主要特性也基本来源于它。不同的共识机制最终确认交易的方式不同,决定了区块链适合运行的功能也不同。与运行在浏览器上的代码一样,不可能一个错误都不允许出现。与区块链的不可能三角形不同,CAP定理似乎不那么容易被打破。作者是Mechanism Labs 联合创始人。原文来自medium.com

今天,随着信用卡的刷卡,我购买了一杯的抹茶绿茶。刷卡后不久后,商家开心地把茶给了我,以换取我支付的金额。商家确信该交易已经过去,并且我的支付不会被无效,他们确信能够收到我支付价值。换句话说,购买已经完成。[注:借记卡和信用卡的交易确认需要60天,对于小额交易,卖家可能愿意承担风险并立即交换商品或服务。对于大额的交易,成本和风险的增加,卖家会更愿意接受支票或电汇的支付方式。]

在区块链场景中,终结性是指交易信息格式正确的区块一旦被提交到区块链上就不会出现交易无效的情况。用户进行交易的时候,用户会希望交易信息一旦通过确认,交易信息就不能随意的被篡改或回滚。因此,在设计区块链的共识协议时,终结性至关重要。在目前基于比特币中的PoW共识的区块链系统中,51%攻击和不诚实的挖矿活动可能导致区块链上的有效区块被视为分叉的一部分而被抛弃,这可能威胁到区块链系统的正常运作。例如,如果恶意节点能够拥有全网51%的算力,他们就可以对区块链进行双花攻击。类似PoW的一些共识协议可以提供一定概率的终结性,而有些协议可以保证绝对终结性。

终结性的类型

概率终结性 是指基于链协议提供的终结性类型(例如比特币的PoW共识协议),交易被篡改的几率会随着区块处在区块链中的深度增加而减少。区块所在位置越深,这个区块越有可能被包含在最长链上。这就是为什么比特币上的交易确认需要等6个区块产生之后才能确保交易不被篡改,这需要大约一个小时,但这样会让交易回滚的可能性降到很低。

绝对终结性 是指基于实用拜占庭容错PBFT的协议(例如Tendermint)提供的终结性类型,其中一旦交易被打包在区块中并被提交到区块链上,交易就不能被篡改。在这种情况下验证者的Leader将会先提出一个需要验证的区块,这个区块的验证通过需要足够的验证者达成共识。

除此之外,还有经济终结性的概念。在这个概念中,一个区块的回滚成本很高。在使用削减机制的基于股权证明的系统中(例如Casper FFG,Tendermint),如果一个持股人在两个区块上进行了双重标记,他们的权益可能会缩减,这让损害系统的成本变得非常昂贵。例如假设一个拥有100股份的区块链网络,每个人都投入了100万美元,那么股份总额就是1亿美元。如果在同一高度出现两个区块,记为B和B',有66%的票投给了B(6600万美元),同时66%的票投给了给B'(6600万美元),那么至少33%的持股人是恶意,这意味着至少会损失3300万美元。

CAP定理和最终结果

看起来结果好像很明显,似乎绝对终结性比概率终结性更好,但在在概率终结性和绝对终结性进行权衡可能会让区块链变得更好。Eric Brewer的CAP定理是个很好的。CAP定理指出在一个具有分区容错性的分布式系统中,分布式系统只能保留一致性或可用性中的一个。一个具有一致性的系统将会在不能达成一致的情况下停止。一个具有可用性 的系统在不正确交易通过后依然能继续运行。要保证系统的一致性就要提供绝对终结性,而要保证系统的可用性就要提供概率终结性。


左图:偏好一致性的系统;右图:偏好可用性的系统

在进行支付时,用户更偏向于概率终结性。这就是为什么许多基于DAG的协议,有较高的可用性而非一致性,只是专注于支持支付功能。然而许多区块链平台提供的不仅仅是支付功能,还有智能合约支持的DApp。不同的DApp在终结性方面可能有不同的偏好。偏好可用性的DApp更喜欢概率性的最终链,不管交易是否正确都可能通过。而偏向一致性的DApp更偏向绝对终结性的链,出现不正确交易的时候应用会停止运行。终结性从根本上影响用户体验。

PoS共识中的终结性

在我们的可用共识协议的元分析中,我们考虑了某些主要PoS平台的最终结性。我们考虑了Tendermint,Thunderella,Algorand,Dfinity,Ouroboros Genesis,Casper FFG和Casper CBC。在这里,我们将简要概述这些平台的终结性,但在决定采用哪种协议而不仅仅考虑某个参数时,重要的是要检查这些协议。

Tendermint: Tendermint实现了绝对终结性。任何收到2/3或更多预投票和预先提交的区块都将最终确定。除非1/3或更多验证着无响应,否则此过程将无限期地继续,在这种情况下网络将停止运作。因此比起可用性Tendermint更偏向一致性。当PoS削减规则应用于Tendermint时,该协议也实现了经济终结性。

Thunderella: Thunderella的快速通道提供了绝对终极性。任何获得公证的最大交易序列都可以被视为经过确认的输出。如果大于 3/4 的快速通道委员会成员诚实且在线,申请人也是诚实的,那么有效交易可即时确认。然而快速通道的确认不同于整体的终结性,它是一种理想条件下的终结性。交易一旦被记录在区块链上,就会被完全确认,这既可以架设在链上,也可以基于 BFT 算法。Thunderella 在快速通道失败的情况下会回到底层区块链,由此可见,它优先考虑可用性。

Algorand: Algorand实现了概率终结。只要攻击者控制的协议货币价值低于协议的货币价值的1/3,Algorand就可以保证分叉叉的概率可以忽略不计,从而允许协议以强同步方式运行,从而达到每个区块终结性。在弱同步中Algorand可能会分叉,但使用BA*来决定选择哪个分叉。因此当协议恢复强同步时,Algorand中的交易最终会确定。Algorand优先考虑一致性,即便产生空区块,也不愿牺牲一致性。

Dfinity: Dfinity实现了概率终结性,区块最终确定的概率随着链上区块权重的增加而增加。将一轮记为r。在一轮的时间内我们可以最终确定r,因为我们知道已确认的区块已经包含了可能在r之外的所有链上的信息。正常操作情况下,在第r轮中,每个打包在区块中的交易经过两次确认加上网络传播延迟后,对于其见证者来说最终是确定的。Dfinity优先考虑一致性,如果网络分叉,它会自动使随机信标暂停,不允许网络中的其他部分继续运行。

Ouroboros Genesis: Genesis可以根据他们的链选择规则,从而实现概率终结性。规则是对于短链(最多k个块,其中k是安全参数)遵循最长链规则,对于长链(超过k个块)使用丰富度规则,意味分叉后就设置检查链的时间段,并选择包含交易最多的链。

Casper FFG: Casper FFG旨在为基于区块链的系统提供绝对终结性或经济终结性,这是通过验证者成员绝大多数人股权加权签署一个区块实现的。Casper FFG的构建方式使得即使攻击者控制了底层区块链的提议机制,他也永远不会完成检查点。但由于FFG提供了安全性,并且提案机制提供了活跃性,因此攻击者可以阻止Casper通过停止达成共识来最终确定未来的检查点。FFG优先考虑一致性,因为它不允许在没有大多数验证者同意的情况下完成检查点,否则将不会进行最终确定。FFG还通过削减机制实现经济终结性。

Casper TFG: TFG在具有不同容错阈值的验证者下实现绝对终结性。它采用的是异步安全的BFT,允许验证者具有不同的容错阈值。

区块上的交易发生回滚可能导致数百万美元的损失,并且可能影响分布式应用中的基本功能。因此理解终结性对于构建具有抗性的区块链平台和选择在哪开发应用的平台都至关重要。



分享到: