不管你是否买过NFT,可能听别人说过,自己也这么认为,NFT其实就是一张JPG(图片)。
这话一点没错,可是,你买的这张图片,它到底放在哪里?你怎么证明它是属于你的?
如果有人问你这个问题,而你却不知道该如何回答,那人家可能要在心里骂你傻逼了。
有一位大佬(沃兹基·索德)就曾经说过:
世界上最傻逼的事情,不是花大钱买一张JPG,而是花大钱买了一张JPG,却不知道它到底放在哪里。
这个问题如此重要,关乎智商和尊严,每一个人都不该忽视。今天,就由我来为大家揭晓这个答案。
1. NFT到底是怎么“买”的?
我们首先要搞清楚一个问题:NFT到底是怎么买的?
想必很多人都会说:自己Mint,别人空投,或者在Opensea上面直接买。
这三种方式表面上看起来各不相同,本质上其实都一样,都是在区块链上增加一条交易记录,说明某个智能合约发行的某个编号的图片的所有权,是属于你的钱包地址*。
从此之后,只要钱包是你的,NFT就是你的。钱包丢了,就什么都没了。
这也是为什么你买NFT需要支付Gas费的原因:往区块链上记录信息,是需要付费的。
需要注意的是,这个交易记录里,只记录了合约地址和图片的编号,没有记录图片的存放位置和其它数据。(绝大多数情况如此)
2. 我买的图片在哪里可以看到?
这个问题,我相信并不是每个人都清楚。
有些人会说,图片就在Opensea啊,每次只要交易结束,用钱包登陆Opensea,就能看到刚买的图片。
可是,Opensea是怎么知道你买了这个图片(NFT)呢?
因为它知道你的钱包地址。
众所周知,区块链上的所有信息都是公开的。当你在Opensea连接钱包以后,它就能查到你这个钱包的所有交易记录,自然会知道你这个钱包地址拥有属于哪个合约的哪个编号的NFT。
前面说过,交易记录里面只记录了NFT的合约地址和图片编号。那么,Opensea在只知道这两者的情况下,是从哪里找到这个图片并展示出来的呢?
答案是智能合约。
3. 如何通过智能合约找到我的图片?
既然 Opensea通过合约地址和图片编号就能找到图片,我们一定也可以。下面就以我之前发布的 草泥马NFT 为例,来说明这个过程。
3.1 查看智能合约地址和图片编号
首先在Opensea找到 草泥马NFT这个项目的合集,地址如下:
https://opensea.io/collection/caonima
选择其中任意一个NFT并打开,在图片下方找到 Details 这一部分,点击之后就能看大Contract Address 和 Token ID 这两项,分别对应的就是智能合约地址和图片编号。(见下图)
在这里,你只需要记下Token ID也就是图片编号2357即可,在合约地址上直接点击,会打开一个新的页面,在这里可以查到关于这个智能合约的所有信息。
3.2 通过智能合约查询NFT的数据文件
根据上面一步,我们打开智能合约的查看页面:
https://polygonscan.com/address/0x53bfe75d581717aa63d3da391e7ff9b4357a82d0
在页面中先找到 Contract, 然后选择 Read Contract:
在下面函数列表中找到 TokenURI 这个查询函数,并输入图片编号2357,然后点击Query进行查询,结果如下:
可以看到,我们根据图片编号查到了它的数据文件是一个地址:
ipfs://QmRnWJzYApCZUs6NqLvGXFjyYn9xmNBrcYEp4u9hDN1cuG/2357.json
这个用ipfs开头的地址是不能直接打开的,因为它存储在ipfs网络上(一个常用的、用于存储文件的去中心化网络,感兴趣的自己研究)。
3.3 通过数据文件找到图片的真正存放位置
要想打开上面的数据文件,需要对它简单加工一下,把它开头的ipfs://
替换成:
hhttps://gateway.pinata.cloud/ipfs/
(开头第一个h需要删掉)
替换后的完整地址是这样的:
hhttps://gateway.pinata.cloud/ipfs/QmRnWJzYApCZUs6NqLvGXFjyYn9xmNBrcYEp4u9hDN1cuG/2357.json(开头第一个h需要删掉)
在浏览器里打开这个加工过的地址,可看到里面的数据:
我们需要的是里面image这一行,这里记录了图片的存储位置:
ipfs://Qmc481V4BUgxMZkJXe4XEUwFPn4mrvBsWjLFFLt8dzFay6/2357.png
这个地址是ipfs开头,说明图片也是存储在ipfs网络上的,要想用浏览器打开它,看到它的真面目,我们需要和刚才一样的步骤对它进行加工。
加工之后的图片地址是:
hhttps://gateway.pinata.cloud/ipfs/Qmc481V4BUgxMZkJXe4XEUwFPn4mrvBsWjLFFLt8dzFay6/2357.png(开头第一个h需要删掉)
在浏览器打开图片地址,终于看到了它真正的样子。这一刻,你是什么样的心情呢?花那么钱就买了这样一张图片,激动不?
4. 如何通过智能合约证明图片是属于你的?
回到本文开头提出的问题,如何证明你买的那个图片属于你?当然还是要靠智能合约。
还是在前面 3.2 的智能合约查询界面, 找到ownerOf这个查询函数,输入图片的编号,点击Query查询,返回的就是拥有者的钱包地址。你只要能证明这个钱包是你的,那么这个图片就是你的。
5. 结语
本文是一个简单科普文,旨在向刚入门的朋友做一些介绍,文中对很多问题进行了简化问题,只说了最常见、最主流的情况,希望大家可以举一反三,触类旁通。
如果文中有实质性错误,欢迎批评指正。Mirror这里好像不能直接评论,找我反馈可以通过下面的名片: