2021,NFT大火。
从朋克头像、混血猫咪到无聊的大猩猩,各路风格的CG作品“你方唱罢我登场”,纷纷乘着NFT的风口“上链”。第一个Twitter、第一条手机短信、NBA明星球员的“精彩瞬间”……似乎没什么不能NFT,没什么不能“上链”。佳士得6900多万美元的成交天价更是将NFT一举送上神坛。
NFT是什么?持有NFT,到底会获得哪些权益?它跟“区块链”有什么关系?跟“元宇宙”、Web3.0这些概念又有什么关联?
一切答案,其实都要从定义NFT的“智能合约”谈起。
NFT,全称叫Non-Fungible Token,翻译成中文是“非同质化通证”,与之相对的概念就是“同质化通证”(Fungible Token,“FT”)。
FT属于“种类物”,人们关注的是它们的面值和数量,并不在意它们彼此之间的区别(比如序列号),所以,相同数量的FT价值相同,可相互替代;NFT相当于“特定物”,每一枚都具备与众不同的属性和特点,因此,不同的NFT彼此不能等价互换。
不论FT还是NFT,其实都是在区块链上用智能合约定义的簿记权益,通俗点说就是在数字化账本上存储的关于财产归属和财产数量的权益记录。FT的簿记,类似于银行给储户开立的分户余额账,核心就是记录每个账户有多少余额;NFT的簿记,则类似于不动产登记中心的房产档案,核心在于记录每个房屋的权利人是谁,以及房屋坐落、面积等属性。
所以,FT的智能合约,核心内容是一个由“账户”指向“余额”的映射集合,通过“账户”编号能快速地检索出“余额”的数量;而“转账”,就是把“转出”账户的余额减少特定数量,同时把“接收”账户的余额增加相应数量。
而NFT的智能合约,其核心内容则是一个由“Token编号”指向“账户”的映射集合,通过“Token编号”能快速的检索出持有这枚Token的“账户”;而NFT的“转让”,就是把特定Token编号所指向的“账户”从“转出”账户修改为“接收”账户。
智能合约的其余内容,NFT与FT都差不多:定义Token的名称、符号、发行总量等等。然而,NFT会有一个非常独特的描述性变量或字段,详细地界定每一枚NFT所指向的“标的数据”的属性特征,那就是——“元数据”。
元数据(Metadata),听起来是个很玄、很科幻的名字,总让人联想到“元亨利贞”或者“N次元空间”之类的名词。其实,它本质上就是对某个数据集合或者数据对象的结构、位置、内容等特征的描述,特别类似于《房产证》上对房屋坐落、面积等房屋特点的描述。
根据《房产证》上对房屋特点的描述,人们很容易就能找到房屋的位置,理解房屋的结构、大小等基本属性。与之类似,根据“元数据”的描述,计算机程序就可以找到“标的数据”的位置或索引,了解其数据类别和编码规则,从而实现对“标的数据”的访问和解析。当然,也可以在“元数据”中加入各种“注释”类的信息,从而让每一枚NFT都显得“与众不同”或者具备“私人订制”的特点。比如,在NFT发行时,将艺术品作者的名字或者NFT认购者的ID写入其中。
不同的NFT项目,其“元数据”的设计方案并不完全相同。比如,著名的朋克头像项目,其实是将1万个24x24点阵的朋克头像拼合成一个PNG图片,然后将这个图片文件的哈希值(详细解释见下文)作为一个特殊的不能修改的属性变量写入智能合约,结合着每个头像的编号,在逻辑上共同构成每枚NFT的“元数据”。这样,每枚NFT都会对应着一个特定编号的头像,而每一个头像都可以凭编号从拼合的大图中找到相应位置的显示单元。大图片的内容通过智能合约的哈希值可验证真伪,从而间接存证每枚NFT对应的朋克头像的数据内容。
无聊猩猩(Bored Ape Yacht Club,“BAYC”)是个非常有诚意的NFT项目,其“元数据”的设计理念和标的数据的存储方式非常严谨。首先,计算每个猩猩头像图片的哈希值,然后将这个哈希值与对应的Token ID连接成字符串再进行第二次哈希计算,最终结果作为该枚Token的“元数据”写入智能合约。同时,标的数据,即每枚Token所对应的猩猩头像图片,再以“内容寻址”的IPFS协议(详细解释见下文)存入IPFS分布式存储网络。这样,NFT的“元数据”,既能验证猩猩头像的数据内容,又能验证头像图片与Token ID之间的映射关系,还能进一步通过哈希表查找到图片的存储位置。区块链存储的NFT智能合约与分布式存储的头像图片相互协同,真正意义上实现了“图片及其权属信息”可永久性保存且不可篡改的目标。
哈希算法,是目前在数据加密、数据完整性验证、数字签名、区块链等领域非常常用的一项技术。它的基本功能就是将任意长度的源数据转换为特定长度的摘要值(“哈希值”),而且可以保证源数据的任何细微变化都会导致其摘要值发生明显改变。同时,哈希算法还满足一般加密函数的基本要求,那就是从源数据推导出哈希值很容易,而从哈希值反推源数据却几乎不可能。也就是说,哈希函数不能被轻易“破解”。
哈希函数的功能特点,就好像给数据录制“身份指纹”,不同的源数据必定会生成不同的哈希值,而不同的哈希值绝不会对应相同的源数据。所以,人们就可以利用哈希值来标记、识别数据的“身份”,校验数据存储、传输过程中是否完整,是否发生丢失或被篡改。
哈希算法有很多种,区块链领域中常见的有SHA256、keccak256等,我国密码局推出的商用密码杂凑算法SM3也是一种摘要值长度为256位的哈希算法。计算机能识别和计算的文件最终都是以二进制形式存储、传输、运算的,数据文件的大小最终体现为序列化二进制数据的不同长度,也就是在计算机内存、硬盘等存储介质中所占用的比特位数。不论源数据多大、长度上占据多少比特位,经过前述这些哈希函数的计算,获得的计算结果都会是占据256位这么长的摘要数据,按8位一个字节折算,就是32字节。当然,不同算法获得的哈希值会彼此不同。
设计严谨的NFT项目,会在“元数据”中写入每一枚Token对应的多媒体文件的哈希值,从而标记、锁定不同Token所指向的“标的数据”的具体内容。
NFT其实并不存储图片、视频或音频文件,只是在“元数据”属性中记录了这些文件的数据特征。换句话说,NFT本身并不具备任何可直接转变为画面、影音的数据,既不能“观赏”,也不能“聆听”,完全是一个抽象的信息记录。
所谓“上链”,并不是能展现艺术品影音特点的多媒体文件“上链”,其实只是数据文件的“权益簿记”以智能合约的形式写入了区块链。人们通常对于NFT的感性认识,无论是卡通图片、3D动图、短视频,还是音乐,其实都是另一个多媒体文件经软件解析处理后通过屏幕、喇叭等外部设备呈现的,而这个多媒体文件就是NFT的元数据所描述的“标的数据”。
所以,NFT的“标的数据”在哪里存储,谁负责存储,可以存储多长时间,存储的成本由谁承担,这些问题其实直接关系着NFT的核心价值。试想,如果数千万美元拍卖取得的NFT,突然有一天“看不见了”,投资人将会是种什么感受?
当代网民应该非常熟悉HTTP这个词,几乎每天都会在浏览器的地址栏中输入几十次以http开头的网址来访问、浏览网页。这其实就是一个寻找、下载数据文件的过程。首先,浏览器会将网址发送给域名解析服务器,将域名地址解析为IP地址,然后根据IP地址找到特定的服务器,再从服务器下载网页文件到本地,最后通过浏览器将网页文件解析为包含文字、图片、动画、音乐、链接的多媒体页面,通过计算机屏幕、喇叭呈现出来。
在线多媒体文件被存储在特定地点的特定服务器上,全球用户所能看到、听到的信息都源自这个特定服务器,一旦服务器宕机、掉线,或者控制这台服务器的网站运营者倒闭、破产,用户就无法访问相关文件,这就是当前万维网的“中心化”文件存储模式。
目前很多NFT项目,都是采用这种中心化存储模式来存储“标的文件”的,然后,通过HTTP协议和域名地址来寻找、访问它。所以,在这些NFT项目的元数据描述中,域名地址都会是一个必备内容,协助与区块链交互的应用程序快速定位并找到多媒体文件,进而让用户对NFT产生图画、影音等感性认识。(然而,很少有项目会说明NFT与其“标的数据”之间的区别,以及多媒体数据文件并没有“上链”的事实,更少有项目会提示数字商品可能随标的数据一道灭失的风险。)
IPFS,是前述中心化文件存储模式的强有力挑战者,全称是“InterPlanetary File System (星际文件系统)”。它最本质的特征有三个,一是将中心化存储改为分布式存储,让全网的每个计算机节点都能提供文件存储服务;二是将传统的IP寻址方案改为内容寻址,以哈希值为依据寻找、访问数据资源;三是将数据文件拆分成小块单元数据,分散存储在多个计算机节点上。
IPFS的分布式、数据拆分存储方案,可以彻底摆脱中心化存储模式带来的数据毁损灭失风险。文件一旦存入IPFS网络,一个或几个节点的故障或灭失,很难破坏文件的数据完整性。同时,以哈希值为依据的内容寻址模式,又可以有效的固定和验证文件内容,自动排除篡改、伪造数据对原始内容的消极影响。
所以,无聊猩猩的头像,将永久性的保存在IPFS的网络当中(除非全网节点同时宕机或同时删除特定文件),只要正确的输入其哈希值地址,永远都能找到它,而且是那个每个比特都没有被改动过的最最“真实”的“大猩猩”。
NFT的权益簿记、交易规则是智能合约定义的,而不同区块链系统之间,智能合约的存储方式、访问策略却差别很大。其中,最主流的是“以太坊”模式,将智能合约编译后直接存储在区块链上,合约内容不能被篡改,所有的用户都能访问、获取合约内容,从而可以公开透明地了解智能合约的规则、合约中记录的状态数据和变动情况;另一种模式以“Fabric”为代表,将智能合约安装部署在参与节点上,余额、权属等状态数据则存储在与合约相分离的状态数据库中,区块链上记录的仅是状态数据集的变动情况,普通用户通常无法获取合约源代码、无法直接了解合约规则。
NFT之所以被描述为可“持久性记录”数字作品的权益归属、并且这种权属记录“不能被篡改”,核心原因就在于其基础区块链是去中心化的分布式数据库,所有节点都会同步、实时更新区块链数据,而且都会以“先对账、后记账”的逻辑记录,所以,一个或几个节点被恶意控制或发生事故,很难影响全网保存的区块链数据记录的完整性。
当然,“去中心”不完全等价于“公有链”。目前,联盟链架构也可做到任何一个联盟成员都不能单独作恶,各联盟成员之间彼此监督、彼此制衡,也符合“去中心化”的基本逻辑。如果是区块链的全部节点完全掌握在一个主体手中,那就叫“私有链”。严格意义上说,私有链只是个不容易篡改的数据库,并不符合“去中心化”的基本逻辑。
每次NFT的权属变动,都会在区块链上留下一个“交易记录”。区块链上的交易记录,一般会以哈希值为检索标签存储在区块中,所以,NFT项目通常会将“铸币”交易(从“0”地址转让给“铸币人”)、“发行”交易(从“铸币人”转让给“认购者”)或“赠与”交易(从“持有人”转让给“受赠人”)的交易哈希值,以某种方式展示出来,供用户检索、验证。
在银行存款,需要掌握开户行、户名和账号信息,这样才能查询交易记录、余额状况,乃至发出指令调动款项;与之同理,购买NFT,需要掌握区块链、合约地址和用户账号,这样才能充分跟踪、查询、验证NFT所记录的权属信息,指令转移NFT的权属。当然,如果是Fabric模式的区块链,就不会提供“合约地址”信息了,只能依靠合约开发时预留的API,提供有限的功能接口供用户使用。
NFT项目起源于以太坊公有链,开源社区为了统一NFT的功能接口、数据结构等事宜,开设了话题专区以讨论源代码的通用规范,后来就形成了一个以Solidity语言编写的智能合约基础模板——ERC721。目前,很多区块链系统都兼容Solidity语言,采用以太坊的虚拟机技术和基本逻辑存储、编译、执行智能合约。因此,常见的NFT项目都遵循了ERC721的基本规范,因此会提供诸如合约地址、交易哈希、用户账号,甚至区块链浏览器,供用户查询、校验NFT信息。
长久以来,数字作品只有著作权,没有所有权。
原因很简单。数字作品,特别是依靠互联网传播、展示的数字作品,无法控制其媒体文件的复制与流转,或者说,控制数据的复制与流转将直接与传播、展示数字作品的商业目标相冲突。人们能够从网上看到、听到数字作品,就意味着已经将多媒体文件下载、复制到了本地,只有通过电脑、智能手机等本地终端设备的解析,才能将数据文件转变成文字、图画、影音,才能让人欣赏、聆听到数字作品。
NFT的出现,目的就是为了解决这个数字作品所有权的问题,就是通过去中心化、不可篡改、难以毁损的区块链账簿,记录下数字作品的所有权归属和变更情况。然而,“物权法定”,在未能获得主权国家法律支撑的情况下,NFT所体现的权益簿记只能是一种“民间契约”或“社区章程”,在NFT项目方、铸币人、持有人等有限的人群中获得认可,缺少国家强制力的认可和保障;另一方面,数字作品的前述特性决定,即便认可了NFT的簿记权益,客观上也无法对“标的数据”实现传统意义上的有效占有或控制,无法实现传统意义上“所有权”的各项权能。
当然,如果NFT项目的运营方同时运营着网络游戏,或者……某个“元宇宙”应用!!!那么NFT的簿记权益就完全可能获得这个“虚拟空间”甚至“虚拟宇宙”的认可,从而以某种虚拟世界特有的形式实现对标的数据的占有、使用、收益和处分。回到现实,这其实是NFT项目运营方设计或保障的、虚拟世界的所有权,跟现实世界的所有权相比,其实存在着难以逾越的逻辑界限。
关于NFT的法律属性,有两点值得强调和关注:
其一,NFT与标的数据通常是彼此分离的。NFT的上链,并不意味着承载着影音信息的标的数据也上链了,NFT的智能合约并不具备直接转化为图画或影音的功能。因此,NFT或区块链并不是数字作品的发行或传播方式,多媒体文件所承载和实现的数字作品著作权,并不会因为NFT的出现而发生本质改变。从著作权的产生、行使、保护、权利救济,到法定豁免原则,都不会受到影响;
其二,所有权与著作权是完全不同的法律概念。即便是作者本人铸造并发行了NFT,也并不意味着NFT的持有人就能获得数字作品的任何著作权。如何展示、使用数字作品,完全得靠自然语言合约或其他法律文件来约定或授权。
然而,并不是所有的NFT项目都没有附带著作权,无聊猩猩这个项目就非常有诚意,通过项目网站的用户协议把猩猩头像的商用许可授予给了NFT的持有人,允许持有人在特定条件下制造并销售猩猩头像的衍生品。
所以,如果哪天你走在街上,看到某个新生代的T恤上印着“价值连城”的无聊猩猩,别想歪了,那可不一定是个侵权产品哦!