原文链接:Sequencer Decentralization and Liveness
本文作者:Espresso Systems 编译:CoinTime Candice
有时区块链(以及L2)会“崩溃”。这并不好,但没有人是完美的。当它发生时,值得提醒我们自己,我们在谈论什么,为什么我们关心,以及我们能做什么。
去中心化的区块链有两个关键属性:“安全性”和“有效性”。安全性确保每个人都同意区块链的状态,例如,哪些交易已经被确认。另一方面,有效性确保系统实际处理交易,即在线。失效不仅是一种麻烦,还可能带来安全问题。金融交易,如DeFi交易,取决于能否及时处理,尤其是对于涉及多个网络的贸易和交易。
任何系统的有效性都取决于其最薄弱的环节。对于一个rollup系统来说,rollup验证者、智能合约和排序者都必须是活动的并正常运行的。如果其中一个离线,整个系统就会离线。如果我们使用单个rollup验证者和中心化排序者,那么这些可能会由于简单的硬件故障或软件错误而离线。
去中心化可以缓解许多导致失效的条件,但值得注意的是,任何系统,无论是去中心化还是其他方式,都无法保证100%的正常运行时间。中心化系统(或单一服务器)的风险在于它是单一故障点。如果单一服务器(或数据中心)出现故障,整个系统将停止运行。一个涉及许多不同节点(在硬件、软件、位置等方面)的去中心化系统可以缓解这一特定的风险向量:事实上,假设不相关的故障,整个网络中三分之一的节点同时发生故障的可能性明显低于单一节点。另一方面,去中心化系统引入了中心化系统中所没有的新的复杂性,例如对网络通信的依赖。这些复杂的依赖性导致了新的、严重的风险向量,也可能导致暂时性的失效。
有几种类型的共识协议,每种协议都依赖于不同类型的网络假设来实现有效性。我们不会详细列出所有选项,但会重点介绍几个例子。
像比特币或以太坊这样的动态可用(或最长链)共识协议,即使90%的节点离线,只要一半以上的在线节点是正确的,就可以保持有效。然而,为了保持安全性和有效性,这些协议依赖于同步性,这意味着网络中在线节点之间的所有消息都需要在硬编程到协议中的已知时间内传递。动态可用性保证也是以性能为代价的,因为即使所有节点都在线,这些协议也有长达几分钟的延迟(你需要等待多个区块来确认一个交易)。
与动态可用的协议相比,是乐观响应的共识协议。如果三分之一或更多的节点同时发生故障,与动态可用协议所能容忍的更高阈值相比,所有乐观响应的协议都将失效。另一方面,有一些响应性协议对网络的假设比较弱(在部分同步甚至异步的情况下仍然安全)。尽管如此,当网络异步运行时,这些协议仍可能失去有效性。当所有消息都在已知的(硬编程的)延迟参数内传递时,一些协议只能保证在全球标准化时间后恢复有效性,而另一些协议则在某些有限的时间范围内传递消息时恢复最终的有效性。最重要的是,当节点在线且连接良好时,在最佳情况下,乐观响应的协议不会产生长达一分钟的延迟。它们可以以网络允许的速度运行。
因此,对于开发者来说,根据他们关心的内容,有一系列选项可供选择。如果更重要的是节点宕机的容错性,但体验速度较慢的话,动态可用的协议可能是最明智的选择(假设网络通信是同步的)。为了在速度和安全性之间取得平衡,乐观的响应能力可能是一个更好的选择。安全性/有效性对网络同步性的依赖程度是第三个维度:在异步网络中,动态可用协议通常是不安全的(尽管存在通过Gasper等“终结小工具”混合解决方案的缓解措施),而在较弱的同步性假设下存在响应式协议是安全的。最后,如果你只关心速度(或上市速度!),那么中心化系统可能是最好的选择。
当涉及到去中心化排序者时,值得考虑的是这些选项将如何与底层L1协议交互。因此,Espresso Sequencer在乐观的条件下优先考虑响应能力,补充了以太坊的Gasper协议。
没有什么灵丹妙药来实现区块链系统100%的正常运行时间。而且,L1和L2协议在去中心化中做出的决定因其承担的一系列可用性权衡而变得复杂。
*本文由CoinTime整理编译,转载请注明来源。
所有评论