本文介绍了无领导拍卖协议,旨在解决参与者在拍卖中存在的“最后看”的问题。通过要求所有参与者在同一时间提交他们的投标,并利用区块链有效验证拍卖结果,该协议确保透明度和公平性。文章还探讨了该协议的各个方面,包括动机、之前的工作、问题背景和解决方案等。
无领导拍卖是没有拍卖者的去中心化拍卖。它们解决了“最后查看(last look)”问题,该问题可能在允许一个参与者在所有其他参与者之后采取行动时出现。
在无领导拍卖中,所有参与者必须同时提交他们的出价。对这一承诺的任何违反都会导致可归因的故障。为了避免信息泄漏,出价是阈值加密的。
在拍卖结束时,通过将结果提交到区块链,可以通过签名聚合有效地验证结果。为了本论文的目的,我们将使用以太坊。
该协议类似于拜占庭容错共识协议,假设有一个预定义的参与者集,其中超过三分之二是诚实的。它还要求参与者能够在指定的固定时间(比如两秒)内可靠地相互发送消息。如果违反了这种假设,例如由于网络分区,一些诚实方可能会受到故障影响。然而,假设这种违反是罕见的,我们可以设计故障处罚,使这个问题的影响最小。
这种设计没有解决几个问题。特别是,参与者仍然可以因为延迟较低而比其他人更晚提交他们的出价。另外,在这个版本的协议中,来自公众的出价没有加密以简化流程。这意味着一个不诚实的拍卖参与者相对于那些信任他们的公众成员具有最后查看的机会。
拍卖在加密领域无处不在。定时游戏、最后查看和短期审查开始显现,而这个协议试图至少抵抗其中的一些。
我们正在探索这如何可以纳入 Angstrom 的区块顶部及批量拍卖,该拍卖通过在共同价格下执行订单来使用独立的共识机制来保护 MEV。
这种拍卖的变种可能适用于其他环境,例如:
最近在加密拍卖方面有许多优秀的工作。例如,请参见:
虽然这些工作大部分解决了 审查 的问题——领导者排除其他交易或出价的能力——但我们没有意识到任何工作直接解决 最后查看 的问题——提议者能够在其他参与者之后的显著时间插入或取消他们自己的出价的能力。
Zed 想每十二秒拍卖一个 ETH。他安排了一组朋友,即 Alice、Bob、Charlie 和 Dan 来运行拍卖。每个 参与者 将收集公众的出价,然后他们将一起决定他们所见到的最高出价。Zed 信任这组人,但认为最多可能有一个人不诚实。
一种可能性是使用集中共识协议如 Tendermint 中的单块拍卖。每个参与者会收集公众的出价,并提交他们所看到的最高出价以纳入区块。然而,Tendermint 的特性是区块提议者对区块的内容拥有完全的控制权。这意味着不诚实的提议者可以简单地审查其他所有人的出价,并以 0 的出价赢得拍卖。
为了解决这个问题,我们可以将每次拍卖的持续时间从一个区块改为两个。两个不同的提议者随后将一个包含他们所见到的最高出价的区块提议,依次进行。拍卖的最终赢家将是这两个区块之间的最高出价者。因为最多只有一位提议者不诚实,至少有一个区块中的出价会是诚实的。这是一个巨大的改进!
然而,想象一下不诚实的提议者,比如 Bob,正好是第二个提议区块的人。
第一个提议者,Alice,在她的第一个区块中提交了价值 $10,000 的以太坊出价。Bob 现在有几秒来决定他想知道什么。他检查了以太坊的价格,发现价格刚刚飙升到 $11,000。他以 $10,001 在拍卖中提交自己的出价并赢得了拍卖,净赚 $999。
作为一个不诚实的参与者,Bob 只要有利可图,就会这样做,即任何时候以太坊的价格高于 Alice 区块中的当前最高出价。这意味着任何向 Alice 发送出价的人,只能在以太坊的价格低于或等于他们的出价时得到满足——换句话说,即当交易对他们来说不盈利时。即使 Bob 无法看到其他竞标者的出价,他仍能凭借在其他人之后几秒提交出价的能力而占据信息优势。
如果他们是理性的并且知道发生了什么,除了 Bob 之外的其他竞标者将在他成为第二个提议者时停止出价。这样的边际效应将整体压低出价,并导致 Zed 收入减少。
这就是所谓的“最后查看”问题,它是一种 MEV。因为它与目前容忍的其他类型 MEV 非常相似,即使是 “诚实”的参与者如 Alice、Charlie 和 Dan 可能也会受到足够的诱惑而参与其中,使得 Zed 和任何剩余的诚实竞标者处于不利地位。
我们希望能防止这种情况发生。
本协议主要旨在解决去中心化拍卖中的最后查看问题——即一名参与者以没有成本的方式在其他参与者之后有意义地提交或取消他们的出价,从而获得不公平的优势。
具体而言,我们希望确保所有出价在给定的挂钟时间(例如,12:00 PM)之前提交,无论是谁提交的。
大多数区块链共识协议都有一个 领导者 或 提议者,该提议者建议区块以供其他参与者同意。由于所有其他参与者必须及时向领导者发送他们的出价,以便领导者将其包含在内,因此领导者有更长的时间决定自己的出价,从而给予他们一个免费的最后查看机会。
一个无领导拍卖分为三个回合,并在第四个回合生成一个易于验证的聚合签名以验证拍卖结果。任何人都可以将这些签署的结果提交到以太坊以最终确定拍卖。
该协议还明确规定了一组易于证明的故障条件。任何人都可以在任何时候提交一项故障证明,惩罚责任参与者。
正如下文所证明,该协议通过满足以下两个特性来解决最后查看问题:
值得注意的是,一些参与者的延迟可能低于其他参与者,因此他们在第一轮的行动时间也会相对较晚。
我们假设在 3f+1 个参与者中,2f+1 是“诚实”的(与拜占庭容错共识协议所需的门槛相同)。
我们的同步假设是,所有诚实的参与者能够向彼此发送消息,这些消息保证在某个固定的时间内如 1 秒内送达。这个假设不需要保持整体安全性或活跃性(确保我们不会产生相互矛盾的拍卖结果,而且拍卖最后都会发生),因为我们依赖于以太坊来保证这些属性。我们将在下面讨论这种假设被违反时会发生的情况。
我们还假设参与者的时钟已同步,如同以太坊。
第一回合 - 发送出价
每个参与者向所有其他参与者发送一个签名出价。
这些出价是 阈值加密的 ,意味着它们使用公钥加密,任何 f+1 或更多参与者可以解密(在第三回合时进行)。这意味着没有参与者能够在提交自己的出价之前看到其他参与者的出价,因此无法利用对这些出价的知识。这种加密的实现有多种方式,但具体细节超出了本文的范围——请参见例如 vetKeys。
诚实的参与者需要提交他们从公众那收到的最高出价。然而,由于这个设计中公众的出价没有加密,不诚实的参与者可以选择稍微高于他们收到的公众出价的金额进行出价。公众成员可以通过只向其中一个他们信任的参与者发送出价来解决这个问题。加密解决方案是可行的,但会增加复杂性。
第二回合 - 发送出价集
每个参与者将他们在第一轮中收到的所有加密出价(出价集)的签名消息发布给所有其他参与者。所有参与者现在都有一个“出价视图”,即从其他参与者那里收到的出价集。
一个诚实的参与者只会在自己的出价集中包含其他参与者的出价,如果该出价是在第一轮结束前收到的,具体由参与者的同步时钟决定。因此,如果一名诚实参与者的出价集中包含某个出价,则该出价必须在第一轮结束前发送。由于最多有 f 个不诚实的参与者,如果某个出价出现在 f+1 或更多的出价集中,至少有一个出价来自诚实参与者,并且该出价必须在第一轮结束前发送。
任何诚实参与者都可以使用这些信息来解决拍卖。但该协议无法了解哪些参与者是诚实的。因此,我们需要再进行一轮。
第三回合 - 发送出价视图和阈值解密信息
每个参与者将他们在第二轮中收到的所有出价集(他们的“出价视图”)发布给所有其他参与者。
结合他们的出价视图,他们还发送了在上述阈值加密方案中使用的解密信息的部分。任何 f+1 的集合足够解密所有加密出价。
这是带宽使用最昂贵的步骤:每个参与者必须向 O(n) 个参与者发送 O(n) 个出价集的 O(n) 个出价,最坏情况下总带宽为 O(n^3)。然而,如果所有人都誠實且网络功能正常,则每个参与者应该从彼此那里拥有相同的实际出价,并且给定集合中出价的存在或缺失仅为一位数的状态位。此外,如果所有人都诚实且网络正常,各参与者应该拥有所有人的出价集,所有参与者应该从每个其他参与者那里都有出价集。所以,如果参与者只发送指示他们缺少哪些出价或出价集的消息,在理想条件下,他们只需要发送一个单独的状态位(“所有东西都在这里”)或者只需发送几个(“集 3 缺少出价 13,其他一切正常”)。
此时,每个参与者应该从诚实参与者那里获得 2f+1 个出价视图,并能够解密它们。通过得到 f+1 个出价,他们可以证明自己获得了至少一份来自诚实参与者的出价视图,这足以解决拍卖。
协议理论上可以在此结束,任何参与者都可以将 f+1 个出价视图提交给区块链以进行最终确认。然而,由于空间复杂性和验证成本,将 2f+1 个出价视图提交到以太坊并进行验证是不切实际的(或许在自定义链上更可行)。
因此,我们需要再进行一轮,以便参与者可以以一种在链上易于验证的方式认证拍卖结果。
第四回合 - 验证出价视图
为了保证我们期望的特性,我们希望轻松验证赢得拍卖的出价至少在一个有效出价视图中,并且大于或等于至少一个诚实参与者视图的成功出价。第四回合设计用于实现这一点。
每个参与者检查他们所有的解密出价视图。一个出价在出价视图中是有效的,如果在构成该视图的出价集中至少出现在 f+1 次。视图中一个给定的成功出价是该视图的最大有效出价。
如果一个出价大于或等于该参与者自己出价视图中的成功出价,参与者就 提名 一个给定出价视图的成功出价。
每个参与者为他们提名的每个出价构建一个 阈值签名,然后将这些出价和签名的集合作为 gossip 发送给每个其他参与者。请注意,这在空间复杂性上只有 O(n)(每个视图最多有一个签名),而在带宽复杂性上为 O(n^2)。事实上,如果所有参与者都诚实且没有网络问题,则每个出价视图中的同一出价将获胜,因此每个参与者将仅提名那个单一的出价。
结算

