買比特幣 買比特幣
Ctrl+D 買比特幣
ads
首頁 > 中幣 > Info

AUCTION:隱藏在眾目睽睽之下, Solidity 實現密封投標拍賣_auction幣介紹

Author:

Time:1900/1/1 0:00:00

編者注:這篇文章是我們正在進行的web3拍賣系列的一部分。第一部分是對拍賣設計的概述,以及在無需許可的區塊鏈背景下機制設計的具體技術挑戰。第二部分是關于清理市場和避免GAS戰爭的文章。第三部分分享了對典型拍賣類型的概述、理論如何轉化為實踐的研究,以及我們對一個新穎的、密封投標的Vickrey拍賣的首次實施。

鏈上拍賣是web3中最有趣設計空間之一——從NFT銷售到抵押品拍賣——產生了新的實現和研究景觀。雖然拍賣機制的設計已經存在了幾個世紀,并在最近幾十年隨著網絡和電子商務的出現而不斷發展,但我們現在才將這些方法應用于智能合約。

我們也開始看到更多區塊鏈原生的拍賣設計,包括我們對Vickrey拍賣的開源Solidity實現,以及來自社區的一些有趣的發展。在我們的第一個設計中,我們在隱私和資本效率之間做了一個權衡。我們使用了超額抵押,以便從獲勝的投標人那里強制付款,而不通過抵押品的數量揭示精確的投標價值。通過鎖定更多的資本,你可以在潛在的更大的機會成本下獲得更多的隱私。但是,如果我們可以在沒有過度抵押的情況下擁有投標隱私呢?

這篇文章介紹了一種新的拍賣設計,我們稱之為"SneakyAuction",它結合了CREATE2操作碼和狀態證明來保證投標隱私,而不要求投標人鎖定超過要求的抵押物。我們首先分解了它的工作原理,然后在氣體成本、用戶體驗和隱私方面與我們之前的實現進行比較。我們還將該實現添加到GitHub上的AuctionZoo倉庫中,這樣你就可以分叉它,在它的基礎上構建,并在我們深入研究更多的機制時跟隨我們;與此同時,更多關于它如何工作以及與我們過去的設計進行比較的信息如下。

狗狗幣24小時漲幅近9%,達到4月份以來最高價格:金色財經報道,根據CoinGecko的數據,截至北京時間7月25日4:50AM,狗狗幣(DOGE)漲至0.08美元,24小時漲幅達到8.9%,這是自4月份以來的最高價格,交易量飆升至超過17億美元。根據CoinMarketCap的數據,狗狗幣的市值目前為114億美元,這是該平臺跟蹤的代幣中周漲幅最高的加密貨幣,過去一周上漲18.9%。

金色財經曾報道,當天早些時候,馬斯克轉發了Dogecoin及My Doge錢包UX/UI圖形設計師DogeDesigner的X視頻推文,此后DOGE應聲上漲。[2023/7/26 15:58:36]

工作原理:使用create2提交投標

要在鏈上創建一個"最終公開"的密封投標拍賣,需要滿足兩個要求。首先,出價需要在投標期間保密,然后在投標結束時才公開;承諾-公開方案可以在鏈上復制這種機制。第二個要求是抵押:出價必須有抵押物支持,以確保贏家有足夠的資金來履行他們的承諾。

在我們的超額抵押的Vickrey實現中,潛在的買家通過調用commitBid函數,提供哈希承諾和要托管的抵押物來出價。這種方法滿足了要求,但也有一些缺點。盡管出價本身被哈希值所隱藏,但commitBid交易公開并立即表明了用戶的意圖。"我想在這個拍賣會上出價,這是我出價的抵押品。"如果沒有過度抵押,意圖和抵押品的可見性會暴露出投標價值。但是,如果我們能夠混淆交易的意圖,我們也許能夠在不依賴過度抵押的情況下實現投標隱私。

BTC全網未確認交易筆數為227306筆:金色財經報道,根據btc.com顯示,BTC目前全網未確認交易筆數為227306筆,自07月21日00:00起至今筆數已減少約-2%。[2023/7/23 15:52:46]

在EIP-1014中引入并包含在君士坦丁堡硬分叉中的CREATE2操作碼為我們提供了一種方法來做到這一點。CREATE和CREATE2操作碼都是用來部署智能合約的,但它們在計算部署地址的方式上有所不同。CREATE部署地址是作為部署者地址和nonce的哈希值計算的;另一方面,CREATE2部署地址是作為合約的字節碼和構造器參數、任意鹽和部署者地址的哈希值計算的。

CREATE2經常被用于工廠模式,將合約部署到可預測的地址--例如,UniswapV3PoolDeployer合約使用CREATE2將每個池子的合約部署到一個地址,這個地址是代幣對和收費層的函數。CREATE2也可用于部署可升級的智能合約,最明顯的是在變質合約模式中。

