作者: OpenSea
翻譯&校對: 閔敏 & 阿劍
NFT 是附有去中心化所有權的獨一無二的代幣,“誰擁有這個代幣” 這個問題由多臺計算機同時存儲并追蹤,防止有人在未經授權的情況下篡改歸屬。
然而,NFT 的相關媒介附件和內容(統稱 “NFT 元數據”)始終沒有實現去中心化,因為直接在智能合約內存儲和修改數據會產生高昂的 gas 成本,如果沒有去中心化,收藏者就無法相信某個代幣的元數據是完整且不變的,
自 2017 年成立以來,OpenSea 就已支持元數據去中心化的 NFT。今天,我們要宣布一個好消息:在 OpenSea 平臺上發行 NFT 的創作者能夠使用 IPFS(星際文件系統)和 Filecoin 實現元數據去中心化啦!我們還為收藏者提供了一種可以查看 NFT 元數據何時凍結的方法,并進一步強化了 OpenSea 收藏者可以用來評估 NFT 的工具包。
接下來,我們將進一步闡述 OpenSea 是如何實現 NFT 元數據去中心化的,以及這一點為何如此重要。如果你想要了解如何讓你在 OpenSea 上發行的 NFT 去中心化,請查看我們的幫助中心教程。
去中心化元數據 vs 凍結元數據
如果你不了解 NFT 元數據,不妨閱讀我們廣受歡迎的 NFT 寶典,也可以閱讀下文的技術講解。
就符合以太坊標準的 NFT 而言,管理 NFT 的智能合約通常會使用函數來說明元數據的位置:
- ERC 721 標準:function tokenURI(uint256 _tokenId) external view returns (string memory)
- ERC 1155 標準:function uri(uint256 _id) external view returns (string memory)
函數的返回值通常是 Google 云、亞馬遜云服務或其它可以線下化或由開發者改造的中心化存儲服務的 URI。
這些中心化解決方案與 IPFS、Filecoin 和 Arweave 等去中心化存儲解決方案形成了鮮明對比,后者將元數據存儲在去中心化網路中的存儲節點內。
中心化存儲有兩個弱點:
- 無常性:服務器可能會掉線,導致圖片很難找到(除非 OpenSea 之類的 NFT 索引已經為它創建了鏡像)。
- 易變性:開發者可以違背收藏者的意志修改圖片,
目前有四類 NFT 元數據存儲:
“凍結” 這一概念不同于去中心化,即使元數據以去中心化方式存儲,創作者依然有可能通過發送鏈上事務來修改 NFT 元數據。我們將元數據不可更改的 NFT 稱為 “凍結”,
如果不清楚 NFT 有沒有被凍結,收藏者就無法知道自己購買的藏品過了 1 年、10 年乃至 100 年是否還是原來的樣子。
并非所有 NFT 都具有相同的特性,讓我們通過下面一些例子來了解它們:
- 中心化:大多數 NFT 的智能合約內都有一個函數可以返回與其代幣標識符對應的元數據。返回值通常是由開發者運行的云服務器上的 URI(例如 example.com/nft/2),如果一個 NFT 的內容和媒介都由這種服務器控制,那么這個 NFT 就是中心化的,存在無常性和易變性問題,
- 中心化且可驗證:Larva Labs 發行的 CryptoPunks 是最早的 NFT,其圖片就存儲在中心化服務器上,但是,圖片的哈希值存儲在智能合約內,因此,盡管 CryptoPunks 存在無常性問題,但是我們可以通過哈希值來驗證圖片是否被修改過,從而判定圖片是否是原圖,其它項目(如 CrypoKitties)對這一系統進行了調整,例如,將 NFT 的特征存儲在鏈上,但是將特征的效果圖存儲在中心化服務器上,在 Cryptokitties 系統中,圖片可以被修改,但是每只貓的 “基因” 和稀有資訊無法被修改,
- 去中心化:不同于將元數據存儲在中心化服務器內,開發者可以選擇將元數據直接存儲在智能合約或文件友好型的去中心化網路內。最好的兩個選擇不外乎 IPFS + Filecoin 和 Arweave,Arweave 要求礦工在創建區塊時指向之前存儲的數據,與區塊鏈類似(稱為 “blockweave”),IPFS 可以讓對等節點相互存儲、請求并傳輸可驗證數據,并且可以和 Filecoin 一起用來激勵礦工使用可驗證證明永久存儲數據,例如,Bored Ape Yacht Club 就將元數據存儲在 IPFS 內,但是合約所有者可以修改 IPFS 的根 URI。
- 去中心化且已凍結:我們很難知道 NFT 的元數據是否已被凍結,因為通常有很多種方法可以修改它。這是一個手動過程,但是 OpenSea 現在可顯示 OpenSea 上發行的 NFT是否已被凍結,以及很多非 OpenSea 上發行的 NFT是否已被凍結:
-如果某個 NFT 的元數據存儲在支持 IPFS 和 Arweave 的文件存儲網路上,點擊圖中的 “已凍結” 就會打開對應的去中心化 URI(包括 `ipfs://` 和 `ar://` URI)-
一些兼具去中心化和可凍結性的項目有:
- SuperRare(IPFS)
- Sandbox(IPFS)
- Uniswap(on-chain)
- 1111 by Kevin Abosch(Arweave)
注:一些項目直接將元數據存儲在智能合約內,例如,Larva Labs 的另一個項目 Autoglyphs 就直接從合約返回字符藝術品,它是首個這么做的 NFT 項目。Autoglyphs 不依賴于除以太坊之外的其它系統提供圖片,因此我們稱之為去中心化的、鏈上的且已凍結的。
這四類 NFT 各有優缺點。但是,對于收藏者來說,多了解一點 NFT 實現會對決策有幫助,這就是為什么我們要引入一種新的事件類型來增強 ERC1155 和 ERC721 標準,以便開發者告知 OpenSea 等平臺他們何時會將某個 NFT 標記為 “已凍結”。
永久 URI
為了解決已凍結元數據和未凍結元數據之間的沖突,新的事件會告訴 OpenSea 將某個 URI 注冊為永久 URI(即,PermanentURI),事件簽名如下所示:
event PermanentURI(string _value, uint256 indexed _id);
一旦 NFT 智能合約發出一個 PermanentURI 事件,就沒人能再更改這個對應某個代幣 ID 的 URI。詳情請參閱我們的文檔。就像絕大多數密碼學標準那樣,永久 URI 仍處于開發中,可能會根據社區反饋進行更改,
凍結 OpenSea 上的 NFT
在 2020 年 12 月,我們推出了一個免 gas 費的 NFT 鑄造器(中文譯本),為更多想要在區塊鏈上出售自己的作品的藝術家大開方便之門。當時,我們率先支持通過智能合約凍結元數據。也就是說,創作者現在可以凍結他們在過去 6 個月創作且尚未出售的 NFT 的元數據,
首先,進入你的創作品的 “編輯” 頁面,并點擊頁面右上角其中一個 NFT 的鉛筆圖標(你可以在 “添加新項目” 按鈕下方的搜索欄找到它們)。點擊凍結元數據按鈕,就會看到如下圖所示的彈出窗口,如果你想要繼續,請勾選方框,然后點擊 “Submit Transaction” 提交事務,雖然 OpenSea 不收取任何費用, 但是你需要支付 gas 費才能將新的元數據 URI 保存到智能合約內。
一旦你凍結了某個 NFT,就無法將其解凍或更改其元數據,只要以太坊和 Filecoin 存在,這個 NFT 就永遠處于凍結狀態,
當你凍結某個 NFT 后,你就可以直接在 OpenSea 網頁上查看其 IPFS URI。你還可以使用 NFT.Storage API 和你的 NFT 的 IPFS 內容哈希值來查看與這個 NFT 相關的 Filecoin 交易數量,例如:https://api.nft.storage/check/bafkreiem4twkqzsq2aj4shbycd4yvoj2cx72vezicletlhi7dijjciqpui。
去中心化元數據的未來
OpenSea 的目標之一是為所有 NFT 提供事實來源,無論它們使用的區塊鏈、元數據格式和去中心化存儲解決方案是什么。將來,NFT 領域可能會陷入一片混沌,并涌現出很多 NFT 發行方式。我們希望讓 NFT 變得更加透明,
免 gas 費凍結
過去 6 個月來,我們通過支持 Polygon 側鏈為 OpenSea 上的用戶提供免 gas 費體驗,如果你可以訪問封閉測試版 NFT 鑄造器,現在就可以使用 IPFS 和 Filecoin 凍結你的 Polygon NFT 了。
就像 Polygon 交易一樣,將 IPFS URI 保存到 NFT 的智能合約并不會產生任何 gas 成本 —— OpenSea 會為你支付這部分費用。請關注后續版本發布,也歡迎通過 Discord 告訴我們你的想法,
注:如果你對 NFT 元數據感興趣,我們正在招人。歡迎查看我們目前空缺的崗位:https://opensea.io/careers,