你听说过 NFT 吗?
在近一年里,我发现 NFT 这个词经常的出现在我的各种内容平台的推荐里面,在好奇心的趋势下很想知道它是一个什么东西。那么在了解了一些 NFT 的相关概念之后。我希望今天我能够用最简单易懂的方式,把什么是 NFT 分享给大家。
首先我们来看一下最近一年里关于 NFT 的新闻。
今年三月的时候,街头艺术家 Banksy 的作品《Mornos (白痴) 》被以 9.5 万美元的价格买下,随后购买者直播烧毁了画作,并将其 NFT 版本挂上交易平台。最终,NFT 版本的《Mornos》被以 4 倍的价格售出,约合人民币 247 万。
同样在三月,有一位数字视觉艺术家 Beeple ,他从 2007 年开始每天都创作一件艺术品,然后他将五千幅作品拼接成一张图片,并将其命名为《每一天:最开始的五千天 Everydays:The First 5000 Days》,并把它的 NFT 版本放在佳士得拍卖。
在 3月11日,一个名叫 “MetaKovan” 的买家以 6934.8 万美元的价格拍下了这幅 NFT 作品。

不光是图片,视频内容也是可以做成 NFT 的。
下面 就是 NBA 联盟推出的一款 NFT 卡牌收集的游戏 NBA TOP SHOT,卡片的内容是一些明星球员的在球场上的一些精彩时刻的短视频。它是以盲盒卡包的形式出售。
看完上面 的几个东西,我觉得 NFT 给我的最直观的感受就是,它很贵 。
然后疑问也就产生了:它为什么那么贵❓
为什么那么贵还有人买它❓
买了它能干啥❓
什么是 NFT?
我们先来看看 NFT 这几个字母是啥意思?
NFT 全称为 Non-Fungible Token,中文意思是「 非同质化代币 」
在经济学上,「 同质化 fungible 」指的是一种物品,一单位的该物品,等价于另外的一单位该种物品。
什么意思呢,假设我在网上买了一个手机,商家的仓库里会有很多个手机,我其实无所谓他最后会发哪一个给我。作为买家对于我而言,这些手机都是一样的。
或者我去超市买可乐,我可以随便挑冰箱里的任意一瓶可乐,对于我而言它们没有区别。我甚至没结账之前我可以拿出来又放回去,我可以随便挑。
这些东西对于我而言就是「 同质化 」的。手机与手机之间,可乐与可乐之间没有区别。
那类比一下,我们生活中最常见的一个同质化的东西,就是 "钱"。我拿一张 100 块钱可以换一张你的 100 块钱,对于我而言他们没什么区别。我也可以找你换 10 张 10 块钱。对于我而言也没什么区别。
「 非同质化 」就是指物品之间不可以互相直接兑换。很容易想象艺术品就是非同质化的。基本上生活中你不会见到有人拿一首歌去换另外一个人的一幅画的。或者说你没有办法给它们定一个兑换关系。

