来源 | @krzKaczor
译者按:L2 研究者 Kris Kaczor 在推特上对目前 Rollup 项目的定序机制进行了讨论,列出了定序者的一些特有权限,以及未来如何实现无需许可的定序模式。以下为其推文的翻译:
-
Uniswap 部署至 Optimism 之后,大家对于交易能够快速确认都感到无比兴奋,但是这一过程到底是如何运作的?用户能够信任它们吗?再者,仅依靠单个定序者来对交易进行确认不会阻碍去中心化的发展吗?让我们好好谈谈这个问题!
-
首先,在许多 rollup 系统中 (如 Optimism、Arbitrum、StarkWare、zkSync 等),定序者作为特权角色,他们接收来自用户的交易,对其进行排序并且批量提交至 L1 中。
-
他们之所以存在,主要是因为单个协调者能够带来更好的简洁性和更高的效率。在目前这个阶段,每个 rollup 通常有一个定序者,由 rollup 的创建者运行。
-
单个定序者负责对用户的交易进行排序。得亏这一点,在收到用户的交易后,定序者可以立即处理该交易并向用户发送即时确认。这极大地改善了用户体验。
-
用户可能会担心定序者能够执行任意的 MEV,这个担心完全合理,但我会稍后再谈论这个问题。
-
如果定序者诚实作为,那么一切都将运行良好。但如果定序者开始腐败了呢?如果他们欺骗用户并且试图破坏网络怎么办?让我们深入讨论一下。
-
最重要的一个问题是:定序者能够盗窃用户的资金吗?简短的回答是:不能。状态转换的有效性由 rollup 架构 (optimistic rollup 中的欺诈证明或者 zkrollup 中的有效性证明) 提供保证。
-
定序者能够审查用户的交易吗?答案是可以。一个定序者通常是一个 JSON RPC 节点。与 Infura 类似,定序者甚至可以谎报网络状态或者审查用户的交易。
-
幸运的是,审查并不是一个很大的问题,因为所有 rollup 系统都有办法通过不可审查的 L1 发布 L2 交易。然后,协议迫使定序者在几分钟之内将用户的交易包含到一个 rollup 中。
-
如果定序者谎报状态,用户将需要运行自己的节点,然后基于发布到 L1 的批量交易重新创建 rollup 状态。这听起来很糟糕,但实际上和 L1 的情况是一样的。
-
最后,定序者可以谎报即时确认的情况吗?答案是可以的。如前所述,定序者能够欺骗用户当前网络状态以及用户交易的打包情况。
-
比如,定序者可以欺骗用户他们的交易已成功,但实际上交易回滚了 (或相反的情况)。并且用户只有从 L1 中重新创建 rollup 状态后才会意识到这一点。
-
在 rollup 交易被发布至 L1 之前,都不会被敲定。这就是为什么用于 rollup 的 web3 库通常允许开发者轻松地构建 UI,然后他们等到交易在 L1 上敲定。
-
这个问题的解决方案可能是,定序者接收到用户的交易后就签名确认。如果交易在 rollup 中没有完成,那么用户就可以对定序者实施罚没惩罚。这可以通过类似瞭望塔的服务实现自动化。
-
这才是让我感到兴奋的地方 —— 这只是定序技术的开始。在不久的将来,我们将看到更复杂的设计,解决我刚才提到的许多问题。
-
我们可以运行整个无需许可的 PoS 定序者网络,而不是运行单个需要许可的定序者。每个 L1 批量交易将由一个更大子集的随机定序者创建。这将大大地提高网络的弹性,并且增强网络抗审查的能力。
-
当然,每个定序者都将需要质押一定的资产,以便其不诚实作为时能够被罚没。
-
其他项目比如 Arbitrum,试验了一个公平的协议,试图发现交易的“真实”排序。https://t.co/YwEKq1LNRF?amp=1
-
它可以被 MEV 拍卖所接受,而不是与 MEV 对抗。在这种 MEV 拍卖中,各方相互竞标以获得运行一个定序者一段时间的权利 (但这个想法有一些问题)。
-
大家可以在 Vitalik Buterin 关于 rollup 的文章中阅读更多有关 rollup 设计的信息。以下摘取自文章《Rollups 不完全指南》中“谁能批量打包交易并提交?”部分。
对于 optimistic rollups 和 ZK rollups 中交易的打包权有许多说法。一般来说,任何想要打包交易并且提交的用户,必须要锁定大量存款。如果用户提交了包含欺诈/无效交易的 batch (例如包含无效状态根),那么该用户的存款的一部分会被销毁,另一部分则作为欺诈证明者的奖励。除此之外,还存在其他可能性:
➤ 完全“无政府状态”:任何人都可以在任何时候批量打包交易并提交。这是最简单的方式,当然也存在缺陷。尤其是多个参与者同时尝试提交但最终只有一个 batch 能被成功打包。这会导致大量生成证明的工作和/或发布 batches 的 gas 被白白浪费。
➤ 中心化处理:存在一个行为者即定序者 (sequencer) 提交 batches (但提款存在例外:通常来说一个用户可以首先提交提款请求,如果定序者没有在下个 batch 中处理该提款,那么该用户能够自己提交一个 batch)。这是最“高效”的方式,但是依赖于一个中心化的角色。
➤ 定序者拍卖:通过定期举行拍卖的形式来确定谁有权成为下一个周期的定序者。其优点在于它可以筹集资金,并通过例如由 rollup 控制的机制 (例如 DAO) 来进行分配。(参见 MEV 拍卖)
➤ PoS 集随机选择:任何人都可以将 ETH (或是 rollup 协议的代币) 存入 rollup 合约,然后在存款人中随机选择每个 batch 的定序者,被选中的可能性与锁定资产成一定比例。这个方式的主要缺点在于会有大量资本被锁定,而这是不必要的。
➤ DPoS 投票:通过拍卖确定一个定序者,如果该行为人表现不佳,那么代币持有者可以通过投票将其驱逐,并发起新的拍卖。
- 总而言之,在我看来定序者在去中心化和提高交易处理速度之间取得了适当的平衡。现在有很多人正努力改善定序技术,未来可期!
ECN的翻译工作旨在为中国以太坊社区传递优质资讯和学习资源,文章版权归原作者所有,转载须注明原文出处以及ethereum.cn,若需长期转载,请联系eth@ecn.co进行授权。