买 NFT,实际是在买什么?
The following article is from 王建硕 Author 王建硕
NFT被称为昂贵的图片。一张下面这样极简的像素风头像 CryptoPunk 3100在 2021 年 3 月以 4200 ETH的价格成交(折算为758万美元)。这是一张看起来“平平无奇”的外星人头像。由像素点组成,浅蓝色调,受限于像素艺术的特点,人物脸型模糊,只能看清轮廓。
8月份,它再次报价 35000 ETH(约合9050万美元)后被买走。虽然CryptoPunk一共发行了1万个,但“CryptoPunk 3100”很特别,价格特别高。
为什么在1万个CryptoPunk里面,第3100号价格最高?
人们在买 NFT 时,主要看重的因素到底是什么?
人们买到的 NFT ,从代码层面看,是什么样的?
下面请看正文:
0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D
这串乱码是什么?
这个 42 个字母组成的字符串,其实是一个地址,存在以太坊那个全球所有人公用的大表上。这个神秘的地址里存着什么呢?我们用 web3js 的代码 getCode 去拿一下:
// use `npm install web3` to install web3
const Web3 = require('Web3');
const web3 = new Web3("https://mainnet.infura.io/v3/593eb6ca2f004e8eae398e0d77283dc9");
const ADDRESS = '0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D'
web3.eth.getCode(ADDRESS).then(console.log)
得到了如下一堆数字(为了简化,我没有把很长的数字全拷贝过来):
0x60806040526004361061021a57600.....6f6c63430007000033
这一堆数字又是什么呢?这就是代码。只不过这是机器可以读得懂的 OPCODE,大家简单地理解为汇编语言好了。直接翻译成人可以看懂一点点的代码就是下面这个样子的:
PUSH1 0x80
PUSH1 0x40
MSTORE
PUSH1 0x04
CALLDATASIZE
LT
PUSH2 0x021a
JUMPI
...
从这个角度来说,我们可以把以太坊理解成一个 Github,大家把自己的代码编译以后,放到一个地址去。任何人都可以把这个代码拿下来(Github 叫做 clone 下来)执行。
我们可以执行这个代码里面的函数。在其中的十几个函数里面(这个函数的列表就是 ERC721 规定的大家都用的),我就对三个函数感兴趣:totalSupply(),symbol(), 还有 tokenURI()。
// use `npm install web3` to install web3
const Web3 = require('Web3');
// please use your own ID since this one may be deleted later
const API = "https://mainnet.infura.io/v3/593eb6ca2f004e8eae398e0d77283dc9"
const web3 = new Web3(API);
const APE_CONTRACT = '0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D'
web3.eth.getCode(APE_CONTRACT).then(console.log)
const ABI = [
{
"name": "totalSupply",
"type": "function",
"inputs": [],
"outputs": [{ "name": "", "type": "uint256" }],
},
{
"name": "symbol",
"type": "function",
"inputs": [],
"outputs": [{ "name": "", "type": "string" }],
},
{
"name": "tokenURI",
"type": "function",
"inputs": [{ "name": "tokenId", "type": "uint256" }],
"outputs": [{ "name": "", "type": "string" }],
}
]
const contract = new web3.eth.Contract(ABI, APE_CONTRACT)
contract.methods.totalSupply().call().then(console.log)
contract.methods.symbol().call().then(console.log)
contract.methods.tokenURI(1).call().then(console.log)
执行得结果如下:
10000
BAYC
ipfs://QmeSjSinHpPnmXmspMjwiXyN6zS4E9zccariGR3jxcaWtq/1
分别是这个合约的总发行量,Token的简写,以及 1 号 token 的地址。
我们接着如福尔摩斯一样跟踪 1 号 Token 的 tokenURI 函数返回的地址:
ipfs://QmeSjSinHpPnmXmspMjwiXyN6zS4E9zccariGR3jxcaWtq/1
这个地址是一个普通的互联网地址,或者 IPFS 地址。IPFS 地址是另外的话题了,不展开,简单地说,可以把 ipfs:// 替换成 https://ipfs.io/ipfs/ 就可以转换成普通的互联网网址:
https://ipfs.io/ipfs/QmeSjSinHpPnmXmspMjwiXyN6zS4E9zccariGR3jxcaWtq/1
访问这个地址,得到如下一个描述文件
{
"image": "ipfs://QmPbxeGcXhYQQNgsC6a36dDyYUcHgMLnGKnF8pVFmGsvqi",
"attributes": [
{
"trait_type": "Mouth",
"value": "Grin"
},
{
"trait_type": "Clothes",
"value": "Vietnam Jacket"
},
{
"trait_type": "Background",
"value": "Orange"
},
{
"trait_type": "Eyes",
"value": "Blue Beams"
},
{
"trait_type": "Fur",
"value": "Robot"
}
]
}
除了各种类型的描述以外,我们最感兴趣的,是 image 这个属性。根据这个属性给出的地址:
https://ipfs.io/ipfs/QmPbxeGcXhYQQNgsC6a36dDyYUcHgMLnGKnF8pVFmGsvqi
我们总算找到了这个合约里面规定的 1 号 Token 对应的的图像:
谜底揭晓:
0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D
代表的就是无聊猿(Bored Ape Yatch Club)的智能合约。一个智能合约地址和一个 Token 的编号,就唯一的确定了一个数字世界里面的藏品。
回顾一下
我们所说的 NFT ,说到底是一个以太坊的地址上的一个支持 NFT 协议(也就是 ERC721)的智能合约,它支持 tokenURI 等十几个标准函数。给定一个 Tokend 的 ID,它可以告诉你一个区块链以外的地址,这个地址里面给出了图像,名称等等信息。
我们购买一个 NFT,说到底是购买了某个合约地址里面的某个 TokenID,或者说,就是在那张大大的表上,这个合约地址上的那个 tokenID 这一行的 owner 属性,记录自己的钱包地址。
除此以外的信息,包括上面这张猴子的头像,其实仅仅如包装纸上的图案一样,仅仅是一个赠品。
传DAO士补充:
为什么在1万个CryptoPunk里面,第3100号价格最高?
首先,物以稀为贵。
因为它是外星人类别中仅有的 9 个 CryptoPunk 之一,并且戴着头带。
在10000个CryptoPunk头像中,只有88只绿皮肤僵尸、24只长毛猿猴、9个浅蓝色皮肤外星人。因此,价格最高的前10个“朋克”中,2个是“外星人”系列,3个是“猿”,5个是“僵尸”。
其次,跟买家群体的主观意愿有关。
因为其简约的设计,以及戴着头带的风格,迎合了买家的偏好。
(像吗?)
第三,与在社交媒体上的曝光度有关。
由于 CryptoPunk 被大量用于NFT圈子中的 Twitter 头像,是很好的社交货币。而蓝色皮肤的识别度也高。
根据以上规律,而在传统拍卖行里,最贵的CryptoPunk是2021 年 6 月 10 日在苏富比网拍里成交的 7523 号,以 1175 万美元成交。这一头像同样是9个“外星人”之一,同时也是唯一一个带著口罩的图形,反映了当今人类史无前例的一种生活样貌。
读完了,请你思考以下问题:
1 既然 NFT 就是以太坊上的智能合约,它可以跨链销售吗?
2 一个系列的NFT ,只是图片不一样,价格却差异很大,影响价格的因素有哪些?
3 如果你发行了一个 NFT ,被人复制了图片后发行了另一个NFT,该如何保护自己的权利?
4 如果某一个系列的 1 万个 NFT 卖火了,为什么不追加 1 万个 NFT 继续卖呢?
如果你对区块链还有困惑的问题,请加入我们社群继续学习。
本文是《芝麻开门吧,Web3入门10日谈》的主题4 “NFT”文章之三
本系列包括10个主题,请持续关注。
1 加密货币 2 数字钱包 3 区块链 4 NFT 5 DAO
6 Web3 7 GameFi 8 Defi 9 虚拟人10 元宇宙
假如你对Web3有兴趣,或需要跟DAO这种组织方式相关的知识,请去“传DAO士”社群索取,一群研究DAO实践DAO的人等着你,点“查看原文”看社群介绍。
欢迎扫码申请加入“传DAO士”社群,提高认知,结交志同DAO合的好友。
长按扫码!加微信