有些 NFT 平台把数据保存在 IPFS 或者 Swarm 这样的分布式存储平台上(比如 CryptoKitties 从一开始就把数据放在 IPFS 上),有些干脆就是一个 Web 的链接,也就是传统的互联网数据存储方式,可能是用 AWS S3 这样的云服务,也有可能就是在某个 Web 服务器上(比如现在流行的 Nifty 的 NFT 内容就存放在他们自己的 Web 服务器上)。这样带来的一个风险就是,万一这些公司或者服务不存在了,即便链上的记录说明你拥有某个 NFT,这些 NFT 本身的数据也将丢失。这是 NFT 早期的一种不完善的形态,已经有越来越多的人开始意识到这个问题。 ![]() IPFS 创始人 Juan Benet 的推文“Not on IPFS, not your NFT” 作为先行者和探索者,ArcBlock 在 NFT 的技术演进上也是经历了一个过程。我们 NFT 的最早版本设计数据完全在链上,为此我们限制一个 NFT 数据不能超过 1M,这对证书、徽章等类型的应用绰绰有余,但对数字艺术品就必须能扩展到链下, 因此在 2021 年新版资产链升级中我们对 NFT 的数据格式进行了扩展,通过扩展 W3C 规范中的 Service Endpoint(服务端点)的标准做法,使得我们的 NFT 可以由发行者进行最大自由度的控制,兼容全链上方式和链上链下协同方式。而 ArcBlock 对 DID 和 MyData 等用户自主身份、用户自主数据的支持,能让 NFT 的数据问题得以完善的解决。 NFT 可以“跨链”吗? 既然很多 NFT 数据部分在链下,那么要求 NFT 链上数据“跨链”存在是一个很现实的需求。 目前以太坊的 ERC721 和 ERC1155 协议和 ERC20 协议类似,仅仅定义了符合建议的规范接口。任何 NFT 只需要在以太坊上部署智能合约并提供符合 ERC721 或 1155 的接口,就被以太坊生态视为一种 NFT。一个在其他区块链上或者 Layer 2 系统上实现的 NFT 如果支持以太坊 ERC 721 或 ERC 1155 的接口,就可能可以直接加入现有基于以太坊的各种生态。目前出现各种 Layer 2 方案主要还只是考虑 Token 和转账的问题,我相信这将是 Layer2 发展的一个未来方向。 目前以太坊 ERC721 等 NFT 在智能合约里记录的完全是以太坊地址为单位的“归属权”,因此这对在采用不同地址体系的其他链之间来“跨链”记录 NFT 归属会产生困难。即便采用相同的地址体系,由于 NFT 的归属是记载在 ERC721 的智能合约内部数据结构的,因此当不同链上归属权不一致的时候将会产生归属权界定的困难。我认为要彻底解决 NFT 归属权的跨链,就必须采用 DID 和可验证证书或类似技术,也就是 NFT 的归属并不只是来自智能合约里的内部数据,而是来自可用密码学验证的证明,如此 NFT 的跨链存在才会真正得以实现。 (责任编辑:admin) |