来源:孟岩的区块链思考

作者:孟岩、王玮、周志强

原标题:《可计算NFT:概念、意义和核心思想》

 

Solv团队已经开始正式撰写文档,将于近期通过EIP过程提交一种新的加密数字资产标准文档。目前我们在内部称其为vNFT,定位为「可计算 NFT(Computational NFT)标准」。据我们所知,如果获得通过,这将是首个由中国背景的团队提出的加密数字资产国际标准。

Solv创建的vNFT致力于为非匀质化通证NFT添加可计算性(computability),即在保留NFT强大的个性化描述能力的同时,使「数量」成为其 NFT 的核心属性,使之能够支持数学运算。可计算NFT是兼容ERC721的「超级 NFT」,同时具备ERC20与ERC721的特长,是通用的非货币类数字资产描述协议,可以广泛应用于数字艺术品、数字出版物、数字票证、标准化虚拟商品的描述和表示,也可以成为线下实体商品映射上链的理想协议。

NFT并非不可计算,一文读懂可计算NFT的基本思想、设计方案和应用意义

图 1. 可计算 NFT、vNFT 和 Solv Vouchers 在整个通证技术体系中的定位

可计算 NFT是通证(token)技术体系的最新发展,是具有重大研究和应用价值的新领域。Solv团队已经率先在 Ethereum 上开发了可计算 NFT的参考实现,并在Solv Vouchers 产品当中得到验证。由于Solv率先实现的可计算 NFT被称为Voucher,因此在相关提案还未标准化之前,我们称这一通证标准为vNFT。

vNFT是一个平台无关的数字资产标准,当前已经在以太坊上实现,将很快快在 BSC、Polygon等链上实现,未来还计划在Solana、NEAR、Polkadot 等各种主流公链和以太坊 L2上实现。

对数字资产有所研究的读者将不难看出,可计算性与 NFT 的结合将激发巨大的创新。我们将不但根据 EIP 的要求公开全部标准文档,而且在合适的时机,全面开源参考实现的代码,欢迎全世界的数字资产创新者与我们共同推动这一技术的应用。

本文简明扼要地介绍可计算NFT的基本思想、设计方案和应用意义。为了表述的精确化,对用语作出以下约定:

可计算 NFT (Computational Non-fungible Token) 是指具有可计算性的NFT。

vNFT是 Solv 团队提出的可计算 NFT 实现协议,我们将根据 EIP 提出申请,力争令 vNFT 成为可计算 NFT 的行业标准。在不产生误解的情况下,本文有时也用 vNFT 表示一个具体的 token。

Voucher 是泛指在遵循 vNFT 标准的具体的可计算 NFT。任何人都可以基于 vNFT 创造一种面向某个具体应用的 voucher,例如代表提货单的 voucher,代表产权证书的 voucher,代表投资份额的 voucher 等等。在不产生误解的情况下,本文有时也用 voucher 表示一个具体的 token。

NFT并非不可计算

匀质通证(FT)的主要优势就在于其可计算,因此适合用来表达货币、积分这种纯粹数值性的对象。而非匀质通证(NFT)的主要优势在于其描述能力强,每一个 NFT 都可以有不同的性质和内容。所谓描述能力强,换一种说法就是效率高。假如有 100 件不同的物品要以 token方式描述,如果使用FT 技术,例如ERC20 标准,那就要编写 100 个不同的 ERC20 合约,发布 100 种不同的 ERC20 tokens。

做一个类比,在ERC20里,为了生产 100 件不同的产品,要先建设 100 间不同的工厂,然后每个工厂只生产一种产品,效率自然是很差的。而在 NFT 中,只需要创建一个 ERC721 合约,然后铸造 100 个不同 NFT,在每一个 NFT 当中写入不同的数据内容即可。这就好比只建造一个工厂便可以生产 100 件不同的产品,效率自然更高。

当前的 NFT 主要基于 ERC721 协议创造。这种协议所创造的 NFT,每一个都是独一无二的,既没有同类,也不可拆分。就好比这家工厂有一个怪脾气,每一种产品只能生产一个,不能生产多个,因此 ERC721 有一个巨大的缺陷,就是不可计算。

为什么说不可计算?在 ERC721 里任意两个 NFT 都不能相加,连加法都不能做,自然不能进行其他的计算。

由于先入为主的观念影响,很多人在谈到 NFT 的时候,都将其不可计算性认为是理所当然,甚至把它当成 NFT 的本质属性和价值来源。很多人认为,既然一个苹果加一个梨子是没有意义的,那么一个 NFT 与另一个 NFT 当然也不能相加,更谈不上数量乘法等更高级的计算。

但其实稍加深入思考便会意识到,NFT并非一定不可计算。

