主页 > imtoken苹果版下载官网 > CryptoPunks 等主流 NFT 项目的元数据在哪里?

CryptoPunks 等主流 NFT 项目的元数据在哪里?

imtoken苹果版下载官网 2023-03-27 05:26:36

告诉你一个冷酷的事实:CryptoPunks 和 CryptoKitties 都不会在链上存储元数据。

原标题:《你几万块钱买的NFT头像呢?》

写作:块节奏

对于目前市场上流行的收藏NFT,图片的存储方式是否去中心化,购买后是否存在被篡改的风险,是很多买家非常关心的问题。 NFT 中的元数据字段一般用于存储图片,因此我们需要一种简单高效的方式来帮助用户查看 NFT 中的元数据。

目前,部分产品已经提供了一定的元数据安全评估功能。例如,Opensea 会显示 NFT 的元数据是否被冻结。但是,由于各个 NFT 项目的底层智能合约中包含的函数名称并不完全相同,而且各个项目元数据的存储方式也大不相同,单个查询产品无法兼容所有 NFT 产品,甚至有些可能向用户提供误导性信息。

在本文中,我们将向用户介绍一种更通用的元数据验证方法,即直接通过区块链浏览器。

在 Etherscan 中查询 NFT 元数据

首先需要明确的是,我们通常所说的 NFT 的唯一性是由三个基本要素决定的。它们是部署 NFT 的公链,生成 NFT 的智能合约,以及智能合约中 NFT 的数量。

本文将以目前最丰富的NFT项目以太坊,以及NFT的ERC-721协议为例,向读者介绍通过Etherscan查询NFT元数据的方法。

首先,读者可以通过最常用的Opensea找到自己想要验证的NFT收藏品页面。这是Bored Ape Yacht Club 中的一个集合示例。可以看到左下角的详情页标出了这个NFT最关键的三个信息:

合约地址;

2.合约中NFT的编号,即Token ID;所在的公链,也就是以太坊;

点击合约地址(Contract Address)右侧的链接,页面会自动跳转到合约地址对应的Etherscan浏览器页面。

点击页面上的合约标签,浏览合约底层代码。

我们不需要了解代码的具体含义,只需点击上图中的Read Contract标签即可浏览该合约中可查询的函数。

找到页面排名第20位的函数tokenURI,这是查询NFT合约元数据的专用函数。

当然,用于查询元数据的函数在不同的智能合约中命名不同,但一般都有URI、元数据等字段,需要详细分析。好在最近的新项目基本都将函数命名为tokenURI,为用户减少了很多麻烦。

点击tokenURI函数后,我们可以看到如下界面。在上面的输入框中输入我们要查询的NFT号,也就是刚才在Opensea中看到的Token ID号6476,然后点击下面的查询按钮Query。

可以看到,点击查询按钮后,系统返回一串代码:

ipfs://QmeSjSinHpPnmXmspMjwiXyN6zS4E9zccariGR3jxcaWtq/6476

这串代码是存储在 NFT 智能合约中的元数据。可以看出,这个 NFT 的元数据存储了一个 ipfs 的存储链路,因此可以判断 NFT 采用了去中心化的存储方式。读者可以使用Brave等支持ipfs浏览的浏览器查看,该地址返回的是NFT所代表的猴子图片。

以上就是通过 Etherscan 查询 NFT 元数据的全过程。可见,用户操作的门槛并不高。但更关键的问题是,通过了解 NFT 的元数据是如何存储的,对未来投资或购买 NFT 有何帮助?

下面,我们将以几个具有代表性的 NFT 项目为例,介绍主流 NFT 项目的元数据存储方式以及存储方式对 NFT 长期价值的潜在影响。

主流NFT项目的元数据存储方式不存储

是的,确实有些 NFT 项目根本找不到任何关于其图片在链上的存储位置的信息,甚至合约中也没有存储元数据的功能。这种存储方式仅在 NFT 早期被一些化石级项目采用,最典型的就是 CryptoPunks。

加密朋克

我们通过刚才的方法查询了CryptoPunks的合约地址,发现找不到TokenURI或类似字段。但是可以看到,第五个函数imageHash返回的是一串哈希值,是整万张CryptoPunk图片拼接出来的一张大图的哈希值。该图片目前保存在项目官网(图片链接),用户可以下载该图片并计算其哈希值并与链上的哈希值进行比较,以验证该图片的真实性。

由此我们可以得出结论,CryptoPunks 项目并没有在链上存储任何图片,而只是为用户提供了一种在其智能合约中验证图片的方式。本质上不存储图片,只提供链上验证方式。

