針對當前市場上被熱炒的收藏品類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 的合約地址,發現並不能找到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 項目同樣由開發了CryptoPunks 的Larva Labs 團隊開發。這個產品相對CryptoPunks 來說並沒有那麼知名,其外觀的構成元素也較為單一。下圖展示了其中的部分產品形態。
我們依然通過上文提到的方法,通過Etherscan 調出其元數據,返回的結果如下圖
可以看出,Autoglyphs 的NFT 圖片元素就是直接存儲在以太坊之上的,只是在顯示的時候需要重新調整一下換行的位置。因此其顯示效果可以更少受到前端網頁的影響,所存數據的永久性與安全性都得到了更好地保障。但同時缺點也很明顯,那便是以太坊的鏈上存儲成本十分昂貴,難以存儲更加複雜的圖形。
3. 去中心化存儲
去中心化存儲技術的出現時間,要遠早於區塊鏈的發明時間。去中心化存儲雖然具備了與區塊鏈相同的去中心化特徵,但是去中心化存儲卻並不能直接與鏈上存儲劃等號。
目前利用去中心化存儲方式存儲NFT 元數據的主流項目,便包括前文已經介紹過的Bored Ape Yacht Club,這也是目前大多數藝術品類NFT 所採用的存儲方式。
采用去中心化存储有以下几个显著的优点:
1. 不可篡改性:由於其用於尋址存儲文件的域名中包含了文件的哈希值,因此其與區塊鏈一樣,具有不可篡改的特性,更符合加密原生精神;
2. 存儲成本更低:對於目前的大多數圖片類項目,基本上一台可以長期聯網的個人電腦就可以保證數據的長期存儲。即便採用結合了區塊鏈激勵機制的filecoin 等存儲激勵層,其成本相對於在以太坊存儲的成本依然小到可以忽略不計;
當然去中心化存儲也存在一些缺點,那就是數據存儲的永久性並不能很好的得到保證。對於沒有結合filecoin 激勵層的ipfs 存儲,一旦負責存儲的節點全部離線,所存的數據依然有可能丟失。
4. 中心化存儲
這裡所謂的中心化存儲,便是將元數據存儲到一個中心化的網站服務器裡,並在元數據中保存指向該網址的鏈接。下面以這兩天爆火的小企鵝項目為例。
矮胖企鵝
下圖是在其tokenURI 函數查詢返回的結果截圖。
從查詢結果可以看出,這個項目的元數據返回的是一個中心化網址鏈接,說明該NFT 的圖片是直接存儲在項目官網的服務器上。這種存儲方式長期看將面臨兩個主要風險。一是數據可以被網站的所有者所篡改,二是網站有可能在某一天失去維護導致鏈接無法訪問。
因此對於這類採用中心化存儲方式的圖片類NFT 項目,投資人在購買時需要謹慎評估項目方的實力以及長期維護項目運轉的意願。由於這類NFT 除圖片本身外沒有任何應用價值,一旦對應鏈接返回的圖片被更改,則項目有可能隨時歸零。
人們常說的區塊鏈的不可篡改性,只體現在元數據內保存的網址鏈接上,而至於這個中心化的網址鏈接指向何處,區塊鏈對此一無所知也根本無法控制。因此這種類型的NFT,從結構上說依然是中心化的。
我們可以將其概括為一條定律,那就是:一個產品的去中心化程度,取決於其所有組件最中心化的環節,只要有一個環節採用了中心化的技術棧,那麼整個產品就是一個中心化的產品。因此,採用這類存儲方式的圖片類NFT,不再具有去中心化不可篡改的區塊鏈基本特徵。
換句話說,大家重金購買的只是一個固定在區塊鏈上的網址鏈接,連圖片都不是。
5. 無所謂在哪裡存儲
之所以在这里称其为无所谓在哪里存储,是因为这类 NFT 的价值与其元数据的存储方式没有直接的关系,即便这些 NFT 不保存元数据或修改了元数据,也不会对这些 NFT 的价值产生显著影响。下面我们以两个著名的应用了 NFT 的项目为例。
Axie Infinity 遊戲中的NFT
下圖是查詢某個Axie NFT 元數據返回的內容,可以看出,其元數據存儲的只是一個中心化的網址鏈接,因此其前端顯示圖片有被篡改的風險。
但是與圖片類NFT 不同的是,作為遊戲中角色或道具的NFT,其主要價值並不來源於其能夠在網頁前端顯示的圖片,而是其在遊戲中具有的功能和屬性。比如一個NFT 代表的遊戲角色的攻擊力越高,便越有可能在對戰中取得勝利,因此其價值便越高。而這種NFT 元數據中存儲的信息,只是類似於一個遊戲角色的皮膚,即使被修改也不會影響其遊戲屬性。
这就类似在王者荣耀中,更换游戏角色皮肤不会对游戏的运行产生显著影响一样。因此在游戏中采用的 NFT,更重要的是这个 NFT 在游戏中的实际功能,或者说是其内在价值,而不是表现在网页前端的皮肤属性。
Uniswap V3 定位 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 更有可能在長期跑贏當前的炒作週期。