就拿艺术品和收藏品来说,达芬奇的《蒙娜丽莎》和颜真卿的《祭侄文稿》自然是独一无二的,但是版画、海报、邮票、明星卡、碑帖拓本等物品,则可以是限量发行、而非独一无二的。比如一版邮票,限量发行一千套,而在其中任意两套,虽然严格来说确实是不同的,但它们之间的差异非常微小,以至于我们可以忽略它们的差异,抽象地把它们看成是完全一样的。

换言之,这种忽略与抽象本质上是一种再匀质化的过程,我们将本来非匀质的、彼此不同的一组物品在概念上变得各个相同的匀质物品了。既然是匀质的,在很多场景中就可以进行计算了。其中一个最突出的场景就是价格计算。比如一套邮票价格是 200 元,那么另一套同版的邮票价格就是 200 元。几乎不会有人会因为这两套邮票有几个像素的差别而要求不同的价格。同样的,一张三年期 100 元面值的国库券现价是 90 元,那么 10 张同样面值的国库券现价就应该是 900 元,不会有人因为其中有一张国库券有一个折角而给出不同的估值。

由此可见,NFT 的不可计算性绝非天经地义。对于很大一类 NFT 来说,可计算将为它们的实际应用带来巨大的便利。

哪些 NFT 是可计算的呢?主要有这么一些:

  • 标准产品的数字代表

  • 各种单据和证书

  • 数字金融票证和标准化合约

  • 限量发行的数字内容

  • 限量发行的虚拟商品

  • 可份额化的权利证书

抽象与归类是NFT可计算性的基础

世界上没有两片树叶是完全一样的,也没有两个苹果是完全一样的。只要不进入微观世界,那么这世上只有一个又一个截然不同的东西。我们永远不可以把一个苹果与另一个苹果加起来,也得不出「两个苹果」这一概念。所以,鲁迅说墙外的两株树,一株是枣树,还有一株也是枣树,这便谈不上是什么文学了。

幸好人类具有一种了不起的认知能力,就是抽象与归类。所谓抽象,其实就是有目的地忽略一个物品的特殊之处,而强调它与其他某些物品之间的共性,并基于这种共性将这些物品放在某一个概念之下,归于一类。正是由于这种能力,人们可以发展出「苹果」、「树叶」、「老虎」、「枣树」这样的概念,并且在一定场景之下,允许在同类物品之间进行加和计算了。当我们说「两只苹果」的时候,实际上是把两个被归于同类的物品抽象为一模一样的东西,消除它们之间的差异,进行了一次「再匀质化」,然后在做一个一加一等于二的操作,才能创造出「两只苹果」这样的概念。

这样一套逻辑同样适用于 NFT。两个 NFT 当然是不同的,但是如果我们应用抽象与归类,忽略掉它们的不同,那么就可以消除它们之间的差异,将它们重新「匀质化」,从而也就可以进行包括加法和数量乘法在内的多种计算了。

然而 ERC721 作为当前主流的 NFT 标准,片面地强调每一个 NFT 的独一无二,并没有提供一套标准的方式来对 NFT 进行抽象与归类。这就是 ERC721 NFT 不可计算的根本原因,也是可计算 NFT 创新的出发点。

vNFT 的基本思想

vNFT 是可计算 NFT 的一个具体标准,其目的在于为 NFT 添加可计算性,具体的说,就是允许在 vNFT 中批量化的创造大量同类的 NFT。这就好像 vNFT 这间工厂,既可以生产独一无二的产品,也可以按照要求大批量生产一种产品,灵活性和效率都达到了最佳状态。

vNFT 基于以下三项基本思想设计:

  • 将「数量」作为 vNFT 的核心属性;

  • 提供一套标准的抽象与归类的机制,即 SLOT 机制;

  • 与 ERC721 兼容。

数量作为 vNFT 的核心属性

ERC721 认为每一个 NFT 都是独一无二的,因此其缺省的数量都是 1。既然都是 1,也就没有必要显明地表示出来。

可计算 NFT 则不同。一个可计算 NFT 一定包含一个数量属性,这是其可支持数学计算的基本原因。为此,我们将数量(quantity)作为核心属性放在 vNFT 中。例如,如果用一个 vNFT 代表你的数字名片,而它的 quantity 是 100,这代表它并不是一张名片,而是 100 张名片的集合。当然,这个数量也可以就是 1。

NFT并非不可计算,一文读懂可计算NFT的基本思想、设计方案和应用意义

图 2. vNFT 将数量(quantity)作为核心属性