既然没有存储,为什么我们购买了 CryptoPunks NFT 后,对应的图片可以准确的显示在 Opensea 上?其实这完全取决于网页前端对Opensea等网站的手动适配。 CryptoPunks 图像不存储在链上,而是存储在中心化网站缓存中。因此,CryptoPunks 的 NFT 必须依赖一个中心化的组织才能正常展示。

因此,投资者购买的 CryptoPunks NFT 只是智能合约中的一个数字,没有图片或其他实用功能。人们对他的认可以及网站上展示的图片内容更多地取决于社区的共识。比如排名第二的 CryptoPunks NFT,无论是从左到右第二还是从上到下第二,链上都无法提供明确的判断标准,大家只是按照一定的习惯认为他是代表头像。

这种类型的 NFT 项目在当前市场上几乎绝迹,因为它的存在和价值需要极强的社区共识支持。如果还有新项目还在使用这种“入库”方式,建议投资者谨慎购买。

加密猫

CryptoKitties 也是一个历史悠久的 NFT 项目。我们在它的合约中也找不到元数据,唯一的类似元数据的函数返回了一个空值。

经过分析,我们发现 CryptoKitties 也没有选择将猫图片存储在链上,而是将猫图片的基本元素保存在中心化的官网上。链上记录的只是每只猫唯一的特征值,也可以称为决定猫长相的“基因”。当用户购买 CryptoKitty 时,负责前端展示的网站直接检索 NFT 的特征基因,并按照既定规则生成猫图片展示给用户。

因此,CryptoKitties项目的存储方式可以概括为:猫的“基因”存储在链上,但具体展示内容由服务器合成,展示效果完全依赖中心化服务器.

但由于 CryptoKittiies 不是简单的图片型 NFT 项目,它的繁殖功能只能由上一代“基因”和链上算法合成,而猫的出现稀有度也只取决于合成的基因。因此,该项目缺乏元数据不会对其游戏功能和估值产生太大影响。

以上两种方案避免元数据存储问题,通过其他替代方案解决NFT前端展示问题的最大优势在于节省宝贵的链上存储空间,降低项目开发的复杂度。但缺点也很明显,因为任何网站想要适配或展示相关 NFT 都必须手动配置和缓存其展示效果,而其最终展示效果也完全依赖于传统的中心化组织。一旦某个关键节点出现故障,可能会导致用户购买的 NFT 无法正常显示。

当然,这种存储方式更多地存在于早期的 NFT 项目中。目前,很少有新上线的 NFT 项目使用这种变通方法。

链上存储

链上存储也习惯性地被称为“永久存储”,因为一旦用户提交数据到链上,依靠区块链的不可变属性,链上的数据理论上是永久存储的。只要我们能期望这条链永远运行,对应的数据就相当于被永久保存了。

目前使用链上存储的项目也可以分为两类,一类是将元数据存储在NFT智能合约的同一条公链上,另一类是将元数据存储在Arweave等专用存储公链上。目前使用第二种方案的典型项目并不多,本文不做过多介绍。以下仅分析存储在以太坊上的典型项目。

自动字形

Autoglyphs 项目也是由开发 CryptoPunks 的 Larva Labs 团队开发的。这款产品的知名度不如 CryptoPunks,外观也比较简单。下图显示了其中一些产品形式。

我们还是使用上面提到的方法通过Etherscan调用它的元数据,返回结果如下

可以看出Autoglyphs的NFT图像元素是直接存储在以太坊上的,但是显示的时候需要重新调整换行的位置。因此,其显示效果受前端网页的影响较小,存储数据的持久性和安全性得到更好的保证。但同时,劣势也很明显,即以太坊的链上存储成本非常昂贵,难以存储更复杂的图形。

去中心化存储

去中心化存储技术的出现比区块链的发明要早得多。去中心化存储虽然具有与区块链相同的去中心化特性,但不能直接将去中心化存储等同于链上存储。

目前使用去中心化存储存储NFT元数据的主流项目包括Bored Ape Yacht Club,上面已经介绍过,这也是目前大多数艺术NFT使用的存储方式。

使用去中心化存储具有以下显着优势:

不可变:因为用于寻址存储文件的域名包含文件的哈希值,具有与区块链相同的不可篡改特性,更符合加密的原始精神;

更低的存储成本:对于目前大部分的图像项目来说,基本上一台可以长期联网的个人电脑就可以保证数据的长期存储。即使采用filecoin等存储激励层结合区块链激励机制,其成本与以太坊的存储成本相比仍然可以忽略不计;

