針對當前市場上被熱炒的收藏品類 NFT,其圖片的存儲方式是否去中心化,購買后有沒有被篡改的風險,是許多買家十分關心的問題。而一般用于存儲圖片的便是 NFT 中的元數據(Metadata)字段,因此我們需要一種簡單高效的方式,幫助用戶查看 NFT 中的元數據。
當前確實有部分產品已經提供了一定的元數據安全評估功能,如 Opensea 中就會顯示 NFT 的元數據是否被凍結,但是由于目前各類 NFT 項目的底層智能合約包含的函數名稱并不完全相同,且各項目本身對元數據的存儲方式有極大差異,因此單一的查詢產品并不能兼容所有的 NFT 產品,甚至有可能向用戶提供誤導資訊。
在本文中,我們將向用戶介紹一種更為通用的元數據驗證方式,那便是直接通過區塊鏈瀏覽器進行驗證。
在 Etherscan 中查詢 NFT 的元數據
首先需要明確一點,我們日常所說 NFT 具有的唯一性,是由三個基本要素決定的。他們是部署 NFT 的公鏈、生成 NFT 的智能合約,以及該 NFT 在智能合約中的編號。
本文中將以目前 NFT 項目最豐富的以太坊,以及 NFT 的 ERC-721 協議為例,向讀者介紹通過 Etherscan 查詢 NFT 元數據的方法。
首先讀者可以通過最常用的 Opensea 找到自己希望驗證的 NFT 收藏品頁面。這里以 Bored Ape Yacht Club 中的一個藏品為例,可以看到左下角詳情頁中標明了這個 NFT 最關鍵的三個資訊:1. 合約地址;2.NFT 在合約中的編號,也就是 Token ID;3. 所在公鏈,也就是以太坊;
點擊合約地址(Contract Address)右側的鏈接,頁面會自動跳轉到對應合約地址的 Etherscan 瀏覽器頁面,
點擊頁面中的 Contract 標簽,便可以瀏覽這個合約的底層代碼,
我們不需要讀懂代碼的具體含義,直接點擊上圖中的 Read Contract 標簽,便可以瀏覽這個合約中的可查詢函數,
找到在頁面中排行第 20 位的函數 tokenURI,這便是該 NFT 合約查詢元數據的專用函數。
當然,用于查詢元數據的函數在不同智能合約中的命名也不盡相同,但一般會帶有 URI、metadata 等字段,需要具體情況具體分析。不過好在最近的新項目基本都會將該函數命名為 tokenURI,為用戶減少了不少麻煩。
點開 tokenURI 函數后,我們可以看到以下界面。在上方的輸入框中輸入我們想要查詢的 NFT 編號,也就是剛剛在 Opensea 看到的 Token ID 編號 6476,然后點擊下方的查詢按鈕 Query。
可以看到,在點擊完查詢按鈕后,系統返回了一串代碼:ipfs://QmeSjSinHpPnmXmspMjwiXyN6zS4E9zccariGR3jxcaWtq/6476
這串代碼便是在 NFT 的智能合約中保存的元數據,可以看出,這個 NFT 的元數據保存的是一段 ipfs 存儲鏈接,因此可以判斷該 NFT 采用的是去中心化的存儲方式,讀者可以使用 Brave 等支持 ipfs 瀏覽的瀏覽器進行查看,這個地址返回的便是該 NFT 所代表的猿猴圖片。
以上便是通過 Etherscan 查詢 NFT 元數據的整個流程,可以看出其實對用戶來說,操作上并沒有太高的門檻。但更為關鍵的問題是,通過了解一個 NFT 的元數據存儲方式,能夠為今后投資或購買 NFT 產生什么幫助?
下文我們便以幾個有代表性的 NFT 項目為例,介紹一下主流 NFT 項目的元數據存儲方式,以及存儲方式對 NFT 長期價值的潛在影響,
主流 NFT 項目的元數據存儲方式
1. 不存儲
是的,確實有些 NFT 項目在鏈上完全找不到任何關于其圖片存儲位置的資訊,甚至合約中都沒有存放元數據的函數。這種存儲方式只在 NFT 出現的早期被某些化石級項目所采用,最典型的便是 CryptoPunks。
CryptoPunks
我們通過剛才的方式查詢 CryptoPunks 的合約地址,發現并不能找到 TokenURI 或類似字段。但是可以看到在第 5 個函數 imageHash 中返回了一串哈希值,這便是由整個 10000 張 CryptoPunk 圖片拼接而成的一張大圖的哈希值。這張圖片目前保存在項目的官方網站上(圖片鏈接),用戶可以自行下載該圖片并計算其哈希值并與鏈上的哈希值進行對比以驗證圖片的真實性,
由此我們可以得出結論,CryptoPunks 項目并沒有在鏈上存儲任何圖片,僅僅在其智能合約中向用戶提供了一個圖片的驗證方式。其本質上并沒有對圖片進行存儲,而只是提供了一個鏈上驗證的方式,
既然沒有存儲,那么在我們購買了一個 CryptoPunks 的 NFT 后,為什么可以在 Opensea 上準確顯示對應的圖片呢?其實這完全依賴于 Opensea 這種網站在網頁前端的人工適配,CryptoPunks 圖片并沒有存在鏈上,而是存在中心化的網站緩存中。因此 CryptoPunks 的 NFT 是必須依賴于一個中心化的機構,才可以被正常顯示出來,
因此投資者購買的 CryptoPunks NFT 僅僅是一個智能合約內的編號而已,既沒有圖片,也沒有其他實用功能。人們對他的認可,網站上所顯示的圖片內容,更多依靠的是社區的共識,比如對于第二號 CryptoPunks NFT,到底是從左往右數的第二個,還是從上往下數的第二個,在鏈上都不能提供明確的判斷標準,大家只是根據習慣認為他就是代表某一個頭像,
這類 NFT 項目在當前的市場中幾乎已經絕跡,因為他的存在及價值需要極為強大的社區共識支撐,如果有新項目依然采用這種「存儲」方式,建議投資者謹慎購買。
加密貓 CryptoKitties
CryptoKitties 也是一個有著悠久歷史的 NFT 項目,我們同樣在其合約中找不到元數據,唯一一個類似元數據的函數返回的是一個空值,
經過分析我們發現,CryptoKitties 同樣沒有選擇將貓咪的圖片進行鏈上存儲,而是將組成貓咪圖像的基本元素保存在中心化的官方網站上。鏈上記錄的只是每一只貓咪獨特的特征值,或者可以稱為決定貓咪外觀的「基因」。當用戶購買一只 CryptoKitty 后,負責前端顯示的網站直接調取該 NFT 的特征基因,并按照既定規則生成展示給用戶的貓咪圖片,
因此,對于 CryptoKitties 這個項目的存儲方式可以概括為:貓咪的「基因」進行鏈上存儲,但具體顯示內容通過服務器進行合成,其顯示效果完全依托于中心化服務器。
但由于 CryptoKittiies 并不是一個單純的圖片型 NFT 項目,其繁殖功能可以僅依靠上一代的「基因」和鏈上的算法進行合成,貓咪外觀的稀有度也唯一取決于基因的組成成分,因此該項目元數據的缺失不會對其游戲功能與估值產生很大影響。
以上兩種回避元數據存儲難題,通過其他變通方式解決 NFT 前端顯示問題方案的最大優點,便是節省了寶貴的鏈上存儲空間,降低了項目開發的復雜度,但缺點也很明顯,因為任何想要適配或展示相關 NFT 的網站,都必須手工對其顯示效果進行配置和緩存,其最終顯示效果也完全依賴于傳統的中心化組織。一旦某個關鍵節點失效,便可能導致用戶重金購買的 NFT 無法正常顯示。
當然,這類存儲方式更多存在于早期的 NFT 項目中,目前新推出的 NFT 項目,已經極少再有采用這種變通方案的了,
2. 鏈上存儲
鏈上存儲也常被習慣性地稱為「永久存儲」,因為一旦用戶將數據提交上鏈,依靠區塊鏈的不可篡改屬性,上鏈的數據理論上便得到了永久保存,只要我們可以預期這條鏈能夠永久地運行下去,那么相應的數據便等同于進行了永久保存,
當前采用鏈上存儲的項目也可分為兩類,一種是將元數據存儲到 NFT 智能合約的同一條公鏈上,另一種是存儲在專用存儲公鏈如 Arweave 上。當前采用第二種方案的典型項目還不多,因此本文便不做過多介紹,下面僅對存儲于以太坊上的典型項目進行分析,
Autoglyphs
Autoglyphs 項目同樣由開發了 CryptoPunks 的 Larva Labs 團隊開發。這個產品相對 CryptoPunks 來說并沒有那么知名,其外觀的構成元素也較為單一,下圖展示了其中的部分產品形態,
我們依然通過上文提到的方法,通過 Etherscan 調出其元數據,返回的結果如下圖
可以看出,Autoglyphs 的 NFT 圖片元素就是直接存儲在以太坊之上的,只是在顯示的時候需要重新調整一下換行的位置,因此其顯示效果可以更少受到前端網頁的影響,所存數據的永久性與安全性都得到了更好地保障。但同時缺點也很明顯,那便是以太坊的鏈上存儲成本十分昂貴,難以存儲更加復雜的圖形,
3. 去中心化存儲
去中心化存儲技術的出現時間,要遠早于區塊鏈的發明時間,去中心化存儲雖然具備了與區塊鏈相同的去中心化特征,但是去中心化存儲卻并不能直接與鏈上存儲劃等號,
目前利用去中心化存儲方式存儲 NFT 元數據的主流項目,便包括前文已經介紹過的 Bored Ape Yacht Club,這也是目前大多數藝術品類 NFT 所采用的存儲方式,
采用去中心化存儲有以下幾個顯著的優點:
1. 不可篡改性:由于其用于尋址存儲文件的域名中包含了文件的哈希值,因此其與區塊鏈一樣,具有不可篡改的特性,更符合加密原生精神;
2. 存儲成本更低:對于目前的大多數圖片類項目,基本上一臺可以長期聯網的個人電腦就可以保證數據的長期存儲。即便采用結合了區塊鏈激勵機制的 filecoin 等存儲激勵層,其成本相對于在以太坊存儲的成本依然小到可以忽略不計;
當然去中心化存儲也存在一些缺點,那就是數據存儲的永久性并不能很好的得到保證。對于沒有結合 filecoin 激勵層的 ipfs 存儲,一旦負責存儲的節點全部離線,所存的數據依然有可能丟失,
4. 中心化存儲
這里所謂的中心化存儲,便是將元數據存儲到一個中心化的網站服務器里,并在元數據中保存指向該網址的鏈接,下面以這兩天爆火的小企鵝項目為例,
Pudgy Penguins
下圖是在其 tokenURI 函數查詢返回的結果截圖。
從查詢結果可以看出,這個項目的元數據返回的是一個中心化網址鏈接,說明該 NFT 的圖片是直接存儲在項目官網的服務器上,這種存儲方式長期看將面臨兩個主要風險。一是數據可以被網站的所有者所篡改,二是網站有可能在某一天失去維護導致鏈接無法訪問。
因此對于這類采用中心化存儲方式的圖片類 NFT 項目,投資人在購買時需要謹慎評估項目方的實力以及長期維護項目運轉的意愿。由于這類 NFT 除圖片本身外沒有任何應用價值,一旦對應鏈接返回的圖片被更改,則項目有可能隨時歸零。
人們常說的區塊鏈的不可篡改性,只體現在元數據內保存的網址鏈接上,而至于這個中心化的網址鏈接指向何處,區塊鏈對此一無所知也根本無法控制。因此這種類型的 NFT,從結構上說依然是中心化的,
我們可以將其概括為一條定律,那就是:一個產品的去中心化程度,取決于其所有組件最中心化的環節,只要有一個環節采用了中心化的技術棧,那么整個產品就是一個中心化的產品。因此,采用這類存儲方式的圖片類 NFT,不再具有去中心化不可篡改的區塊鏈基本特征。
換句話說,大家重金購買的只是一個固定在區塊鏈上的網址鏈接,連圖片都不是,
5. 無所謂在哪里存儲
之所以在這里稱其為無所謂在哪里存儲,是因為這類 NFT 的價值與其元數據的存儲方式沒有直接的關系,即便這些 NFT 不保存元數據或修改了元數據,也不會對這些 NFT 的價值產生顯著影響。下面我們以兩個著名的應用了 NFT 的項目為例。
Axie Infinity 游戲中的 NFT
下圖是查詢某個 Axie NFT 元數據返回的內容,可以看出,其元數據存儲的只是一個中心化的網址鏈接,因此其前端顯示圖片有被篡改的風險。
但是與圖片類 NFT 不同的是,作為游戲中角色或道具的 NFT,其主要價值并不來源于其能夠在網頁前端顯示的圖片,而是其在游戲中具有的功能和屬性。比如一個 NFT 代表的游戲角色的攻擊力越高,便越有可能在對戰中取得勝利,因此其價值便越高。而這種 NFT 元數據中存儲的資訊,只是類似于一個游戲角色的皮膚,即使被修改也不會影響其游戲屬性。
這就類似在王者榮耀中,更換游戲角色皮膚不會對游戲的運行產生顯著影響一樣。因此在游戲中采用的 NFT,更重要的是這個 NFT 在游戲中的實際功能,或者說是其內在價值,而不是表現在網頁前端的皮膚屬性。
Uniswap V3 Position NFT
Uniswap NFT 元數據的存儲方式極為獨特,值得重點解讀一下。我們還是先通過 Etherscan 查詢一下鏈上數據,得到的返回結果如下:
看似返回的數據是無法解讀的亂碼,但最上方的注釋給我們提供了其使用的編碼方式:base64。我們隨便搜索一個在線的 base64 解碼工具,可以將亂碼解析為以下可讀的結果(由于太長只截取部分數據):
可以看到,在元數據的最前方標注了該做市頭寸的代幣對、做市價格區間、代幣地址以及聲明等資訊。在后方的 image 字段內,保存的是以 svg 格式存儲的 NFT 圖像資訊。
這里稍微解釋一下 svg 格式。svg 是一種圖片保存格式,其中文全稱為「可縮放矢量圖形」。我們知道,現在常用的圖片保存格式是基于像素的,比如我們的行動電話照片保存格式,便是把鏡頭采集到的每個像素的顏色一個一個保存在文件內,因此像素越高圖片就越清晰,同時所占用的存儲空間也就越大,也越難以在鏈上保存。
而 svg 格式并不是通過保存像素來存儲圖片,而是保存圖形的形狀。例如:保存一個長寬比為 2:1 的矩形,底色為紅色,在左上角顯示代幣對的名稱等等,這種存儲圖像方式的優點是,形狀一旦確定便可以無限放大縮小,且其占用的存儲空間不受圖形大小影響,只與圖形的復雜度有關。因此這種存儲形式可以幫助在以太坊上低成本的存儲結構較為簡單的矢量圖片,
又由于 Uniswap 的 NFT 全部采用同一個矢量圖模板,因此這個 NFT 的圖片樣式只需要在部署合約的時候存儲一次,之后每個新鑄造的 NFT 只用更新一下圖形中的代幣對等核心資訊就可以生成新的 NFT 圖片,因此用戶并不需要為存儲這個圖片支付存儲成本。
Uniswap 的 NFT 元數據存儲方式,可以說是眾多 NFT 項目中最讓人眼前一亮的解決方案。他同時兼顧了幾個重要的需求,一是全鏈上保存,具有完全的去中心化與不可篡改性;二是不依賴網頁前端存儲的緩存數據就可以直接從鏈上讀取全部資訊;三是不會涉及跨鏈調用數據的風險,不用擔心采用鏈外存儲的協議失效或被攻擊,只要信任以太坊的安全性,便可以完全信任該 NFT 的安全性,四是可以保存較為復雜的圖像,不像 Autoglyphs 項目那樣只能顯示簡單的圖形資訊,
當然談了這么多,最后還是要回到 NFT 的價值來源問題,其實對于 Uniswap 的 NFT 價值來說,其元數據保存在哪里,甚至是不是保存了元數據,都完全不影響其價值,因為 Uniswap 的 NFT 的價值,只取決于其可以從資金池中取回資產的價值,就像你持有的銀行存單,不論印刷質量是精美還是粗糙,只要能取回等值的貨幣,則存單本身美觀與否完全無關緊要,
最后再總結一下 Uniswap NFT 的基本特點。Uniswap 的 NFT 其前端顯示圖片是在以太坊鏈上存儲,不可篡改但可以由團隊進行后續升級(見下圖)。根據其創始人的介紹,存儲元數據圖像的合約是整個 Uniswap V3 智能合約組中唯一可以進行后續升級的智能合約組件,但不論其后續圖像如何改變,都不會影響其 NFT 的內在價值。
NFT 資產的價值來源
曾經有研報將 NFT 概括為「元數據的容器」,這個極為精辟的概括較好地解釋了當前藝術品收藏類 NFT 的價值來源,但是對于上文提到的應用型 NFT,這個結論卻難以給出合理的解釋,
我們認為當前 NFT 資產的價值來源主要分為兩種不同類型,一種是依靠 NFT 本身所具有的應用價值,比如持有 NFT 可以兌換某些資產,或者在游戲中具有某種可以提高勝率的屬性,又或者作為舉辦鏈下活動的入場門票等等。這些 NFT 的價值,都來源于其能夠給持有者帶來的使用價值,
另一種便是現在主流 NFT 項目的價值獲取方式,即 NFT 本身沒有實際的使用價值,只依靠其在元數據中保存的圖片等顯示內容獲得某種共識(當然部分 NFT 項目連這個都沒有做到),這種類型的 NFT 長期來看具有比較明顯的空氣特征,我們認為其不會是今后主流的 NFT 資產類別,
當前流行的大量圖片類 NFT 產品,讓人難免回憶起 17 年泛濫的眾多空氣幣項目,項目方僅需要復制并簡單修改一版白皮書,就可以靠發幣收割大量的財富,空氣幣價格的漲跌主要取決于炒作,而不是其內在的使用價值,
當前許多 NFT 項目也出現了類似的問題,項目方僅需要用算法生成幾千張簡單的圖片,便可以通過銷售獲得大量的資金,這種項目的操作方式幾乎沒有任何門檻,今后類似的項目只會越來越多,最終使得這輪 NFT 的炒作徹底空氣幣化。
雖然當前的炒作現象提高了普通用戶對 NFT 概念的了解,促進了 NFT 相關基礎設施的完善,但是由于其缺乏長期的內在價值,因此除了少數早期的頭部項目外,更多的圖片類 NFT 項目長期來看將有極高的歸零風險,
同時,購買這種圖片類 NFT 的用戶需要特別注意,由于其元數據存儲的方式問題,許多 NFT 產品的所見都不等于所得。大量圖片類 NFT 項目需要依賴較為中心化的交易平臺,通過人工方式對其顯示的圖片進行「腦補」,一旦失去了 Opensea 這種平臺的維護,許多用戶所買到的 NFT 將只剩下一串網址鏈接而不是圖片,
NFT 的未來應該更多的依靠不受元數據影響的應用型 NFT,可以看到近期對這類應用的探索也越來越多。比如最近有項目將做市算法鑄造成 NFT,若以后使用這個算法的用戶都能按照一定比例向這個算法 NFT 繳納手續費,則該 NFT 價值便可以等于其未來現金流的折現,使其內在價值得到有力的支撐。至于其元數據是否存儲了一個酷炫的圖片,恐怕便不會再有人關心,
當前,具有內在價值的應用型 NFT 主要存在于兩個賽道。一個是金融類 NFT,另一個是游戲資產類 NFT,這兩種 NFT 資產都有著更好的長期內在價值支撐,其價值不再取決于元數據這種顯示在網頁前端的皮膚,而是實打實的帶給所有者的使用價值,相比目前更為火熱的圖片類 NFT,這種應用型 NFT 更有可能在長期跑贏當前的炒作周期。