问题描述
我们如何证明 NFT 资产元数据的真实性?
根据 ERC721 规范,要获取 NFT 资产的元数据,我们需要转到 tokenURI
函数中提到的 URI。如果此元数据位于中央服务器上,并且所有者更改了 tokenURI
指向的元数据,会发生什么情况?
让我们考虑一个用例 - 假设我在 OpenSea 上购买了 NFT 数字艺术,它具有 tokenURI
格式的 https://opensea.io/<contract_address>/123
,指向名为 awesome_art.png
的图像,该图像位于AWS 服务器。现在,如果所有者此后上传了另一个同名的随机图像怎么办?
在这种情况下,NFT 仍然有效;元数据仍然有效,因为它们遵循标准。
我想避免这种情况的最好方法是在元数据图像/资产内容第一次铸造时对其进行散列并将其放在区块链上,但只是想知道是否还有其他行之有效的方法/实现这一目标的标准是什么?
仅供参考 - 我知道一种解决方案是使用像 IPFS 这样的去中心化解决方案,但它并没有真正解决这个问题的核心问题。
解决方法
ERC-2477 是一种将元数据摘要附加到令牌的提议标准:https://eips.ethereum.org/EIPS/eip-2477
JSON 模式的摘要也可以添加到区块链中。或者,对嵌入在元数据 JSON 中的 JSON 模式的 $schema 引用以及保存 JSON 模式摘要的 $schemaIntegrity。
仅供参考 - 我知道一种解决方案是使用像 IPFS 这样的去中心化解决方案,但它并没有真正解决这个问题的核心问题。
IPFS CID 内置了摘要,因此我认为 IPFS 确实涵盖了这一点。许多 ERC721 正在使用它已经将 CID 存储在链上。