当然,去中心化存储也有一些缺点,就是不能很好的保证数据存储的持久性。对于没有filecoin激励层的ipfs存储,一旦负责存储的节点全部下线,存储的数据仍有可能丢失。

集中式存储

这里所谓的中心化存储,就是将元数据存储在一个中心化的网站服务器中,并将指向URL的链接保存在元数据中。下面是这两天爆出来的小企鹅项目的例子。

矮胖企鹅

下图是查询其tokenURI函数返回的结果截图。

从查询结果可以看出,本项目的元数据返回了一个集中的URL链接,说明NFT的图片直接存储在项目官网的服务器上。从长远来看,这种类型的存储存在两个主要风险。一是网站所有者可以篡改数据,二是网站可能有一天会失去维护,链接将无法访问。

因此,对于此类使用中心化存储的形象NFT项目,投资者在购买时需要仔细评估项目方的实力和长期维持项目运营的意愿。由于这类NFT除了图片本身没有任何应用价值,一旦对应链接返回的图片发生变化,item随时可能归零。

人们常说的区块链的不变性只体现在元数据中存储的URL链接上,至于这个中心化的URL链接指向哪里,区块链一无所知,也不知道。无法控制。因此,这种类型的 NFT 在结构上仍然是中心化的。

我们可以将其概括为一个规律,即:一个产品的去中心化程度取决于其所有组件中最中心化的一个环节。只要一个环节采用了中心化的技术栈,那么整个产品就是一个中心化的产品。因此,使用这种存储方式的图像 NFT 不再具备去中心化、不可篡改的区块链的基本特征。

也就是说,大家重金购买的只是一个固定在区块链上的URL链接,甚至不是一张图片。

存储在哪里并不重要

之所以称为它在这里存储的地方无关紧要,是因为此类 NFT 的价值与其元数据的存储方式没有直接关系。即使这些 NFT 不保存或修改元数据,它们也不会对这些 NFT 的价值产生重大影响。下面我们以两个应用了 NFT 的知名项目为例。

Axie Infinity Games 中的 NFT

下图是查询一个Axie NFT元数据返回的内容。可以看出它的元数据只是一个中心化的URL链接,所以前端展示图片有被篡改的风险。

但是,与图片 NFT 不同的是区块链上的钱被冻结,NFT 作为角色或道具在游戏中的主要价值并不来自于可以在网页前端显示的图片,而是它们在游戏中所具有的功能和属性。例如,以 NFT 为代表的游戏角色的攻击力越高,赢得战斗的可能性就越大,因此其价值越高。此 NFT 元数据中存储的信息仅类似于游戏角色的皮肤,即使被修改,也不会影响其游戏属性。

这类似于在王者荣耀中,改变游戏角色皮肤不会对游戏的运行产生重大影响。因此,游戏中使用的 NFT 更重要的是 NFT 在游戏中的实际作用,或者说它的内在价值,而不是网页前端显示的皮肤属性。

Uniswap V3 定位 NFT

Uniswap NFT 元数据的存储方式极为独特,值得重点关注。我们先通过Etherscan查询链上数据,返回结果如下:

返回的数据好像是无法辨认的乱码,但是顶评论给了我们使用的编码方式:base64。我们随机搜索了一个在线的base64解码工具,可以将乱码解析成如下可读的结果(由于太长,只截取了部分数据):

可以看到在元数据的最上方标出了做市仓位的代币对、做市价格区间、代币地址、声明。在后图像字段中,保存了以 svg 格式存储的 NFT 图像信息。

这里是对 svg 格式的一点解释。 svg是一种图片存储格式,全称是“Scalable Vector Graphics”。我们知道,常用的图片存储格式是基于像素的。比如我们的手机照片存储格式就是把镜头采集到的每个像素的颜色一个一个的保存在文件中,所以像素越高,图片越清晰。同时占用的存储空间越大,越难以上链。

svg格式不是通过保存像素来存储图片,而是保存图形的形状。例如:保存一个长宽比为2:1的矩形,背景为红色,在左上角显示token对的名称等。这种存储图像的方式的好处是一旦确定了形状,可以无限放大和缩小,其占用的存储空间不受图形大小的影响,只与图形的复杂程度有关。因此,这种存储方式有助于在以太坊上以较低的成本存储结构更简单的矢量图。

由于 Uniswap 的 NFT 都使用相同的矢量图模板区块链上的钱被冻结,因此该 NFT 的图像样式只需要在合约部署时存储一次,然后每个新铸造的 NFT 只需更新图中的代币即可。核心信息可以生成新的 NFT 图像。因此,用户无需为存储此图片支付存储费用。

