Time:2023-10-16 Click:91
原文:《Shared sequencers for Starknet and Madara app chains》
作者: Apoorv Sadana
编译:Odaily星球日报夫如何
当越来越多的L2、应用链依靠以太坊作为结算层后,多链之间的互操作性和每条链的去中心化程度就显得尤为重要。
本文讨论了共享排序器的概念,共享排序器可以使不同的应用链共享一组验证者来实现去中心化,并通过订单引擎和 Rollup 引擎来处理交易排序和执行。
但共享排序器和 Polkadot 的多链设计架构具备高度相似性,可否将 Polkadot 现成的技术引入以太坊生态系统,从而提高以太坊多链的发展进程。
以下由Odaily星球日报编译。
由于今天几乎每个排序器都是集中化的,排序器被视为一个单一应用程序,它收集交易,对它们进行排序,执行它们,并将结果发布到L1上。然而,这些任务可以分解为多个模块化组件。出于解释的需要,我将其分为两个部分。
排序引擎:负责按照特定的顺序对交易进行排序。一旦排序引擎决定了这个顺序,就必须遵循此顺序。此举在L1上提交此顺序并强制L1验证者检查是否按照所需的顺序执行交易来实施的。
Rollup 引擎:Rollup 引擎基本上包括 Rollup 所做的一切:从用户收集交易,执行交易,创建证明并更新L1上的状态。理想情况下,这可以分解为更多的组件,但在本文中我们将避免这样做。 在这里,排序引擎是共享排序器,Rollup 引擎基本上是所有 Rollup 逻辑。
因此,交易的生命周期如下所示。
共享排序器基本上对 Rollup 中的交易进行排序,并将其提交到L1上。共享排序器通过将共享排序器集合去中心化,也就意味着与该排序器集合连接的所有 Rollup 都变得去中心化了。
现在,这听起来肯定比实际操作要容易。为此,Rollup 之间的通信需要高效且可扩展。共享排序器需要制定关于 Rollup 如何通信、跨链消息应该是什么样子、如何处理 Rollup 升级等方面的适当标准。尽管这些问题是可以解决的,但也不易实现。
以下是应用链在使用共享排序器时的示意图。
对所有平行链(Rollup)的交易进行排序 验证交易是否正确执行(它不使用零知识验证,而是重新运行 Rollup 的执行代码,以验证状态差异)。
你可能已经意识到,中继链基本上就是我们上面讨论过的共享排序器。不同的是,中继链还需要验证执行,而我们将这一点留给了以太坊。
正如你可能已经猜到的,Polkadot 已经做到了这一点。XCM 是消息格式,XCMP 是消息协议,所有的子链都可以使用它们来相互通信。
因此,继续之前的类比,Substrate 和 Cumulus 可以被视为替代 Rollup 框架的解决方案,它们允许构建应用链并将其连接到共享排序器。
共享排序器 → 中继链
可组合性 → XCM 和 XCMP
Rollup 框架/堆栈 → Substrate 和 Cumulus
上述基本上就是 Polkadot 的翻版,除此之外,Polkadot 和 Parity 拥有一些经验丰富且资金充裕的团队,他们继续改进 Substrate 和 Polkadot,增加更多功能并提高可扩展性。这项技术经过多年的实战测试,并且具备丰富的开发工具。
实际上,我们已经开始这个工作了,Madara 就是一个例子。Madara 使用 Substrate 框架允许任何人在以太坊上构建自己的基于 zk 的L2/L3解决方案。接下来我们需要的是以共享排序器形式的 Polkadot 中继链。如果我们可以重用 Polkadot 中继链,但是移除验证部分,因为在L1上通过 zk 证明进行验证 将交易的顺序提交到L1上 优化节点和共识算法,以支持 Tendermint/HotStuff 我们就可以得到前面提到的共享排序器。
显然,这说起来容易做起来难。然而,我认为这条道路比从头开始重建排序器、标准和框架更加务实。Polkadot 已经以一种与链无关的方式解决了许多问题,我们可以借鉴它们用于以太坊。作为一个附带产品,我们也能得到:
● 一个积极开发者社区,继续为 Substrate 构建和教育全世界。
● 一个活跃的开发工具集和强大的社区。
● 许多活跃的平行链也可以选择在以太坊上结算,如果他们愿意这样做的话(最近我们看到 Astar 使用 Polygon CDK 做了同样的事情) 。