區塊鏈給開源軟件的融資帶來了革命性的變化,但并非所有東西在一開始就行得通。事實上,2016—2018年期間的 ICO 經常是嚴重有問題的機制,它們讓創始人在交付任何產品前就能兌現。此后,我們吸取了許多教訓,今天的項目在發行和分發代幣之前都有一個工作產品,以激勵使用和去中心化治理。
NFT 被證明是另一種明確適用于加密貨幣的產品市場匹配,但它們正在經歷自己的成長之痛。每個 NFT 的生命都開始于一次 NFT 發行 (有時也稱為鑄造或空投)。一次 NFT 發行意味著有新的收藏品被首次創造、出售和分發給買家,他們隨后會決定是持有還是在二級市場交易。
就像任何首次銷售的商品一樣,NFT 的發行面臨著為從未有過價格的東西定價的挑戰。但與大多數其他東西的銷售不同的是,它們還有一個額外的困難,那就是在一個充滿獨特特性的高度對抗性環境中進行,這些特性已經使缺乏經驗的用戶難以接近,這個環境就是公共區塊鏈。因此,開發者必須設計出高效而穩健的機制,以防止被破壞。
本文以在現實世界中那些已經傷害了用戶利益的 NFT 發行案例開始,以找出好的發行應該滿足哪些目標。接下來,我們把發行分解為一個個的步驟,探索每個步驟的設計空間。最后,我們提供一個我們認為是設計良好的發行機制的參考實現,供社區使用和在其基礎上構建。
隨著時間的推移,我們已經注意到,NFT 發行的某些設計模式一直給用戶帶來不良結果。
可被破壞的公平性
當一個新的收藏品推出時,用戶可以與其智能合約交互,鑄造一個具有隨機屬性的 NFT。這些屬性往往有不同的稀有度,使得有些組合比其他更稀缺和更有價值。例如,10,000 個 CryptoPunk 里只有 9 個有超稀有的“外星人”特性,其中現在在市場上最便宜的一個標價 35,000 個 ETH。
雖然不同人出于各種原因參與鑄造,但其中很多人享受不知道他們將得到哪款以及稀有度如何的興奮感。從這個意義上說,鑄造 NFT 只不過是長時間以來在模擬經濟 (如集換式卡牌游戲里的增強包) 和數字經濟 (如電子游戲的戰利品盒/箱) 中受歡迎的扭蛋機制的延續。
參與扭蛋游戲的人往往會做出一個重要的假設:他們從物品的隨機分布中抽取,且真的有機會 (盡管很小) 抽到非常稀有的那個。不幸的是,過去的 NFT 鑄造經常無法滿足這個假設,無法創造真正的隨機性。在實踐中,這使得熟悉技術和有動機的各方利用鑄造為自己謀利,搶奪收藏品中最稀有的那些,使誠實的參與者無法獲得。
我們分享這種模式的兩個案例,其中 NFT 鑄造正是以這種方式被破壞。這兩個案例都依賴于相同的兩步過程:
1. 搶奪者提取收藏品的元數據,使它們顯示在一個單一稀有度分數中所有屬性的相對頻數。使用這個分數,他們然后可以確定一個收藏品集里最高價值的 NFT。
2. 然后,搶奪者打破鑄造合約的隨機性,以只鑄造他們想要的稀有、最高價值的 NFT。
Loot 衍生品以及用鏈上元數據搶奪 Loot
最近,一個名為 Loot 的項目席卷了 NFT 世界。看似簡單,這個項目包含 8,000 個戰利品包,由不同稀有度的胸部、足部、手部、頭部、頸部、戒指、腰部和武器物品組成。
每個物品槽的所有屬性都直接存儲在合約里,鑄造者獲得一個偽隨機的戰利品包,以包 ID 作為哈希值。雖然只要以太坊存在它們就永久存在,但在鏈上存儲元數據也將 Loot 的偽隨機性暴露給搶奪者。他們通過在本地模擬隨機化函數,快速抓取了所有 8,000 個包的元數據,獲得了整個系列的圖片 (也獲得了稀有度)。有了這些信息,他們只需要利用合約最后剩下的弱點:能夠準確地鑄造他們想要的 ID,并只狙擊最稀有的包。
但是,盡管破壞很簡單,但有理由相信沒有人會破壞原始的 Loot。
來源:https://github.com/Anish-Agnihotri/blog-effective-nft-launches-data/tree/master/01-exploitable-fairness/loot
如果我們觀察直到鑄造最后戰利品包的稀有度,稀有的物品在整個鑄造過程的分布是良好的。這表明沒有明顯的搶奪案例。
關于為什么 Loot 沒有被破壞,有兩個可能的解釋:
1. 這是一個全新的合約,因此人們還沒準備好或缺乏時間發現漏洞
ParaSpace舊官推:將推進社區投票轉移由團隊保管的多重簽名:5月12日消息,ParaSpace 舊官推發文稱,將直接推進準備社區投票,以轉移目前由 ParaSpace 團隊保管的多重簽名。將通過 Snapshot 為多重簽名轉移準備投票機制,并將很快提供包含更多詳細信息的更新。
此外,舊官推表示,在接下來的 12 個小時里將嘗試與 ParaSpace 創始人 Yubo 建立公開對話,通過聯合執行達成解決方案。如果 Yubo 愿意建立聯系,將直接與其解決關鍵升級問題,以減輕短期用戶負擔,例如利率和 Gas 費用。
舊官推呼吁 Yubo 盡快告知其候選人姓名,以便將其納入有關多重簽名的社區投票中。[2023/5/12 14:59:46]
2. 鑄造 Loot 的預期價值并不明確,因為收藏品的價值只會在接下來幾天在二級市場爆發。收藏品大概需要 2.5 個小時售完,這一點進一步支持這個假設。
然而,隨著 Loot 的價格不斷上漲,一系列像 More Loot 和 Extension Loot 這樣的衍生品開始出現,它們大多數只是原始 Loot 合約的小分叉。新的收藏品繼承了 Loot 的弱點,但市場價值更高,且得到更多的關注。這對這些收藏品鑄造的公平與否產生了很大的影響。
More Loot
將稀有物品的分布與 More Loot 和原始 Loot 之間的鑄造時間進行對比,搶奪的證據變得非常明顯。僅僅幾個區塊之后,所有的稀有 NFT 已經被鑄造完了,只剩下一些沒有價值的給未來的鑄造者,他們基本上不知道經驗豐富的用戶已經搶奪完了這次的發行。
來源 :https://github.com/Anish-Agnihotri/blog-effective-nft-launches-data/tree/master/01-exploitable-fairness/mLoot
下圖:紅線指的是當 Anish 在推特上公開他的稀有度得分時,開始爭奪稀有包的區塊高度。
此外,由于 More Loot 的供應量不斷膨脹,因此可以預期搶奪者將對未來可得的包預先評分,并競相鑄造它們。
Extension Loot
與 More Loot 類似,Extension Loot 具有一個單一地址,可以鑄造最稀有的 10 個袋子里的 5 個 (所有鑄造的 NFT 都以紅色標示)。獨特的地方在于,這些 NFT 被隱藏在顯而易見的地方,因為搶奪者在連續瞄準稀有包之前,會慢慢把它們和可得包分發出去。
Source 來源 :https://github.com/Anish-Agnihotri/blog-effective-nft-launches-data/tree/master/01-exploitable-fairness/xLoot
Meetbits 以及用鏈下元數據搶奪 Meebit
Meebits 是由 CryptoPunks 的創造者 Larva Labs 推出的備受期待的 NFT ,擁有 20,000 個獨一無二的 3D 人物。
Larva Labs 知道精明的用戶可以利用收藏品的元數據來計算稀有度,然后搶奪稀有的 NFT。為了解決這個問題,他們以這樣的方式設計他們的網站:他們允許買家看到每個 Meebit 的完整元數據,但僅在 NFT 被鑄造完后。
盡管該網站明確隱藏了未鑄造的 Meebits,但有人查看源代碼,發現 Larva Labs 從 IPFS 上提取元數據。利用這個信息,他們還是搜刮了 IPFS ,提取了未鑄造的 Meebits 的元數據,找出了最想要的那些。
然而,Larvalabs 仍然沒有讓搶奪者輕易實現:不同于 Loot,用戶不能鑄造特定 Meebit ID 的 NFT。相反,鏈上的隨機性被用作哈希值 (理論上礦工仍然可以利用),使這個特定用戶更難以鑄造一個稀有的 Meebit。
但是,掠奪者知道如何在糟糕情況下取得最好的結果。他們寫了一個購買 Meebits 的合約,查看它們的 ID,然后再“打亂”它們。具體來說,Meebit 合約是一個有 mint() 函數的 ERC721,它會返回一個隨機的 Meebit ID。搶奪者的合約可以調用 mint,將返回的 Meebit ID 與它們的稀有度列表進行對比,如果沒有超過一定的稀有度分數,就回滾交易 (示例代碼)。用這一招,他們只需支付大約 0.03 個 ETH 來查看每個 ID,而不用花大約 2.5 個 ETH 直接購買 Meebit。
ParaSpace:安全補丁審核與測試已完成,3月25日前將分階段重啟協議:3月20日消息,NFT借貸協議ParaSpace發推稱,安全補丁的審核與測試現已完成,以便在主網上重啟協議時確保用戶資產安全。提現時間鎖合約正在完善中,將在未來幾天進行審核與測試。ParaSpace團隊決定分階段重新開放協議,將優先考慮還款、供應、清算、貸款、提款與時間鎖的增強。團隊預計所有平臺功能將在3月25日之前上線。平臺第一階段的還款功能已經上線,希望在清算仍暫停的情況下為用戶提供機會來償還債務。
團隊將開始為用戶手動認領與復利APE池中的APE質押獎勵,直到協議上線。僅在APE池中擁有APE的用戶在分階段重新開放期間仍能獲得自動復利的收益。[2023/3/20 13:14:48]
盡管攻擊者在這個過程中燒了很多失敗的交易,因此也會燒掉很多 gas 費用,他們最后獲得大約 400 個 ETH 的收益。今天,同樣的掠奪者可以通過 Flashbots 的交易捆發送交易,如果得到他們想要的 ID,就給礦工支付費用——使回滾交易完全免費。
攻擊者鑄造并賣出 Meebit #16647,它具有極其稀有的“訪問者”特征。
Gas 競拍
在 9 月,有 7 個特別時期以太坊每 gas 的基本費用超過了 1,250 gwei。令人震驚的是,這 7 次發生的情況都是因為備受關注的 NFT 發行擾亂了網絡。
從左到右:G’EVOLS、The Sevens、Sipher、Galaxy Eggs、Omnimorphs + ArtBlocks Democracity、Galactic Apes 和 King Frogs
大多數這些發行采用的是固定價格、先到先得 (FCFS) 的機制。由于價格低、需求過大,獲得這些 NFT 的競爭從合約出售變成了在交易池里的 gas 競拍。
其中一個例子是 The Sevens NFT 的空投,這是一個備受關注的收藏品集,有 7,000 張以反烏托邦人物為主題的收藏品作為個人頭像。由于每張 NFT 的初始價格為 0.07 個 ETH,熱心的參與者都趕緊到合約上去鑄造。在短短 6 分鐘內, gas 價格達到 12,246 gwei 的峰值,僅在合約鑄造的 gas 費上面,參與者支付的中位數是每個 NFT 大約 1.49 個 ETH,而最高的 5 % 的人每個 NFT 支付了 2.44 個 ETH。
在 the Seven 鑄造中,快速上漲的區塊基本費用
gas 競拍的問題不僅僅是它們在使用上更具挑戰,而是通過以這種方式“濫用”公共交易池,它們為所有以太坊用戶創造了負外部性。他們還迫使用戶為同一個 NFT 支付不同的金額,導致成千上萬出價不足的交易失敗,傷害了用戶利益。
高技術門檻
正如我們之前看到的,以太坊是一個黑暗森林,有很多高水平的、敵對的行動者總在尋求機會。NFT 鑄造,特別是稀有的那些,買家期望在鑄造后能在二級市場獲得溢價,這為技術熟練的各方提供了比普通參與者更多有利可圖的機會。
這些參與者通過機器人和自動化策略與鑄造合約直接交互,往往繞過前端,甚至偶爾繞過交易池。
TIMEPieces NFT 空投是這方面的一個典型例子。高級機器人運行者在開始鑄造前查看 nft.time.com 的前端源代碼。這樣,他們可以提前幾個小時在主網找到部署了的鑄造合約和建造好的機器人。因此,這些機器人在鑄造中有一個顯著的優勢——三分鐘內全部售出。在普通參與者連接錢包和提交交易時,已經太晚了。
此外,有些人使用 Flashbots 繞過交易池,直接提交交易給礦工。雖然 TIMEPieces 的合約限制了參與者每個地址最多鑄造 10 個 NFT,機器人運行者 0x35…ce5 提前計劃,把資金分到 5 個錢包,在一個 Flashbots 交易捆里搶奪了 50 個 NFT。
Web3發布平臺Paragraph融資170萬美元:金色財經報道,Web3發布平臺Paragraph籌集了170萬美元。?本輪融資由Lemniscap牽頭,??FTX Ventures和Binance?Labs參與。?[2022/10/24 16:37:18]
這個交易捆包含了 5 個來自不同地址的鑄造交易,避開了對每個地址鑄造數的限制。
另外,由于這個參與者使用了 Flashbots (使得回滾交易的成本為 0 ),他們并沒有遭遇我們在上文例子中的失敗交易情況。這不同于接近 10,962 名普通技術水平參與者在 100 個區塊的 12,743 筆回滾交易里損失了累計 252.62 個 ETH (近 800,000 美元) 的交易費,因為他們的嘗試是失敗的。
低 Gas 效率
一個有效的 NFT 鑄造機制應該對所有參與者來說都是易于使用的——最好是步驟少,實現簡單。對于實現不同于先到先得分發模式的 NFT 鑄造,一個常見的問題是會引入復雜性,增加用戶必須在鏈上進行的交易數。
一個例子是 Jay Pegs Auto Mart 在 Miso 上的 $DONA 拍賣。盡管該鑄造開創了批量競拍 NFT 分發方式,并有效展示了元數據生成在實踐中的公平性,但它是以犧牲 gas 和交易效率為代價的。
為了參與鑄造過程,用戶必須在 8 天內至少進行 4 次鏈上交易:
1. 首先,用戶將 ETH 提交到一個 Miso 的批量拍賣中,而不知道他們會收到多少美元的 $DONA 代幣作為交換 (取決于最終的結算價格)
2. 一旦拍賣結束,用戶必須領取他們的 $DONA 代幣
3. 此時,所有用戶所處的情況有三種:不夠代幣鑄造一個 NFT、剛好夠和有太多代幣。基于參與的 1,363 名鑄造者的情況,我們發現有 273 名不夠代幣,0 名剛好夠,和 1090 名代幣太多 (超過一個代幣的零頭)。
擁有太少代幣的用戶將不得不交易,以從 Sushiswap 獲得必要的剩余代幣。
擁有太多代幣的用戶可以選擇同意用 $DONA 代幣做交易,然后通過 Sushiswap 進行交易,賣出他們的盈余。
4. 當用戶有足夠的 $DONA 來鑄造一個 NFT 時,他們可以同意 NFT 合約花費他們的 $DONA ,然后燒毀他們的 $DONA 以鑄造一個 NFT。
5. 最后,元數據會批量地被分給 NFT,不能披露某一個 NFT 的元數據。
雖然這種機制力求公平,它增加了用戶參與的困難,且要消耗很多 gas。
NFT 收藏者和愛好者評估收藏品價值的一個方法是通過其社區力量。通常情況下,這涉及衡量持有者的代幣集中度。理想的收藏品往往集中度低,有利于個人參與者而不是很多巨鯨。
不過,在最近的鑄造中,出現了引入批量鑄造的新趨勢,即參與者可以在單筆交易里鑄造多于一個代幣。通過這種機制,巨鯨鑄造者會受激勵,以較少的 gas 開銷鑄造許多 NFT。
在實踐中的一個例子是 Stoner Cat 的空投,這是一個支持制作 Mila Kunis 和朋友們的動畫短片的收藏品 NFT 鑄造,允許一次鑄造多達 20 個 NFT。考慮到這個功能,89% 的 NFT 都通過批量鑄造功能鑄造,且接近 31% 的 Stoner Cats 是以最多 20 個 NFT 的批量鑄造的。
此外,所有以固定價格出售的 NFT 都隱含著防止個人參與低于結算價的活動。這減少了分發的公平性,使天平傾向于那些巨鯨,特別是考慮到制造的昂貴程度。
受信任的運營商
無論是執行中心化的抽獎方式來避免 gas 戰,還是使用 Chainlink 來提供公平性,一個常見的權衡是引入對第三方的信任假設。如果 NFT 鑄造必須依賴越多的鏈下基礎設施,用戶就必須對中心化的鏈下實體有更多的信任。
良好發行的目標
通過觀察這些發行并分析人們在實踐中遇到的問題,我們現在可以得出我們所認為NFT 發行應有的六個理想特性。我們沒有野心說這份清單是完整的,但它是一個開始。
不可被破壞的公平性:發行必須有真正的隨機性,以確保搶奪性用戶無法以犧牲沒那么熟練的用戶的利益來搶奪最稀有的物品。
DEX聚合器ParaSwap:延長PSP質押鎖定期的提案正在進行投票:12月6日消息,DEX聚合器ParaSwap發推稱,PSP-IPΔ1相關投票正在進行中,該提案建議延長PSP質押鎖定期,從而使質押變得穩健和公平。投票選項分別為“不變更(鎖定期2天)”、“鎖定期7天”、“鎖定期14天(1-epoch)+Δ天,其中Δ=1天”。[2021/12/6 12:53:18]
沒有競賽條件:每當一個 NFT (或任何商品,真的) 以低于其公平的市場價格出售時,它就會變成 Vitalik Buterin 所說的用其他方式競拍。實際上,買家競相讓他們的交易盡可能快地被挖出來,或附上一筆大的匯款給礦工。任何“用其他方式競拍”都有利于那些對區塊鏈有更深的認識、和能用到像機器人、如 Flashbots 或 Eden 這樣的私人中繼,或甚至是直接與礦工接觸。
不分時間段:常見的情況是,先到先得模式的發行會公布在一個特定的區塊高度,然后在短時間內售罄。無論選擇什么樣的區塊高度,都總是會對目前正在睡覺或工作的其他時區的用戶不利。因此,發行時間不應該太短,這樣人們就可以在不改變日常生活的情況下參與。
節省 gas :鏈上交易 (特別在以太坊上) 是很貴的,因此一個好的發行應該盡量最小化用戶必須進行的交易數。
包容性和抗女巫攻擊:通常情況下,確保 NFT 的發行對多元的持有者開放是符合 NFT 創建者的最佳利益的,即使這會導致市場最初的結算價格有點低。這是因為,一個充滿活力的社區是收藏品在二級市場價值的最終驅動力。
無需信任:當然,說了這么多,發行機制應該致力于維護底層區塊鏈的屬性。這意味著它必須提供上述的好處,而不會變成需要托管或對運營商有過多的信任假設。
大多數發行在理論上都有一個或幾個上述的問題,但在實踐上,并沒有足夠多的需求使這些問題浮現。這就是通過隱匿來實現安全 (security by obscurity)。
例如,如果一個新收藏品被感知的市場價值很低,可能沒有導致在交易池里出現競價戰的競賽情況,不需要購買優先區塊空間,且搶奪性用戶也沒有動機利用它。同樣,如果一個新的收藏品的需求過大,那么這個收藏品可能很快就售罄了,以至于沒有時間為它寫定制軟件或破壞其公平性。
雖然需求過少或過多引發的安全問題都值得重視,但我們認為,人們設計的發行應該始終在各種市場條件下都是穩健的,特別是不要依賴于收藏品的快速出售,以此作為保護它們免受搶奪的手段。
盡管現在我們知道在一次良好的發行中我們想要什么,但我們仍然不知道如何達成。我們可以通過分解在底層實際發生的事來慢慢揭示這條路 (或者,正如我們將看到的,有很多條路)。
每一次的 NFT 發行,其核心都有四個步驟:
1. 出價:出售上線,用戶向運營商提交他們的出價 (可以是一個智能合約)。
2. 結算:運營商將收集到的出價與剩余的供應量做匹配,確定結算價格,并選擇中標的出價。
3. 分發:中標者可以認領他們新鑄造的 NFT (或從運營商那里得到它們)。
4. 揭示元數據:運營商揭示 NFT 的屬性。
例如,看看 Loot。Loot 在區塊 13,108,877 以先到先得的方式出售。此收藏品的創作者 ?dom 在智能合約上把出售價格設置為 0,但用戶仍然需要通過 gas 來競價。在每個區塊里,礦工根據剩余的供應量結算新的出價,決定誰贏誰輸。當中標時,用戶在同一筆交易里收到物品。
大多數用戶在收到物品后才知道其特性。但是,在實踐中,一個老練的用戶可以在鑄造前從智能合約讀到他們物品的特性,從而使他們能夠搶到最稀有的收藏品。這表明,無論其他步驟是否循序或連續發生,元數據必須在物品被購買并完成最終結算后才會被揭示。
接下來,我們將探討 NFT 開發者在這四個步驟中每一步的選擇。我們討論每個選擇對理想屬性的影響,將好的設計選擇從壞的中篩選出來。
階段 1:出價
在這個階段,運營商從其用戶那里收集出價 (例如,購買請求)
連續結算 vs. 循序結算
在做其他事情之前,運營商必須決定他們希望出價和結算在相同的還是兩個不重疊的階段里進行。
任何先到先得的固定價格出售 (這是迄今為止大多數 NFT 發行的方式) 都是連續結算的例子。對于每個區塊,礦工看著出價,根據剩余的供應量對它們進行結算。這個機制有幾個問題:如果運營商高估了 NFT 的結算價格,該物品定價太高的話可能會賣不出。如果運營商低估了 NFT 的結算價格,該物品可能太便宜了,用戶通過速度 (最能直接訪問區塊空間的人) 或 gas 價格 (能給礦工支付最多交易費的人) 來競爭。正如所討論的那樣,這導致了交易失敗帶來的凈虧損,并很大程度上有利于技術純熟的參與者。如果你必須這樣做,前者可以通過將所有用戶交易路由到 Flashbots RPC 來化解,并讓競拍在一個失敗交易不消耗成本的環境下進行。
動態 | Parity計劃將其以太坊客戶端工作過渡到DAO結構:金色財經報道,Parity Technologies周一表示,將通過新的分散式自治組織(DAO)來開放客戶端的維護。有關此舉的細節仍待提出,且其尚未與生態系統利益相關者進行對話,包括以太坊基金會、Gnosis、POA網絡和ETC Labs。Parity表示,Parity以太坊的代碼庫和維護將過渡到DAO所有權和維護者模型。DAO將依靠“利益加權代幣系統”來促進DAO最終決策過程中股權的公平、透明的初始分配。該公司表示,他們在維護代碼庫上花費了大量時間,并寫道,越來越無法致力于該項目即使是簡單維護所需的資源水平。[2019/12/17]
當采用第二種方案時,競價和結算分在兩個不重疊的階段進行。在實踐中,運營商首先收集所有的出價,然后將它們與可用的供應相匹配,以公平的價格做市場結算。這種方法包括批量競拍或抽獎等機制。這種方法的一個例子是 Jay Pegs Auto Mart,它在市場結算前給用戶一個星期的時間提交它們的出價。
循序法有幾個好處是符合我們上述的目標的:
1. 沒有競賽情況:用戶有充足的時間提交他們的出價,且結果是由用戶愿意支付多少來決定的,而不是由他們的速度或技巧。
2. 不分時區:這個方法尊重在其他時區工作或生活的人
此外,因為不存在 gas 競拍,也就沒有對其他網絡用戶的負外部性。
但是,這種方法也是有缺點的,比如需要更多的鏈上交易 (取決于競拍的設計) 或減少那些現在不得不等待更長時間的參與者的樂趣。我們建議不要讓競價期拉得太長,以減輕后一種憂慮,可能不超過 48 小時比較合適。
鏈上 vs.鏈下出價
在決定了是連續結算還是循序結算后,下一個選擇是用戶在鏈下還是鏈上提交他們的出價。
正如我們將看到的,今天的發行經常在鏈上收集出價,因為這是最簡單的,能有效讓礦工結算中標的出價,讓其余的失敗。如果我們假設網絡本身是不受審查的,那么沒有有效出價會在出售中被漏掉這種情況可以得到有力保證。
但是,在鏈下收集出價同樣是可能的。在這個過程里,用戶用他們的私鑰對一條包含像他們的鏈上地址、令牌數或他們想購買的門票、他們的最高出價等的消息簽名。他們發送這個消息給運營商而不是在鏈上執行,使用他們的簽名來證明其有效性。
然后,運營商可以使用這些出價在鏈下市場做結算,或把中標的出價捆綁起來提交到鏈上的執行合約。無論采用哪種方法,都需要對運行商有一定程度的信任來執行正確的出價。
最后一種方法把鏈下出價收集和鏈上選擇勝出者的方法結合起來,穩健、省 gas 且靈活。唯一用戶需要信任的是運營商不會在鏈上提交出價時不會有遺漏的——這是一個相對較弱的假設。
誰可以出價
第三個要做的決定是誰可以出價,以及出多少錢。正如在目標包容性和抗女巫攻擊中所討論的,項目可能想確保不同的用戶都可以購買他們的物品。為此,他們可能會限制具有特定特征的用戶可購買的物品數量,或專門為現有 NFT 社區的持有人保留物品。
當出價發生在鏈下時,這樣的 KYC 規則很容易執行——你只需要在讓用戶提交他們的簽名到服務器之前讓用戶證明一定的信息。鏈上 KYC 則更復雜,但 Gitcoin 的隱私保護措施 Proof of Personhood 正在取得進展。
即使一個項目不希望有任何形式的 KYC,他們仍然可以采取措施,確保一美元可以為大用戶和小用戶購買相同數量的代幣。這個規則經常在合約允許用戶在同一筆交易里購買或認領很多 NFT 時被違反,因為巨鯨可以在更多的令牌中攤銷 gas 費,由此每個令牌比小型用戶支付更少。為了減輕這種影響,為每個地址或每筆交易設置通證數量上限是一個不錯的主意。
出價成本
此外,運營商必須決定用戶何時為令牌付款——與出價一起,還是在市場結算之后?
在后面一種情況,用戶只在出價階段保留代幣,市場結算,然后他們可以在一定的時間窗口內完成購買。Parallel 這個項目就是使用這個方式的,加上鏈下出價。盡管它在一個比較安靜的市場運作良好,當需求很高時,這個模型會進入競賽狀態,用戶會想盡可能多地保留令牌,因為這樣做沒有成本。
為了緩解競賽情況的問題,出價本身應該會涉及一項成本。這里最好的解決方法是讓用戶僅在同一地址的智能合約中鎖定資金后才能提交出價。然后,運營商就可以決定如果出價不成功的話是要退還資金 (類似于交易所的限價訂單) 還是保留出價 (類似于沒有支付的抽獎券)。
出價的顆粒度
最后,運營商必須決定他們想要用戶出價表達的顆粒度。當有失敗的出價時 (因為供不應求),人們必須進一步決定中標者和未中標者的定義。這里有三個可行的選項:
“傻瓜式”批量競拍:人們提交一定數量的 ETH 后沒有進一步的指示。在結算階段,物品的數量除以提交的總 ETH,然后每個人獲得以 ERC-20 形式的碎片化令牌,這些令牌之后可以兌換成 ERC-721 的 NFT。Jay Pegs Auto Mart 使用了這個方式,它的好處是沒有失敗的出價。但是,它的弊端是需要三筆額外的鏈上交易——兩筆用于出售或購買通證以達到有用的數量 (例如,一個”完整的“ ERC-20),一筆是用來贖回 NFT。最重要的是,這個方式不允許買家表達他們想要一定數量令牌的價格——這幾乎是人們在每個市場上都期待的功能。
”智能的“批量競拍:幾年前,SpankChain 在其 ICO 使用了類似的但可以說是更好的的方法。不同于 Jay Peg,SpankChain 收集允許指定令牌數和令牌單價的出價。在出價階段后,他們計算了一個鏈下執行價,并與勝出的出價一起提到一個智能合約,如果勝出了,人們可以提出 SPANK,如果失敗了,人們可以提取 ETH。這個方法的缺點是,匹配所有出價的計算非常復雜,以致它只能在鏈下進行,這需要對運營商有一定的信任。
抽獎:最后,運營商可以采用抽獎的方式,用戶通過買票或預定進行出價。隨后在所有票的池里隨機抽出勝出者。這樣,用戶要么獲得一個完整的令牌或什么都得不到,省去了 Jay Peg 的 $DONA 所需的三筆額外交易。那些難以支付一個完整 NFT 的小額錢包也可以參與。但是,它在出售中引入了隨機性,有些用戶喜歡,有些則不喜歡。
階段2:結算
在這個階段,運營商 (或他們的代表) 根據可得供應匹配出價,決定誰可以購買物品,誰不能。
鏈上 vs. 鏈下結算
最后一個主要節點是誰來從所有出價池里選出中標者。在先到先得的模式里,這由礦工完成,我們已經說明了這個方法有哪些問題。
在 ?Jay Peg 的結算機制里,它的計算復雜度低到足以在鏈上以完全去信任的方式進行。
在 SpankChain 的模式里,中標者完全在鏈下選出。盡管出價者無法以高于他們想要的價格成交 (智能合約確保了這一點),他們還是必須信任運行商不會把他們推到最高成交價,類似于去中心化交易所里的三明治攻擊的工作原理。
抽獎方式是最容易結算的,因為你只需要一個簡單的隨機數 (例如,Chainlink 的 VRF)。但是,需要隨機性也引入另一個信任假設:無論誰生成這個隨機性,都可能偏向于自己的出價而不是其他人。相反,勝出的出價就是最高出價這種情況是不可能的。
階段3:分發
結算后,運營商必須鑄造通證,把它們分發給用戶,退回所有失敗的出價,如果他們選擇的是這種模式的話。這一步一般與 gas 效率和防止競賽情況發生有關。
即時結算 vs. 間隔結算
如果運營商想要防止他們的用戶同時領取 NFT,導致 gas 費激漲,他們可以再次使用結算過程的隨機性,讓人們分批領取。這解決集體行動問題,因為用戶最好不要全部在同一個時間領取。盡管如此,對元數據的好奇和成為第一個在二級市場出售的想法可能最終還是會產生競賽情況。也就是說,間隔結算的方式也會增加用戶的等待時間。
領取 vs. 接收令牌
在分發方面唯一要提的是,用戶是否必須自己領取通證,還是運營商可以簡單地在一段時間內將令牌發給用戶。后者是間隔結算的一個變體,但它還有用戶什么都不用做這個額外的好處。在前文提到的 Parallel 發行使用了這種方式,收效不錯,他們只要求用戶在一開始支付 NFT 時添加一筆”交付費用 (delivery fee)"。
階段4:揭示元數據
最后,當一個通證被分發出去時,它的元數據就會被揭示。在 NFT 發行的四個階段里,這一步必須在最后。它也不能在最后與其他步驟一起進行 (例如,像 Meebit 那樣把支付、分發和揭示捆綁在同一筆交易里),因為通過回滾交易對有不良屬性的物品進行重新打亂,公平性會被破壞。在支付和揭示之間必須有至少一個區塊的間隔,使得重新打亂變得不可能,當然你可以選擇增加這個間隔來防止重組。
我們現在已經確定了,鑄造 NFT 和揭示它的元數據不能再同一筆交易里發生,這就提出了應該什么時候揭示的問題。這不僅對公平性很重要,而且與用戶體驗和 gas 效率也有關。一般來說,有三種選擇:
揭示完整的收藏品:在一個完整的收藏品揭示里,運營商等到收藏品集里所有的 NFT 都鑄造完成后才揭示元數據。這個方法非常省 gas,只需要一個隨機數,然后可以用來混洗票 ID 的元數據,而不需要用戶進一步的操作。
但是,它有顯著的缺點,即用戶要等到所有的 NFT 都被鑄造出來才能看到他們令牌的元數據。如果有人設置了什么時候揭示元數據的上限 (例如,24 小時),有些用戶可能沒來得及鑄造,導致整個收藏品集無法賣出。
逐個 NFT 揭示:為了改善揭示完整收藏品集的用戶體驗,運營商還可以允許用戶逐個 NFT 揭示隨機性。這樣更有吸引力,因為用戶購買后馬上可以“打開”他們的物品。它還讓“未打開的”物品在二級市場上交易 (這在 MTG 等交易卡游戲中很流行)。
然而,這種方法帶來的負擔是需要用戶進行額外的鏈上交易,例如調用 Chainlink VRF 和對他們的 NFT 應用一個隨機數。即使對于那些不覺得特別急于揭示或對交易未打開的物品沒那么感興趣的用戶來說,這也是不可避免的。
批量揭示:作為一個潛在的中間地帶,我們提出批量揭示這個概念。在這個方式里,用戶有一段不確定的時間做鑄造,但如果他們想的話也能在下一個區塊揭示。每個請求的新隨機數都會自動揭示所有鑄造了的和等待分發的物品的元數據,揭示它們的成本幾乎是相同和不變的。
因此,注重時間的用戶可以選擇支付額外的鏈上交易來揭示元數據,這對他們之前的所有用戶都是有好處的。如果沒有用戶選擇揭示,運營商也可以根據一定的時間表來揭示,例如每一個小時一次。
在決定了何時揭示后,剩下的問題是在哪里獲得隨機性。我們建議的兩個選項是使用 Chainlink VRF 或一個提交-揭示方案 (commit-reveal scheme)。
使用前者,你可以按訪問鏈上可驗證的隨機性來源。使用任何一種揭示機制,你都可以調用 Chainlink 來請求隨機性,一旦得到了滿足,就使用隨機生成的數字作為你的元數據計算的一項輸入。這將確保它對每個 NFT 都是隨機的。
對于后者,運營商可以在開售前創建一個隨機數 (用于完整揭示) 或幾個隨機數 (用于逐個 NFT 或批量揭示),然后提前提交他們的哈希值。當一個 NFT 被鑄造了,運營商可以揭示這些數字,允許任何人通過哈希值驗證它們的真實性。盡管如此,這個方式也需要對運營商有一定的信任,假設他們不會利用了解隨機數的特權來鑄造最好的那些 NFT。為了最小化對信任的需求,我們建議在鑄造順序上還是需要一定的獨立隨機化。
此外,對于鏈下元數據,運營商不是提交一個隨機數,而是選擇提交完成元數據的一個哈希值 (所有 NFT 的 id 到 特性)。這確保了元數據是預先確定的,且不會再鑄造過程中或之后被修改。盡管如此,鑄造順序中的獨立隨機化是必要的,以防止運營商利用他們對順序和特性的了解謀利。
我們提供了一個參考實現,我們認為它很好地平衡了所有的特性,而且易于理解和調整。
出價:在我們的實現里,用戶可以通過購買抽獎券來出價。抽獎的時長由運營商決定 (我們建議 24-48 小時)。每張券的價格包含 gas 和每個 NFT 的價格,由運營商指定。后者作為“保證金”,在市場結算后對所有失敗的券都會進行退還。抗女巫攻擊有三個方式:每筆交易的 gas、鎖定資金的資金成本,以及每個地址的券數上限。
結算:一旦出價期結束了,必須從所有券所在的池里抽出與 NFT 數量相等的勝出者。首先,任何人可以調用 collectEntropy(),以從 Chainlink VRF 獲得一個隨機數。這個隨機性在 ?‘shuffleEntries(),’ 使用,它執行 Fisher-Yates Shuffle。任何人都可以調用這個函數,保證活性和 gas 開銷可社會化 (例如巨鯨們那樣)。
分發:在所有中標者都被抽出后,用戶有一個不定期限從他們勝出的券領取 NFT 和獲得失敗券的退款。這種情況都在同一筆交易發生。運營商現在可以開始提取勝券的收益。
揭示元數據:用戶可以在領取后的一個區塊揭示 NFT 的元數據。任何人都可以請求一個新的隨機數,它會自動揭示所有物品的元數據,這些物品已經被鑄造出來并等待分配。這允許注重時間的用戶為立即揭示付款,但使所有用戶受益。
在這篇文章中,我們舉了一些真實的例子來說明設計不良的 NFT 發行如何給用戶帶來次優的結果。但是,當有人清晰地定義他們的目標并花時間解構一個發行的實際步驟時,許多設計都變得可能——而且幾乎所有的設計都比我們今天習慣的固定價格、先到先得和網絡擁堵的出售來得好。
如果你從這篇文章沒什么收獲,可以看看以下三條規則:
不可破壞的公平性是具有隨機元數據的 NFT 發行的最關鍵特性。使用強大的隨機性,且在 NFT 被購買和結算前,永遠不要揭示一個 NFT 的元數據。
競賽情況損害用戶利益,無論有沒有參與鑄造。使用循序出價和結算 (例如,抽獎或批量競拍) 來解決這個問題。
從第一分鐘開始就考慮成本效益。問問目前發生在鏈上的任何步驟是否也可以發生在鏈下,以為你的用戶節省資金。鏈下步驟可以包括出價和市場結算,前提是用戶可以對運營商建立一定程度的信任。可以考慮在揭示階段分批進行。
我們希望看到 NFT 開發者開始試驗其中的一些想法,從而發展出更多樣的發行。最后,我們想感謝那些一直與 NFT 社區分享建議,幫助提高發行質量的人:
Vitalik——提供了它對先到先得固定價格出售的釋義文章
FairDrop——分享了他們對公平抽線的概念證明設計
dotta——提供構建一個強大的前端的建議
Jay Pegs Auto Mart 和 SpankChain——演示新穎的競拍方式
Parallel——演示了鏈下抽獎的最佳實踐
0xmons——提供關于設計公平發行的建議和工具
來源 | Paradigm
作者 | Hasu &?Anish Agnihotri
Tags:NFTGASLOOTOOTPawn My NFTUniDexGasloot幣在哪個交易所Head Football
已不記得今年什么時候,元宇宙就突然火了起來。一時間,所有的新概念層出不窮,資本也是拼命尋找相關標的。在36氪舉辦的一次游戲峰會上,投資人們針對元宇宙和游戲的話題持續到會議結束,都不愿離去.
1900/1/1 0:00:00我們經常在很多token當中看到ERC標準,包括我們最常使用的USDT,很多時候都是使用的ERC標準.
1900/1/1 0:00:00導語:中央企業要加快打造區塊鏈原創技術策源地,成為現代產業鏈鏈長,要形成一批區塊鏈骨干企業,產出系列具有國際領先水平的原創科技成果.
1900/1/1 0:00:0011月1日,國資委印發《關于進一步深化法治央企建設的意見》。文件提到,要著力提升數字化管理能力.
1900/1/1 0:00:00Synthetix?創始人 Kain Warwick 談 DeFi 的下一步走向,他認為以太坊和 DeFi 即將迎來更為壯麗的未來.
1900/1/1 0:00:00近階段,全球多個國家都在爭相開展數字貨幣的研究,中國、法國、日本以及巴哈馬等一些國家紛紛加入其中,唯獨美國卻仍未對其CBDC做出表態.
1900/1/1 0:00:00