a16z:从线下到链上,拍卖如何实现?

Marsbit
媒体专栏
热度: 11466

本文是旨在弥合拍卖理论与实践之间差距。

原文标题:On Paper to On-Chain: How Auction Theory Informs Implementations

原文作者:Michael Zhu

原文来源:a16z crypto

编译:Kate, Marsbit

拍卖在加密货币中无处不在。从Maker抵押品拍卖到Flashbots 的密封投标区块空间拍卖和 OpenSea 上的 NFT 拍卖,拍卖适用于链上和链下的需要价格发现、流动性或稀缺资源分配的各种情况。

然而,与大量(且不断增长的)关于拍卖的学术研究相比,很明显,我们只触及了这些机制在链上可能提供的功能的表面——例如,优化隐私、效率、买家盈余和其他关键设计目标。考虑到在2020年Curve和Sushiswap之后自动做市商(AMM)设计的“寒武纪大爆发”——以及第三代区块链的同时爆发——似乎(可能是不可避免的)链上拍卖已经成熟,可以迎来类似的进化热潮。

尽管拍卖格式一度被区块链的技术限制所松散采用(并受到其限制),但我们现在开始看到更多专为区块链而设计的新颖设计。遵循市场设计的传统,本文是旨在弥合拍卖理论与实践之间差距的系列文章的一部分:理论原则如何指导实施决策?链上实现又如何为理论研究的新方向提供信息?虽然理论可以指导我们进行某种拍卖设计,但从理论角度分析看似无关紧要的实现细节本身可能很有趣。

我们首先沿着三个轴比较四种规范拍卖类型:信息披露、竞价策略和链上实现考虑因素。然后,我们将特别关注密封投标格式,深入研究使其在链上相对未被探索的实现微妙之处,并介绍我们对Vickrey拍卖的开源Solidity实现——我们希望其他人可以将其作为进一步试验的参考和基础。

首先,简要介绍一下拍卖形式

在最近的播客中,我们与16z加密研究伙伴(哈佛商学院教授)Scott Kominers和a16z加密研究负责人(哥伦比亚大学教授)Tim Roughgarden一起详细介绍了拍卖设计——包括传统格式和应用于区块链的拍卖设计。利用他们为加密协议提供建议的专业知识,从理论和实践两方面概述了拍卖类型和激励设计——包括市场清算价格和Gas费战争的细微差别(我们在web3正在进行的拍卖设计系列的第二部分中讨论过这些)。

但为下文的实施设定一些快速的背景:拍卖理论历来围绕四种典型拍卖类型展开,William Vickrey在1961年首次对这四种拍卖类型进行了分类,本文将其描述为一件商品的拍卖。

策略

链下可用的拍卖设计的快照。资料来源: 维基百科

英式(升价):在英式或升价拍卖中,拍卖师以保留(最低)价格开标,投标人逐渐提高出价,直到只剩下一个愿意支付当前价格的投标人,此时最后一个投标人获胜。这是在流行文化和媒体中最常见的拍卖形式,通常是在出售古董、艺术品或未切割的宝石的背景下。

荷兰式(降价):在荷兰式或降价拍卖中,开盘价按照规定的时间表递减。在荷兰式拍卖中,第一个出价的是赢家,拍卖立即结束。从历史上看,荷兰式拍卖的多单位版本经常用于出售大量保质期有限的商品,例如切花、鱼或烟草。最近,美国财政部引入了荷兰式证券拍卖(1974 年),2004 年谷歌首次公开募股,就是通过荷兰式拍卖出售了其股票。

密封投标第一价:每个投标人向拍卖师提交密封投标(例如在密封信封中)。所有的出价都提交后,拍卖师会私下阅读它们并宣布获胜者(出价最高的人)。然后获胜者支付他们出价的金额。当一处房产吸引了多名买家的兴趣时,密封投标的第一价格拍卖通常用于房地产

封标二价(“Vickrey拍卖”):Vickrey的同名拍卖与密封投标第一价拍卖相同,只是这种拍卖类型中的获胜者支付第二高出价的价值。尽管具有有趣的理论特性,但 Vickrey 拍卖很少出现在链上(部分原因是难以实施密封投标)。

这四种拍卖类型具有不同的属性和动态,当转换为智能合约实现时会更加复杂(稍后我们将详细介绍)。

通过信息披露比较拍卖类型

比较每种拍卖类型的一种更自然的方法是通过投标可见性(公开投标与密封投标)。即使在所有其他条件相同的情况下,不断变化的出价可见度也会对拍卖的动态和结果产生深远影响。

