协议内交易排序

本文为机器翻译
展示原文

前言

这个想法是对 FOCIL 设计方案的扩展。它最初是与 FOCIL 同时/独立创建的,最初是为了汇集和排序交易而创建的,目的是从协议设计中完全移除构建器工作流。在与几个人交谈后,我们发现 FOCIL 正在取得进展,在仔细研究之后,该设计中提出的交易选择时机比这个想法提出的要好得多(需要少 1 个插槽并使用更大的委员会)。

这个想法被缩减为建立在 FOCIL 之上,而不是成为竞争对手,因为它们实现了相同的目标。这里包含的一些想法可能可以与 FOCIL 集成,但它是单独提供的,以促进有针对性的讨论,并且不会混淆正在进行的设计。

特别感谢 Phil Ngo、Nico Flaig、Cayman Nava、Guillaume Ballet、Greg Markou、Gajinder Singh、Navie Chan 以及其他许多人花时间帮助完善这个想法。

抽象的

本提案的重点是交易的排序。它还解决了奖励和惩罚问题,以配合新的纳入委员会和更新的提议者职责。

对于建设者来说,提案流程中有两项主要职责需要解决,以便通过加密经济手段排除中心化力量。

  • 选择要纳入的交易
  • 交易排序

FOCIL 是解决这两个主题中第一个问题的核心的绝佳解决方案,但它可以通过将区块中包含的交易限制为仅包含列表中的交易来进一步完善。通过失去代理权,这将消除将交易添加到区块的经济动机,这些交易会对获取 MEV 的排序产生负面影响。

排序将成为一个确定性过程,使用通过 FOCIL 提出的聚合包含列表和包含种子。包含种子是按槽位生成的熵,专门用于防止交易排序期间的串通和提取行为。

因为区块构建期间的大部分工作(在当前头部提议的区块中包含和排序交易)已从提议者身上移除,所以奖励机制应该按比例更新,以补偿为协议提供价值的各方。

设计

要提供确定性、不可玩弄的排序,需要考虑三件事。特别是从概率上不可预测的排序,这样夹层攻击和多块 mev 在经济上就不受激励了。

  1. 交易不再被纳入 slot N 区块的截止时间
  2. 为 slot N 选择包含种子的时间
  3. slot N 内交易随机化的可验证性

排序启发式的关键在于前两项按该顺序发生。如果直到纳入窗口关闭后才知道种子,则可以构建启发式,使得“挖掘有序交易”(在交易列表中的某个位置执行)是不可行的。

第三项确保一旦知道种子,网络上的任何节点都可以计算相同的交易顺序,以证明遵守协议。它还允许对(不)遵守协议的行为进行奖励和惩罚。

时间考虑

插槽 N-1
t0:槽位 N 的提议者选择一个随机数,准备并传播该数供纳入委员会使用
t9:FOCIL IL 委员会从本地内存池中选择 IL 的截止点,并根据 slot N-1 的共识头八卦单个 IL,IL 包括 slot N 中的生产者生成的哈希随机数

插槽 N
t0:在 N-1 中传播的 Inclusion nonce 被揭盲并用于创建 Inclusion Seed。Inclusion Seed 被发送到 EL 用作幂等排序函数的参数。生成一个有序列表,该列表代表一个完整区块的 gas 值,并执行该交易列表。区块由 EL/CL 联合生成,CL 在将区块发布到网络之前将揭盲的 nonce 添加到区块中。
t4:在区块有效性检查期间,证明者必须验证盲化/披露的随机数、包含种子和交易排序。证明者在时隙 N 对有效区块进行投票。

包容种子

纳入种子的目的是为交易顺序提供熵。它应该类似于 RANDAO,以便使用可证明且可由所有关注链的人知晓的链上数据。然而,RANDAO 的更新频率太低,因为它是基于时代而不是基于时隙的。对于时隙顺序,熵也需要是时隙顺序。最小化提取行为的关键是需要在时隙 N-1 中交易纳入窗口关闭之后但在时隙 N-1 结束之前选择种子,以便时隙 N 的提议者可以使用它。

当使用该提案建立在 FOCIL 之上的假设时,熵选择的理想来源将是聚合的包含列表,这将很难进行挖掘。

基于时间的种子攻击解决方案

不过,这种方案的一个可能的攻击媒介是等待最后一位委员会成员提交 IL,这将为包含影响种子的内容提供机会,从而影响最终排序。它还会激励计时游戏,产生连锁反应,削弱未汇总列表的网络传播。

一种解决方法是让 IL 聚合过程在最终列表中包含一些额外的熵,例如签名或随机数。

聚合器合谋种子攻击解决方案

然而,签署列表或使用简单的随机数是不够的,因为它会为最终委员会成员与下一位提议者勾结打开攻击面。为了使勾结起作用,勾结的委员会成员可以访问下一位提议者的密钥,或者只是与下一位提议者协调,为 slot N 挖掘交易(以及包含该交易的 IL)。