任何获得至少 f+1 个参与者签名的出价被 确认。请注意,在某些情况下,可能会确认两个或多个不同的出价(虽然这意味着至少一位参与者在第一回合中出现故障,因此没有获得免费的选择)。
任何确认的出价均可提交到以太坊区块链,在那里可以通过简单的签名验证进行验证。提交者可能会从协议中获得少量费用以补偿他们的Gas费用。只有一个确认的出价将被以太坊接受,允许所有参与者在存在多个确认出价的情况下达成共识,确认的出价为获胜出价。
以太坊区块提议者可能会审查拍卖并不将其包含在块中。这甚至可能在几个块中发生。在这种情况下,提交当前区块拍卖结果的参与者还必须提交所有缺失块的结果。我们将在下面讨论这如何改变故障处罚。
基础
任何人可以在拥有证据时异步提交故障证明,这很可能会导致对责任参与者的全部或部分惩罚。举报故障证明的参与者可以从被罚的股份中获得部分作为奖励。
一个 矛盾故障 发生在一个参与者在不同的出价集中存在相互矛盾的出价或在不同的出价视图中存在不同的出价集合。由于这种矛盾有可能是故意的,或至少不是由于网络问题而产生的,因此惩罚可以相当严重,包括全面惩罚。
一个 缺失故障 发生在某参与者的出价在某个 f+1 个出价集中缺失。这可能意味着该参与者不诚实并试图退出他们在第一轮中提交的出价,或希望不是频繁发生即该参与者是诚实的并且网络发生分区。
对于缺失故障的惩罚应设定得高于能够取消出价的选项值。这需要平衡真实网络故障的发生频率,最终是一个定量问题。在最坏的情况下,拥有一套针对重复违规的升级惩罚可以限制每次违规盈利的频率,从而将这类活动降到最低。任何使用此协议的系统都可以监控这些类型的故障相对于经过验证的网络故障发生的频率,并相应调整惩罚。
审查拍卖的故障
正如我们在下面进一步讨论的,拍卖参与者可以通过在第 1 轮中承诺故障而保留在以后的回合中取消出价的选择权。
任何这样做的参与者都可以通过贿赂以太坊区块提议者将这次拍卖结果从以太坊区块中审查,从而为自己创造更多选择权,可能几次连续,最终如上所述提交前需提交结果。为了保持“没有免费选择”特性,每当此拍卖被审查时,我们线性地增加该拍卖的故障惩罚,以便原始故障者必须为每个丢失区块的选择权付费。
如果诚实的参与者因网络问题而无意中犯错,则某人可以利用这些激增的惩罚来报复他们,但施害者必须为审查这些区块而付款。
减轻无意故障
如果任何参与者的出价集中缺失 f+1 个或更多出价,由于我们的假设,他们缺失至少有一名诚实参与者的出价。因此,我们可以在计算缺失故障时忽略该参与者的出价集,因为他们要么不诚实,要么发生了网络分区。这应该减少由重大网络分区产生的故障数量。
i. 没有晚到者:任何参与者必须在第一轮中向至少一个诚实参与者发送他们的出价,以便其在任何出价视图中有效,从而有赢得拍卖的机会
假设某参与者没有在第一轮中向任何诚实参与者发送他们的出价。因为有 2f+1 个诚实参与者,因此该出价最多会出现在 (3f+1)-(2f+1)=f 个出价集中,这不足以在任何出价视图中有效。
如果在任何出价视图中无效,则它就无法成为任何出价视图中的获胜出价,诚实参与者也不会提名它。由于 f+1 的参与者必须提名一项出价才能赢得拍卖,至少其中一名参与者必须是诚实的,而该出价无法获胜。
ii. 在没有网络分区的情况下,在第一轮中向所有参与者发送出价的参与者将不会产生故障
假设我们诚实的参与者是 Alice。
她在第一轮中向所有 3f+1 个参与者发送了她的出价。因为其中 2f+1 是诚实的,因此每个诚实参与者将她的出价发送到所有其他诚实参与者。因此,每个诚实参与者将看到她的出价至少出现在 2f+1 个出价集中(包括他们自己的)。
由于最多有 3f+1 个出价集,因此她的出价在最多 (3f+1)-(2f+1)=f 个出价集中缺失,因此不会产生故障。
iii. 在没有网络分区的情况下,如果在第一轮中向 f+1 或更多的诚实参与者发送出价,则该参与者将在该轮中赢得拍卖(如果其为第一轮中任何诚实参与者收到的最高出价)
假设 Alice 在第一轮中向 f+1 个诚实参与者发送了她的出价。每个诚实参与者将她的出价包含在他们的出价集中,并将其发送给所有其他参与者。这意味着每个 2f+1 的诚实参与者在 f+1 的出价集中看到了 Alice 的出价,因此在其出价视图中认为该出价有效。
根据假设,Alice 的出价是第一轮中提交给任何诚实参与者的最高出价。因此,她的出价在每个诚实参与者的出价视图中都是获胜出价,每个诚实参与者都将提名它。此外,根据上述证明 (i),没有更高的出价能够在任何出价视图中有效,因此没有诚实参与者会提名其他出价。这意味着,Alice 的出价是唯一至少获得 f+1 次提名的出价,必须赢得拍卖。
请注意,如果有两个这样的出价者在最高出价上平局,存在边缘情况。我们可以利用阈值解密中的随机性来裁决这一结果。
iv. 任何参与者必须在第一轮中向至少 f+1 名诚实参与者发送出价以避免产生故障
假设该参与者在第一轮中向 k<=f 名诚实参与者发送了出价(可能包括自己)。
则该出价将出现在诚实参与者发送的 k 个出价集中。
每个诚实参与者将从其他诚实参与者(包括自己)接收 2f+1 个出价集,而只有 k 个出价集中包含该出价,因此 2f+1-k>=2f+1-f=f+1 个出价集将不包含该出价,这足以产生故障。
请注意,即使网络被分区,如果诚实参与者确保所有其他参与者确认收到自己的出价集,并在收到确认之前重新发送出价集,则一旦网络恢复,也可以产生故障。
v. 没有免费选择
根据证明 (iii),在第一轮中向 f+1 个或更多诚实参与者发送出价的任何参与者,如果该出价是第一轮中提交给任何诚实参与者的最高出价,则无论他们之后做什么都会赢得拍卖。根据证明 (iv),在第一轮中向少于 f+1 名参与者发送出价的任何参与者将会产生故障(因此对其进行惩罚)。因此,任何希望保留取消选择权的参与者都必须为此付出代价。
去中心化拍卖最近才开始得到广泛应用,引入了许多新问题。本论文针对我们未见解决的一个问题。我们希望并期待更多更好的解决方案的出现——理想情况下,更简单的、回合更少的方案,或在同步性或诚实参与者数量等条件上有较少假设的方案。
尽管如此,虽然这个设计并不能解决所有问题,但它确实解决了一些去中心化拍卖中固有的“最后查看”问题。我们希望它在其自身能起到一些作用,帮助其他研究类似问题的人,甚至被改进或重新组合成更好的解决方案。
Frankie、Joachim Neu、Achal Srinivasan、Georgios Konstantopoulos、Ciamac Moallemi、Max Resnick、Lefteris Kokoris-Kogias
- 原文链接: paradigm.xyz/2024/02/lea...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!