本报告主要围绕 Vitalik 最近的 SBC MEV 研讨会演讲而构建。我将把它分解并提供进一步的分析。
快速回顾——本报告的一个关键主题是 Vitalik Buterin 在《终局游戏》一文中的想法,即所有前进道路似乎都通向:
生产者 - 构建者分离(PBS)试图将中心化与构建者隔离(远离验证者),然后以太坊添加盔甲(例如 crList)以减轻构建者的审查权力。构建者自然会很老练,所以悬而未决的问题主要是他们的中心化程度。我们是在说 1 个构建者?还是 10 个?
一个中心化构建者仍然不理想,那么我们能做得更好吗?解决这个问题有两种方法:
去中心化构建者角色本身 —— 使获胜的构建者本身成为去中心化的协议。一组去中心化的参与者都有助于构建一个给定的区块。
本报告主要围绕 Vitalik 最近的 SBC MEV 研讨会演讲而构建。我将把它分解并提供进一步的分析。
这里实际上有两个潜在的问题:
中心化构建者很容易。下面考虑了一些可以去中心化的分布式构建者,需要在许多搜索者和用户之间聚合捆绑和交易:
资料来源:基于 Vitalik Buterin 的图片
如果我们想在整个区块生产供应链中避开受信任的第三方,有几个障碍需要克服。我将在这里解决的一些挑战包括:
如何保护搜索者免受 MEV 窃取?
如何允许聚合器机制组合搜索者输入?
如何保证聚合器机制能够真正发布这个区块?
如何保护搜索者免受聚合者 + 提议者勾结?
请注意,这并不是构建分布式构建者所面临的挑战的详尽列表。还有其他悬而未决的问题(例如,您如何防止分布式构建者受到他们被迫模拟的大量不良捆绑包的 DDOS 攻击?)和未知的未知数。
一种方法利用可信硬件 - TPM(可信平台模块)。排序如下所示:
在解密区块之前,TPM 必须确信两件事:
有几种方法可以证明提议者签名的可用性:
这种方法需要 M of N 聚合器,但我们可以摆脱 TPM。该过程如下所示:
最后一步很棘手。计算状态根需要清楚地看到交易,或者至少看到它们的状态更新。然而,即使看到状态更新也可能足以进行 MEV 窃取。对于何时计算状态,我们有几个选项:
请注意,对于此 EigenLayer 构造,也可以避免前面提到的 SNARK 要求。这里的提议者可以预先提交一个替代区块或替代区块组合,如果提交给他们的区块或替代区块组合被证明是无效的。然后可以使用一个欺诈证明来检查第一个区块组合的无效性。
EigenLayer 技术可以直接用于不相交的捆绑合并,或者它可以依赖于每个插槽内的多轮顺序拍卖。(请注意,如果需要,也可以在此顺序构造中避免 SNARK 要求。)
例如,以下可能发生在一个区块中:
第 1 轮
第 2 轮
4. 提议者签署一条 EigenLayer 消息,预先同意额外的交易(包括捆绑 2),从而在本轮中最大化他们的出价以继续这个区块
5. 构建者公布该区块的这一部分
6. 提议者发布状态差异
第 3 轮…
一个缺点是这种合并可能不是最理想的。例如,提议者可能已经预先同意捆绑包 1,然后他们收到了与捆绑包 1 冲突的更有利可图的捆绑包 2。他们将不得不拒绝此捆绑包 2。
具有相同订单流的中心化构建者可以看到所有交易,当他们在插槽末尾构建区块时可以包含捆绑包 2(因为他们没有预先同意捆绑包 1)。
另一个潜在的缺点 - 顺序拍卖可能会使非原子 MEV 变得非常困难,因为如果世界状况发生变化,搜索者将无法取消或更新他们的出价(一旦承诺)。如果您需要在交易被包含之前 10 秒以上提交交易,那么如果您保留更新出价的能力,您将无法承担尽可能多的风险。
但是,该示例假定相同的订单流。实际上,由于它提供的保证,这种分布式构建者可能能够在接收更多订单流方面胜过中心化构建者。更好的保证 → 更多的订单流 → 构建最有利可图的区块(即使有其他缺点)。然后,由于分布式构建者始终提供最高价值的区块,因此提议者选择这种结构(切断自己接受其他构建器的区块)将具有经济意义。
为了取得成功,分布式构建者提供的价值可能需要超过它带来的缺点(包括效率较低的合并和非原子 MEV 的挑战)。
Danksharding 使验证者的节点要求较低。单个节点只负责下载区块的一部分。
然而,最初提出的设计将有意义地增加构建以太坊区块的硬件和带宽要求(尽管验证者总是可以以分布式方式重建)。那么问题是我们是否甚至可以以分布式方式进行初始构建。这将消除对单个高资源实体构建完整区块、计算所有 KZG 承诺、连接到许多子网以发布它,等等。
(注意:这个架构是否会使用子网或类似 DHT 的开放研究问题,但我会在这里假设子网)。
实际上很有可能以分布式方式构建。分布式纠删码甚至没有那么难。
首先,包含每个数据交易的人负责对其进行编码并将 blob 区块传播到子网和数据可用性网络。
当聚合器选择包含哪些数据交易时,他们可以使用实时 DA 预言机。聚合器不能只自己进行数据可用性采样 (DAS),因为当只有一方进行 DAS 时,这并不安全。所以一些分布式预言机需要下载整个东西。
然后网络可以从这里填写列。请记住,数据在此 2 D 方案中得到扩展。例如,每个 blob 是 512 个 chunks,但它被擦除编码为 1024 个 chunks。然后扩展也垂直运行。例如,您在此处说图像中有 32 个 blob,然后垂直扩展为 64 个 blob。多项式承诺在每行水平和每列垂直运行。
资料来源:Vitalik Buterin
由于 KZG 承诺的线性,你可以填写这些列,这将用于以太坊的分片设计。
KZG 的承诺 (com) 具有线性关系。例如,您可以说 com (A) + com (B) = com (A+B)。
你在证明中也有线性。例如,如果:
更正式地说:
这种线性属性允许网络填入所有内容。例如,如果您有第 0 列中第 0-31 行的证明,那么您可以使用它来生成第 0 列中第 32-63 行的证明。
只有 KZG 具有这种承诺线性和证明线性(IPA 和 Merkle 树,包括 SNARK 的 Merkle 树不能同时满足这两个)。
要更深入地了解以太坊的 2 D KZG 方案,您可以查看我的以太坊报告或 Dankrad 最近的 KZG 演讲。Vitalik 的这篇研究文章还谈到了将 KZG 与 IPA 用于 DAS 的考虑因素。
这里的 TLDR 是 KZG 有一些非常好的属性,允许分布式区块构建和重建。您不需要任何一方来处理所有数据、扩展所有数据、计算所有 KZG 承诺并传播它们。它们可以为每一行和每一列单独完成。如果这样做了,我们就没有剩余的超级节点要求:
资料来源:Dankrad Feist 和 Vitalik Buterin
如果我们无法实现所有 KZG 魔法,那么这是下一个最佳选择。
行承诺的前半部分只是 blob,所以没有问题。然后,构建者必须提供其余部分和一些列承诺。
然后这些承诺必须匹配。所以 jᵗʰ 坐标处的 iᵗʰ 行承诺 = iᵗʰ 坐标处的 jᵗʰ 列承诺。
更正式地说:
这可以像讨论的那样以分布式方式完成,但请注意,这样做更难:
以太坊区块时间很慢,用户喜欢快速的区块时间。以太坊做出这一牺牲主要是希望支持一个大型去中心化验证者集——Vitalik 在这里写过的权衡空间。但是我们能做到两全其美吗?
以太坊 rollup 用户已经了解并喜欢这些预先确认。构建者创新也许能够在基础层提供类似的服务。
例如,构建者可以同意:
如果构建者不履行他们的承诺,他们可能会被削减。
在具有并行化 EVM 的未来,您还可以通过预先确认获得更高级的信息。例如,只要用户关心的状态没有改变,即使在给出预先确认之后,构建者也可以重新排序一个区块中的一些交易。
是的。分布式构建者可以运行一些内部共识算法,例如具有快速出块时间的 Tendermint。构建者可能会因以下原因受到处罚:
请注意,为了在此处获得最佳安全性,需要对最终构建者签名进行某种帐户抽象。阈值 BLS 是不可归因的——这意味着如果建设者只是 BLS 签署区块,如果出现问题,我们将不知道该削减谁。抽象签名将解决这个问题。
对于任何构建者预确认服务(分布式或中心化的),请注意,预确认仅与他们实际构建获胜区块的能力一样好。具有更高包含率的更占主导地位的构建者可以提供更好的预确认。
但是,您实际上可以通过分布式构建者获得更强的预先确认,例如 EigenLayer 构造。如果当前提议者选择了 EigenLayer 并且您获得了预先确认,那么您的交易必须包括在内。您不再押注于中心化构建者的概率赔率,给您一个预先确认然后最终是否赢得区块。
假设所有的技术都成功了,分布式构建者有成千上万的参与者。你甚至可以让大部分以太坊验证者选择加入提供亚秒级预确认的 EigenLayer 构造。与中心化构建者相比,这种分布式构建者具有一些不错的竞争优势:
中心化构建者可能具有其他优势,一些是固有的,一些基于分布式构建者的构造:
以太坊在很大程度上是根据最坏情况假设设计的——即使只有一个构建者存在,我们如何才能最好地减轻他们的权力(例如,审查能力)?
然而,我们可以(并且应该)同时努力避免这种最坏情况的假设。这意味着设计一个并不总是导致根深蒂固的中心化构建者的系统。这里描述的两个想法提供了一些更有趣的可能性。然而,它们远不是一个详尽的清单——其他想法正在积极探索中,并且应该继续探索。
此外,这不应被视为“专有订单流的问题神奇地消失了,因此我们不再需要围绕它进行构建。”dApps 必须继续围绕 MEV 进行机制设计创新,包括减少对专有订单流的需求。MEV 不会去任何地方。
特别感谢 Vitalik Buterin、Sreeram Kannan、Robert Miller 和 Stephane Gosselin 的审阅和意见。没有他们的工作,这份报告是不可能完成的。
责任编辑:Felix