为了防止这种攻击,应该使用揭露流程。提议者要做的第一件事是在提议之前在时隙中传播签名哈希。传播的消息需要在很早的时候公布,在时隙开始后的 0-2 秒内,最好是在发布The Block之前(实际上只需要在未聚合的包含列表传播之前,因为它们需要在 IL 中包含随机数以进行验证)。

在未汇总列表的八卦之前宣布盲随机数,之后再透露,除非整个纳入委员会参与该计划,否则不可能串通挖掘交易。

Nonce 生成与揭示机制

为了确保足够的熵,提议者会选择一些随机字节,可能在 8-32 字节范围内,以防止在分配的时间内进行暴力猜测,然后混入来自 RANDAO 的一些有状态随机性。然后对随机性进行哈希处理以隐藏真实值,哈希将由时隙的提议者签名,但关键的是,它会在时隙 N-1 中进行闲聊,以便可以将其附加到 IL 中以证明它是在 IL 创建之前收到的。

在时隙 N 中,提议者(迄今为止唯一应该知道真实未盲值的参与者)将把随机数传递给 EL,以便 EL 可以按照协议规范对交易进行排序。未盲值将附加到The Block中,以便可以向证明者透露区块验证和投票。

种子验证

然后,证明者可以通过检查包含列表中的散列随机数是否与混入状态随机数(来自 RANDAO)后包含在The Block中的非盲随机数的哈希值相匹配来验证用于混洗交易的包含种子。

确定性和可验证的排序

要使排序既具有确定性又可验证,只需要两个部分:已知输入和众所周知的幂等排序函数,如下所示:

Torderd,Tremaining = f(ILagg,IS)

在哪里:
ILagg - 汇总包含列表
IS——包容种子
Tordered - 交易的有序列表
Tremaining-剩余交易将滚动到下一个区块

排序算法

通过将交易哈希乘以包含种子,让溢出的值回绕,然后按数字顺序排列交易,可以轻松实现排序。这过于简单,可能无法抵御可能欺骗系统的挖矿交易。

另一种选择是按哈希值对聚合包含列表中的交易进行数字排序,然后使用包含种子而不是 RANDAO 对集合运行类似于交换或不交换的算法。这可能更耗费 CPU,但对于较小的集合(1000± 笔交易)来说,它应该是相对高效的。

发送方地址可以替代交易哈希作为排序的根值,但目前优先选择交易哈希。

启发式排序

在实现确定性、不可操纵的排序时,需要考虑一些用户因素。需要在优先费用的加密经济激励与防止夹层攻击的严格性以及通过交易副本监控内存池以提取价值之间取得平衡。

伪随机排序

每个人都有同等公平的机会获得区块内的订单。虽然这是最平等的解决方案,但这忽略了支付更高优先费的加密经济学。忽略这一点最有意义的情况是减少有人监控交易池的可能性,因为这些交易可以通过抢先交易获利。非法参与者只需提交具有更高优先费的交易即可。

随机排序消除了复制交易的大部分经济动机,但并没有解决多个条件执行交易的不良垃圾邮件问题,以增加在合法参与者之前执行的概率。

优先费用感知伪随机排序

为了解决条件执行交易的垃圾信息,以确保首先随机执行交易,可以使用一种启发式方法,即制作按费用捆绑的交易部分,这样更高的费用就会流向The Block的开头。对于具有相对较高优先费用(可能是有利可图的套利)的交易,匹配大量交易的费用将非常昂贵。在部分内保持伪随机性将使这种赌博或单个交易的竞标成本高昂,并且无法保证成功。还可以动态地制作部分,这样如果存在费用异常的交易,则可以构建部分的界限以促进更公平的执行。

As an example for a given block, the transaction priority fees in gwei:`[ 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 4, 100 ]`The tranches could be crafted like:`[ 1, 1, 1, 1, 1, 1, 1, 1, 1 ]``[ 2, 2, 2, 2, 2, 2, 2 ]``[ 4, 100 ]`

基于优先费用的排序(非伪随机)

一旦加密内存池完全实现,就有可能转向完全基于优先级费用的排序启发式方法。这将是完全依赖市场动态来设定执行订单定价的理想情况。

奖励与惩罚

在这个范例中,将交易添加到包含列表的搜索者将获得大部分奖励。The Block现在将严格遵守协议并减少代理。随着职责的减少,大部分提案奖励应该转移到搜索者身上,以避免通货膨胀。这还将带来额外的好处,即从单个提议者到整个 IL 委员会的奖励更加平滑。可以说,提议者在 N-1 生成和传播包含随机数现在是一个关键的失败点,因为提议过程将取决于他们。因此,在插槽 N 中获得的The Block奖励应该是插槽 N-1 的随机数传播的必要条件。

