Espresso 市场设计

Espresso提出了一种顺序市场设计,允许rollups将顺序时间段出售给sequencers,从而增强跨rollup事务的原子性执行,共享sequencing能力。通过组合拍卖机制和彩票形式,该市场旨在提高效率、稳定性,并防止垄断,同时支持multi-rollup操作。

Espresso市场设计

作者:Benedikt Bünz, Ben Fisch, Ellie Davidson

我们感谢Justin Drake, Maryam Bahrani, Tim Roughgarden, Scott Kominers, Davide Crapis, Christoph Schlegl, Bruno Mazorra, Philipp Strack等人对我们设计的有益讨论和反馈。感谢Ed Felten指出我们先前版本在分析部分的错误。

Espresso提出了一个用于排序的市场。有关高层次的动机和背景,请阅读我们之前的文章基于Espresso:特设共享排序。在本文中,我们呈现详细的市场设计及其设计决策的合理性。

概览

Espresso可以提供以下几个独立但互补的服务:

  1. 一个市场,使Rollups能够将排序时间槽出售给sequencers(也称为提议者)。成功购买时间槽的sequencer在该时间槽内有权为该rollup提议区块。[[1]](#fn1) 一个sequencer可以同时购买多个rollup的排序权,成为这些rollup的共享sequencer。
  2. 一个确认层(也称为最终性装置),通过非执行的权益证明共识来公证提议的区块。在最终性装置公证了一系列rollup区块后,这些区块不能更改或重新排序。

这个市场有几个优势,包括将排序外包给专业方的好处。然而,最重要的好处是,购买多个rollup排序权的sequencers可以保证这些rollup之间的原子执行。原子执行允许sequencers满足跨rollup用户的意图,并为跨rollup交易提供强预确认。我们在这篇文章中讨论了这种特设共享排序的好处。

在本文中,我们阐述了Espresso市场的设计并分析其属性。HotShot最终性装置的详细信息可以在这里这里找到,它独立于市场,但承担多个重要功能:

  1. 它强制将排序权出售给特定的sequencer,并确保整个网络对在特定时间槽内为每个rollup进行排序的sequencer达成共识。为此,它充当一个计时服务。
  2. 它确保当前rollup sequencer的区块提议被包含,并且不能被分叉掉。
  3. 它能够将排序权从一个sequencer转递到另一个sequencer,确保下一个sequencer基于最新的最终化rollup状态进行构建。
  4. 它允许用户和应用程序对多个rollup的当前状态获得强预确认。我们最近演示过与Across合作,这可以帮助在rollups之间实现快速桥接以及其他优势。

Espresso市场设计

我们的市场有两个主要目标:

  1. 通过市场,sequencers可以同时获得多个rollup的排序权。这使得sequencers能够表达对于共享排序的附加价值,例如协调原子跨rollup交易。
  2. 参与的rollups保持主权。它们可以选择加入和离开市场,并被保证如果它们的排序权被出售,它们将获得比单独排序更多的价值(仅仅自己进行排序)。

此外,市场还应具有以下属性:

  • 可选性:一个rollup仅在能够产生比单独排序更多的价值时出售其排序权。
  • 效率:市场的结果将排序权分配给那些最看重rollup区块捆绑的者。此外,如果将两个rollup一起排序存在正价值,它们将一起被排序。
  • 稳定性:市场会达到一个均衡状态,使得参与者在外部参数未变化的情况下无需不断考虑其行为。市场稳定性有助于定价发现,因为sequencers的价值函数不太可能频繁变化。例如,稳定市场中的投标者无需不断考虑他们的投标价格。
  • 反垄断和抗审查能力:任何sequencer,即便是具有更复杂的MEV能力者,也无法在单一rollup或rollup捆绑的区块创建上保持垄断。
  • 激励兼容性(可选):市场参与者应报告rollup或rollup捆绑的真实价值。

为了实现以上目标和属性,我们使用组合竞标机制将sequencers分配给特定的rollup区块。潜在的sequencers通过购买rollups的抽奖票券作为竞标者参与抽奖。Rollups作为卖方,根据每个时间槽出售其排序权。如果某个潜在的sequencer在特定的数据包(rollups的捆绑)上有一张获胜的票,它将成为该时间槽内这些rollup的共享sequencer。

术语

  • 时段:一个rollup出售其区块空间的时间段。每个时间最多进行一次拍卖,但在一个时间槽内可能有多个不同的sequencer参与同一个rollup。Rollup不必在每个时段内参与拍卖。
  • 捆绑:参与市场的所有rollups的子集。该子集表示由相同的sequencer排序的rollup。一个捆绑可以由系统中任何组合的rollup组成。两种特定的捆绑类型是单个捆绑,仅包含一个rollup,以及全捆绑,包括所有rollup。
  • 保留价格:潜在的sequencer必须出价的最低金额,以在特定时段获得特定rollup的排序权。

组合拍卖

首先,我们指定如何将sequencer分配机制作为组合拍卖运行。然后,我们展示如何将其转换为抽奖机制,并讨论抽奖相较于拍卖的优点。

组合拍卖可以视作一个第一价格的组合支付拍卖,包含三个阶段:出价阶段分配阶段排序阶段

在进一步讨论拍卖之前,我们做出几个假设:

  • 提议者将rollup视为互补的;同时排序两个rollup的价值总是大于或等于排序每个rollup的单独价值之和。
  • 每个rollup的排序权都存在非零的(正)值。

提议者可以为rollup和rollup捆绑计算预期价值。这是必要的,因为我们在区块内容已知之前进行拍卖。

  • 所有参与共享sequencer拍卖的rollups均为注册并且被机制所知晓。每个rollup指定一个地址,接收拍卖收入。

机制和排序设计的高层示意图:

image

出价阶段

在出价阶段,每个潜在的sequencer向市场提交他们希望排序的捆绑的出价。sequencers可以对他们希望可进行任何捆绑的出价。在这一阶段之前,所有出价是公开的,潜在的sequencers可以在这一阶段结束之前提交任意数量的出价。潜在的sequencers在提交出价时像在支付出价拍卖中一样,提前支付他们的出价。提前支付出价的目的是:首先,它确保sequencers有足够的资金来覆盖他们的出价。如果出价在区块提议时支付,恶意的sequencer可以提交足够资金的出价并赢得拍卖却在出价执行之前抽走他们的资金,从而白白获得排序权。其次,支付出价拍卖具有优越的经济激励,这将在后面讨论。请注意,未获胜的出价会始终退款。

出价阶段在排序时间之前很早就进行。这是为了让市场有时间计算拍卖赢家并将其公示给HotShot最终性装置。

分配阶段

分配阶段(有时也称为结束阶段)决定拍卖的结果,并根据此结果分配sequencers。拍卖结果通过选择数据包集

S

来确定

B1,…,Bk,使其满足如下条件:

  1. 这些捆绑将rollup集合

R(每个rollup在获胜集内仅出现一次)进行排列

  1. 集合

S的捆绑总出价之和相比其他可能的集合最大。

更具体地,设有

n个rollup,且将保留价格表示为

ri 表示第 i个rollup的保留价格。对于每个捆绑

B⊆[n],设

b(B)表示捆绑

B的最高出价。对于每个单个捆绑

{i},定义

v({i})=max(b({i}),ri)。这个定义隐含地将rollup保留价格解释为单个捆绑的出价。对于所有其他捆绑(至少大小为2),设

v(B)=b(B)。对于任何将

[n]划分为不相交子集的partition

Π={B1,...,Bk},定义

v(Π)=∑iv(Bi)。拍卖找到partition

Π∗=argmaxΠv(Π),使拍卖收入最大化。然后将每个捆绑的排序权分配给提交最高出价的sequencer。对于单个捆绑,若保留价格为最高出价,则rollup本身会被分配到单个捆绑的排序权。见下图获胜捆绑的示例。

最大收入的捆绑获胜集示例四组满足rollup A、B、C、D和E的排列属性的可能组合。在这个示例中,完整捆绑在rollup之间最大化收入,因此它是拍卖的获胜集。

请注意,由于捆绑可以由

R中任何组合的rollup组成,因此找到最大收入的捆绑集可能是一个指数困难的问题,可能需要耗费很长的时间来解决:

现实中的捆绑很可能是所有可能捆绑的一个小子集,因为并非所有的捆绑可能在经济上都有出价的意义。因此,市场可能只需解决几个捆绑组合。

我们可以选择限制求解获胜集

S的时间。在这个时间段结束时,求解者将发布截至目前找到的最高收入最大化的解决方案。

在此期间,任何人都可以提交更优的解决方案。由于所有出价都是公开的,任何一方都可以提交解决方案。

由于解决方案是集内所有捆绑的出价之和,因此可以通过简单地比较各自捆绑价值的总和来验证某个解决方案是否比另一个更具收入最大化。

在此阶段结束时,最终性装置将最终确定拍卖结果。

排序阶段

每个在获胜集

S内的捆绑的拍卖赢家在指定时间槽期间获得该捆绑的排序权。这些赢家现在是其捆绑内各个rollup的sequencers;他们将为捆绑内每个rollup提议下一个区块,并将提议提交给HotShot最终性装置。当时间槽到达时,每个sequencer向网络提议其区块。网络验证来自每个捆绑的正确拍卖赢家的提议并逐步最终确认结果。最终,未获胜的投标者会退还其出价。

收入分配

回想一下,我们的主要目标之一是确保rollups参与市场的收益总是优于单独排序。因此,在给定特定拍卖结果时,我们必须在rollups之间分配收入。如果获胜集

S 仅包含单个捆绑,则市场可以给每个rollup 的收入等于其单个捆绑的出价。但是,为了支持共享排序,我们将rollups打包出售。因此,我们需要一种机制来分配来自捆绑rollups生成的剩余收入。核心思想是,每个rollup的收入与仅包含该rollup的单个捆绑上的最高出价成正比。我们在下面更详细地指定机制。它具有以下参数:

  • bi:表示单个捆绑

i 上的最高出价,解释为保留价格

ri。

  • b(B):表示捆绑

B 上的最高出价。

机制:
  • 每个rollup接收到指定地址的

bi 作为支付金额。这意味着rollup至少获得单个捆绑上最高的出价(或保留价格)。这保证了rollup在市场上的处境优于单独排序,前提是其保留价格设置高于其单独排序可获得的收入。

  • 如果某个rollup

i∗ 包含在捆绑

B={i1,…,ik} 中,且

b(B) 是对该捆绑的最高出价,那么它将接收到:

(b(B)−∑j=1kbmax,ij)⋅bi∗∑j=1kbij

也就是说,rollup将以最高单个捆绑出价为基准,接收与其共享排序收入成比例的金额,这表明了rollup单独获得的收入。

费用

市场收取少量费用。这一费用被销毁,旨在抑制设定不诚实的高保留价格。费用由两个部分组成:与保留价格成比例的费用,以及与共享排序收入成比例的费用。

执行和拥塞费用

市场不会干涉rollup的执行费用(即,Gas费用)。这些费用与今日保持一致。此外,sequencers将其区块提交给HotShot最终性装置。HotShot确保在提交之后,没有人可以改变rollup交易的顺序。这使得下一个sequencer能够安全地在先前区块的基础上进行构建,还能实现更快的桥接

防止垄断的抽奖机制

组合拍卖公正地在rollups之间分配收入,确保那些最看重rollup的sequencers获得排序权。然而,拍卖的一个问题是,同一方会赢得过多的次数。

回想一下,拍卖在区块数据未知之前进行。这意味着sequencers基于捆绑的预期价值出价,而非其真实价值(这与当前以太坊的PBS不同)。这个预期价值应该在一段时间内保持不变。因此,同一sequencer可能在拍卖的每个实例中都赢得同一个rollup。

我们将组合拍卖转变为组合彩票以减轻这个问题。我们的设计与最近提出的执行票 的概念相似。我们在下面描述核心变化:

  • 我们没有对每个捆绑收集出价并选择特定捆绑的最高出价,而是每个捆绑通过价格

pB出售最多

tmax 的彩票票券。请注意,我们可以动态排除需求有限的捆绑,以简化出价/获胜者的确定。

  • 彩票所售出的总票券数乘以每张票的价格即为对特定捆绑的出价。然后我们以与拍卖相同的方式运行赢家确定算法,以确定获胜的捆绑。彩票相当于支付出价拍卖,其中多个出价者(购买彩票的投标者)共同出资形成单个出价并获得相应的分配,例如,一定比例的排序权。
  • 给定获胜的捆绑,下一时槽的sequencers将随机从彩票持有者中抽取。
    • 我们可以利用一次彩票销售进行多个区块的排序,通过使用新的随机性。例如,一张票可以在100个区块上有效,并从彩票中抽取100次。我们使用随机信标来抽样彩票结果。
  • 每张票的价格为

p。如果出售的票总数超过

t,价格将在下一次彩票抽奖中向上调整。如果出售的票数少于

t,价格在下一期开奖时向下调整。

  • 价格调整类似于EIP1559基本费用调整或PoW难度调整。它有助于寻找均衡清算价格。请在下一节中查看可能的价格调整提案。
  • 在每个捆绑上,我们使用捆绑的子集对每张票的价格进行重置。
  • 重配的方式与拍卖版本完全相同。

价格调整(提案)

我们提出可行的彩票价格调整算法,如下所示。我们的设计模型借鉴EIP1559和PoW的难度调整。我们邀请社区分析这一提案并建议其他方法。

我们希望出售的期望票数为

t。我们最多将出售

tmax=2t票。前

1.5t 票的价格是恒定的,然后从

1.5t线性增长至

2t。这确保了在需求没有大幅变化的情况下,每个人支付相同的票价,而购买所有票券变得日益昂贵。这确保了单个出价者仅通过提高自己的票价便可以将其他投标者挤出市场。

image

票价:x轴是已经出售票的百分位数。y轴是assume pS=1时的价格。价格固定,将在线性增长至最后四分之一的票数。

在第二个图中,我们展示如何计算下一次彩票迭代的票价。若在前一轮抽奖中遭遇过度或不足的需求,它将被调整。我们确保两次迭代之间的票价最多是加倍或减半。

tmax=2t

  • 将捆绑

B的最低票价初始化为

bB=maxB′⊂Bv(B′),同时将票价设置为

pS=bB/t。所以,让捆绑

B所有票的最低价格为上一次迭代对该捆绑的最高出价。将票价

pB 设为捆绑价格除以

t 的票数。

pB的价格售出前

1.5t 票。

  • 第 i 张票的票价在

1.5t 至

2t 之间普通价为

pB+(i−1.5t)⋅2pB/t。也就是说,票价在1.5t至2之间线性增加。

  • 总定价功能为

max(pB,pB+(i−1.5t)⋅2pB/t),这使得最后一张票的价格为

2pB。

  • 假设

n张票,市场将下一轮票价

pB′设为

max(pB/2,bB/t,n/t⋅pB)。也就是说,下一次迭代票的价格将是旧票价的一半、新计算的最小票价和

n/t⋅pB中的最大值。

image

更新函数的图,x轴为

n/t, bs=0.5,ps=1, t=1。

L1提议者的优先购买权(基于排序)

正如我们在我们的基于Espresso文章中阐明的,Espresso市场和最终性装置最强大之处在于L1提议者是一个或多个rollups的sequencer。原因在于,L1提议者可以同时构建L1区块和rollup区块,从而满足用户意图,并促进rollups与L1之间的互操作性。这一设计符合定义的基于排序

如果我们在L1提议者的查找时间内运行市场抽奖,则L1提议者可以像其他潜在的sequencer一样参与抽奖。然而,这仍然不能保证L1提议者赢得排序权,因为在抽奖中其可能运气不佳。为了解决这个问题,我们使用了一个简单的想法:给予L1提议者优先购买权。在特定时段内所有彩票票券都被购买后,L1提议者可以选择买out获胜捆绑(或者多个捆绑)的所有票。这使它拥有为该捆绑内的rollups构建L1区块和rollup区块的独占权利。优先购买权不需要对L1进行任何改动,L1提议者仅需可选行使这一优先购买权。L1提议者会补偿获胜票的持有者给定的票款加上可能的附加费用。

分析

我们现在分析市场的不同属性以及它们是否达成了前面列出的目标。我们给出非正式的论点,但每个属性的分析值得进一步研究和探索。

可选性

可选性确保诚实报告的rollup从市场获得的收入高于其单独生成的收入。这是通过rollup设置保留价格的能力实现的。如果没有竞标清除保留价格,则将不会将rollup分配给市场的sequencer。

效率

市场效率的标准是将rollup的排序权分配给最看重该rollup的sequencer(可能作为捆绑的一部分)。这确保了如果两个rollup之间存在共享排序的互补性,则它们必须一起分配。我们做出简化假设:市场中的所有竞标者都将所有商品(即,所有rollup排序权)视为补充。我们的理由是控制多个rollup的sequencer始终可以转售单个排序权。

我们首先分析市场的拍卖变体。组合拍卖选择最大化拍卖收入的分配。该赢家确定是等价于高效分配的_如果_所有市场参与者都诚实。尽管我们不声称市场是完全激励兼容的,但我们推测组合拍卖在均衡下仍能带来高度有效的结果。测试这一假设需要均衡分析。然而,已有研究表明在许多领域以及几乎任何支付规则下,组合拍卖的均衡效率极高

此外,尽管我们并未运行组合拍卖,但我们运用的是彩票。彩票等价于支付出价拍卖,其中多个竞标者(购买彩票的投标者)共同出资形成一个单一出价并获得按照比例分配的权益。请注意,尽管这可能导致收入下降,但增加了赢家的多样性。简单来说,例如,如果以价格1出售的无穷可分的物品,两个竞标者都对该物品的价值为1。在第二价拍卖中,单个竞标者将获得所有单位,支付1,即其价值。在支付出价拍卖中以按比例分配(即彩票),每个竞标者获得0.5个单位,并支付0.25。这是因为出价者产生了0.25的利益。如果他们出价0.25+δ,他们将赢得(0.25+δ)/(0.5+δ)的物品,并支付0.25+δ,供非(0.25+δ)/(0.5+δ)−0.25−δ。此价格以δ=0达到最大值。这表明出价0.25为均衡(它是对此的最佳回应),且在均衡中,a)两个竞标者的中标频率均为一半,且收入低于赢家通吃的拍卖。

