作者:Sovereign Labs
翻译:F.F
一直以来,加密领域存在一个广泛的误解,认为 zk-rollups 的最终确认时间很长。在这篇文章中,我们将解释为什么第一代 zk-rollups 需要这么长时间才能最终确认,以及我们如何在不牺牲安全性的情况下实现更低的延迟。
通过解决这个问题,我们将引出 Sovereign zk-rollups 的设计。然后,我们将简要探讨 Sovereign 设计提供的其他优势。
最终确认的瓶颈……以及如何解决它们
———
对于大多数的 zk-rollups,最大的成本之一是验证证明。取决于底层证明系统,以太坊上的 rollups 可能会花费 30 万 到 500 万的 gas 来验证单个证明。但是由于证明大小随着交易数量的增加增长非常缓慢(或者根本不会增加),rollups 可以通过在提交证明之前等待累积大量交易来降低每笔交易的成本。事实上,这正是当前大多数 zk-rollups 所采用的方案;StarkEx 等主流的 rollups 通常每隔几个小时才向 L1 发布一次证明。
但是等待几个小时才能最终确认交易带来令人无法接受的糟糕用户体验。我们能做得更好吗?如果 rollups 将原始交易数据发布到其 DA 层(而不是 state-diffs),那么想要快速确认的用户可以运行全节点。但是,如果 rollups 使用状态差异,那么即使运行全节点也无济于事。这就是为什么今天大多数 zk-rollups 的排序器都会发出 “预先确认 (soft confirmation)” 。但是预先确认只有中心化排序器的系统中才有可能。所以问题仍然存在 —— 我们如何让去中心化的 zk-rollups 在延迟方面具有竞争力?
如果我们只关心降低全节点的延迟,那么将原始交易数据发布到链上就可以解决问题。只要完整的交易数据可用,全节点就可以在应用交易时尽快确认(假设 DA 层具有单 slot 最终确认)。这让我们的 zk-rollup 与传统的 L1 一样快速响应!
这是一个非常理想的结果。它使 zk-rollups 适用于对延迟高度敏感的应用程序,如链上订单簿。 尽管如此,它并没有完全解决原来的问题。我们真正想要的是减少轻客户端的延迟。我们能否在不大幅增加证明验证成本的情况下做到这一点?
令人惊讶的是,答案仍然是肯定的!方法如下:我们可以实时创建证明,随后使用递归将它们聚合成批量证明,而不是等待创建单个批量证明。只要我们通过 p2p 网络立即分发递增的证明,轻客户端就会体验到快速的最终确认。而且由于我们仍然在链上只是发布较慢的批量证明,因此我们不必为链上验证支付额外的费用。** 换句话说,我们仍然得到了一个与 L1 的信任最小化的跨链桥 —— 但跨链桥不再是轻客户端事实的来源。** 恭喜,我们刚刚构建了一个主权 rollup!
证明分叉选择
———
眼尖的读者会注意到上一段中描述的系统中存在的问题。在今天的 rollup 中,L1 智能合约负责执行 rollup 分叉选择规则。换句话说,智能合约不只是验证零知识证明,它还会检查证明是否建立在以前的证明(而不是其他分叉)的基础上,并且它是否处理了所有在 L1 上发送的相关“强制交易”。那么,如果我们不使用智能合约,我们如何选择一个规范的分叉呢?
同样,解决方案出奇地简单 —— 如果我们要求证明作为 calldata 发布在 L1 上,那么我们可以添加一条规则,即新证明只有建立在先前有效证明的基础上才有效。尽管我们可以在客户端强制执行此规则,但它会要求用户一直扫描链的历史,一直追溯到创世区块(或者至少一些认可的 checkpoint)—— 但这并不理想。
值得庆幸的是,将其直接添加到零知识证明中并不难。通过将 calldata 绑定到 L1 区块头,我们可以添加一条声明“我已经扫描了 DA 层的证明(从区块 X 开始到区块 Y 结束),并且这个证明建立在最新的有效证明之上”。这让我们可以直接证明分叉选择规则,而不是在客户端强制执行!如果我们已经在扫描 DA 层的证明,我们也可以轻松地扫描强制交易。
可移植性和互操作性
———
在智能合约 rollup 的范式中,L1 的跨链桥是独一无二的。由于跨链桥负责检查未包含在证明中的声明(如“此证明包括所有强制交易”之类的声明),因此将基于证明的跨链桥添加到其他地方通常行不通。但是一旦我们将所有逻辑都移植到证明中,这就不再是问题了。我们可以在任何地方添加跨链桥!
我们甚至可以更进一步。如果我们的 L1 智能合约只是一个普通的跨链桥,我们可以完全取消它。第一次,在不支持智能合约的系统上构建 rollup 是可能的。只需提取现有的 rollup 逻辑并移除 L1 的跨链桥。突然,你可以部署在任何 DA 层上!换句话说,你的 rollup 逻辑可以立即在不同的 L1 之间移植。
结论
———
rollups 的未来是主权的。通过直接证明其分叉选择规则,主权 zk-rollup 可实现无缝互操作性、即时可移植性和快速最终确认。就像智能合约 rollups 一样,它们提供低 gas 成本和信任最小化的跨链桥 —— 但它们不会被迫在成本和延迟之间进行权衡。
在 Sovereign,我们一如即往得开放建设。我们所有的代码都是免费和开源的,欢迎贡献。哦对了,我们正在招聘。如果这听起来很有趣,请与我们一起构建!
Github: https://github.com/Sovereign-Labs/sovereign
Twitter: https://twitter.com/sovereign_labs
Discord: https://discord.gg/kbykCcPrcA
Website: https://www.sovereign.xyz/join
【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。