原文標題: 《a16z:鏈上拍賣怎麼搞?超額抵押了解一下》
撰文:Michael Zhu
編譯:老雅痞
拍賣在加密貨幣中無處不在。從Maker 抵押品拍賣到Flashbots 的密封投標區塊空間拍賣和OpenSea 上的NFT 拍賣,拍賣適用於需要價格發現、流動性或稀缺資源分配的各種情況,無論是鏈上還是鏈下。
然而,與關於拍賣的大量(且不斷增長的)學術研究並列,很明顯,我們只是觸及了這些機制可能在鏈上提供的功能的皮毛——例如,優化隱私、效率、買家盈餘和其他關鍵設計目標。鑑於2020 年Curve 和Sushiswap 之後自動做市商(AMM) 設計的「大爆發」——以及第三代區塊鏈的同時爆發——鏈上拍賣似乎已經成熟,可以出現類似的進化高潮。
儘管拍賣形式曾經被鬆散地採用(並受制於)區塊鏈的技術限制,但我們現在開始看到更多特別適合區塊鏈的新穎設計。遵循市場的傳統,這篇文章是主要是想彌合拍賣理論與實踐之間的差距:理論原則如何為決策實施提供信息?反過來,鏈上實現又如何為理論研究提供新的方向?儘管理論可以引導我們走向某種拍賣設計,但從理論角度分析實施細節本身可能會很有趣。
我們首先沿著三個軸比較四種典型的拍賣類型:信息披露、競價策略和鏈上實施考慮。然後,我們將特別關注密封投標格式,深入研究使它們在鏈上相對未被探索的實施細節,並介紹我們的Vickrey 拍賣的開源Solidity 實施——我們希望其他人可以將其用作參考和為進一步實驗奠定基礎。
簡要介紹一下拍賣形式
我們之前已經在與a16z 加密研究合作夥伴(和哈佛商學院教授)Scott Kominers 和a16z 加密研究負責人(和教授在哥倫比亞大學)Tim Roughgarden 討論過。利用他們為加密協議提供建議的專業知識,他們在理論和實踐中概述了拍賣類型和激勵設計——包括市場清算價格和Gas War 的細微差別。
但是為下面的實現設置一些背景材料:拍賣理論在歷史上一直圍繞著四種典型的拍賣類型,由William Vickrey 於1961 年首次分類,並在此處以單一商品拍賣的背景進行描述。
鏈下可用拍賣設計的快照。資料來源:維基百科
英式拍賣(升價):在英式或升價拍賣中,拍賣師以保留(最低)價格開標,投標人逐漸提高出價,直到只剩下一個願意支付當前價格的投標人,此時點最後一個投標人獲勝。這是流行文化和媒體中最常見的拍賣形式,通常是在出售古董、藝術品或未切割寶石的背景下。
荷蘭式拍賣(降價):在荷蘭式或降價拍賣中,開盤價按照規定的時間表遞減。在荷蘭式拍賣中,第一個出價的是獲勝者,拍賣會立即結束。從歷史上看,荷蘭式拍賣的多單位版本經常用於出售大量保質期有限的商品,例如切花、魚或煙草。最近,美國財政部引入了荷蘭式證券拍賣(1974 年),2004 年谷歌首次公開募股時候,就是通過荷蘭式拍賣出售了其股票。
密封投標第一價:每個投標人向拍賣師提交密封投標(例如在密封信封中)。提交所有出價後,拍賣師會私下閱讀它們並宣布獲勝者(出價最高的人)。然後獲勝者支付他們出價的金額。當房產引起多個買家的興趣時, 密封投標的第一價格拍賣通常用於房地產。
封標二價( 「維克里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 費而暫時被淘汰。
鏈上荷蘭式拍賣
從促進NFT 銷售到重新平衡TokenSet(以及各種衍生變體,如Gradual Duction Auctions 和Variable Rate GDA),鏈上荷蘭式拍賣已經獲得了巨大的牽引力。這種受歡迎程度是有充分理由的——簡單的荷蘭式拍賣作為智能合約相對容易實施,並且只需要兩次鏈上交易(一次用於創建拍賣,一次用於第一次也是唯一一次出價) 。最重要的是,它不會鎖定投標人的資金,這與其他具有鏈上投標的拍賣不同。
鏈下荷蘭式拍賣的動態取決於有效的即時競價。荷蘭式拍賣在出價一經宣布即告結束,不得再進行其他出價。然而,在鏈上進行時,在廣播出價和將其包含在鏈中之間存在時間間隔,這可能會產生一些意想不到的後果。如果第一個出價被廣播到公共內存池(而不是像Flashbots 這樣的私人交易池),它可能會引發一場Gas War,其他潛在買家會廣播出越來越高的Gas 價格的出價。因此,當交易訂單的鏈下升價拍賣超過荷蘭式拍賣本身時,Gas 調整後的價格可能會突然上漲。
價格下降機制的時間依賴性也帶來了其他缺點。假設一個連續的價格衰減函數,投標人必須在需要時準確地在線以特定價格投標,或者設置一個機器人(例如使用Gelato Network)來投標。偶然(或惡意)與第一個投標的廣播同時發生的網絡擁塞可能會降低最終結算價格,從而損害賣方的收入。更糟糕的是,DoS 攻擊可能會使合法的獲勝者失去拍賣。
鏈上密封投標拍賣,由新的開源實施證明
利用鏈下投標(例如OpenSea)的平台可以輕鬆實施密封投標拍賣,但他們需要信任拍賣師(a)不透露任何投標,(b)不審查任何投標,以及(c)正確確定拍賣的結果。理想情況下,智能合約將不信任地促進拍賣,同時保留一定程度的投標隱私。
為了演示,我們在github.com/a16z/auction-zoo 上開源了一個超抵押密封投標拍賣的Solidity 實現, 作為以ETH 計價的單項(ERC721) Vickrey 拍賣。我們在實施時考慮了密封投標拍賣智能合約的三個要求:
- 隱私:投標值應保持私密,這意味著觀察者無法在投標進行時推斷值。我們允許一些信息洩露(例如,揭示出價位於某個大區間內),但應該有合理程度的模糊。
- 審查阻力:這通常可以通過在鏈上發布投標來實現。
- 投標承諾:潛在買家不應退出投標。中標者應被鎖定以支付結算價格,同樣,賣方應被鎖定以將物品出售給出價最高的人(可能受底價限制)。
首先,根據前兩個要求,我們需要解決在鏈上發布私人投標的問題。承諾披露方案適用於「最終公開」的投標(當投標值在拍賣結束後公佈時)。潛在買家可以在指定的投標期內向拍賣合同提供其投標的哈希承諾,而不是公開投標。稍後,在投標期結束後,每個潛在買家都會透露他們承諾的投標。當出價公佈時,智能合約可以確定獲勝者。在我們的實現中,哈希承諾被計算keccak256(abi.encode(nonce, bidValue)) 並傳遞給函數。為了Gas 效率,我們只存儲這個散列的前20 個字節。投標期結束後,用戶調用和合同commitBidrevealBid 檢查提供的nonce 並bidValue 匹配存儲的承諾。
當轉向第三個要求時,我們發現了更多的複雜性。為確保獲勝者付款,智能合約必須鎖定投標。我們可以要求投標人發送ETH 來擔保他們的投標——注意該commitBid 功能是支付的,並記錄用戶鎖定了多少ETH——但附加到這些交易的ETH 是公開的,不可能被混淆;在「鎖定」出價中,我們失去了隱私。
幸運的是,有一種簡單的方法可以支持我們的想法:允許(並鼓勵)投標人對其投標進行超額抵押,即鎖定比投標價值本身所需的更多的ETH。由於投標可能被超額抵押,觀察者只能了解投標價值的上限。請注意,我們的功能允許用戶在commitBid 他們的交易中鎖定任意數量的ETH;拍賣結束時,任何超出部分都會退還給獲勝者(如果抵押不足,則出價將被忽略)。
不幸的是,這種快速解決方案有一個缺點:過度抵押在隱私和資本效率之間產生了直接的權衡。鎖定大量資金的機會成本可能超過邊際,資金受限的投標人處於劣勢。
也就是說,當我們繼續探索不同的方法時,超額抵押是一個有用的基準。這種實現的演進在用戶可能在大量拍賣中出價並且可以為每個拍賣重複使用抵押品的設置中可能特別有用。在這種情況下,抵押品自然會比任何特定拍賣中的出價大得多。
我們能找到更好的鏈上解決方案嗎?儘管在某些情況下超額抵押可能是合適的,但資本效率和投標隱私之間的權衡可能會給投標人帶來一個艱難的決定:鎖定更多資金以獲得更強的隱私,或者犧牲一些隱私來釋放資金以供其他地方使用。但隨著鏈上拍賣繼續激增並建立在以前的工作之上,我們預計拍賣設計師將根據他們願意做出的權衡來選擇更多的格式和實現。
在本系列的下一部分中,我們將進一步深入並考慮以下問題:我們能否在不過度抵押的情況下保證強大的隱私?該存儲庫將繼續作為我們在整個系列中討論的想法的實用參考,並為進一步探索提供基礎。我們希望您能跟隨、分叉並嘗試更多的實現,因為它們已被添加。
致謝:感謝Joe Bonneau、Scott Kominers、Sonal Choksi 和Tim Roughgarden 對本文提供的寶貴反饋;和Noah Citron、Sam Ragsdale 和Matt Gleason 審查代碼。