FOCIL 的奖励机制也需要扩展,以适应将部分区块奖励转移给搜索者以纳入新交易。FOCIL 团队提到了这个想法,但尚未最终确定,因此需要在该提案取得进展后在此处进行更新。

由于 IL 委员会现在掌握着交易选择的关键部分,因此这项任务现在变得非常重要。因此,委员会成员的含糊其辞应该像创建有冲突的证明或区块一样受到惩罚。

剩余交易

拥有多个未聚合的包含列表,并将一个区块的所有交易合并到一个列表中,这意味着提交的交易可能会多于单个区块可以容纳的交易。这意味着包含池(IL 委员会成员提交的交易)可能需要插入到后续区块中。如何实现这一点仍是一个研究领域,但目前提出的一些建议如下:

  • 不保证 IL 交易必须包含在内。更像是包含建议列表,并且将使用启发式方法将可重现的交易包含在The Block中。所有未包含的交易可能会添加到后续的阻止列表中
  • 限制 IL 大小以防止溢出
  • 添加时间权重,使等待纳入的交易在下一个区块中获得更高的优先级。例如,这可以添加到优先费用中。如果提交了大量高费用交易,导致无法纳入,则可以增加后续区块的时间权重,以帮助最终推动交易通过
  • 设置排序Threshold。如果交易的优先级费用非常低,并且没有进入多个区块,它将被从溢出中移除

在所有建议中,第一个是最简单、最实用的。唯一需要做的就是开发一种启发式方法,用于将交易纳入列表中。

与其他 EIP 和现有路线图的互动

账户抽象

在生成列表时,EL 可以将 AA 生成的交易纳入 IL。不过,这样做的优先费用会有一些细微差别。

电子PBS

该提案将消除对 ePBS 的需求以及它给协议带来的复杂性

提议者-证明者分离

执行票和其他时段拍卖式提案可能会进一步由构建者进行垂直整合,这确实令人担忧。如果在协议中进行订购,则可以大大降低这种风险。这将有利于所有将提议者职责与证明者职责分开的建议,这将大大提高允许非常轻量级的仅证明客户端的协议开发的成功实施

讨论

协议简化

系统越复杂,在系统内规划和实施协议时,博弈论就越困难。我认为,在小部件之上构建小部件来解决问题会在小部件旨在保护的系统中产生更多的攻击面。在构建协议以抑制 MEV/建造者/中继的情况下,如果不消除建造者流,就会产生更多的漏洞。我们必须解决现有的系统设计问题,并在没有“协议之外”不透明解决方案的帮助下,攻击交易的根本原因、选择和排序。

在协议中保留密码朋克和平等主义原则

让以太坊再次成为密码朋克。这是我们朝圣 MECA 的行动号召。为了保留将我们带到这里的精神。建设者和围绕他们建立起来的生态系统不得篡夺 L1。允许参与者从诚实的参与者那里获取价值不仅与区块链的理想背道而驰,而且还会阻碍传统行业的采用。区块链将法治带入数字空间。单一参与者高于协议的理念。恢复和保留这一点将吸引人们尝试使用区块链作为系统间交互的信任根源。

分层结算

传统金融系统建立在层层基础架构之上。强调这一点很重要,因为该提案引入的权衡可能会遭到重大反对。对于某些参与者来说,结算时间可能会增加。某些交易可能会失败,因为构建者提供了一定程度的交易协调(以牺牲 MEV 为代价)。交易费用可能会上涨。L1 不是、也不应该被设计为即时结算。达成共识需要时间,而这种速度的权衡是去中心化及其赋予的安全性。如果激励措施得到正确调整,构建者会感到不安,因为价值提取将转换为优先费用。交易量将转移到 L2。但对于以 L2 为中心的扩展路线图来说,这些都是有益的事情。

能够促进流动性池价格发现,即跨 L2 和其他应用链(如UniswapRollup)的 LP 之间的超大买入/卖出,将受益于价格发现的保证和诚实拍卖。 权衡之下,小额交易在 L1 上运行成本过高。 这类似于我们现有的金融系统今天的运作方式。 股票由 DTCC 代表经纪商持有,以造福经纪商的客户。 个人交易小额头寸成本高昂且困难,因为该级别的订单簿数量非常大。 经纪商通过提供本地流动性来促进这一点,并通过交易排序(在某些情况下是夹层交易)支付服务费用。 但是,最终消费者可以免费创建交易(经纪商引入的滑点除外)。

底线是达成共识需要时间,去中心化和吞吐量之间的权衡是真实存在的。为了协议的长期利益,不惜一切代价维护去中心化是让以太坊在未来长久生存的秘诀。

来源
免责声明:以上内容仅为作者观点,不代表Followin的任何立场,不构成与Followin相关的任何投资建议。
喜欢
收藏
评论