菜鸟笔记
提升您的技术认知

从表象到本质,包你一文看懂NFT

上面这5000幅画的合体,是数字艺术画家Beeple的NFT作品《Everyday:The First 5000 Days》,2021年3月,卖了6934万美元。

上面这个图,是NFT“无聊猿”(BAYC Bored Ape Yacht Club)第3749号作品,2021年9月6日,卖了740ETH,时价约290万美元。

这是NFT“加密朋克”(Cryptopunks)第3100号作品,2021年3月11日,卖了4200ETH,时价约758万美元。

买这些的人是疯了吗?这不就是些图片吗?

就在一年前,还没有多少人知道NFT,然而,现在,人人都在讲NFT,要么是想买,要么是想做。

注:本文是“用直观抓住NFT是什么”系列文章的合集,方便读者一次性看完。

注:本文的示例主要是图片类NFT,其他类型(如视频、音乐)的NFT,原理上是一样一样的。

一、NFT的突破性及其实质

人们之所以热衷买一个NFT,因为第一次在互联网上,人们踏实地感觉到自己拥有了一个数字作品的拥有权(所有权,ownership)。而且这个权利,是全网公开透明的,是主人亲自掌握的,是谁也剥夺不了的。

这个能力是区块链技术带来的。

背后是区块链中无处不在的密码学技术。

只有掌握了私钥的人,才能转移、转让他的NFT,其他任何人都无法做到这点。

为了明白这点,我们先仔细看看,对于一个NFT,区块链上到底存放了什么。

从目前绝大多数NFT的实现上看,区块链上只是记录了一个作品拥有者的地址、作品的编号、以及这个作品的链接。作品本身并不在区块链上,除非是那种很简单的作品(因为作品比较大,存在区块链上很贵的)。

简单地说,区块上存这三样东西:地址、编号、链接

地址指的是拥有者的区块链地址,对于以太坊而言,通常是下面类似的样子:

0x40468d172cE354d3fAdAb06D0FA53eDdB2F3AA54

编号就是一套NFT中某个艺术品(或称“收藏品”)的编号,比如有一个NFT叫Creature,里面有20个形态各异的动画形象,你买了编号第6的那个。

这个Creature NFT是Opensea(一个NFC交易平台)的一个示范教材例子,里面是一些动物的动画形象,可以用于游戏或社交之类的平台。

注意我们说NFT,有两种语境,比如说加密朋克是一个NFT,其实说它是一套NFT作品,里面有10000个punk,每个punk都是一个具体的NFT。

现在我们看第3个要素,作品的链接,这和我们平时所说的链接是一样的,比如这个样子:

https://Opensea-creatures-api.herokuapp.com/api/creature/6

注意后面那个6,正是这个NFT的编号。

这个链接打开后,显示如下:(你也可以自己打开看看)

{"attributes":[{"trait_type":"base","value":"jellyfish"},{"trait_type":"eyes","value":"joy"},{"trait_type":"mouth","value":"pleased"},{"trait_type":"level","value":2},{"trait_type":"stamina","value":2.3},{"trait_type":"personality","value":"sleepy"},{"display_type":"boost_number","trait_type":"aqua_power","value":10},{"display_type":"boost_percentage","trait_type":"stamina_increase","value":5},{"display_type":"number","trait_type":"generation","value":1}],"description":"Friendly Opensea Creature that enjoys long swims in the ocean.","external_url":"https://example.com/?Token_id=6",
"image":"https://storage.googleapis.com/Opensea-prod.appspot.com/creature/6.png",
"name":"Herbie Starbelly"}

打开的并不是NFT作品本身,而是对这个作品的一些信息描述(也即这个NFT的元数据(metadata),用的是json格式)。具体不用细看,这些主要描述的就是这个动画的属性,比如这是个水母,眼睛是快乐的,嘴巴是高兴的,耐力值是2.3,特点是爱睡觉的,它的名字,它的编号、它的图像等等。

这些属性我并不感兴趣,我最感兴趣的是这个动物到底长什么样,那就要去看里面的image值:

image:https://storage.googleapis.com/Opensea-prod.appspot.com/creature/6.png

这又是一个链接,打开这个链接,可以看到:

对这个NFT(Creature NFT 6号)而言,区块链上只是保存了以下3个要素:

(0x40468d172cE354d3fAdAb06D0FA53eDdB2F3AA45,6,https://Opensea-creatures-api.herokuapp.com/api/creature/6)

在NFT的标准ERC721中,这三个要素就是(address,ID,tokenURI)。在NFT智能合约的地址上,通过读接口查询你的address,就能知道你拥有NFT的ID,并进而得到这个ID的tokenURI(链接)。

ERC721是一套关于以太坊上发行NFT的标准,说明了NFT合约应该提供什么接口,metadata数据以什么格式存储等等。后来还有ERC1155、ERC998等标准(感觉这两者更多适用在游戏中),有兴趣可以自行去看看。

所以,从技术上讲,目前而言,NFT就是作品链接、编号和作品拥有者地址在区块链上的一个简单记录,而作品本身,在链下。因为画作(音乐、视频等类似)比较大,放在区块链上过于昂贵(都是要花gas费的),仅仅是那些比较简单的图案类作品,才会舍得放在链上。

这些记录的管理,是通过“智能合约”来自动实现的。“智能合约”就是区块链上的可执行的代码。就像一个计算机,区块链上,要么是代码,要么是数据。

谁买了一个NFT,智能合约就会把这个人的地址和这个NFT的编号绑定起来。从编号可以查对应的拥有者地址,从地址也可以查一个人拥有的NFT作品。

当拥有者想转让NFT时,会调用智能合约提供的接口(比如transfer接口),填上作品编号以及被转让人的地址,发送“调用消息”就可以了。这个消息是需要调用者提供数字签名的,而只有掌握该地址对应的私钥,才能做出数字签名。其他人没有私钥,做不出数字签名,他发送的消息就不被区块链认可,就改不了一个NFT对应的地址。

张三把NFT转让给李四之后,该作品原先绑定的张三的地址,现在就改为李四的新地址了。

而且这个转换,会记录下来,谁都可以查。

原理基本讲完了,现在我们看一个很实际的问题:链接失效了怎么办?

这个问题很让人头疼,因为链接失效的事情太多了,而且在NFT领域也确实发生过这类事:有人买了一个音乐NFT,但是链接失效了。理论上他仍然是拥有者。但从一定程度上看,证据没了,谁能证明那个“链接”里原先是那首曲子?

更何况,链接里面的内容是可以改的,我卖给你的时候是一个卡通鱼,后来我把链接里的内容改成了卡通猪,那你是拥有那只鱼还是那头猪?这就考验发行者的诚信了。

所以,现在NFT发行者,一般都会用IPFS替代HTTPS。IPFS是一个分布式的文件存储系统,更符合区块链这种去中心化系统的要求,能更好做到不可篡改性。无聊猿用的就是这个。

无聊猿第1号作品的链接(tokenURI)为:

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又是一个IPFS链接:

ipfs://QmPbxeGcXhYQQNgsC6a36dDyYUcHgMLnGKnF8pVFmGsvqi

打开这个文件,是这样的:

二、NFT和以前的数字商品有什么不同

看到这里,你也许会想,不就是一些数据上链嘛(还不是所有数据),这和以前有什么不同?

这里我打个比方:V家出了限量包包,10000个(每个包包可能不一样,也可能是一样的包包,仅仅是编号不一样)。

你去买,买了第23号,并留下了你家地址。那么,你家地址、23号、包包链接就会记录在V家的账本上。

以前,这个记录是售货员小姐姐记在门店的纸质账本上的,后来,小姐姐输入到V家请IT公司开发的类似客户管理系统或者ERP这样系统的数据库中,现在,小姐姐没了,你在交易平台买了包包,就会自动记到区块链上。

如果有人说他才拥有第23号,而不是你。你们可以对簿公堂,大家查区块链帐本,帐本说23号包包绑定的地址是某小区某号楼某房间。

在法院的监督下,你们一行人来到这个家门口,他打不开房门,而你掏出钥匙打开了,就证明了你是真正的拥有者。

而V家的包包,其实是数字的,放在账本上链接指向的地方。

如果有人买了这个数字包包,他得到的好处是:

1、可以炫耀。你可以说,我也是有NFT的人了。如果别人问你到底买了个啥,你就说我有了一个独一无二的东西,或者说我有了一个全球限量10000个“包包”里面的一个。

2、如果有人说你并没有,你可以证明给他看。比如你可以在数字钱包上展示给他看,可以在Opensea上给他看,也可以在该NFT的网站上给他看,而且,归根到底,可以在区块链上看,比如,对于以太坊区块链上的NFT,可以在etherscan网站上给他看。

3、你拥有它,所以你可以随意送人;以后这个NFT要是升值了,还可以卖掉它赚钱。 

有人说,这和在电商平台(淘宝、京东)上买数字商品是不是差不多?

也不一样的:

1、NFT是纯数字产品,交易高度自动化,而且所有交易不可篡改,是你的就不会是别人的了。(电商的交易环节中很多缺不了人,而且数据并非不能改)

2、没有人能够在后台控制,没有内幕、没有黑箱操作,一切数据都明明白白公示。(电商后台的代码和数据都不会给你看的)

3、由于智能合约(简单理解为区块链上的代码)的能力,可以创新出很多以前不能做的事。

加密朋克官网是这么说的:

“我们编写了存在于区块链上的代码,任何人都可以使用它与世界上任何另一个人买卖朋克(punk)。这个系统一个有趣的地方是,我们不再控制运行加密朋克的代码!一旦我们将其发布到区块链上,它就永久嵌入在那里,任何人都无法再修改。这对我们作为开发人员来说很可怕,因为我们担心有Bug。但不能修改代码这点是非常强大的,它允许用户验证确实只有10000个朋克,验证我们无法从您那里窃取任何一个punk,并确保我们所声称的都是真实的。加密朋克被创造后就运行在以太坊网络上,代码掌控所有权。此后,我们不再有创造上或是所有权上的控制了。”

NFT的另一个巨大好处是公开透明性。

我们知道,篮球明星库里花了18万美元(55ETH)买了第7990号猿猴,并把它作为自己在社交平台上的头像:

只要知道这个猿猴的编号,在OpenSea上查找记录就能发现,这是库里在2021年8月28日购买的:

由于知道了库里的地址(SC30对应的地址),还可以顺便看看他还买了什么NFT:

https://opensea.io/SC30

打开上面这个链接可以看到,库里还有很多其他收藏。

同样的方法可知娱乐明星余文乐的以太坊地址,并进而得知他拥有第8787号punk:

由于区块链的公开透明性,我们可以查到:

2021年3月20日,0x0e4437……这个地址花了47ETH,买下了该punk,然后转赠给了余文乐(0x279679……)

至于0x0e4437……是不是也是余文乐的地址,就不知道了。

报道1称:“2021年9月17日到9月28日期间,佳士得拍卖行拍卖余文乐的精选珍藏,而拍卖品里不仅有传统的实体收藏,其中还有NFT作品。当佳士得询问余文乐关于对NFT 的看法时,他认为NFT 对他来说会是未来的大趋势,因为这代表了一个时代的模式。而在此之前,余文乐就已把自己的头像改为Cryptopunk NFT。根据这个头像,找到了余文乐的ETH 地址,发现他的众多NFT收藏。”

三、NFT的交易和价格

NFT目前大都是通过NFT交易平台来完成交易的,常见的交易平台有Opensea、Rarible、SuperRare 、AtomicMarket、Nifty Gateway这些。国内有蚂蚁链粉丝粒、腾讯的幻核、NFT中国、秘宝等等这些(国内交易网站大多只能买不能卖)

但全球知名度最高的还是Opensea。

很多NFT作品有自己的网站,可以在它自己的网站买,比如加密朋克的网站:

https://www.larvalabs.com/cryptopunks

也可以线下卖,只要你有合适的渠道。比如Beeple的《Everydays: The First 5000 Days》就是通过佳士得拍卖会成交的。

为什么这些有名气的NFT作品能卖那么贵?

概括说来,一是它本身有其价值,二是它已经形成了很大的名声效应,三是因为前两点,它发展出了投资价值。

我们先看一下Cryptopunks:

1、它的名字里有crypto还有punk这两个点都是非常让geek想拥有一个的。crypto有自由、神秘、反主流、数字权力的象征;punk则是酷、屌、玩世不恭、简单随意;每个punk都是计算机自动生成,这很符合hacker行事方式;24*24像素则挑逗起一种复古的geek情怀。

2、加密朋克不是第一个NFT,但是第一个知名的NFT。圈内先火起来,一部分区块链玩家、科技企业高管率先购买Punk,以此为荣,提升数字威望。然后出圈,引发潮流。

3、 到现阶段,再买punk的人基本是以投资心理进入的,以期今后升值卖出。

背景知识:CryptoPunk创制于2017年6月,当时NFT概念尚未完全确立,更没有市场。Larva Labs原本是打算做一批手机app或游戏的头像,于是根据算法生成了1万个24 x 24像素的8-bit头像,每个都有自己随机生成的独特朋克外观和特征。但在出售时,无人问津。

于是他们改变主意,自留其中1000个头像,再把余下9000个免费发放,任何拥有以太坊钱包的用户都可以自行获取,所有头像很快被抢夺一空。玩家获得头像后,可以自由转卖。就像BTC一样,横空出世的CryptoPunk在NFT领域具有老大一般的地位。

无聊猿卖这么贵的原因是类似的:

1、无聊猿的10000个头像,每个看上去都很精致,做头像是很适合的。

2、在2021年4月23日开始发售时,并没有受到许多关注,直到5月1号的一天,知名收藏家Pranksy关注到了这个项目,并宣布他已经购买了250多只猿猴。从他发布推特的那一刻起,BAYC的销量、用户、交易数激增。仅在117分钟后,BAYC售罄。

3、无聊猿在发售时,每一只猿猴的售价都是0.08ETH,这提供了较低的入门成本,使所有用户站在同一起跑线上,这种公平公正的方式吸引了不少投资者。

至于Beeple的《Everydays: The First 5000 Days》买那么贵,也是有原因的:

1、Beeple的画作,每件都是真正的、手工做出来的艺术品。

2、Beeple早已大名鼎鼎。自2007年5月1日以来,Beeple每一天都创作和上传一幅数码作品,并取名为《Everyday》,卖出的这幅作品是他5000幅作品的拼贴集合,像素是21069 x 21069。

3、购买者是NFT基金Metapurse的匿名创始人(化名Metakovan),他表示想让该艺术品留在加密货币领域。

当然,这些很贵的NFT是少数,大多数NFT并不贵,而且也无人问津。这和现实世界是一样的,少数塔尖的东西受人追捧,更多的东西默默无闻,虽然他们的质量并没有如此大的差异。

四、NFT和版权的关系

有人说:加密朋克、无聊猿这种头像,我买不起。不过,不买难道我就不能用吗?

你可以很轻松地下载和使用,但你并不是真正的头像拥有者,如果你用,会带来一点问题:

1、你是未经授权地使用别人的作品,理论上讲,别人可能会追究你。

2、如果你把它作为头像,别人问是不是你买的,你可能有点尴尬。因为NFT头像这个领域的共识是:你拥有,才能作头像。

而且,从技术上讲,证明一个人有没有一个NFT是很容易的,推特就计划用技术标明一个NFT头像是不是真的:用户可以设置自己的NFT头像,连接到对应的加密钱包,然后选择对应的NFT作品,完成头像设置。如果无误,头像上右下角会有一个以太坊的标识。

同样地,支付宝上卖的NFT藏品,可以在支付宝中设置为付款码皮肤,你如果从“咸鱼”上买了一个伪造的NFT藏品,是没法做成皮肤的。

总之,一切都是透明的,如果你不拥有而使用,会露馅,而且你也享受不到那种真实的炫耀感。

从发行者的角度考虑问题:如果我把某个画家的画作做成NFT,需要什么样的版权?

用版权(即著作权)语言来说,他至少要把“复制权”和“发行权”许可给你。

根据我国的著作权法:

复制权:即以印刷、复印、拓印、录音、录像、翻录、翻拍、数字化等方式将作品制作一份或者多份的权利;

发行权,即以出售或者赠与方式向公众提供作品的原件或者复制件的权利;

道理很简单,你得到了复制权许可,才能把他的画作复制到网上;你得到了发行权许可,你才能把这个数字画作公开进行售卖。

对于NFT买家而言,如果你买了一个NFT,你得到了什么权利?

很多情况下这些是没有明说的,就常理而言,你有如下权利:

1、复制、观赏、展示权,这是显而易见的,你可以在将它在你的电脑和硬盘、U盘上复制若干份,你可以随时观赏,你可以展示给他人看。(在版权法上大致对应“复制权”和“展览权”)

2、独享权,卖给你,别人就不会拥有了,就像限量10000个的名贵包,每个都编上号,第1号到第10000号,你买了第23号,别人就不买不到了。(这个对应的是版权的“独家授权”)

3、转让权,你买了以后,还可以再卖,也可以免费送给别人。(这个不一定都有,国内很多NFT是不给途径卖的。)

第1点是常见的,不稀奇的,没有NFT的时候,这种事也天天在发生,比如你去图片网站买一张图片,差不多就是这样。

而第2、3点,是实物交易的特点。对于数字作品,这种交易以前是很少见的,即便有,交易成本也很高。是NFT带来了这个创新,把传统世界的“独享权”和“转让权”,安全而便利地带到了互联网上。

对于那些复制他人NFT头像的人,虽然他得到了这幅头像,而且可以不合规地进行复制、观赏和展示,但他拿不到第2和第3项权利,这个头像是谁的,区块链上一查即知,能不能转让更涉及到有没有私钥的问题。

所以,如果你买了一个无聊猿头像,但发现有人复制并做成了他自己的头像,不用愤怒,因为你手上那个才是正品,你能卖到钱,他不能。

正好比,你家里有一副《蒙娜丽莎》的正品,你会计较别人家里那个仿制品吗?

因为如果有买家想买正品,肯定会找到你而不是他,而且鉴定专家肯定能鉴别出来你拥有的才是正品(在区块链上,鉴定是最简单的事了,人人都能做到)。

所以,NFT并不是用技术防范别人复制、下载、使用的,而是用技术明确了所有权。

NFT的极具突破性之处,在于它给出了一种通用、安全、便利的交易方式,使得用户可以方便地购买一个作品的独享权和转让权。

它使得物理世界的“物权”体系,在互联网上得以技术实现,一定程度上解决了数字世界中数字资产的归属和支配问题。

至于你买了一个NFT,能不能得到该作品的改编权(制作衍生品)乃至商业授权,也是要看发行者有没有明确说的,比如BAYC明确说可以,拥有者就可以用这些图像做贴纸、T恤等周边商品并出售;而“蚂蚁链粉丝粒”上卖的NFT则明确说不可商用,你就没有这些权利。

在版权这个领域,对于没有明说的,只能认为说不允许。

五、国内NFT和国外NFT的区别

简单地说,国内NFT和国外NFT目前的差别还比较大,主要有这么几点:

1、国外的NFT多发行在公链上,如Ethereum、BSC、Polygon等,国内则多放在联盟链上,如蚂蚁链、至信链等。

2、国外NFT交易一般用虚拟货币,国内NFT交易均使用人民币。

3、国外的NFT通常可以随意转让和再次出售,国内通常有较多限制,比如蚂蚁链粉丝粒上的藏品,要求持有180天以后才能转赠好友。

4、此外,在版权要求上,比如能否商用,也有很多不同。

国内这样做的目的,主要是防范少数人利用NFT进行恶意炒作,或者以NFT为名从事虚拟货币相关违规活动,简单地说,主要是防范金融风险,保障老百姓不被割韭菜。

由于以上这些差别,国内的NFT,很多都改用“数字藏品”这个叫法了。

六、NFT的铸造和展示

怎么把一个艺术品放到区块链上呢?答案是:铸造(mint)。

而所谓铸造,就是在区块链上记录那三个要素。

常见的铸造方法有两种:一是通过NFT交易平台提供的功能来做;二是通过写区块链智能合约来做。这两种在本质上没有什么区别。

先铸造给谁也有两种:一是先铸造给作者自己,然后通过交易转移给其他人的地址;二是由用户在购买NFT时直接铸造给他本人。这两种在本质上也没有什么区别。

通过交易平台页面铸造比较简单,以OpenSea为例,你通过钱包软件(主要是提供以太坊地址和私钥管理,提供签名和交易消息发送等功能)登录以后,点击平台上那个“Creat”,然后一步一步做就可以了,比较简单。

如果通过编程来铸造,也不难,主要是写合约,下面这段代码(Solidity语言)就可以完成铸造。

contract newNFT is NFTokenMetadata, Ownable{
 
 constructor() {
   nftName = "MY FIRST NFT";
   nftSymbol = "MFN";
  }
 
 function mint(address _to, uint256 _tokenId, string calldata _uri)external onlyOwner {
   super._mint(_to, _tokenId);
   super._setTokenUri(_tokenId, _uri);
  }
 
}

当然,它本身还需要调用一个ERC721的实现库(基合约),我们这里并不需要深入下去,只是简单示例一下。

这段代码,constructor函数是构造函数,合约部署时,会自动调用此函数,确定该NFT的名字“MY FIRST NFT”和简写“MFN”。

部署完成后,调用合约的mint函数接口就可以铸造了(mint函数再去调用基合约的_mint和_setTokenUri函数),铸造时在_to参数中填入地址,_tokenId填入NFT的ID号(可以自己随意定义),_uri填入链接,和前面说的一样,这个链接指向一个描述该NFT元数据的json格式文件,其中含有image项,image链接指向真正的作品。

再重复一遍,铸造一个NFT,就是确定三大要素:地址、ID、链接

合约本身也有一个地址,把这个地址导入到opensea中,opensea通过读取tokenURI,就可以获取NFT的元数据,并最终显示NFT图像了。

而支持NFT展示的钱包,会通过NFT合约地址和编号,将拥有者地址下的收藏品展示出来。

如果你把NFT从你的钱包转给别人,从技术角度看,这个编号的NFT,拥有者地址从你的变成他的,从最终用户界面看,你的钱包里没有这个NFT了,而他的钱包里,多了一个NFT。

这是不是很像实物的转移!

这就是NFT让人着迷的地方。