時間:2023-07-29|瀏覽:291
然而,這些工具幫你在IPFS上存儲的資產信息完整嗎?
筆者就當前IPFS上存儲的NFT信息的完整性提出了一些自己的思考:
- NFT的創建過程是怎樣的? - 怎么樣的NFT信息才是完整的? - IPFS上的NFT缺少了什么信息?
“不在IPFS上的NFT,不是你的NFT”
在這之前,由于以太坊數據存儲成本過高的問題,數字資產本身由各個中心化網站的服務器保管。資產和區塊鏈之間是靠NFT的鏈上元數據(metadata)中的一段URI鏈接的。
帶來的弊端就是一旦網站癱瘓或者服務器數據丟失,該鏈接失效,數字資產隨即丟失或損毀,也因此丟掉了NFT永久保存和不可篡改的兩個最基本的屬性。
打個比方,你的NFT是一幅畫,那么IPFS是畫的紙,區塊鏈是保險箱或者是藝術館的相框,而你的私鑰就是打開它們的鑰匙。如果紙這個載體不穩定,存在風險,數字資產也就有可能化為烏有。
在去中心化網絡這個載體中存儲體積較大的數字資產可以避免這一問題。
NFT的創建過程是怎樣的?
下面,我們來看看近期出現的這些工具的做法,并發現一些問題。
我們可以在opensea.io輕松地鑄造一個NFT:
- 連接錢包,給你即將創建的NFT們一個所有者地址; - 創建一個新項目,輸入NFT的名稱、描述和NFT資產的鏈接; - 最后,點擊添加即可完成。
最為核心的上鏈操作由opensea代為執行。然而,從Minty(https://github.com/yusefnapora/minty)我們可以窺見這個黑盒,即NFT在以太坊中實際的創建過程:
1. 部署合約 在以太坊上發送一筆交易,部署創建NFT的智能合約。該合約包含創建NFT以及交易等相關的功能。 2. 創作內容 在創作者本地完成NFT的內容創作,如一幅畫.png或一篇文章.pdf,并上傳、固定到IPFS或Filecoin網絡,得到一個內容數據的鏈接:ContentURI(ipfs://+CID)。 注:CID是對一段內容的描述的唯一標識符(內容的哈希值)。 3. Token化 將創作的內容加上它的名字和一些說明構成元數據(metadata)完成創作內容的Token化,形成一筆數字資產。并將元數據上傳IPFS,獲得metadataURI(ipfs://+CID)。 4. 資產上鏈 創作者從他的外部賬戶發送一筆包含NFT元數據URI的交易到1中的智能合約,來調用合約中的鑄造方法,然后返回該枚NFT在當前合約中的唯一標識符——TokenID。TokenID的返回標志著NFT創建成功。待這筆交易礦工打包進區塊并獲得確認后,合約會觸發一個轉移事件(transferevent),將TokenID發送給創作者。該事件的發生標志著NFT所有權和使用權的確認。
如此一來,你可以在以太坊上查看并驗證你NFT背后的數字資產。換句話說,以太坊上的NFT是完整的。但是,IPFS上保存的NFT元數據和NFT資產數據并不能提供在區塊鏈上驗證該NFT的全部信息。也就是IPFS上的NFT并不完整。
怎么樣的NFT信息才是完整的?
在上傳metadata信息的方法中,如minty中的createNFTFromAssetData,在NFT鑄造完成后,添加下面的鏈上信息,執行方法后存儲在IPFS上。
Contractaddress+TokenID+Owneraddress(可選)
根據合約地址和TokenID可以檢索到創建NFT時創作者發送的創建交易,也能跟蹤到后續NFT變更所有者的交易數據。因此,這里所有者地址并不是必要數據項。
結論
綜上,
(metadata+Contractaddress+TokenID)
才是IPFS上NFT資產的完整信息。
引用
https://eips.ethereum.org/EIPS/eip-721 https://docs.ipfs.io/how-to/mint-nfts-with-ipfs/#minty https://blog.ipfs.io/2021-04-05-storing-nfts-on-ipfs/ https://www.trufflesuite.com/boxes/filecoin#gallery-ui
PS:本文僅供研究分析,不做投資建議,忘投資者謹慎投資。
來源:原力區