时间:2023-07-15|浏览:231
我们经常听到卖家宣称NFT将永远存在区块链上,但实际上,出于成本和链上存储空间的限制,真正被存储上链的只有NFT所有权的记录和指示NFT存储位置的链接。
很多时候,这些链接是脆弱的,它们使用HTTP协议将用户引导到特定的存储位置而不是链接到NFT资产本身。这意味着链接指向的内容可能会在未来被更改或者离线,使原始资产永远丢失,所有权记录也变得毫无价值。
IPFS系统(InterPlanetary FileSystem)则可以帮助解决这些问题,只要遵守系统规则就能确保存储在IPFS上的数据的持久性和真实完整性。
随着NFT受欢迎程度激增,现在正是内容可寻址性(Content Addressing)和内容真实完整性(Content Integrity)。
内容可寻址性
IPFSCIDs(Content Identifiers)是一种极其强大和灵活的内容识别方式,它可以单独识别任何内容,无论其存储地点或方式如何。
首先,读者需要了解一下IPFS储存涉及到的几个概念:
CID
内容标识符(CID)是一个唯一描述存储内容的ID。
例:bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi
我们建议在将CID存储在硬盘上时将其转换为IPFSURIs,尤其是元数据等重要内容,为CID添加标注能够使用户和自动化工具日后检索文件时更方便。
IPFSURI
统一资源标识符(URI)用于标识特定场景下的特定内容,这个特定内容是由URI场景自定义的。
例:ipfs://bafybeigvafaks2bvivtv46n2z7uxszpvl25jhvzc6dbhnjjgjkbeia5jta/nft.mp4
IPFSURIs是IPFS链接指向文件或目录的规范形式。当从智能合约链接到IPFS数据时,使用IPFSURIs明确指示了数据需要使用IPFS检索。
HTTP网关URL
HTTP网关为无法解析IPFSURIs的传统浏览器提供了可互操性。此类链接只能用在应用程序的展示层,而不应存储在区块链上或NFT元数据内。
例:https://dweb.link/ipfs/bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi
请注意,HTTP网关将分布式的内容分发重新中心化,因此会出现中间人和单点失败的风险,如果网关操作者离线或出现故障,链接将中断。不过一些具有IPFS内置支持的浏览器(例如支持IPFSCompanion浏览器插件)则可以规避这些问题,因为它们可以自动从这些链接中提取CID,并根据用户偏好从IPFS加载数据。
在不同环境中内容寻址
开发人员应根据不同的生产环境来处理链接。
链上(On-Chain)
NFT智能合约将会向与每个NFT资产和元数据返回IPFSURI。
我们建议在铸造每个NFT资产之前先生成IPFSURI并将完整的URI存储在链上。这是符合智能合约接口的最简单方法,ipfs://URI场景使任何去中心化应用都能够轻松查看数据是否可通过IPFS获得。
元数据(Metadata)
在NFT资产的元数据中,IPFSURIs是最明确的以纯文本形式链接到IPFS资源的方法。
开发人员可能希望包含指向公共HTTP网关的链接,以实现传统的互操作性。最好避免使用其他链接到内容的替代方案(例如,非网关HTTPURLs)。由于来自特定位置的通过HTTP提供的内容可能会发生更改,这种链接只能依靠临时内容镜像。在区块链上,数据存储是持久且不可变的,因此通过HTTP来查询内容是脆弱和有风险的。
与之相对的,IPFSURI是永久有效的,因此,可以将其视为数据存储的规范链接。通过使用IPFSURI应用程序只需生成新的网关链接,就可以轻松地支持多个存储解决方案或切换到不同的网关。这比将特定网关“硬编码”永久存储到区块链上更灵活。
应用(Application)
在面向用户的应用程序中,开发人员应通过以下两种方式链接到IPFS内容:
1. IPFSURI 2. HTTP网关URL
直到更多的浏览器支持IPFSURI场景的本地解析为止,这两种链接都可以根据需要从原始CID或IPFSURI轻松生成。
内容的真实完整性
NFT的一个主要问题是资产的真实完整性,这包括资产本身以及与资产相关的任何数据。IPFS通过使用CID验证自创建链接以来没有任何更改,从而证明NFT数据的完整性。
将元数据链接到资产
代币的元数据应被视为NFT价值的一部分,因此,为了保护资产的价值,应将元数据与资产一起存储在IPFS上,以确保两者都可访问。
实现此目的的首选方法如下:
1. 创建两个新目录(一个用于资产,一个用于元数据)。 2. 将资产添加到其目录。 3. 将资产目录存储到IPFS,并记下CID。 4. 将元数据添加到其目录,并指向资产,使用(3)中的CID创建IPFSURI。URI应包含目录的CID和资产的文件名。 5. 将元数据的目录存储到IPFS,并记下CID。 6. 使用(5)中的CID为元数据创建IPFSURI,并将URI存储在链上以形成所有权记录。
这个过程确保了元数据和资产互相独立,又能够互相链接。
作者:Yusef Napora 翻译&校对:林芒果
本文由矿视界(奇迹摩尔)翻译整理编辑
用戶喜愛的交易所
已有账号登陆后会弹出下载