可见,一个 vNFT 既可以是一个单独的、独一无二的 NFT,也可以是若干同类 vNFT 的加和。例如,一张面值为 100 元的债券,可以视为 100 张面值 1 元的债券的加和。一张包含 30 件某型号商品的提货单,可以视为 30 张单件商品的提货单的加和。Solv 在 vNFT 当中将「数量」设为头等属性,与该 vNFT 的 ID 信息并列,从而使上面的这种加法运算成为可能。换句话说,两个 vNFT 相加,其实就是一种合并,是在保持其他属性不变的情况下,两者的数量属性相加的运算。这是可计算性的根本出发点。

加法的逆运算是减法,因此有了数量这个属性,一个直接的后果就是可能对 vNFT 进行化整为零的拆分。一个 vNFT 可以被拆成两份,只要这两份 vNFT 的数量属性之和等于原始的 vNFT 数量属性即可。例如,在 vNFT 中,可以将一张 100 元面值的债券通证拆分成两张面值分别为 20 元和 80 元的债券。事实上,在 Solv Vouchers 平台当中,用户不仅可以做拆分,而且可以进行部分转让。当前,NFT 份额化以及拆分是一个热门话题,存在一些可行的技术方案,但都比较繁琐。而在 vNFT 当中,支持 NFT 份额化、拆分和部分转让是非常自然简单的事情。

vNFT 中的数量属性在实用中非常灵活,可以表达份额数量,也可以表达诸如面积、长度、重量、价格等各种度量。vNFT 标准允许开发者给这些数量施加各种限制条件,比如最大量、最小量、是否可进行拆分、拆分的最小单位,等等,可以满足各种应用场景的需求。

SLOT 机制

SLOT 是 vNFT 的核心创新,所以必须稍加笔墨予以说明。

英文的 SLOT 是「插槽」的意思。在现代电子设备中,插槽是一种标准化的适配接口。例如在计算机的主板上,留有若干标准插槽,无论是哪个厂家生产板卡,只要遵循相关标准,能够插入到插槽之上,便可以正常工作。不同厂家生产的不同型号的板卡当然是彼此不同的,但是在插槽的抽象与统一下,它们的差异被忽略掉,而是被抽象为完全相同的、匀质的标准零件。

vNFT 选用这个词代表可计算 NFT 的抽象与归类机制,正是因为其工作机制与计算机中的插槽颇为神似。在 vNFT 中,一个 SLOT 就代表着一个类别,在实现上是圈定了一组特定的属性。任何两个 vNFT,只要它们都具有这一组属性,而且它们的这一组属性都一模一样,便都可以「插入」到这个插槽当中,也就是都可以被归为这个 SLOT 所代表的的类别之中。所有能够被归类到同一个 SLOT 的 vNFT,被视为同类,因为也可以进行加和操作。

举一个例子。假设我们为某一个图书仓库创建一个 vNFT 类别来代表图书提货单,比如用一张单子代表 100 本书的提货权。这个单子在 vNFT 中的表示示意如下:

NFT并非不可计算,一文读懂可计算NFT的基本思想、设计方案和应用意义

图 3. 代表图书提货单的 vNFT

SLOT 可以发挥什么作用呢?一个 SLOT 就是 vNFT 中的一个属性子集。假设一个 SLOT 圈定了(书号,仓库编号,书名)三个属性,其意义就是说,只要两个 vNFT 在这三个属性上完全一样,那就可以被归入一类。

NFT并非不可计算,一文读懂可计算NFT的基本思想、设计方案和应用意义

图 4. 图书提货单中的 SLOT 属性子集

比方我们看到两个 vNFT,其中都包含有这三个属性,而且都是('ISBN 978-7-5217-2263-5', ' 北京海淀 3 仓 ',' 区块链与资产证券化 '),那么不管这两个 vNFT 各自还有什么别的属性,也不管它们其他的属性是否相同,我们都可以认为这两个 vNFT 都同属于这一个 SLOT,也就是属于同一类。由此它们便可以加和。当它们加和时,两个 vNFT 合并为一,新的 vNFT 保持这两个属性的值,将其数量属性的值加和。

NFT并非不可计算,一文读懂可计算NFT的基本思想、设计方案和应用意义

图 5. 两个图书提货单 vNFT 相加

由此可见,SLOT 是一种抽象分类机制,它允许我们刻意地忽略事物的某些方面,而仅仅根据一些共性,就将不同的东西划归同一类。一旦归类,便可以进行「再匀质化」,从而进行数值计算。

值得指出的是,SLOT 机制事实上允许个别的 vNFT 个性化自己,也就是声明自己不属于某一个类别。在实践当中,一种 voucher 的设计者可以在 SLOT 中放入一些特殊属性,专门方便一个具体的 vNFT 通过为这些特殊属性赋值以使自己「卓尔不群」,自成一类。换句话讲,如果说 SLOT 是一种「再匀质化」机制,那么 SLOT 中的这些特殊属性就是一种「反再匀质化」机制。由此可见 SLOT 机制的灵活性。这是 SLOT 机制比较高级的用法,在这里不详细展开。