英式和荷兰式拍卖是公开叫价拍卖,这意味着价格在上升或下降时口头宣布,并且出价(包括其金额)对所有潜在买家都是公开的。然而,密封投标拍卖可能会采用几种不同的隐私方式:

● 最终公开:所有出价在拍卖结束后公开

● 公开价格:只公布中标价,不公布其他出价

● 完全保密:投标或中标价格不对外披露

这些关于投标可见性的假设意味着拍卖在信息披露方面也有所不同。在拍卖过程的不同阶段,不同的拍卖形式揭示了关于投标人估值(通常是上限或下限)的不同数量。在英式拍卖中,出价实际上为出价人的估价设定了一个下限。另一方面,在荷兰式拍卖中,当前价格可以解释为所有投标人估值的上限。密封投标拍卖只有在拍卖结束后才会披露信息。

值得注意的是,荷兰式拍卖既具有公开拍卖的品质,也具有密封拍卖的品质。荷兰式的单品拍卖与公开价格的密封投标拍卖有类似的隐私属性(因为第一个投标胜出,其他所有较低的出价都是保密的)。但正如我们稍后将看到的,当荷兰式拍卖在链上运行时,这些属性会发生显著变化。

共同价值和私人价值

检查公开投标和密封投标拍卖中私人和共同价值商品的销售情况 可以为比较这些格式提供另一个视角。在出售共同价值商品的拍卖中,该物品具有一些在所有投标人之间共享的内在价值,但投标人可能对该价值有不同或不完全的信息。在诺贝尔奖获得者行为经济学家理查德•塞勒(Richard Thaler)的共同价值的典型例子中,一罐硬币正在拍卖;没有一个投标人知道罐子里的确切价值,但每个人都有自己的估计。在出售私人价值物品的拍卖中,每个投标人对拍卖的物品都有自己的价值,独立于其他投标者。以 web3 为例,纯粹为了个人享受(无意转售或期望未来用途)而购买NFT是一种私人价值商品,而来自清算 Maker 保险库的抵押品是一种共同价值商品。

同时,另一篇研究木材拍卖数据的论文的作者发现,与公开投标相比,密封投标拍卖“吸引了更多的小买家,将分配转移给这些买家,还可以产生更高的收入”。值得注意的是,作者发现,这些结果可以通过私人价值模型来解释(私人价值根据木材拍卖的特性而变化,例如“投标人成本和合同安排的差异”),完全忽略了他们模型中的共同价值。这表明,在投标人对拍卖物品的动机、背景或用途不同的情况下,卖方可能会从选择密封投标拍卖中受益。

在共同价值占主导地位、以价格发现为目标的情况下,英式拍卖是很有用的。正如前面提到的,投标人在投标进入时了解其他人如何评估该项目,并可以相应地调整自己的策略。在一项关于在线劳动力市场反向拍卖的研究中,作者发现,虽然密封投标拍卖吸引了更多的投标,但公开投标拍卖导致这些买家获得了更好的价格(或更大的买家盈余)。分析表明,这些差异“很大程度上取决于拍卖IT服务的共同价值(相对于私有价值) 部分的相对重要性”。换句话说,公开投标的形式允许投标者动态地重新调整他们对服务价值的理解,这在拍卖开始时通常是不清楚的。

在实践中,拍卖通常表现出共同价值和私人价值特征的结合。这些商品的特性之间的相互作用,以及拍卖形式如何(以及何时)显示信息对投标策略具有复杂的下游影响。这就引出了一个问题:我们能否将“简单”竞价策略的概念正式化(我不需要过多考虑你可能会如何出价);是否存在此类策略最佳的拍卖?

按出价策略比较拍卖类型

迄今为止,在四种典型的拍卖类型中,明显缺少对 Vickrey 拍卖的分析。细心的读者可能会对Vickrey拍卖的付款规则感到惊讶:获胜者支付第二高的出价,而不是他们自己的出价。乍一看,这似乎违反直觉,但英式拍卖最终以类似的方式解决。英式拍卖以没有其他投标人愿意满足的最低出价结束;获胜者没有理由进一步出价,即使他们自己的估值要高得多。事实上,英式和 Vickrey 拍卖与荷兰拍卖和密封投标第一价格拍卖相比具有很好的理论优势:主导策略激励相容性(DSIC)。

在较高的层面上,这意味着每个投标人的效用最大化策略只是按照他们实际认为拍卖物品的价值来出价(在共同价值拍卖中,这只是物品的预期价值,以投标人的信息为条件)。要深入了解,这些课堂讲义是极好的入门教材。

