对话 AltLayer、Scroll、Starknet 团队 | 共享排序器和 L2 共识
引介
我们在看各种 rollup 解决方案的愿景和路线图时就会发现,几乎所有的 rollup 都有一个最终目标,如果把这个目标浓缩成一句话就是:构建一个技术堆栈,将其提供给社区,解决区块链的扩容问题,并最终实现运营和治理这个技术堆栈的去中心化。这就引出了去中心化 rollup 这个词。
那么具体到底是去中心化什么?Rollup 系统中各个部分的分工是怎么样的?去中心化意味着最大化系统运行参与者吗?中心化排序器会带来什么影响?共享排序器以及 L2 本地共识应该如何设计?ZK-Rollup 中独有的证明者负责什么职能?一个开放的去中心化证明者网络是怎么样的?我们为什么需要 zk 硬件加速?数据可用性问题有什么方案可以解决?....
社区上围绕去中心化 Rollup 的讨论层出不穷,因此 ECN 策展了一个以“去中心化 Rollup”为主题的播客访谈系列,邀请了这个领域里的优秀创始人、研究员谈谈他们对去中心化 Rollup 的理解。
随着越来越多流动性涌入 Layer2 平台,越来越多 rollup 服务提供商出现,不仅有通用型 rollup 解决方案、应用专用型 rollup 链,还有 rollup 即服务平台。因此,越来越多人关注到几乎所有 rollup 中一个十分关键的角色“排序器” 依然是中心化的。中心化排序器会有什么风险?去中心化排序器是一个十分紧迫的工作吗?
第二期节目中,我们邀请了 AltLayer Network 创始人 Yaoqi Jia、Scroll 研究员 Toghrul Maharramov、Starknet Exploration Lead Abdelhamid Bakhta,围绕去中心化排序器这个话题进行了一次圆桌讨论,让听众和读者们了解当前去中心化排序器的一些进展以及困境。
本期嘉宾:
AltLayer Network 创始人 Yaoqi Jia, twitter @jiayaoqi
Scroll 研究员 Toghrul Maharramov, twitter @toghrulmaharram
Starknet Exploration Lead Abdelhamid Bakhta, twitter @dimahledba
往期
Arbitrum 研究员 Patrick McCorry
预告
第三期: 证明者网络和 zk 硬件加速
Scroll 联合创始人 Ye Zhang
Cysic 联合创始人 Leo Fan
第四期: 数据可用性和去中心化存储
EthStorage 创始人 Qi Zhou
收听
点击订阅 Podcast,了解更多:
https://ecnpodcast.fireside.fm/decentralized-rollups-series-2
Youtube:
https://www.youtube.com/watch?v=KpIQaDMcEC0
小宇宙:
https://www.xiaoyuzhoufm.com/episode/647ae7c6f81d8df088519ec5
时间戳
- 00:49 Yaoqi 自我介绍
- 01:37 Abdelhamid 自我介绍
- 02:50 Toghrul 自我介绍
- 04:03 排序器在 rollup 中的作用
- 08:37 去中心化排序器:改善用户体验以及解决活性和审查问题
- 19:43 Starknet 将如何去中心化排序器
- 22:59 Scroll 将如何去中心化排序器
- 26:34 Optimistic rollup 和 zkRollup 背景下 L2 共识的区别
- 32:28 zkRollup 去中心化排序器的同时需要考虑证明器
- 36:01 什么是 based rollup?
- 40:53 共享定序器和 based rollup 的缺点,以及它们的应用场景
- 49:02 去中心化排序器会给 MEV 带来什么影响?
嘉宾介绍
Yaoqi
我是 AltLayer 的创始人。AltLayer 正构建一个 “Rollup 即服务” 平台,开发者只需简单地点击一些按钮和配置一下参数。借助我们的 launchpad 或控制面板,他们可以在几分钟内迅速发布应用专用型的 rollup。所以这就是我们目前在尝试的东西,为开发者提供一个通用的执行环境和功能。我们还提供了多序列器、多虚拟机系统,以及各种不同的证明系统供开发者选择。
Abdelhamid
我在 Starkware 工作,我是 exploration 团队的负责人。这个团队的目标基本上就是启动开源项目,这些项目是研究类的,但以工程为重点。我们的目标是与社区以及来自其他生态系统的人密切合作,共同开展开源项目的工作。其中一个项目是 Madara,它实际上是一个 Starknet 排序器。它既是 Starknet 公共网络的候选者,也是 Starknet 应用链和 Layer3 的排序器。这也与前一位嘉宾所说的有关,我们也在考虑提供 rollup 即服务功能,人们可以推出他们的 Starknet 应用链,并以某种模块化的方式选择不同的数据可用性解决方案。而在这之前,我当了四年的以太坊核心开发者,主要负责 EIP-1559 的工作。
Toghrul
我是 Scroll 的研究员,我在 Scroll 的主要职责是协议设计、桥接设计、去中心化、激励,诸如此类的事情。所以如果我没有在推特上乱发帖的时候,大部分时间只是在研究如何使协议或排序器、证明器去中心化,诸如此类的事情。和 Starkware 一样,我们也在研究的事情之一是 rollup SDK。因此,你可以基于 Scroll 发布一个 rollup,并模块化地使用不同的数据可用性选项等等。我们还在考虑一个选项,基于 Scroll SDK 推出的 rollup 可以使用 Scroll 的排序器,来帮助他们实现去中心化,而不需要每个 rollup 都要自己处理去中心化问题。当然,现在还没有最终确定方案。但是,这也是我们正在研究的方向。
访谈部分
话题一
解释一下 rollup 的排序器?
Abdelhamid
排序器是 layer2 架构中一个非常重要的组件,这个组件从用户那里接收交易,然后将它们打包并捆绑到区块中,并执行交易,等等。它非常关键,因为这是负责创建区块的组件,因为 layer2 也是一个带有交易区块的区块链。排序器创建这些区块,然后证明器证明这些区块。
Yaoqi
正如 Abdel 提到的,排序器是区块链中很多功能的组合。因此,与典型的公共区块链相比,实际上现在我们可能给排序器太多的责任。它首先需要聚集来自用户的所有交易,然后对这些交易进行排序,要么基于 gas 价格排序,要么基于先到先服务原则排序。之后,排序器需要执行这些交易。就像现在,一些 Layer2 使用 EVM (Starware 有一个不同的虚拟机),但是,基本上排序器需要使用专用的虚拟机来执行交易,生成状态。之后交易到达了一个预确认的阶段,也就是说如果你看到一秒或两秒,甚至亚秒级的确认时间,基本上它是由排序器完成的预确认状态。然后,对于大多数排序器来说,它们还需要上传或发布检查点或状态哈希到 L1。这是在 L1 级别的确认,我们把它称为数据可用性。所以排序器实际上在 rollup 系统中具有许多作用。但总的来说,我认为它是 rollup 系统中最关键的组成部分。
话题二
为什么去中心化排序器重要呢?如果我们使用中心化排序器,给用户和系统带来的隐患是什么?
Toghrul
首先,我们先要知道目前阶段来说除了 Fuel V1,并没有真正的 rollup,因为其他 rollup 都还存在着辅助轮。
但是,我们可以说,一旦被归类为 rollup,也就是说移除了多签等等。那么排序器去中心化的问题就变成了用户体验问题,而不是安全问题。因此,当人们谈论,比方说去中心化 L1 时,问题是完全不同的。因为 L1 必须为排序和轻客户端提供保证。所以如果一个轻客户端想要验证状态是否正确,它必须相信 L1 的验证者。而对于 rollup 来说,并非如此。因为排序器只是提供临时的排序,然后由 L1 敲定。而且,因为 rollup 也保证了抗审查,我们不需要去中心化来实现这一点。
所以,你需要去中心化排序器的原因有几个方面。首先,比方说如果 L1 敲定很慢 (要么是因为你提交的有效性证明太慢,或者受 optimistic rollup 欺诈证明的挑战期机制影响),你必须依靠一些东西来实现快速交易确认。在这个快速确认的阶段,虽然你可以相信 Starkware 或 Scroll 不会欺骗你,他们表示一个区块被确认后,不会出现重组。这是一种信任假设。而去中心化可以增加一些经济上的保证,等等。
但基于此,rollup 也没有实时最终确定性保证。本质上,你可以通过 L1 进行强制交易打包,但需要几个小时才能打包该交易。所以比方说,如果有一个预言机负责更新并且时间是波动的,那么基本上如果预言机 1 小时甚至以上才更新的话,rollup 里的应用就会无法使用了。从本质上讲,去中心化使我们能够提供一些更强大的实时抗审查保证,因为这样作恶者不仅需要破坏一个实体或少数几个实体,而是要破坏整个排序器网络。
所以对我们来说,去中心化更多的是一种改善用户体验或者说修复预言机更新极端情况的解决方案,等等。而不是提供基本的安全保障,这是 L1 的做的。
Abdelhamid
是的,关于你提到的去中心化排序器和去中心化 L1 的问题不完全一样,我认为这一点非常重要。因为当我们看到一些 L1 批评中心化排序器时,他们对中心化排序器所做的权衡没有正确地看待。
在此基础上,我还要补充一些与用户体验有关的东西,与活性相关。因为当只拥有单个排序器时,你面临排序器宕机的风险更大。因此,去中心化排序器也增加了网络上的弹性和活性。但是,即使在中心化的背景下,在安全方面,我们也有良好的安全保障。因为当你能够通过 L1 进行强制打包交易时,两者区别只在于时间线。而拥有去中心化排序器使你能够拥有快速的抗审查保证,正如 Toghrul 所提到的。所以,我只想补充一点,对于活性来说,拥有去中心化的排序器网络也很重要。
Yaoqi
我想补充一些。活性可能是我们在当前阶段需要考虑的最重要的事情。最近发生在最受欢迎的 L2 上的空投案例,比如 Optimism 和 Arbitrum,出现了一段时间的宕机。因此,我认为我们需要解决的是,当我们只有一个排序器时,如何能够处理每秒上千的交易请求。即便在理论上,如果你只有一个节点的话,它不可能真的可以同时处理这么多请求。因此,关于活性,我们肯定需要多个排序器。单点故障是真正的障碍,不仅仅是对 Web3 来说,即使是 Web2 也是一个大问题。
除此之外,还存在审查的问题。如果我们只有一个排序器,即使我们看到它可以由团队运行,但你仍然需要证明团队不会真的审查交易。有时作恶方是有可能、有能力将某些交易列入黑名单的。那在是一个去中心化的排序器系统中,他们也可以尝试通过其他的排序器发送交易。因此,这就是为什么最近我们得到了很多围绕单一排序器的批评。
除此之外,还有一些其他问题,如 MEV 和抢跑。在中心化排序器的系统中,特别是对于 DeFi 协议,他们可能可以很容易地检查内存池。可能不会通过抢跑的形式,但他们有更好的机会来尾追交易并进行套利。
很多这些问题,由于各种原因,即使我们看到 L2 与 L1 有很大不同。但最终,我们仍需要使它尽可能地去中心化。所以我们必须面对一些我们在公共区块链或 L1 方面遇到的类似问题。
Abdelhamid
对的,我同意去中心化排序器很重要。但我也想说,我们都知道,这不是一个简单的问题。
此外,因为 rollup 有非常特殊的架构,有多个实体。比如有我们正在谈论的单个排序器,但也有证明器,我们需要将这两者都去中心化。这里面会有一些权衡,并且在如何为交易定价方面有一些困难,因为需要不同的因素来运行网络。那么,如何为交易定价?排序器和证明器的硬件要求不同,证明器需要一个超级强大的机器等等。因此,在一个去中心化的世界中为交易定价也是一个非常困难的问题,这也是为什么我们需要时间慢慢推进。
所以我们都会面临这样的权衡,如果我们想快速去中心化,我们可能又需要带着一些辅助轮,逐步去中心化,因为如果我们直接想要完美的架构,这需要几年的时间。所以我认为我们会采用一种务实的方法,并尝试逐步去中心化。至少这就是我们目前的计划,比如可能先从一个简单的 BFT 共识机制,然后在短期内增加另一个共识机制之类的东西。所以我只想说,这不是一个简单的问题。因为在开发速度和架构如何适用于去中心化的环境之间,显然有一个权衡。
话题三
如何去中心化排序器?
Abdelhamid
我们想要去中心化的功能有很多,而所有这些功能都有不同的权衡。
例如,当去中心化时,你想引入某种共识机制。而在共识机制中,有多个部分。首先是领导者选举,即如何选择谁来创建区块,谁将成为在给定的 slot 或给定的时间内负责创建区块的排序者。Starknet 团队计划做的是,尽可能地利用 layer1。也就是说我们的领导者选举算法中,我们希望在 layer1 进行质押。例如,我们有代币,质押将发生在 layer1 以太坊的智能合约上,用它来决定领导者的选举机制。这意味着我们需要有一些交互,L2 排序器将查询以太坊智能合约,以了解谁将是下一个领导者之类的。所以显然需要某种随机性和其他东西。因此这不是一个简单的问题。但这是第一部分。然后你需要有一个针对共识本身的机制。有多种选择:要么是最长链机制或 BFT,或两者的混合。如以太坊,它有 LMG Ghost 和用于最终确定性的 Casper FFG。
因此,我们可能会先采用一种务实的方法,先从 BFT 开始。为什么呢?在 layer2 考虑去中心化的时候,我们的目标不是像 layer1 那样具有那么大的排序器规模。例如,在以太坊上,目标是有数百万个验证者参与。这种情况下不能只使用 BFT 机制,因为这在效率上会非常糟糕,而且会造成非常大的问题。比如说比特币网络上出现了问题,如果是 BFT 机制,链就会完全停止。但事实并非如此,比特币网络继续创建区块,只有最终确定性机制被攻击。
但是在 layer2 ,如果目标是几百到 1000 个排序器,从 BFT 机制开始可能是不错的。因此,我们有领导者选举机制,然后是共识,然后还有另外两个部分,但我先不说了,让其他嘉宾继续补充。但另外两个部分是状态更新和证明生成。
Toghrul
首先,在 L2 中,去中心化是一个多方面的问题,正如 Abdel 所描述的。特别是在 zkRollup 中,因为有证明器和排序器,你必须在他们之间进行协调,你必须去中心化两者。这个问题与 L1 完全不同。
另一个区别是,在 L2 中,你所有的设计都是为了说服底层的桥接,让它相信共识的正确性,而不是说服任意数量的其他节点。你显然也应该这样做,但你的主要焦点应该是桥接本身。
目前,我们正在研究两个不同的方向。第一,我想,和其他人一样,我们正在研究 BFT 协议。这不是很有效率,有一些问题需要解决。我们想出了粗略的解决方案,但它仍然不是最优的。例如,其中一个问题是,你如何平衡排序者和证明者之间的激励?因为排序者控制着 MEV,而证明者没有机会接触到 MEV,因此激励机制决定了人们应该运行排序器而不是证明器。但实际上,我们需要更多的证明器而不是排序器,所以你如何平衡两者之间的激励?这是其中一个问题。
我们正在研究的第二个解决方案是另一种方向。请记住,事情可能会改变。每天都会有新的提案出来。例如,最近有很多关于 based rollup 的讨论,以及你如何能够完全将排序工作外包给 L1。第二种方向是,基本上完全放弃排序器,使用一些外部构建者。例如,以太坊构建者或 Flashbots SUAVE 等,提议排序的区块,然后在证明者内部运行共识。这里的优势在于,你不必处理激励机制,因为基本上你可以将 PBS 在协议内使用,它创造了一个更简单的协议。但缺点是,由于我们需要大量的证明者 (因为我们可以并行证明),所以用它们来运行一个经典的 BFT 协议是相当困难的。因此,问题是你如何优化现有的 BFT 协议,以运行数百、甚至数千的证明器?而这并不是一个容易回答的问题。
引入 L2 共识对于去中心化排序器来说是必要的吗?
Yaoqi
我可以大概地回答这个问题,因为我们最近刚刚推出了类似的东西。
所以是否引入共识,并不取决于我们是否想要。一旦你有很多排序器甚至只是节点,你必须让他们达成协议。这真的取决于你的假设。如果是拜占庭假设,我们可以使用 BFT 或任何现有的拜占庭共识协议。如果是非拜占庭的设置,例如,如果我们只是假设节点只能在线和掉线,而且它不会有恶意行为,那么我们可以使用 Raft 协议或其他一些更快的共识协议。但是不管怎么样,如果我们有一组排序者或证明者,如果我们想把他们组织在一起,在一段时间内产生区块,那么你必须有一个围绕他们的共识协议。
所以,正如 Toghrul 和 Abdel 刚才提到的,我相信有很多提案和研究课题围绕着我们如何实现去中心化的排序或证明系统。所以,因为我们刚刚推出了一个用于多排序器 rollup 系统的测试网 (目前阶段只支持 Optimistic rollup 的欺诈证明),根据我们的设计实施经验,有一些东西我可以分享一下,关于这其中的难点。就像刚才 Toghrul 提到的,难度不在于共识协议本身,真正的难度是在这之外的东西,比如说证明的部分。因为如果是单一排序器,你不需要很多节点。我们可以把它当作一个 EVM,一个虚拟机。因此,只需获取交易和执行,做状态转换。证明器则是负责为前一组交易的状态转换生成证明。但是,如果我们真的为 rollup 上的排序器和证明器运行共识协议,那么我们就需要在那里引入额外的共识逻辑。在此之上,你同时需要有一个共识协议的证明系统。因此,这将为证明系统引入大量的工作来生成。然后一旦你产生了证明,你可以很容易地在 L1 以太坊上验证。
所以这就是为什么在某种程度上,当我们推出首个多排序器测试网时,optimistic rollup 在那方面有一些优势。大致上,你可以简化很多事情,比如不考虑有效性证明部分。像我们的话,我们基本上把所有的东西都和 WASM 进行比较。所以最终这是一个 WASM 指令。所以,通过验证这些 WASM 指令,使用 Solidity 代码进行验证是相对容易的。如果我们只是在以太坊上重新实现了所有的 WASM 指令解释。
但总的来说,这个问题不是单一的。如果我们有了问题的解决方案,相应地,会有一些其他的后续工作需要同时解决。当然,会有 MEV 问题,比如我们如何公平地分配 MEV。你可以根据他们是否产生一个区块或是否验证区块来分配给所有的排序者和证明者。但最终,这其实是很多问题的组合,不仅仅是技术问题,还有经济激励问题。
并且我们需要记住的是,提出 L2 是因为我们想大大减少 gas 成本。所以我们不能有这么多的节点。甚至在生成证明这块,使得 L2 可能比 L1 的成本更高。所以我们真的需要想出一个平衡的方法来解决这种问题。
Abdelhamid
我想补充一点。首先,目前 optimistic rollup 都没有实际的无需许可的欺诈证明。而且每次有机会我都会继续强调这点,因为在比较时要对此保持诚实。所以他们根本就不是 L2。这是第一件事。
然后我想补充一些关于排序和证明之间的异步性,因为它非常重要。正如你所说,我们想优化排序,因为目前这是所有解决方案的一个瓶颈。但在中心化排序的背景下并没什么问题,因为我们知道排序器将只产生价值转换,我们将能够验证它们。但在去中心化排序的背景下会更难,因为也许你的排序器将能够产生一些无法验证的东西。然后你将需要在之后处理这个问题。
中心化排序背景下,为了优化排序,因为我们不必在排序过程中生成证明,我们可以尝试以本地速度进行,这就是我们想要做的。将 Cairo 翻译成 LLVM 这样的低层次机器语言,并在排序器上超快运行。然后你可以异步地证明。而证明方面最酷的事情是你可以并行地进行。通过证明递归可以实现大规模的可并行化。这就是为什么我们将能够赶上排序器的速度。但是当去中心化的时候就很难了,因为我们需要确保排序器只产生有效的状态转换。
Toghrul
我补充一下,我不确定 Starknet 在这里的做法。但对我们来说,我想这是每个 zkRollup 的一般假设,如果去中心化排序器,你的证明系统必须能够处理无效的批次。所以基本上,比方说,如果你提交一个包含无效签名的批次,你必须能够证明所产生的状态等同于起始状态。因此,无论哪种方式都会有一些开销。这是关于你如何使这种情况发生的概率最小化的问题。
Abdelhamid
是的,没错。这就是为什么我们在 Cairo 1 中引入了 Sierra,以确保一切都可验证的。这个中间表示会确保每一个 Cairo 1 程序都是可验证的,这样我们就可以包含一个还原性交易。
什么是 Based rollup?
Yaoqi
Based rollup 最初是来自一个博客帖子,是 Justin Drake 在以太坊论坛上提出的。他的一个想法是,我们可以重用一些以太坊的验证者来验证 rollup 的交易,那么这样我们不需要单独一组组节点来验证不同 rollup 的交易。尤其将来我们会有很多个 rollup,有通用型的 rollup,也会有很多应用专用型 rollup。因此,在这种情况下,如果我们能找到一个通用的地方,如以太坊验证者池来验证这些交易,那就太好了。
当然,这只是一个想法,因为它也引入了很多技术困难。例如,在理论上,我们可以要求以太坊验证者来验证 rollup 的交易,但要让验证 rollup 的逻辑被捆绑或嵌入到以太坊协议本身,这是非常困难的。我们称之为协议内验证,这需要以太坊节点进行硬分叉。当然在这种情况下,我们是可以验证一些 rollup 交易。但如果我们真的这样做,你会发现问题。这有点像我们想让 L2 的 rollup 来分担以太坊的压力,但最后我们还是要求以太坊验证者来承担回卸载给 L2 的一些工作。所以很多人讨论我们如何能做到这一点。
后来我们和一位以太坊基金会的研究员 Barnabe 谈了一下,他目前正在研究 PBS。这是以太坊的一个提案,就是把验证者的任务分成多个角色,构建者和提议者。现在我们已经有 Flashbots 去承担 PBS 中构建者的角色,他们组成所有的区块,并发送给以太坊的提议者。所以一旦这些区块被打包进以太坊网络,同时构建者也会得到一些奖励。然后在这种情况下,如何奖励这些来自以太坊网络的验证者 (validators)?他们也负责 rollup 的验证工作。
其中一个解决方案是“重质押 (restaking)”,可能大家从 EigenLayer 或其他一些协议中听到很多。用户可以在其他排序网络重新质押 ETH。或者对那些实际运行软件来为 rollup 做验证工作的以太坊验证者进行奖励。在这种情况下,他们既可以从 L2 上获得奖励,也可以通过重质押协议获得奖励。到目前为止,对此方案有很多提议,但总的来说,这是关于如何能够重新利用现有的以太坊验证者的想法。我们如何能重用现有的 ETH 来帮助开启新的 rollup 或 L2 系统时代?所以它基本上是在试图简化 rollup 项目的很多工作。如果 rollup 想要一些新的排序器,如果他们想要一些新的质押来源,他们可以重新使用现有的基础设施或现有的质押。因此,这就是为什么它是基于以太坊之上的,然后进一步的基础设施和质押也可以重复用于 rollup 和 L2。
共享定序器和 based rollup 的缺点,以及它们的应用场景。
Toghrul
我要吐槽一些这个提案,我现在并没有被共享定序器相关提案说服到。当然了,它们仍然处于起步阶段,未来如果这些设计有所改良,那么我完全有可能会支持。只是,目前这种形式来说对我并没有没有说服力。原因是多方面的。
第一,对我来说,共享排序器的主要价值主张是让像用户可以在 Scroll 或 Starknet 这样的通用型 rollup 之间获得原子可组合性 (atomic composability)。但问题是,如果你有原子可组合性,那么你的 rollup 的最终确定性就等同于和你组合的最慢的 rollup 的最终确定性。所以,假设 Scroll 与 Optimistic Rollup 组合,那么 Scroll 的最终确定性将是 七天。而 ZKRollup 的主要价值主张是实现相对快速的最终确定性,用户可以在几分钟内撤回到 L1。而在这种情况下,基本上放弃了这一点。
另一个缺点是,如果你想获得链下的最终确定性,你需要运行一个 L2 节点,只要提交至链上的数据被 L1 敲定了,你就在 L2 本地获得最终确定性。如果每个互相组合的 L2 不运行全节点,实际上没法实现本地的敲定。这意味着运行这个系统可能比运行 Solana 这样的系统更昂贵,因为你有多个全节点同时运行,有自己的开销等等。
所以因为这些原因,我只是觉得它对 L2 来说没有意义。对于 L3 来说就有点不同,因为如果有人想构建应用专用型的链,并且不想处理去中心化的问题。比如说我正在构建一个游戏,我只想处理构建游戏的相关问题,那么我可以把去中心化的工作外包出去。但是我认为对于 L2 来说,目前还没有意义。
而对于 based rollup,我也有我的担心。比如说,你如何与证明者共享 MEV 的利润?因为如果不考虑分配问题,基本上 L1 就可以获取所有的 MEV 利润。还有一件小事就是它的确认时间等同于 L1 的确认时间,也就是 12 分钟,不能更快了。另一个问题是,由于它是无需许可的,多个搜索者可以同时提交交易批次,这意味着最后可能会导致中心化的结果。因为如果一个搜索者比其他人更容易地连接,构建者会受到激励包含他们的交易。因此,可能会导致最后只有一个搜索者长期为 L2 提议批次,这不是一个很好的解决方案,因为如果发生这种情况,我们基本上回到了原点。
Yaoqi
有意思的是,实际上在上周,我刚刚与 Espresso 的创始人 Ben 进行了一次通话。我们在共享排序器话题讨论了很多。正如 Toghrul 所提到的,我认为对于共享排序系统的使用场景有一些不确定性。这主要是因为对于通用型的 L2 来说,由于效率、复杂性以及经济性,通常情况下我们不会有大量的排序器。而且我还是觉得,无论是对于共享排序器、based rollup 还是 restaking 来说,最好的使用情况主要是对于 RAS (Rollup 即服务) 或这类平台,在这些平台上我们可以推出很多 rollup。如果不是有很多 rollup 的话,说实话我们并不真的需要一个大型的排序网络。当只存在一些通用型的 L2 时,这些 rollup 已经有了自己的排序器系统,并且已经有自己的社区或合作伙伴。他们并不真的需要有一个单独的和第三方网络。同样,这对第三方网络来说也是一个负担,因为你必须为每个 L2 定制,每个 L2 都有不同的测试栈。这需要对你自己的网络做很多改变。
但同时,正如 Toghrul 提到的,对于一些特殊的用例。例如,如果我们想在排序器层面有一些互操作性,共享排序器可以是一种潜在的方式。例如,同一个排序器被用于多个 rollup。在这种情况下,这个排序器基本上可以处理一些跨 rollup 的交易,以确保在 rollup A、B、C 之间实现跨链原子性。
但是当我描述这个情况时,你也可以看到这里的问题。如果我们真的有很多这样的共享排序器,它们就又会成为瓶颈和新的单点故障。我们给了这些所谓的共享排序器太多的权力。他们正变得更像一个网络,控制着很多的 rollup。最后,我们又需要想出一个办法来去中心化这种共享排序器。
但无论如何,我认为人们逐渐发现越来越多的问题,同时也提出越来越多的解决方案,这是件好事。总之,看到这个领域每天都有新的变化,这很令人激动。有了所有这些新的解决方案,至少我们正走在正确的轨道上,真正实现整个 rollup 领域的去中心化。
Abdel
是的,我同意你们俩的观点。我认为这对 Layer3 和应用链来说更有意义,因为他们不希望再负担起激励一个去中心化网络的责任,需要找到合作伙伴来启动排序器之类的东西。所以我认为对于应用链来说,它是有意义的。但是像 Toghrul 一样,我目前还不认为这对 Layer2 来说有很大的意义。
话题四
去中心化排序器会给 MEV 带来什么影响?
Abdel
对 Starknet 来说,在中心化的背景下,我们不做任何类型的 MEV,我们采用先到先服务的模式。也就是说去中心化背景下时,当然之后会带来更多的 MEV。但现在说哪个比例还为时过早,因为这也取决于共识机制的设计和其他方面。
Toghrul
但问题是,即使你不做 MEV,可能也有一些 MEV 仍在 Starknet 中发生。那么去中心化本身并没有真正减少 MEV 或增加 MEV。当然,举例来说,如果你应用某种公平排序协议或阈值加密,那么没错,你将 MEV 最小化。但你不能完全消除它。我的理念是:MEV 不能被消除。但是,让我们假设你只是在创建一个 BFT 共识,或者在 BFT 共识的基础上构建东西。这其实根本不影响 MEV。MEV 仍然存在,这应该是关于搜索者如何与排序者合作以提取该 MEV 的问题。
Yaoqi
问题是,即使是先到先服务模式也有棘手的部分。一旦我们对一些搜索者公开了内存池,他们仍然有优势发挥更多。例如,对于排序者,他们就相当于就在你的办公室门口等着。因此,在这种情况下,一旦他们看到某种套利的机会,不仅仅关于抢跑或是三明治攻击,一旦用户发送交易,他们可以立即在内存池中看到。所以,他们可以迅速将自己交易放在其他人的前面。所以,他们比其他搜索者有优势。
但回到去中心化,我认为这主要是为了抗审查,就像我们在开始时讨论的那样。排序器是由团队管理的。团队可以说,他们对每个人都很公平。但是这没有在代码里防止。所以,如果我们能有一个 P2P 网络,如果我们觉得这些节点审查了我的交易,然后我们可以发送到其他节点,那就太好了。所以,这其实是关于在 L2 处理交易的公平性。
至于 MEV,因为最近,除了单一 rollup 内产生的 MEV 之外,还有一些跨桥接产生的 MEV。在这种相对来说较为去中心化的排序网络中,你将有更多的机会来提取 MEV。假设我们有一个共享排序网络,如果你能以某种方式影响共享排序器以重新排序交易,基本上你比其他人有更大的优势。
共享排序器网络有优点和缺点。优点的话,我们能使排序器系统进一步去中心化。但从反面来看,每个人都有机会成为一名排序者。所以,他们基本上可以做任何他们想做的事情,这又再次成为一个黑暗的森林。所以说,我们引入了去中心化,然后我们又不得不面对我们在以太坊面临的类似问题。这就是为什么 Flashbots 和以太坊基金会的人想推进 PBS,将提议者和构建者分开,然后试图在构建者方面有一个单独的解决方案。
所以当我们看这个问题时,它不仅仅是一个单一的问题。这不再是一个一对一的问题,而是一对六,甚至更多。