本文提出了一种针对Arbitrum协议序列器的改进交易排序政策,增加了“时间提升”机制,使得用户可以通过支付优先费来稍微提前其交易的时间戳,从而更好地管理延迟竞争行为。该政策旨在保持低延迟并兼容去中心化的序列器,同时仍旧保护交易的隐私。
[注意(2024年6月):这篇文章已经过时,团队的思考在撰写后已经发展。我们保留此内容以保存当时写下内容的记录。]\ \ 关于如何进行交易排序的更新观点 在这里 。]
tl; dr:我们提议对 Arbitrum sequencer 的交易排序策略进行修改,在当前的先到先服务(FCFS)政策中增加“时间提升”,使用户能够支付优先费,以便在排序中获得小的优势或“时间提升”。这对大多数用户不应产生影响,但可以提供更好的管理“延迟竞赛”行为的方法。
Arbitrum sequencer 接收用户的交易并发布有序的序列,作为 Arbitrum 执行阶段的输入。目前,sequencer 遵循先到先服务(FCFS)的排序政策。
FCFS 有许多优点。它简单易懂,似乎直观公正。它可以最小化延迟,因为该政策允许每个交易在到达时立即添加到序列中。
其他 rollup 协议也使用 FCFS。Optimism 也这样做,基于对其他系统描述的看法,他们似乎也这样做。
但 FCFS 存在一些缺点,主要是它可能诱发“延迟竞赛”行为,复杂的参与者为了更接近 sequencer 而花费金钱和精力进行一种浪费的军备竞赛,从而可以略微提前将其交易放入队列中。
我们认为有更好的方法,通过采用修改版的 FCFS,我们将在下文中描述。
我们希望交易排序政策具有以下属性:
新政策是修改版的先到先服务。内存池仍然是秘密的,以防止抢跑。
每个交易在到达 sequencer 时都会被时间戳标记。交易可以选择支付额外的优先费,这将提供一个时间提升——使其时间戳略微提前,最多为 0.5 秒。
为什么是 0.5 秒?这个参数反映了一种权衡。我们希望交易发送者能够买到一个足够大的提升,以便有激励去购买提升,而不是试图人工工程化延迟——这使我们希望有一个更大的最大提升。但我们也想最小化对未提升交易延迟的影响,因为在此期间可能需要等到提升交易在其后到达——这使我们希望有一个更小的最小提升。我们认为 0.5 秒合理地平衡了这一权衡,尽管其他人可能对稍小或稍大的值有很好的论点。
我们预计大多数交易不会购买时间提升,因此钱包或应用的用户体验不需要进行更改。已经以编程方式构建 Arbitrum 交易的复杂方可以根据他们与其他方竞争早期位置的情况以及他们对成为第一的重视程度来决定是否购买时间提升(以及购买多少)。
如果一个交易的优先费为 F,它将获得通过以下公式计算的时间提升(即,其时间戳的减法):
其中 g 是可用的最大时间提升(计划在生产中为 0.5 秒),而 c 是待确定的常数。作为时间提升的交换,该交易所支付的 L2 Gas费用将增加 F。
下面是该公式的图示,假设最大提升 g 为 0.5 秒。按设计,较低的费用可以购买可用提升的大部分,随着费用上涨,收益递减。当费用非常高时,提升接近于 0.5 秒。
以下是实施该政策的一种方法。传统交易类型应继续按以前的方式工作,因此大多数用户和开发者无需进行更改。与往常一样,Arbitrum 将在 L2 上收取Gas费用,但会忽略传统交易格式中的“优先费”字段。(许多现有交易向 Arbitrum 发送非零的优先费。Arbitrum 不会收取该优先费,这一点不会改变。)
希望获得时间提升的交易将使用一种新的 L2 交易类型,其格式与传统交易相同(除非使用不同的交易类型标签)。对于新交易类型以太坊的优先费字段将被解释为时间提升费用,将由 Arbitrum 链收取。
Arbitrum sequencer 将应用时间提升公式,调整时间戳,并按调整后的时间戳升序排列交易。
该政策的一个后果是,未支付时间提升的交易将经历额外的 0.5 秒延迟,因为 sequencer 需要等待是否有任何稍后到来的交易有提升。但任何交易都不需要被暂停超过 0.5 秒。
我们热切期待社区对这一提案的反馈。如果你有想法,请访问 Arbitrum 研究论坛。
- 原文链接: medium.com/offchainlabs/...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!