上面我们讲了什么是「 非同质化 」,那「 非同质化代币 」又是啥意思呢?
最简单的解释:NFT 就是说一个不可以被复制,且绝对唯一的数字认证书。每个 NFT 与 NFT 之间都不一样。
举个例子,假设 A 画了一幅画,然后 A 把它拍成照片做成 NFT 发给了 B 同学。然后呢,B 同学右键复制了一份,又发给了 C 同学。这个时候 C 同学说不对呀,你这个不是原版呀。你这个是复制的。我要的是 A 发给你的那个照片。
NFT 就赋予这张照片能够让 C 同学检查出来它是复制的能力。
那它是怎么实现这种能力的呢?
别急,让我们先来了解一下什么是区块链。什么是区块链 & 比特币?
简单来讲,区块链是一个「 建立信任机制 」的技术。
在具体讲解之前,让我们现在先把时间倒退回远古时代,回到那个古猿刚刚变成人的那个时间点。
有一件事,对于刚刚出现的人类而言突然间变得非常重要,那就是「 这个东西是我的 」这个概念。
因为这个概念关系到了人类的生存问题。
“这是我的工具,那是你的工具”
“这是我的食物,那是你的食物”
“这是我的土地,那是你的土地”
“这是我的孩子,那是你的孩子”
搞清楚 “谁的东西是谁的” 非常的重要,如果一个人吃了另一个人的食物,那么可能另一个人可能就因此死去。之后再随着时间的发展,人类之间开始出现了「 交易 」的行为。“我拿我的苹果,去换别人的土豆”。交易使得资源在人类之间开始流通。
既然有了交易的行为,很自然的就会有人去记下交易记录。
上面 这张图,是公元前 3200 年,美索不达米亚人在泥板上所写的账本。上面绘制了交易的物品的类型和数量,以及交易双方都是谁。
那有了账本之后,又有一件事变得非常的重要了,那就是「 信任 」
人们要选择相信自己的交易行为会被正确地记录下来,同时还要相信记录和保管账本的人不会对账本做手脚。但是这种信任非常的不可靠,如果记账的人非说我欠了他十个苹果,我似乎没有什么办法去证明我没有欠。
这就是一种最原始的「 中心化 」的交易机制。
时间回到现代,我们已经进化到通过银行,支付宝,各种各样的金融机构进行交易了。这些交易平台可以说是十分的安全了。但是我们依旧和原始人一样采用的是「 中心化 」的交易机制。如果这个 "中间人" 出现了问题,我们的利益依旧会受损。
那么就没有一种方式能够彻底根除掉这种隐患吗?时间来到了 2008 年。一个叫做 "中本聪 Satoshi Nakamoto" 的人,发表了一篇 《比特币:一种点对点的电子现金系统 Bitcoin: A Peer-to-Peer Electronic Cash System》
的论文。里面提出了一种「 去中心化 」的电子记账系统。
通过这个系统。我们可以用一个依托于「 区块链技术 」叫做「 比特币 」的数字货币,进行一种不再需要任何 “中间人” 且十分安全的 “去中心化” 的交易。
那它到底是怎么运作的呢?我们把区块链想象成是一个完成没有中心的 "账本系统"。
在一个区块链的网络中有着无数的节点。每一个节点都各自储存着一套完全相同的账本。
每当一个节点与另一个节点进行了交易,它就会把这个交易记录广播给网络中的其他节点。其他的节点接收到了这个交易记录之后,就会在本地记录下来,并且继续向外广播。最终这个交易记录会同步到整个网络上所有的节点。
这些交易记录会被按照一定的时间和数量进行打包,这个打成的包就被称为「 区块 」
之后这个区块被记录在打包它的节点上,并且连接到当前节点记录的前一个区块之上。
这些连接在一起的区块,就被称为「 区块链 」
那么现在第一个问题出现了,我作为一个节点,我为什么要帮别的节点的上的交易记录进行打包呀?
在中本聪设计的区块链系统中,一个节点在进行打包时,会得到比特币货币作为激励的。
它的设计中,整个区块链系统会每过 10 分钟打一个包。最开始的四年,每打一个包,该节点会获得 50 个比特币;之后下一个四年里,每打一个包,该节点会获得 25 个比特币;之后每过四年,打包获取的比特币都会减半。
那么其实根据这个设定,可以算出来比特币一共有多少个:
但是整个区块链上那么多节点,每个节点都可以进行打包呀?该以谁的包为准呢?
中本聪的设计里,采用了一个「 工作量证明 」的机制去决定谁打的包是有效的。
可以简单地理解为,节点在打包时,需要去做一道很难很难的数学题,谁先做出来了,谁打的包就有效。这个过程就叫做「 挖矿 」而这些尝试打包的节点就被称为「 矿工 」。那这个数学题具体是什么样的呢?
首先让我们先看看被打成的包,也就是 "区块" 具体是由哪些东西组成的。
除了最重要的 "交易信息" 一个区块里还会包含 "上一个区块的 Hash 哈希值",以及 "当前区块内容的 Hash 哈希值"。