在第一价格拍卖中,不存在这种占主导地位的竞价策略。投标人需要掩盖(或降低)他们的出价,以低于他们的估值,从而获得正效用。确切地说,在出价高于其他参与者的情况下,他们到底能拿到多低的价格,这是一个贝叶斯博弈。荷兰式拍卖在战略上与此类似。为了获得正效用,投标人必须等到价格低于其估值,但在该阈值之后等待多长时间是另一个贝叶斯游戏。也许更令人惊讶的是,所有四种拍卖类型的预期收入都是相同的(在某些假设下;参见定理1)。

尽管Vickrey拍卖在理论上具有优势,但在实践中却并不常见。为什么会出现这种情况?在《The Lovely but Lonely Vickrey Auction》一书中,经济学家 劳伦斯•奥苏贝尔(Lawrence Ausubel)和保罗•米尔格罗姆(Paul Milgrom) 对可能的情况做出了几种解释。两位作者指出,尽管在战略上是等效的,但英式拍卖在直觉上比 Vickrey 拍卖更容易让投标人理解。这种直觉在明显的策略证明机制中被形式化,这表明英式拍卖不仅是 DSIC,而且如实出价是“明显占优势”。

为了提供一个真实的例子,谷歌去年宣布,AdSense——一个广告商竞标内容广告空间的项目——将从第二价格拍卖转向第一价格拍卖,理由是简单并与其他与数字广告生态系统保持一致。除了这些可用性的考虑之外,像AdSense这样的平台在进行二次价格拍卖时,会处于一种值得信任的地位:通过虚报第二高的出价,不诚实的拍卖师可以从获胜者那里榨取更多的报酬。

尽管这些问题延缓了采用,但当扩展到新环境时,Vickrey拍卖可以找到新的用例。特别是,公共区块链提供了一个可信的中立平台,可能有助于规避不诚实的拍卖商等问题。这一点,再加上潜在的链上应用程序的多样性,表明智能合约可能为Vickrey拍卖机制提供一个独特有效的测试平台。

通过实施考虑比较拍卖类型

与链下拍卖相比,在链上进行拍卖有时会带来新的挑战。在接下来的小节中,我们将探讨链上拍卖的现状以及每种拍卖类型的实施注意事项。

链上英式拍卖

如今,大多数链上拍卖都属于公开投标的范畴(即英式拍卖或荷兰式拍卖)。这些包括价格上涨的OpenSea拍卖、Maker抵押品拍卖和Zora Auction House合同。

在 OpenSea 的底层,投标是对投标值进行编码的链下消息,由投标人签名。当潜在买家出价时,OpenSea UI 会向卖家和潜在买家显示出价。然而,在 Maker 抵押品和 Zora 拍卖中,投标人提交交易来表明他们的投标;然后,投标交易在拍卖合同中托管投标人的抵押品。由于是一个未混淆的链上交易,投标本质上是公开的——任何人都可以通过查看拍卖合约的传入交易(无论是在公共内存池中,还是在它们被包含在链中时)来查看他们的投标人提供了什么)。

总体而言,当转化为智能合约时,英式拍卖动态仍然相对完整。一个显著的区别是,链上投标会产生Gas成本,该成本被计入实际的投标价值。由于Gas价格在拍卖的竞标期间波动,原本出价最高的投标者可能会被昂贵的Gas费用暂时排挤出局。

链上荷兰式拍卖

从促进NFT 销售到重新平衡代币集(以及衍生变体,如Gradual Duction AuctionsVariable Rate GDA),链上荷兰式拍卖已经获得了巨大的牵引力。这种受欢迎程度是有充分理由的——简单的荷兰式拍卖作为智能合约相对容易实施,并且只需要两次链上交易(一次用于创建拍卖,一次用于第一次也是唯一一次出价)。最重要的是,它不像其他链上投标拍卖那样,它不会锁定投标人的资金。  

链下荷兰式拍卖的动态取决于有效的即时竞价。单件荷兰式拍卖在出价宣布后即告结束,且不能再进行其他出价。然而,当在链上执行竞价时,在广播竞价和将其包含在链中之间存在时间间隔,这可能会产生一些意想不到的后果。如果第一个出价被广播到公共内存池(而不是像Flashbots这样的私人交易池),它可能会引发一场Gas费战争,其他潜在买家会以越来越高的Gas价格广播出价。因此,当交易订单的链下升价拍卖超过荷兰式拍卖本身时,gas 调整后的价格可能会突然上涨。

价格下降机制的时间依赖性也带来了其他缺点。假设一个连续的价格衰减函数,投标人必须在需要以特定价格出价时在线,或者设置一个机器人(例如使用Gelato Network)为他们出价。偶然(或恶意)与第一个投标的广播同时发生的网络拥塞可能会降低最终结算价格,从而损害卖方的收入。更糟糕的是,DoS攻击可能会使合法的获胜者失去拍卖。