稳定性

市场作为一个重复游戏进行,每轮销售本质上相同的商品。这应该显著改善稳定性,因为每当达到均衡时,捆绑彩票票的定价应保持不变,因为商品和竞标者基本保持不变。

反垄断和抗审查能力

市场将推动去中心化,因为它使rollups能够(今日几乎完全依赖中心化sequencer)出让排序权,而无需放弃排序收入。此外,我们的机制设计为彩票而非拍卖。关键动机在于,多个竞标者可以为同一rollup(或rollup捆绑)购买彩票票。排序权将在所有彩票票之间随机分配。然而,这引出了一个明显的问题:

为什么价值最高的投标者不购买特定rollup的所有彩票票呢?

我们用几个理由回答这个问题:

  1. 投标者可能只想要有限的排序空间。尤其是当投标者,即sequencers,有私有订单流,可以用来填充一些,但并非所有的区块时,情况正是如此。
  2. 资本有限的投标者仍然可以参与彩票,但不参与拍卖。
  3. 一些投标者可能是无私的或不理性的,出价高于其排序收入,以便包含被审查或其他不利的交易。
  4. 显然,彩票的结果不应差于单一拍卖,因为拍卖赢家总是可以购买足够的彩票票以获得与拍卖中的同样经济曝光。

总体来看,这个问题还值得更加深入的探讨,但第4点可能是最有力的论点。在执行票中也出现了类似的问题,在关于多时槽 MEV 的讨论中提到这里。执行票使用该设计的简化版本,仅出售信息的排序权。

激励兼容性

我们并不声称此机制是激励兼容的。

唯一激励兼容且高效的机制是著名的VCG机制。然而,有许多实践和理论原因表明VCG机制在实践中往往不是最佳选择。VCG机制甚至不保证市场是平衡的,即销售者(在我们的情况下是rollups)获得的收入至多与买家的出价(sequencers)相当。

尽管如此,我们希望机制的重复性质能够使参与者有效地执行获胜策略。为了促进拍卖的重复性质,我们提出一种平滑的价格更新规则,在需求过剩或不足时平滑地调整彩票票价。这一更新规则旨在帮助价格发现和均衡寻找。


  1. Rollups也可以出售受限的排序权(例如,受排序策略、包含清单等约束,但不在本文讨论范围内)。↩︎
  • 原文链接: hackmd.io/@EspressoSyste...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
EspressoSystems
EspressoSystems
江湖只有他的大名,没有他的介绍。