鏈上或鏈下拍賣數據
目前我正在嘗試建立一個 NFT 市場,我目前正處於需要做出設計選擇的地步。在我目前的契約中,我有關於鏈上拍賣的數據。每個出價也都記錄在鏈上。
當我意識到這將花費大量的汽油費時,我正在考慮將拍賣數據移對外連結(只有 NFT 和它待售的標誌保留在鏈上)。其餘的拍賣數據我將儲存在一個單獨的後端。對於投標,我只使用 ERC20 代幣的批准功能進行投標,對於 NFT 也是如此。看著 Opensea,我認為這就是他們的做法。否則我無法想像他們如何能夠在不付出高昂成本的情況下將拍賣時間延長 15 分鐘。通過這樣做,投標人只需為批准支付一次費用,然後可以根據自己的喜好多次投標(考慮到他們的餘額)。
這樣做是個好主意,還是大型市場的做法不同?
您似乎處於設計過程的早期階段,並且仍在研究現有的解決方案。因此,我將在這裡僅回答一些廣泛的概念。祝你好運!
完全脫鏈
這是 OpenSea 使用的方法。每個擁有代幣的人都需要,
approve
或者更有可能的是,approveForAll
他們的代幣加入 OpenSea 市場合約。承諾是通過簽署“資訊”來創建的。這些是鏈下交易。但是,取消交易需要在鏈上發布。
對這種方法的主要批評是它是中心化的——第三方無法以第一方的方式閱讀訂單簿。
但好處是強大的,這幾乎是實施市場的最便宜的方式。*
*稍微便宜一點的方法涉及批量“取消”交易,技術上是 L-2 解決方案。
完全上鍊
在這裡,訂單簿完全在鏈上進行檢查和操作。即使 Web2 網站處於離線狀態,市場也會繼續運作。
我研究了 CryptoPunks,最近發布了實現這一點的區域市場合約。請參閱:https ://github.com/AreaWorld/ethereum-contracts
這是完全透明的,完全沒有網站。
有更多的部分鏈上解決方案混合了經濟和去中心化的好處。建立市場需要仔細實施。我最近對 Number Board 進行了審查並發現了問題,您可以查看此出版物以獲取一些提示https://privacylog.blogspot.com/2021/09/implementation-issues-make-number-board.html