与ERC721兼容

可以通过多种方式实现可计算 NFT。例如,ERC1155 从某种意义上来说也是一种可计算 NFT 的实现标准,但是 vNFT 在设计上与其存在多项不同之处,其中一个重要的差别在于,vNFT 与 ERC721 兼容,每一个 vNFT 同时也是一个 ERC721。熟悉面向对象编程的读者不难理解,vNFT 可视为 ERC721 的一个派生类,因此一个应用如果支持 ERC721,那么它就已经支持 vNFT 了。相比之下 ERC1155 另起炉灶,完全创造了一中全新的通证标准,各应用需要专门编写代码来支持 ERC1155。毫无疑问,vNFT 的这种向后兼容性,大大降低了其落地应用的门槛。在实践当中,Solv 所创造的各种 voucher,都可以直接在各种 NFT 钱包中管理,也可以进入 OpenSea 等 NFT 市场流转,体现了这一设计选择的优势。

选择与 ERC721 兼容的另一个优势在于动态性和灵活性。这一点与 ERC20 和 ERC1155 对比时格外突出。为了方便理解,我们仍然使用之前的工厂的类比。ERC20 是只能批量生产同一种产品的工厂,因此如果你想创建一种新的产品,那么就必须创建一个新的工厂。ERC721 则是一个性格乖张的工厂,它可以生产各种各样的产品,但是每一个产品只能生产一个,绝不重复,更不能批量制造同一种产品。ERC1155 则是一条有多条生产线的工厂,每一条生产线都可以批量制造同一种产品,但是想要增加一类新产品,就必须添加一条新的生产线,并且要求所有的分发、销售渠道和应用场景都升级来支持这种新产品。

而 vNFT 相当于一个智能工厂,它既可以生产独一无二的产品,也可以批量化生产同类产品,还允许渠道和用户各自定制化这些产品,并且增加新产品的时候,也不需要他人做结构性的调整。很显然,相比于 ERC20、ERC721 和 ERC1155,vNFT 具有最大的灵活性和动态性。

vNFT 的应用场景

可计算 NFT 实际上是将非匀质的通证再匀质化,因此它既具有匀质通证的抽象性和可计算性,又具有 NFT 的灵活性和描述能力,在应用中达到了一个最佳的平衡点。在海外的数字资产研究领域,有人将这种通证成为「半匀质通证」,正在吸引越来越多的关注。

以下以 vNFT 为例探讨一些可能的应用:

  • 用 vNFT 制作数字名片、明星卡、入场券、邮票等限量发行的物品;

  • 用 vNFT 表示可份额化和共享的资产权证,如土地或房屋的产权证书,

  • 用 vNFT 代表天然具有数量特征的证明,比如提货单、兑换券、优惠券、积分卡等;

  • 用 vNFT 代表有面积属性的虚拟地产所有权证明;

  • 用 vNFT 代表游戏当中的虚拟物品;

  • 用 vNFT 制作精美的功能票券,不但在系统中具有特定的功能,而且本身具有艺术性和收藏性;

  • 用 vNFT 制作限量发行,且收藏者可签章评论的加密艺术品;

  • 用 vNFT 制作金融合约和金融工具。

以上的列表远远没有穷尽 vNFT 的应用场景。毫无疑问,几乎在未来数字经济的各个领域,可计算 NFT 都能够扮演关键角色,而 vNFT 作为可计算 NFT 的原生标准,必将得到广泛应用。

vNFT的进展

Solv团队从 2020 年 10 月开始研究可计算 NFT,12 月正式确立技术思路,2021 年第一季度完成了 vNFT 的设计和参考实现,并且于 2021 年 6 月 17 Solv Vouchers 以太坊主网正式启动。Solv Vouchers 本身代表加了释放时间锁的 token 份额,与 ERC721 兼容,并且可以拆分、合并、部分转让,可以进行加法、数量乘法等线性运算,并且每一张 voucher 都有精心设计的外观,成为了特色鲜明数字资产。

Solv Vouchers 的创新已经获得了众多国际优秀 DeFi 项目和协议的认可,目前已经有超过 20 家 DeFi 项目与 Solv 建立了战略,包括DODO、Parsiq、Bounce、NAOS Finance、Ankr、Saffron Finance、Impossible Finance 等。来自同行的肯定充分证明了 vNFT 和 Solv Vouchers 创新的价值和有效性。

不过,对于可计算 NFT 的 研究还处于早期阶段,Solv 团队也致力于不断增强 vNFT 标准和 Vouchers 产品的功能。我们即将发布的新版 Vouchers 将具备可定制的释放条件、后置资产补充等功能,未来还将以某种方式实现多个异质 vNFT 的打包和分层等功能,能力还将大大提升。