链上密封投标拍卖,由新的开源实施来演示

利用链下投标的平台(例如 OpenSea)可以轻松实施密封投标拍卖,但他们需要信任拍卖师(a)不透露任何投标,(b)不审查任何投标,以及(c)正确确定拍卖的结果。理想情况下,智能合约将不信任地促进拍卖,同时保留一定程度的投标隐私。

为了演示,我们在 github.com/a16z/auction-zoo 上开源了超抵押密封投标拍卖的Solidity 实现, 作为单品(ERC721) Vickrey拍卖,竞价以ETH计价。我们在实施时考虑了密封投标拍卖智能合约的三个需求:

1. 隐私:投标值应保持私密,这意味着在投标进行时,观察者不能推断出投标值。我们允许一些信息泄露(例如,透露一个出价位于一个较大的区间内),但应该有合理程度的模糊性。

2. 审查阻力:这通常可以通过在链上发布投标来实现。

3. 投标承诺:潜在买家不应撤回他们的出价。中标者应被锁定以支付结算价格,同样,卖方应被锁定以将物品出售给出价最高的投标人(可能受底价限制)。

首先,根据前两个要求,我们需要解决在链上发布私人投标的问题。承诺披露方案适用于“最终公开”的投标(即在拍卖结束后披露出投标值)。潜在买家可以在指定的投标期内向拍卖合同提供其投标的哈希承诺,而不是公开投标。之后,在投标期结束后,每个潜在买家都会透露他们承诺的投标。当出价公布时,智能合约可以确定获胜者。在我们的实现中,哈希承诺计算为keccak256(abi.encode(nonce, bidValue))并传递给commitBid函数。为了节省Gas费,我们只存储这个散列的前 20 个字节。投标期结束后,用户调用revealBid,合约检查提供的nonce和bidValue是否与存储的承诺匹配。

策略

记得喝水并打包你的存储变量。

当转到第三个需求时,我们发现了更多的复杂性。为了确保中标者全额支付,智能合约必须锁定出价。我们可以要求投标者在每次承诺的同时发送ETH来担保他们的出价——请注意,commitBid函数是可支付的,并记录用户锁定了多少ETH——但附加到这些交易的ETH是公开的,不可能被混淆;在“锁定”出价中,我们失去了隐私。

幸运的是,有一种简单的方法可以支持我们的稻草人:允许(并鼓励)投标人对其投标进行超额抵押,即锁定比投标价值本身所需的更多的 ETH。由于投标可能被超额抵押,观察者只能了解投标价值的上限。请注意,我们的commitBid函数允许用户锁定任何数量的ETH与他们的交易;超出的部分将在拍卖结束时返还给获胜者(如果抵押不足,则出价将被忽略)。

不幸的是,这种快速解决方案有一个缺点:超额抵押在隐私和资本效率之间产生了直接的权衡。锁定大量资金的机会成本可能超过边际隐私,资金受限的投标人处于劣势。

也就是说,当我们继续探索不同的方法时,超额抵押设计可以作为一个有用的基准。当用户可能在大量拍卖中投标,并且可以为每一种拍卖重复使用抵押品时,这种实现的改进可能特别有用。在这种情况下,在任何给定的拍卖中,抵押品自然会远远高于出价。

我们能找到更好的链上解决方案吗?尽管在某些情况下,超额抵押可能是合适的,但资本效率和投标隐私之间的权衡可能会让投标人面临一个艰难的决定:锁定更多资金以获得更强的隐私,还是牺牲一些隐私来释放资金以供其他地方使用。。但随着链上拍卖的不断发展,以及在之前工作的基础上,我们预计拍卖设计师将根据他们愿意做出的权衡来选择更多的格式和实现。

在本系列的下一部分中,我们将进一步深入设计领域并考虑以下问题:我们能否在不过度抵押的情况下保证强大的隐私?该存储库将继续作为我们在整个系列中讨论的想法的实用参考,并为进一步探索提供基础。我们希望你能跟随、分叉并尝试更多的实现,因为它们已被添加。

责任编辑:Felix

声明:本文为入驻“MarsBit 专栏”作者作品,不代表MarsBit官方立场。
转载请联系网页底部:内容合作栏目,邮件进行授权。授权后转载时请注明出处、作者和本文链接。未经许可擅自转载本站文章,将追究相关法律责任,侵权必究。
提示:投资有风险,入市须谨慎,本资讯不作为投资理财建议。
免责声明:本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况,及遵守所在国家和地区的相关法律法规。