0%

坚实的区块链基础,共识依赖:NFT的两面性

NFT的全称是Non-fungible token,是一种基于以太坊区块链的“非同质化代币”。

区块链

作为NFT技术基础的区块链涵盖的内容过于广泛,我们很难用一句话来定义它。我们认为,它涵盖了如下要素:

  • 区块内存储数据。后续区块引用上一区块,且验证上一区块数据的真实性,以防止数据被篡改。
  • 非对称加密算法防止身份被伪造。
  • 网络是去中心化的。在确认新区块和链的过程中,网络中所有计算机(节点)是平等参与的。
  • 依赖共识机制。所有节点共同确认每个新区块和链。欺骗整条链路需要掌握绝大多数节点或者付出及其高昂的代价。

区块链模型

上图是一个比较简单的区块链模型。每一个区块包含了前一个区块的加密散列、相应时间戳记以及交易记录。

以太坊与智能合约

以太坊是一个基于区块链技术的去中心化平台,也是使用最多的区块链平台。

相对于其他区块链平台,以太坊最大的特点是它支持“智能合约”。一个智能合约就是存储在以太坊区块链上的一段代码和相应的数据。节点可以通过发送交易请求,和智能合约交互。

智能合约

一个描述智能合约的经典例子就是自动售货机:

  • 选择商品 + 支付金额 = 售货机吐出商品

是的,智能合约可以非常简单。

NFT与以太坊ERC721协议

基于上述背景,我们终于可以引入本文的主角NFT——非同质化代币。所谓“非同质化”,是相对于同质化的加密货币而言:每个加密货币显然是相同且不唯一的。而每个NFT都是唯一的。

NFT作品可以是一张图片、动图,一段音乐,或者一段视频。一切可以数据化的物品都可以被铸造成NFT。

NFT是通过智能合约铸造的。从下图可以看到,在创建了智能合约之后,我在同一个智能合约上铸造了5个NFT。每次铸造的记录都可以在以太坊区块链上被查询到:5次记录的合约地址是相同的。

NFT铸造记录

除了智能合约的地址,我们还需要NFT在这个合约上的Token ID。这两者可以唯一标识NFT。

NFT: Bored Ape 5230

合约地址和Token ID唯一标识了NFT

而以太坊ERC721协议规范了如何铸造NFT。如果一个非同质化代币智能合约符合ERC721协议,我们可以用以下接口与这个智能合约交互,比如:

  • blanceOf: 查询一个地址持有的NFT
  • ownerOf:查询一个NFT的所有者
  • safeTransferFrom:交易NFT
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// 以太坊ERC 721协议
interface ERC721 {
event Transfer(address indexed _from, address indexed _to, uint256 _tokenId);
event Approval(address indexed _owner, address indexed _approved, uint256 _tokenId);
event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved);

function balanceOf(address _owner) external view returns (uint256);
function ownerOf(uint256 _tokenId) external view returns (address);

function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable;
function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable;
function transferFrom(address _from, address _to, uint256 _tokenId) external payable;

function approve(address _approved, uint256 _tokenId) external payable;
function setApprovalForAll(address _operator, bool _approved) external;
function getApproved(uint256 _tokenId) external view returns (address);
function isApprovedForAll(address _owner, address _operator) external view returns (bool);
}

NFT的存储形式

NFT被铸造后,就永远被保存在以太坊的区块链上了。如下图所示,我的一个NFT被存储在第7958481号块上。在这条链上,后续的582个块相继确认了上一个块的数据的真实性。


那么,区块链如何存储这个NFT呢?tokenURI是我们在铸造代币时所传的参数,这是一个IPFS地址。

1
mintNFT("ipfs://QmXLej3Zgx13Ytpv1XuVQbqQT4iCWrjSpUFhSnP4LdkpQx")

IPFS是一个去中心化的分布式文件系统。我们访问这个IPFS地址:返回一个JSON数据,它描述了这个NFT。它的一些属性是我自定义的。我们需要关注image的值,它还是一个IPFS地址。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
"attributes": [
{
"trait_type": "From",
"value": "Xiling Seal Art Society"
},
{
"trait_type": "To",
"value": "MSTR"
}
],
"description": "Exciting",
"image": "ipfs://QmPcBgxW8JiuF8pK6WC8KwkHiM54Ak6khCQoDmcx5woBWg",
"name": "Exciting"
}

我们继续访问这个IPFS地址,它最终返回一张图片。

这就是主流的存储NFT的方式。为了节省以太坊区块链的空间,区块链只存储一个去中心化的文件地址;NFT指向的数据存储于去中心化的文件系统。

传统艺术品的痛点

最引人注意的NFT形式是天价数字艺术品。数字艺术家Beeple从2007年开始每天创造一张图片,最后将这些图片拼成下图的《Everydays:The First 5000 Days》。这件作品在佳士得拍卖行以6900万美元的价格拍出。

人们关注数字艺术品,这和鉴定传统艺术品真伪的痛点有关。

对于传统艺术品,造假者不会直接去复刻名家们的作品。因为这些作品当前的所有者,无论是机构还是私人收藏夹,这都为人所知。

造假者会去模仿而非创作。

以20世纪做最著名的造假者——范米格伦为例,他会购买被模仿者所处年代的颜料、画布、画框,模仿其技巧和风格;完成之后做相应处理,使其变色开裂,使画作符合其年代特征。

然后,造假者往往以中间人的身份出现,为赝品的来源编造一个故事,一个比较经典的范例是——这些作品的卖家是逃亡南美的纳粹后人, 卖家担心自己被清算,所以不想说出自己的身份。

如果造假者成功地欺骗了专业的鉴定者,那赝品会以新发现的名家作品的面貌出现在画廊和拍卖行。

是的,传统艺术品没有绝对的真伪评判标准。这是传统艺术品的痛点所在。

NFT: 可追溯且不可篡改

以上面提到的NFT,《Everydays:The First 5000 Days》为例,自从它在以太坊主网上被铸造,它的每一次交易都可以在链上被追溯。

较早的一条交易记录显示:卖家Beeple在611天前将这件作品交易给0x58bf1。0x58bf1是佳士得拍卖行在以太坊上的地址。

之后的一条交易记录显示:在1个小时后,它被流转给买家,Metakovan。显然,买家在这一个小时内就完成了付款。

NFT底层的区块链技术保证了一切记录都是可追溯且不可篡改的。这解决了鉴定艺术品真伪的痛点。

共识与社交价值

尽管NFT无法被伪造和冒充,但是我们可以任意访问,下载和传播一件NFT作品。

在NFT作品频频被拍出天价的背景下,我们难免会怀疑NFT的收藏价值。这是否是一场泡沫?
那我们能否直接使用不属于我的NFT作品呢,比如用来做头像?

一个NFT社区共识是:“把不属于自己的NFT当做自己的头像,这是可耻的;除非你拥有它。”

“强行”拥有一个NFT的代价就是被鄙视。而在收藏品领域,收藏者重视社交价值。

总结

NFT的技术基础——区块链是完善且坚实的。而NFT的收藏价值,依赖人们对数字艺术品的共识。这种共识存在却不好估摸。

NFT既有着无限可能,又看起来很脆弱。NFT的结局会如何,我想,只有时间会告诉我们答案。