對我們來說更重要的是,CREATE2的部署地址可以作為對輸入字節碼和參數定義的任何行為的散列承諾。如果構造器參數編碼了一個投標,那么CREATE2地址可以作為一個投標承諾。

Polkadot推出開源、免費和鏈上資助的字體Unbounded:9月5日消息,Polkadot推出開源、免費和鏈上資助的字體Unbounded,提供從淺到黑的六種顯示粗細,以及一種可變字體。[2022/9/5 13:09:45]

計算Solidity中金庫的地址

此外,合同本身可以作為一個保險庫——投標人可以在合同部署之前向CREATE2的金庫地址發送ETH,以抵押和承諾他們的投標,只需一次簡單的轉賬由于競標者沒有金庫地址的私鑰,抵押物被鎖定,直到競標被公開,這時SneakyAuction合約部署并解鎖金庫。

EVM區塊頭的組成部分。來源:

https://ethereum.stackexchange.com/a/6414

在我們的實現中,拍賣的第一個出價會存儲上一個區塊的區塊鏈。該交易有效地將拍賣從投標階段過渡到揭示階段--所有隨后揭示的投標必須提供Merkle證明,證明他們的金庫在該區塊之前已經有足夠的抵押。請注意,第一次揭示出價交易最好是通過私人交易池提交;否則,觀察mempool的競標者可以提前進行交易并在最后一刻出價。

BurnBNB:目前已經銷毀112800枚BNB:金色財經消息,BurnBNB發推特表示,自BEP-95實時銷毀升級以來,已經銷毀了112,800枚BNB(價值45,595,800美元)。[2022/8/20 12:37:31]

LibBalanceProof

為了最大限度地降低投標人的成本,我們編寫了一個GAS優化庫來驗證鏈上的余額證明,該庫建立在Aragon團隊編寫的合同,以及HamdiAllam的鏈上RLP解碼的合同。我們的庫使用了一些低級技巧和優化,這些技巧和優化依賴于狀態trie的特殊結構,所以它不能用于通用的Merkle-Patriciatrie證明。作為回報,它允許SneakyAuction合約在不到3萬個氣體中驗證金庫的過去余額。

我們還為eth_getProofRPC方法寫了一個輕量級的JavaScript包裝器。給定一個地址和區塊號碼,它返回余額證明和RLP序列化的區塊頭,可以用來顯示投標。

它是如何比較的

讓我們把我們新的SneakyAuction方法與我們上次發布的OverCollateralizedAuction設計進行比較,沿著技術設計者或用戶關心的幾個關鍵維度:GAS成本、用戶體驗和隱私。

GAS成本

SneakyAuction的revealBid、endAuction和withdrawCollateral功能需要部署SneakyVault,所以它們比OverCollateralizedAuction的對應功能更昂貴。revealBid尤其昂貴,因為它還需要驗證一個余額證明,這需要花費大約25000個氣體。

CoinShares:上周加密貨幣投資產品凈流入6400萬美元:7月4日消息,據CoinShares周報數據,上周數字資產投資產品凈流入6400萬美元。其中比特幣在一周內幾乎沒有流入,總額僅為60萬美元。在美國推出新產品后,Short-Bitcoin的流入總額達到創紀錄的5100萬美元。上周,以太坊連續第二周流入500萬美元,打破了11周的流出魔咒。多資產(多加密)投資產品的流入總額為440萬美元。[2022/7/4 1:50:17]

用戶體驗

雖然這兩個實現遵循類似的整體流程,但在用戶體驗上還是有一些區別。SneakyAuction有一些小的缺點:

向未部署的金庫發送ETH的體驗,雖然可以由前端抽象出來,但對于在區塊探索器上檢查其投標交易的用戶來說,可能會混淆。在OverCollateralizedAuction中,如果所有的出價都被公開,那么就有可能提前結束拍賣。這在SneakyAuction中是不可能的,因為合同沒有辦法知道已經有多少出價已經被認可。競標者可以通過再次調用commitBid來更新他們的出價,并在OverCollateralizedAuction中補足他們的抵押品。在SneakyAuction中,一旦投標的金庫被抵押,投標人就不能進行更新。隱私

OverCollateralizedAuction的投標隱私依賴于投標人選擇鎖定額外的抵押品。另一方面,SneakyAuction的隱私來自與拍賣本身完全無關的鏈上活動。在拍賣的投標期間發生的ETH轉移。

為簡單起見,我們假設每個投標都是用一個ETH轉賬來抵押的。我們觀察到:

抵押交易應該是第一次有人與鏈上的金庫地址進行互動。我們不希望有任何其他交易在投標期的剩余時間內接觸到金庫地址。任何交易都不能從金庫地址發起。在投標期間,ETH轉移到其他"未觸及"的地址似乎是投標——換句話說,它們是隱藏投標交易的"噪音"。為了幫助量化SneakyAuction的隱私,我們可以看一下這個噪音分布的形狀。

這個直方圖顯示了今年以來每天ETH轉移到未觸及的地址的分布,說明了24小時投標期的噪音分布。我們可以看到,大多數交易都落在ETH范圍內,這意味著預期出價值在該范圍內的拍賣將具有最強的隱私。另一方面,對于預期出價大于10ETH的拍賣,典型的噪音可能無法提供足夠的隱私--在這個范圍內很少有超過100次的轉賬,所以吸引很多出價的拍賣會在分布中產生一個明顯的峰值。

為了從另一個角度看這個數據,這些散點圖描述了2022年10月15日的轉賬情況,與兩個假設拍賣的出價相疊加:

200次出價,正常分布在1ETH左右

200次出價,正常分布在100ETH左右

從直觀上看,觀察者更容易識別來自第二次拍賣的出價。在實踐中,你可以使用一個聚類算法,如期望最大化算法來預測哪些交易是投標。

然而,還有一些其他因素可以使SneakyAuction在實踐中更加私密。

更長的投標期。隱私與投標期的長度成正比--投標期越長,隱藏投標的轉移就越多。同時進行的拍賣。私密性會隨著同時進行的拍賣數量的增加而增加--如果兩個拍賣同時處于投標階段,一個拍賣的出價就會成為另一個拍賣的噪音。SneakyAuction也可以從過度抵押中獲益--因為SneakyVault將任何多余的ETH返還給競標者,競標者可以選擇過度抵押以進一步保護隱私。因此,從某種意義上說,SneakyAuction提供了嚴格意義上比我們之前的實現更強的隱私。

SneakyAuction的隱私機制的一個簡單推論是,它隱藏了投標期間的投標數量。這比OverCollateralizedAuction有優勢,OverCollateralizedAuction只隱藏了出價值--在特定的拍賣中已經做出的出價承諾的數量是完全公開的。

雖然我們對密封出價拍賣的第一個實現將現實世界的特征轉化為鏈上的設計決策,但我們的第二個設計依賴于一種新穎而實用的機制,將區塊鏈的公共性質用于其優勢:密封出價"隱藏"在不相關的區塊鏈活動中。

雖然這種新方法是實現投標隱私而不過度抵押的便捷方式,但它不一定適合所有的拍賣。對于期望出價較小的拍賣,隱私性會得到改善。

責任編輯:MK

Tags:IONUCTAUCAUCTIONDIONE幣AUCTauction幣介紹EOS Auction

中幣
COI:20個A16z投資潛力空投項目_coinw交易所官網

AndreessenHorowitz由MarcAndreessen和BenHorowitz于2009年在硅谷創立,是一家支持大膽企業家通過技術建設未來的風險投資公司.

1900/1/1 0:00:00
DANK:深入探討去中心化可擴展性:了解以太坊擴展路線圖的一些里程碑升級_Mu Dank

從A到KZG,以太坊這臺世界計算機的合并后路線圖綜合指南:Pro-Danksharding(EIP-4844)提議者-構建者分離Danksharding對去中心化可擴展性的深入探討.

1900/1/1 0:00:00
ZKS:Matter Labs 正式發布 zkSync 2.0 主網第一階段「baby alpha」_zksync幣總量

今天,我們達到了BabyAlpha新里程碑,現在已經開始向FairOnboardingAlpha和FullLaunchAlpha進軍,在我們團隊、生態系統項目和社區的奉獻和支持下.

1900/1/1 0:00:00
DAO:從 DAO 監管第一案,看美國 CFTC 對 DAO 的監管邏輯_OOKI

2022年9月22日,美國商品期貨交易委員會在美國加利福尼亞州北區地方法院對去中心化自治組織非法提供場外杠桿及保證金零售商品交易;(ii)未經登記擅自從事期貨交易未能按照《銀行保密法》下FCM的.

1900/1/1 0:00:00
SEI:Sei Network:通過并行執行實現高速鏈_odysseia

背景 Cosmos生態近期再次火爆,吸引到大眾的注意力。從6月底dYdX宣布將dYdXV4版本遷移到Cosmos生態,到9月底Cosmoverse大會上Cosmos2.0白皮書的發布,都展現出C.

1900/1/1 0:00:00
VEX:Outlier Ventures:探討 ve 代幣模型的優缺點及改進思路_vex幣今日價格

什么是投票托管? 投票托管是由CurveFinance提出,代幣持有者將其治理代幣鎖定一段預定的時間,并獲得投票托管代幣作為回報的一種協議.

1900/1/1 0:00:00
ads