天天看點

IPFS助推NFT浪潮

2021年見證了NFT的大爆發,NFT的核心價值主張是持久性(Permanence)和不可變性(Immutability)。然而,由于設計缺陷,市面上許多用于出售的NFT都做不到這兩點。我們經常聽到賣家宣稱NFT将永遠存在區塊鍊上,但實際上,出于成本和鍊上存儲空間的限制,真正被存儲上鍊的隻有NFT所有權的記錄和訓示NFT存儲位置的連結。

IPFS助推NFT浪潮

很多時候,這些連結是脆弱的,它們使用HTTP協定将使用者引導到特定的存儲位置而不是連結到NFT資産本身。這意味着連結指向的内容可能會在未來被更改或者離線,使原始資産永遠丢失,所有權記錄也變得毫無價值。

IPFS系統(Inter Planetary File System)則可以幫助解決這些問題,隻要遵守系統規則就能确儲存儲在IPFS上的資料的持久性和真實完整性。

随着NFT受歡迎程度激增,現在正是重新審視NFT資料存儲這個IPFS最佳用例之一的好時機。在這篇文章中,我們将着重讨論IPFS存儲的兩個特性:内容可尋址性(Content Addressing)和内容真實完整性(Content Integrity)。

内容可尋址性

IPFS CIDs(Content Identifers)是一種極其強大和靈活的内容識别方式,它可以單獨識别任何内容,無論其存儲地點或方式如何。首先,讀者需要了解一下IPFS儲存涉及到的幾個概念:

CID

内容辨別符(CID) 是一個唯一描述存儲内容的ID。

例:bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi

我們建議在将CID存儲在硬碟上時将其轉換為 IPFS URIs,尤其是中繼資料等重要内容,為CID添加标注能夠使使用者和自動化工具日後檢索檔案時更友善。

IPFS URI

統一資源辨別符(URI)用于辨別特定場景下的特定内容,這個特定内容是由URI場景自定義的。

例:

ipfs://bafybeigvafaks2bvivtv46n2z7uxszpvl25jhvzc6dbhnjjgjkbeia5jta/nft.mp4

IPFS URIs是IPFS連結指向檔案或目錄的規範形式。當從智能合約連結到IPFS資料時,使用IPFS URIs明确訓示了資料需要使用IPFS檢索。

HTTP網關URL

HTTP 網關為無法解析IPFS URIs的傳統浏覽器提供了可互操性。此類連結隻能用在應用程式的展示層,而不應存儲在區塊鍊上或NFT中繼資料内。

例:

https://dweb.link/ipfs/bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi

請注意,HTTP 網關将分布式的内容分發重新中心化,是以會出現中間人和單點失敗的風險,如果網關操作者離線或出現故障,連結将中斷。不過一些具有IPFS内置支援的浏覽器(例如支援IPFS Companion浏覽器插件)則可以規避這些問題,因為它們可以自動從這些連結中提取CID,并根據使用者偏好從IPFS加載資料。

在不同環境中内容尋址

開發人員應根據不同的生産環境來處理連結。

鍊上(On-Chain)

NFT 智能合約将會向與每個NFT資産和中繼資料傳回 IPFS URI。

我們建議在鑄造每個NFT資産之前先生成 IPFS URI并将完整的URI存儲在鍊上。這是符合智能合約接口的最簡單方法,ipfs:// URI 場景使任何去中心化應用都能夠輕松檢視資料是否可通過IPFS 獲得。

中繼資料(Metadata)

在NFT資産的中繼資料中,IPFS URIs是最明确的以純文字形式連結到 IPFS資源的方法。

開發人員可能希望包含指向公共HTTP網關的連結,以實作傳統的互操作性。最好避免使用其他連結到内容的替代方案(例如,非網關HTTP URLs)。由于來自特定位置的通過HTTP提供的内容可能會發生更改,這種連結隻能依靠臨時内容鏡像。在區塊鍊上,資料存儲是持久且不可變的,是以通過HTTP來查詢内容是脆弱和有風險的。

與之相對的,IPFS URI是永久有效的,是以,可以将其視為資料存儲的規範連結。通過使用IPFS URI作為連結的“真實來源”,應用程式隻需生成新的網關連結,就可以輕松地支援多個存儲解決方案或切換到不同的網關。這比将特定網關“寫死”永久存儲到區塊鍊上更靈活。

應用(Application)

在面向使用者的應用程式中,開發人員應通過以下兩種方式連結到IPFS内容:

1.IPFS URI

2.HTTP網關URL

直到更多的浏覽器支援IPFS URI場景的本地解析為止,這兩種連結都可以根據需要從原始CID或IPFS URI輕松生成。

内容的真實完整性

NFT的一個主要問題是資産的真實完整性,這包括資産本身以及與資産相關的任何資料。IPFS通過使用CID驗證自建立連結以來沒有任何更改,進而證明NFT資料的完整性。

将中繼資料連結到資産

代币的中繼資料應被視為NFT價值的一部分,是以,為了保護資産的價值,應将中繼資料與資産一起存儲在IPFS上,以確定兩者都可通路。

實作此目的的首選方法如下:

1建立兩個新目錄(一個用于資産,一個用于中繼資料)。

2将資産添加到其目錄。

3将資産目錄存儲到IPFS,并記下CID。

4将中繼資料添加到其目錄,并指向資産,使用(3)中的CID建立IPFS URI。URI應包含目錄的CID和資産的檔案名。

5将中繼資料的目錄存儲到IPFS,并記下CID。

6.使用(5)中的CID為中繼資料建立IPFS URI,并将URI存儲在鍊上以形成所有權記錄

這個過程確定了中繼資料和資産互相獨立,又能夠互相連結。

作者 | Yusef Napora

翻譯&校對 | 林芒果

本文由礦視界(奇迹摩爾)翻譯整理編輯,如需轉載,請标明出處

繼續閱讀