為了製作一張NFT 頭像,我花費了整整15 個小時,還額外掏了1000 美元。在我看來,區塊鏈技術作為數字身份的解決方案的確還有很長的路要走。
首先說一下我為什麼要做NFT 頭像。作為一個加密KOL,經常會有人假冒我的Twitter 帳號,這些人以我的名義出售虛假的投資課程或者付費會員,給我的聲譽造成了很惡劣的影響。
最糟糕的是,我多次要求Twitter 驗證我的帳號,結果都被拒絕了……
因此,當Twitter Blue 推出NFT 頭像功能時,我有了一個想法:既然NFT 是可以在鏈上跟踪的非同質化Token,那麼我就可以製作一個名為「Tascha Che」的NFT,並把它連接到我的twitter 帳號作為驗證,就好比一張元宇宙中的身份證。
我馬上找到了一位來自俄羅斯的計算機圖形藝術家,她以我的Youtube 視頻作為素材製作了一張非常精美的頭圖。
但是當我試圖把它變成NFT 時,問題就來了。下面我會一步步展開我製作NFT 頭像的全過程,看完後你就會明白,為什麼我說人人擁有元宇宙身份的時代還遠沒有到來。
第一步:編寫NFT 合約
由於我需要擁有自己的ID,因此通過OpenSea 之類的平台創建NFT 是沒有意義的,因為他們使用的是自己的共享合約。此外,在OpenSea 上,你的NFT 在出售或者轉移之前都不會被鑄造。
所以我從頭開始創建了一份合約。這其實很容易,就是複制粘貼幾行代碼,但問題就出在這裡,你不能指望社會上的每個人都去手動部署自己的合約吧?
第二步:部署合約
在寫完合約後,我必須思考一個問題:是將它部署到像Avalanche 或者Polygon 這樣的新鏈上,還是堅持使用舊的以太坊主網?
由於Twitter 是從Metamask 錢包中獲取NFT 數據,所有的EVM 兼容鏈都可以通過自定義RPC 進行連接,因此技術層面上講從其他公鏈上提取NFT 數據應該是沒有問題的。
而將NFT 合約部署到Avalanche 只用花費我10 美元,在以太坊主網上卻要花1000 美元,這麼一比較下來,根本沒有什麼好考慮的。
但如果成本過低,其他冒充者會不會也用同樣的元素製作一張和我一模一樣的NFT?雖說哈希值是唯一的,但元數據卻不是,誰又能決定Token ID「0x98a4ff8d…」是否是真正的Tascha?在現實世界中,你的身份是由社會背景確定的,相比之下虛擬世界的語境要薄弱很多。雖然區塊鏈可以提供一定的幫助,但還不能完全解決這一問題。
我最終決定部署到以太坊,因為我認為很少會有冒充者願意承擔這麼巨大的成本。從某正程度上說,這也是一種「扭曲的」權益證明機制(Proof of Stake)。
我覺得這極具諷刺意味。就像奢侈、緩慢成了當今馬術的價值支柱一樣,高成本、低速率如今也成了以太坊的價值支柱。
為了發揮其作為價值網絡的潛力,區塊鏈需要成為汽車或者飛機,而不是馬匹。要求人們通過支付高額費用來驗證其ID 的有效性是不可擴展的。但遺憾的是,以太坊NFT 的平均價值要比其他鏈上的NFT 高很多,不僅部署成本高昂,而且已經逐漸成了有錢人的遊戲。
第三步:鑄造NFT
如你所知,NFT 的元數據——圖像、視頻、文本等並不存儲在區塊鏈上,因為鏈上空間有限。這也是很多人質疑NFT 的原因之一,因為創建者可以在部署合約後更改元數據,或者調換存儲在鏈下的圖像文件。這究竟是不是NFT 的缺陷還有待商榷。
一方面,允許在沒有限制的情況下更改元數據確實會破壞對任何身份系統的信任,即使大多數創建者並沒有更改元數據的動機。另一方面,作為元宇宙ID 的持有者,您也應該擁有更改元數據的權利,就像你每隔幾年更改一次證件照片一樣。
歸根結底,NFT 是一種通用技術,而我們目前還沒有足夠成熟的工具來滿足不同的用例需求。
最後我決定在亞馬遜AWS 上創建了一個存儲庫來存儲所有的元數據,並將鏈接包含在了我的NFT 中。事後證明,可以更改元數據對我而言確實是一件幸事,下面我會告訴你為什麼。
第四步:在OpenSea 和Metamask 上渲染NFT
在鑄造完NFT 後,我打算去OpenSea 看看最終效果。通常來說,當你連接Metamask 後,OpenSea 會自動渲染你創建的所有NFT,但奇怪的是,我新鑄造的NFT 顯示的是一個沒有名稱或描述的空白頁……
網站頁面沒有給出任何的錯誤提示,在各種嘗試無果後,我便去找NFT 大佬CHANCE(Nuclear Nerds 首席開發員)幫忙,最後他在我的元數據JSON 文件中發現了一個多餘的逗號。
在AWS 中修復了元文件後,NFT 圖像就顯示出來了。想像一下,如果不能更改元數據的話,我之前花的0.5 個ETH 就白費了,換來的就是個什麼也顯示不出來的廢品。
你可能會和我說:「Tascha,測試網就是用來防止這種情況的,你應該先在測試網上部署呀!」沒錯,我承認我犯傻了,但是讓OpenSea 或者Metamask 彈出個錯誤提示應該不難吧?有時候我感覺Web3.0 就是一群笨蛋領著一群更笨的人到處跑……
不管怎麼說,我的NFT 還是渲染出來了。現在總該萬事大吉了吧?答案是並沒有。
第五步:將NFT 連接到Twitter
我進入「編輯個人資料圖片」,選擇了渲染好的NFT,在被引導到Metamask 後,應用提示我的NFT 數據無法被提取。
研究了半天后我才發現,你必須在Metamask 安全設置中啟用OpenSea API,因為Metamask 和Twitter 都是依靠OpenSea 來查詢你持有的NFT。
沒錯,在大肆宣傳的區塊鏈背書所有權的背後,我的元宇宙身份仍然依賴於OpenSea 雲服務器中的SQL 數據庫。
儘管如此,我還是啟用了OpenSea API,我的NFT 頭圖終於出現在了Twitter 上。直到這時我才意識到,實際上NFT 頭圖唯一的區別就是有一個六邊形框架,對於圈外人來說,它和普通頭圖看起來幾乎沒有區別,你必須從個人資料頁面單擊圖片才能獲取NFT 的詳細信息。
我認為Twitter 模糊NFT 頭圖的區分是有原因的,這一功能所解決的問題本身就很模糊,它究竟是為了讓人們炫耀自己昂貴的NFT,還是為了驅動元宇宙身份的發展?
整個過程折騰下來後,我仍然不確定我的NFT ID 是否真的能幫助人們識別出我的冒充者,只有時間才能給出答案了。
不要誤會我的意思,我絲毫不懷疑區塊鍊和NFT 作為一種通用技術對世界的巨大影響力。但我們正處於發展的的原始階段,無論是應用程序的執行還是實際用例的基礎設施都很差,因此理性看待行業的發展現狀不是一件壞事。 (區塊律動BlockBeats)