区块链系统会用打好的包的信息,加上一个「 随机数 」作为输入,进行两次 sha256 的哈希运算。
sha256(sha256(input))
系统会要求,算出来的结果的前 n 位都是 0,才算是算对了。节点只能通过调整随机数,来获取不同的输出结果。并且系统通过调整 n 的大小,可以做到对计算难度的调整。

虽然随机数的选取会有一定运气的成分,但是平均算下来,哪个节点的算力越强,它能够成功打包的几率就越大。同时也意味着这个节点付出了更多的工作量。它理应得到这个奖励。
同时,其他接收到新打包好的区块的节点,可以通过去验证区块的哈希值是否满足条件,来判断这个区块是否有效。
下面我们来说一下如何去保证节点之间的交易记录是真实的呢?
区块链系统采用「 电子签名 」来保证交易的可靠性。
对于区块链的使用者,在创建账户的时候。系统会生成一个随机数,并且采用一种非对称加密算法来生成一个密钥对,其「 公钥 」作为账户地址,也就是常说的区块链钱包地址。这个地址是可以公开的。同时也会生成一个「 私钥 」,使用者需要自己保管好,不能被其他人知道。
私钥用来对一个记录进行加签,公钥用来对一个记录进行解签。
假如 A 同学要转账给 B 同学 10 个比特币,那么系统会先对这个转账操作计算出一个哈希值,然后用私钥进行加签。同时对网络中其他节点广播此次的转账操作和加签得到的签文,以及 A 同学自己的公钥。
其他节点在拿到后,会用 A 同学的公钥对这个签文解签,然后与代表转账操作的哈希值进行对比,检查是否一致,如果一致则认为是有效的。现在让我们来设想这样一种情况,假设几乎就在同一时间,有两个节点都完成了工作量证明,它们各自都打了包,并且广播了出去。那么就会发生有节点分别接收到了不同的区块。此时这条区块链就发生了「 分叉 」
但是没关系,中本聪为区块链设计了「 最长链原则 」
这些接收到了不同块的节点,会当做什么事都没有发生,继续地进行打包。直到有一条分支优先打出了一个包,此时这条分支就会变得比别的分支长。那么其他节点发现有另外一条更长的链的时候,就会抛弃掉自己的短链,重新站队到更长的链上。
因为区块链采用了最长链原则,这样顺便防止了「 恶意篡改 」
假设现在有一个人要修改某个区块上的数据,因为下一个区块是基于前一个区块的哈希值得到的,这个人基本上没有办法把后面的块都改了。
所以这个人只能在修改的区块上创建一个新的分支,而这个分支必然是比其他链短的,所以根据最长链原则,这个分支就会被抛弃掉。
那假设想篡改的人,刚好找到了最长链所在,然后进行篡改,那岂不是后续的链路的数据都有问题,且还都改不了?如果矿工 A 拥有足够的算力,当矿工 B 正在生产区块 1 的时候,矿工 A 已经生产了区块 1,同时继续快速生产被篡改的区块 2,然后矿工 A 将区块 1 和 2 一次性地全部广播到网络中,那么之前矿工 B 生产的区块就会被当作短链而抛弃,被篡改的区块就会被 B 所接受。
但其实这种攻击不足为惧。我们假设整个区块链网络中有着数不清的节点。它们同时都在各自地进行区块的生产。矿工 A 可能会在某一时间生成了整个网络中最长的那条链,它的恶意区块也可能会被部分节点所接受。但它的恶意区块不会瞬间同步到所有的网络节点。所以除非 矿工 A 能一直保持比其他节点更快地生成新节点,否则它的恶意篡改很快就会被其他节点生成的更长链所替换。
一种默认的设想是,如果矿工 A 具有了比整个网络中所以的节点都快的算力,那它真的还有动机去做恶意篡改的事情吗?它的收益与付出完全不成比例。什么是以太坊?
上面我们给大家简单地介绍了一下什么是区块链和比特币。
别着急,为了更好地了解 NFT,我们还需要知道什么是以太坊。
在 2013 年,19 岁的加拿大籍俄裔少年 VITALIK BUTERIN 创建了「 以太坊 Ethereum 」

与比特币相比,以太坊属于区块链 2.0 的范畴。通过上面 对区块链和比特币的讲解,你会发现中本聪设计的比特币只适合加密货币交易的场景。但以太坊除了拥有上述区块链的基本功能之外,它还是可编程的。

以太坊提供了一个「 智能合约虚拟机 」称之为 EVM。
在增加了 EVM 这个虚拟机之后,以太坊就变成了一个可编程的去中心化平台。开发者可以通过 EVM 提供的编程 API 去编写一个叫做「 智能合约 」的东西。
智能合约就是指一套在区块链上的可执行的指令集,这些指令集通过 EVM 的解释和执行,可以对区块链的状态进行读写,开发者可以以此来实现一些业务逻辑。
同时为了更好的帮助开发者,以太坊提供了一个叫做 Solidity 的编程语言。
开发人员使用 Solidity 语言编写业务逻辑,通过编译器,可以将代码编译为 EVM 虚拟机能够理解的智能合约代码了。
之后可以将智能合约部署到区块链上,部署成功后会得到一个以太坊的地址,这个地址指明了该合约代码存放的位置。
此时,其他节点就可以通过访问该地址,来调用合约对外开放的接口和功能。代币 Token & ERC-721 智能合约
通过上面对于区块链,以及以太坊的介绍。我们可以想象,通过以太坊的可编程能力,我们可以创造出来一种方式,去生成一个不可篡改,永远唯一的一个 ID。并且还可以给这个 ID 增加很多其他的能力。
在这里我们把这种 ID 称之为「 代币 token 」
我们通过编写的智能合约去定义这个代币所具有能力。
它可以被用来作为类似于比特币的数字货币,身份信息,当然也可以被用来作为「 NFT 」
NFT 就是由一套智能合约去定义的,非同质化的代币 Token。数字内容被转换为 NFT 后,就变成了一个具有不可复制,完全唯一,不可篡改的能力的代币。
最知名的一个 NFT 智能合约就是「 ERC-721 」
下面 是这个合约的接口定义。
我们可以看到这个接口中包含了:创建,查询,授权,转账,销毁,等等一系列与 NFT 相关的能力。NFT 到底能干嘛?
现在,我想你应该大概了解了 NFT 是一个什么东西。那它到底有什么用呢?
它卖的那么贵,我可以把它作为投资理财产品吗?
其实我觉得卖的贵与不贵,是属于一个范畴更大更复杂的经济学问题。在这里我们不去进行讨论。
我们来看一下它更生活层面的应用。
在现实生活中。我可以用 NFT 去加密版权信息,知识产权,身份信息,软件的源代码,合同等等这些东西。NFT 可以赋予这些现实生活中的东西具有唯一性,具有不可篡改的能力。
在虚拟世界里呢?
最近「 元宇宙 Metaverse 」这个词非常的火 甚至 Facebook 都将自己的公司名字改成了 Meta。
甚至这个月 Facebook 还对外公布了一款开发中的触觉手套。

其实在如今这个时代,现实与虚拟的界限已经越来越模糊了。
我们就像远古时代的新人类。我们需要有一种东西能够帮我们在虚拟的世界里,去实现「 这个东西是我的 」这个概念。其实 NFT 就帮我们实现了去拥有虚拟物品的所有权。
比方说:网路游戏中的道具;编写的代码,文档;录制的视频/音频内容;数字艺术作品;电子书籍;等等一系列直接依托在互联网上的内容。
我看到有一种比喻,我觉得很贴切。NFT 就像是印刷机。
印刷机的发明,让我们把现实世界中难复制的文字,变得可复制。
而 NFT 帮我在虚拟世界里,让容易复制的东西,变得可信赖。
有人说 “网上的东西都是虚拟的,你把握不住 ”
但其实有了 NFT,你就可以把握住了