時間:2023-07-15|瀏覽:252
我們經常聽到賣家宣稱NFT將永遠存在區(qū)塊鏈上,但實際上,出于成本和鏈上存儲空間的限制,真正被存儲上鏈的只有NFT所有權的記錄和指示NFT存儲位置的鏈接。
很多時候,這些鏈接是脆弱的,它們使用HTTP協(xié)議將用戶引導到特定的存儲位置而不是鏈接到NFT資產本身。這意味著鏈接指向的內容可能會在未來被更改或者離線,使原始資產永遠丟失,所有權記錄也變得毫無價值。
IPFS系統(tǒng)(InterPlanetary FileSystem)則可以幫助解決這些問題,只要遵守系統(tǒng)規(guī)則就能確保存儲在IPFS上的數(shù)據(jù)的持久性和真實完整性。
隨著NFT受歡迎程度激增,現(xiàn)在正是內容可尋址性(Content Addressing)和內容真實完整性(Content Integrity)。
內容可尋址性
IPFSCIDs(Content Identifiers)是一種極其強大和靈活的內容識別方式,它可以單獨識別任何內容,無論其存儲地點或方式如何。
首先,讀者需要了解一下IPFS儲存涉及到的幾個概念:
CID
內容標識符(CID)是一個唯一描述存儲內容的ID。
例:bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi
我們建議在將CID存儲在硬盤上時將其轉換為IPFSURIs,尤其是元數(shù)據(jù)等重要內容,為CID添加標注能夠使用戶和自動化工具日后檢索文件時更方便。
IPFSURI
統(tǒng)一資源標識符(URI)用于標識特定場景下的特定內容,這個特定內容是由URI場景自定義的。
例:ipfs://bafybeigvafaks2bvivtv46n2z7uxszpvl25jhvzc6dbhnjjgjkbeia5jta/nft.mp4
IPFSURIs是IPFS鏈接指向文件或目錄的規(guī)范形式。當從智能合約鏈接到IPFS數(shù)據(jù)時,使用IPFSURIs明確指示了數(shù)據(jù)需要使用IPFS檢索。
HTTP網關URL
HTTP網關為無法解析IPFSURIs的傳統(tǒng)瀏覽器提供了可互操性。此類鏈接只能用在應用程序的展示層,而不應存儲在區(qū)塊鏈上或NFT元數(shù)據(jù)內。
例:https://dweb.link/ipfs/bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi
請注意,HTTP網關將分布式的內容分發(fā)重新中心化,因此會出現(xiàn)中間人和單點失敗的風險,如果網關操作者離線或出現(xiàn)故障,鏈接將中斷。不過一些具有IPFS內置支持的瀏覽器(例如支持IPFSCompanion瀏覽器插件)則可以規(guī)避這些問題,因為它們可以自動從這些鏈接中提取CID,并根據(jù)用戶偏好從IPFS加載數(shù)據(jù)。
在不同環(huán)境中內容尋址
開發(fā)人員應根據(jù)不同的生產環(huán)境來處理鏈接。
鏈上(On-Chain)
NFT智能合約將會向與每個NFT資產和元數(shù)據(jù)返回IPFSURI。
我們建議在鑄造每個NFT資產之前先生成IPFSURI并將完整的URI存儲在鏈上。這是符合智能合約接口的最簡單方法,ipfs://URI場景使任何去中心化應用都能夠輕松查看數(shù)據(jù)是否可通過IPFS獲得。
元數(shù)據(jù)(Metadata)
在NFT資產的元數(shù)據(jù)中,IPFSURIs是最明確的以純文本形式鏈接到IPFS資源的方法。
開發(fā)人員可能希望包含指向公共HTTP網關的鏈接,以實現(xiàn)傳統(tǒng)的互操作性。最好避免使用其他鏈接到內容的替代方案(例如,非網關HTTPURLs)。由于來自特定位置的通過HTTP提供的內容可能會發(fā)生更改,這種鏈接只能依靠臨時內容鏡像。在區(qū)塊鏈上,數(shù)據(jù)存儲是持久且不可變的,因此通過HTTP來查詢內容是脆弱和有風險的。
與之相對的,IPFSURI是永久有效的,因此,可以將其視為數(shù)據(jù)存儲的規(guī)范鏈接。通過使用IPFSURI應用程序只需生成新的網關鏈接,就可以輕松地支持多個存儲解決方案或切換到不同的網關。這比將特定網關“硬編碼”永久存儲到區(qū)塊鏈上更靈活。
應用(Application)
在面向用戶的應用程序中,開發(fā)人員應通過以下兩種方式鏈接到IPFS內容:
1. IPFSURI 2. HTTP網關URL
直到更多的瀏覽器支持IPFSURI場景的本地解析為止,這兩種鏈接都可以根據(jù)需要從原始CID或IPFSURI輕松生成。
內容的真實完整性
NFT的一個主要問題是資產的真實完整性,這包括資產本身以及與資產相關的任何數(shù)據(jù)。IPFS通過使用CID驗證自創(chuàng)建鏈接以來沒有任何更改,從而證明NFT數(shù)據(jù)的完整性。
將元數(shù)據(jù)鏈接到資產
代幣的元數(shù)據(jù)應被視為NFT價值的一部分,因此,為了保護資產的價值,應將元數(shù)據(jù)與資產一起存儲在IPFS上,以確保兩者都可訪問。
實現(xiàn)此目的的首選方法如下:
1. 創(chuàng)建兩個新目錄(一個用于資產,一個用于元數(shù)據(jù))。 2. 將資產添加到其目錄。 3. 將資產目錄存儲到IPFS,并記下CID。 4. 將元數(shù)據(jù)添加到其目錄,并指向資產,使用(3)中的CID創(chuàng)建IPFSURI。URI應包含目錄的CID和資產的文件名。 5. 將元數(shù)據(jù)的目錄存儲到IPFS,并記下CID。 6. 使用(5)中的CID為元數(shù)據(jù)創(chuàng)建IPFSURI,并將URI存儲在鏈上以形成所有權記錄。
這個過程確保了元數(shù)據(jù)和資產互相獨立,又能夠互相鏈接。
作者:Yusef Napora 翻譯&校對:林芒果
本文由礦視界(奇跡摩爾)翻譯整理編輯