Uniswap 的 NFT 元数据存储方式可以说是众多 NFT 项目中最抢眼的解决方案。他同时兼顾了几个重要的需求。一是全链存储,完全去中心化,不可篡改;第二,所有信息都可以直接从链上读取,无需依赖网页前端存储的缓存数据;第三,不会涉及跨链数据调用的风险,不用担心使用链下存储的协议失败或被攻击,只要你信任以太坊的安全,你就可以完全信任NFT的安全第四,它可以保存更复杂的图像,不像Autoglyphs项目只能显示简单的图形信息。

当然,说了这么多,我们还是要回归NFT的价值源泉。事实上,对于 Uniswap 的 NFT 价值来说,它的元数据存储在哪里,甚至是否存储了元数据,根本不影响它的价值。因为 Uniswap 的 NFT 的价值只取决于它可以从资金池中检索到的资产的价值。就像你持有的银行存单一样,无论印刷质量好坏,只要能拿回等值的货币,存单本身漂亮与否都无所谓。

最后,我们来总结一下 Uniswap NFT 的基本特点。 Uniswap 的 NFT 前端展示图片存储在以太坊链上,不可篡改,但后续团队可以进行升级(见下图)。据其创始人介绍,存储元数据图像的合约是整个 Uniswap V3 智能合约组中唯一可以后续升级的智能合约组件。但无论其后续图像如何变化,都不会影响其 NFT 的内在价值。

NFT 资产的价值来源

一份研究报告曾将 NFT 概括为“元数据容器”。这个极其精辟的总结,更好地解释了当前艺术品收藏 NFT 的价值来源。但对于上述应用的 NFT,这个结论很难给出合理的解释。

我们认为,目前 NFT 资产的价值来源主要分为两种不同的类型。一种是依靠 NFT 本身的应用价值,比如持有 NFT 来兑换某些资产,或者在游戏中具有某些可以提高胜率的属性,或者作为链下赛事的入场券等。这些 NFT 的价值来自于它们能给持有者带来的使用价值。

另一种方式是主流NFT项目的价值获取方式。也就是说,NFT 本身并没有实际使用价值,只是依靠元数据中保存的图片等展示内容来获得一定的共识(当然,有些 NFT 项目甚至还没有做到这一点)。这类NFT从长期来看具有明显的空中特征,我们认为未来不会成为主流的NFT资产类别。

目前流行的大量基于图像的 NFT 产品,让人不禁回想起 17 年泛滥的众多空气币项目。项目方只需要复制和简单修改一个版本的白皮书,就可以通过发币收获大量财富。 Aircoin价格的涨跌主要是由炒作决定的,而不是其内在的使用价值。

目前很多 NFT 项目都存在类似的问题。项目方只需要用算法生成几千张简单的图片,然后通过销售就能获得大笔资金。这类项目的运营几乎没有门槛,未来类似的项目只会越来越多,最终会让这一轮NFT炒作彻底变现。

虽然目前的炒作现象提高了普通用户对 NFT 概念的理解,促进了 NFT 相关基础设施的完善。但由于缺乏长期内在价值,除少数早期头部项目外,更多基于图像的 NFT 项目长期来看归零风险非常高。

同时,购买此类镜像 NFT 的用户需要特别注意。由于其元数据的存储方式,许多 NFT 产品看到的和他们得到的并不相等。大量基于图像的 NFT 项目需要依靠相对中心化的交易平台,通过人工方式对展示的图像进行“脑补”。像Opensea这样的平台一旦失去维护,很多用户购买的NFT将只是一串URL链接,而不是图片。

NFT 的未来应该更多地依赖于不受元数据影响的基于应用程序的 NFT。可以看出,最近这类应用的探索越来越多。比如最近一个项目把做市算法投进了NFT。如果未来使用该算法的用户可以按一定比例向算法 NFT 支付费用,NFT 的价值就可以等于其未来现金流的折现,使其内在价值得到强烈支持。至于它的元数据是否存储了一张很酷的图片,恐怕没人会关心了。

目前,具有内在价值的应用 NFT 主要存在于两个轨道上。一是金融NFT,二是游戏资产NFT。这两种 NFT 资产都有更好的长期内在价值支撑,其价值不再取决于网页前端显示的元数据,而是为所有者带来的实际使用价值。与当前比较热门的基于图像的 NFT 相比,这种基于应用的 NFT 从长远来看更有可能超越当前的炒作周期。