基于NFT的实物上链资产化方法
NFT-based method for assetization of physical assets on blockchain
通讯作者:
收稿日期: 2022-03-14
基金资助: |
|
Received: 2022-03-14
Fund supported: | 国家重点研发计划资助项目(2021YFB2700800) |
作者简介 About authors
孙亮(1996—),男,硕士生,从事区块链技术的研究.orcid.org/0000-0002-7034-914X.E-mail:
针对现阶段非同质化通证(NFT)的应用对象仅限于诸如数字收藏品、加密艺术品和游戏道具等数字资产,难以适用于广泛存在的实物资产的问题,提出基于NFT的实物上链资产化方法. 该方法借助NFT可对数字资产确权的属性,结合智能合约与自动保管箱,实现链下实物资产与链上虚拟资产的强绑定. 该方法中,数字资产在链上(虚拟世界)铸造/流通之前,实体资产必须在链下(物理世界)锁定;实体资产在链下流通之前,数字资产需要在链上销毁. 该方式避免了虚拟世界和物理世界之间的跨域双花攻击,为实物资产提供了安全可信的价值转移和链上确权方式,为将来实物资产在元宇宙中的流通与交易提供可行的技术路径.
关键词:
An NFT-based method for assetization of physical assets on blockchain was proposed aiming at the problem that the application of non-fungible token (NFT) was currently limited to virtual digital assets, such as digital collectibles, cryptographic artworks and game props, which was hard to cover widely existing physical assets. Smart contracts and automatic safe deposit boxes were combined to achieve strong bindings between off-chain physical assets and on-chain virtual assets based on the ability of NFT to confirm the rights of digital assets. A digital asset must be minted or circulated on blockchain (in virtual world) after its physical entity is locked off blockchain (in physical world). The corresponding NFT must be destroyed on blockchain before a physical asset is circulated off blockchain. The method avoids cross-domain double-spending attacks between the virtual world and the physical world, and offers a secure and trustworthy approach to transfer value and confirm ownership of physical assets on blockchain, which provides a feasible technical way for future circulation and trading of physical assets in the metaverse.
Keywords:
本文引用格式
孙亮, 李晓风, 赵赫, 余斌, 周桐, 李皙茹.
SUN Liang, LI Xiao-feng, ZHAO He, YU Bin, ZHOU Tong, LI Xi-ru.
1. 相关技术介绍
保管箱一般是指银行机构出租给用户的用于保存物品的设备[27],具有高级别的安全性,可以提供所保存物品需要的特殊环境. 客户可以将珠宝饰物、古玩字画和房产契约等贵重或隐私物品存放于银行保管箱中,并与银行签订协议,支付一定的租用费用,便可享受保管箱服务.
同质化通证(fungible token,FT),是一种可替换、可拆分、具有统一性的资产通证[28],像BTC和ETH都属于同质化通证,只要价值相同,就可以进行交换.
非同质化通证(non-fungible Token,NFT),具有独一无二、不可替代的特性[28],因而非常适合对具有特殊价值的事物进行确权,例如艺术品、房屋合同、珠宝等实物资产,可以使用NFT相关技术证明和追溯实物所有权.
ERC-20协议是以太坊区块链较早的通证协议,为同质化通证的创建和交易定义了标准. 根据ERC-20协议制定的通证,具有可互换性,同等数量的两笔通证价值相等,没有区别.
ERC-721协议为非同质化通证的创建和交易定义了标准,对于具有独一无二属性的资产,可以标记所有权.
通过ERC-721协议标准铸造的资产通证具有不可拆分、所有权归属唯一的特点,且通证的流通和交易过程都会被记录在区块链上,使得每个通证的所有权转移过程都可被追踪和验证,为实物资产化提供了可行的技术路径.
ERC-1155和ERC-20、ERC-721协议一样,是基于以太坊智能合约的通证协议. ERC-20和ERC-721协议要求每次交易仅发送一个通证,降低了传输效率,每种新类型通证都需要部署一个新的合约;ERC-1155支持在单个交易中批量传输多个通证. 在ERC-1155协议中,一个合约可以容纳多种类型的通证,提高传输效率.
2. 基于NFT的实物上链资产化方法
通过保管箱锁定物理世界的实物资产,通过区块链完成对应的虚拟资产的映射,物理世界与虚拟世界(即元宇宙)通过自动保管箱链接,如图1所示. 在完成交易后,购买者可以通过保管箱取出实物资产,实现线下实物资产的所有权转移,保障线上交易后线下实物资产的顺利交割.
图 1
图 1 提出方法中资产在物理世界与虚拟世界的跨域流转
Fig.1 Cross-domain transmitting between physical world and virtual world with proposed method
2.1. 模型整体设计
实物上链资产化方法为资产所有者提供将实物资产上链并铸造对应的资产NFT的功能. 该方法由资产所有者、资产鉴定方和自动保管箱服务方组成,如图2所示.
图 2
资产鉴定方需要对资产所有者的实物资产进行真实性鉴定,生成资产鉴定结果. 通过设立见证者角色,用于陪同资产所有者将实物资产存入保管箱,确认该资产在箱内的锁定状态.
自动保管箱服务方提供实物资产通证铸造服务,并将实物资产保存于保管箱,包括用户数字资产移动端(以下简称移动端)、自动保管箱(以下简称保管箱)、联盟区块链、公有区块链和星际文件系统(interplanetary file system,IPFS)[32]集群. 移动端是用户与保管箱和链上交互的媒介. 联盟链节点由一些具有权威的机构进行维护. 联盟链通过智能合约存储实物资产数据,铸造实物资产NFT. 为了更好地保护资产所有者的权益,防止资产数据被篡改,引入公有链. 通过将联盟链的区块快照数据定期锚定到公有链上,对联盟链数据的安全性提供一定的保护作用. 在联盟链上部署或调用合约所消耗的Gas费用可以忽略不计,用户的操作成本降低.
2.2. 自动保管箱
图 3
储物格主要用于存放实物资产;微电脑控制部件(以下简称智能锁部件)主要控制储物格的开关. 用户通过保管箱交互界面选择储物格,智能锁部件会生成对应储物格信息的二维码,用户用移动端扫描二维码获取储物格信息,将身份信息发送给智能锁部件进行验证. 验证通过后发送开关指令,开启或关闭储物格.
2.3. 保管箱信息存证
对于实物资产的物理级别保护是基于保管箱,实物资产的所有权需要与保管箱的开闭控制权深度绑定. 实物资产的数字级别保护是基于区块链,若要将实物资产的所有权映射到数字空间,则需要将保管箱与实物资产NFT进行绑定. 在保管箱对外提供存放服务前,先将保管箱信息通过保管箱信息存证合约(box information deposit contract,BIDC)将其上链存证,以便后续与存入的实物资产NFT进行绑定. 保管箱存证信息rawBoxMsg如表1所示.
表 1 保管箱存证信息
Tab.1
初始化信息参数 | 参数含义 |
IDbox | 保管箱编号id |
numbox | 保管箱箱体对应的储物格编号 |
addrbox | 保管箱物理地址 |
addrowner | 保管箱所有者地址 |
proAddrbox | 保管箱生产地址 |
proTimebox | 保管箱生产时间 |
存证流程的算法描述如下.
算法1 保管箱存证流程算法
输入 保管箱储物格信息rawBoxMsg
输出 true/false
1. boxFile←MakeFile(rawBoxMsg)
2. boxIPFS←SaveToIPFS(boxFile)
3. keyBoxMsg←Refactory(rawBoxMsg,boxIPFS)
4. result←CallBIDC(keyBoxMsg)
5. if result==true then
6. return←true
7. else
8. return←false
如算法1所示,保管箱管理人员将rawBoxMsg输入至智能锁部件,生成保管箱储物格信息文件boxFile ,上传至IPFS中,获得IPFS地址boxIPFS. 提取源数据rawBoxMsg中的部分关键字段,如IDbox、numbox、addrbox、addrowner,结合boxIPFS,形成保管箱关键信息keyBoxMsg,调用BIDC合约对保管箱信息进行上链存证.
2.4. 实物资产化
在资产所有者进行实物资产NFT铸造前,需要将实物资产送至资产鉴定方进行资产真实性鉴定,鉴定者要对鉴定结果进行签名,将鉴定结果、对鉴定结果的签名数据和公钥给资产所有者. 资产鉴定方会组织见证者,跟随资产所有者将实物资产存放至保管箱中,以防止资产所有者存入非当前鉴定实物资产.
资产所有者通过保管箱将实物资产铸造成NFT,主要包括2个功能:资产所有者身份验证和实物资产NFT铸造.
2.4.1. 身份验证
身份验证主要是通过链上身份验证合约(authentication contract,AC),对当前操作保管箱的资产所有者进行身份确认. 身份验证的具体流程如下. 1)资产所有者登录移动端,在保管箱交互界面选择保管箱储物格. 智能锁部件生成储物格信息msgbox的二维码. 对于空储物格,主要包含储物格的基本信息,例如IDbox、numbox. 对于非空储物格,msgbox还包括实物资产NFT的tokenIDasset和实物资产NFT所有者地址addrowner. 2)资产所有者用移动端扫描二维码,获取msgbox,移动端对msgbox签名生成sigbox,将sigbox和移动端地址addrmobile发送给智能锁部件,智能锁部件将msgbox、 sigbox、addrmobile发送到AC合约进行验证. 3)AC合约由签名数据计算出地址addrcal,验证addrcal和addrmobile是否为同一地址. 若不相同,则链上返回签名校验错误信息. 若相同,则智能锁部件会开启保管箱储物格,提示资产所有者放入实物资产并关闭保管箱储物格,进入下一步实物资产NFT铸造过程. 身份验证流程的算法描述如下.
算法2 身份验证流程算法
输入 保管箱储物格信息msgbox
输出 output
1. sigbox←Sign(msgbox)
2. verifyRes←CallAC(sigbox,addrmobile)
3. if verifyRes == true then
4. output←“Please put in assets”
5. else
6. output←“Signature error,operation refused”
如算法2所示,资产所有者用移动端对储物格信息msgbox进行签名,生成签名数据sigbox. 将签名数据sigbox和移动端地址addrmobile发送至AC合约进行验证,得到验证结果verifyRes. 若verifyRes 为true,则签名验证正确,提示资产所有者放入实物资产. 若verifyRes 为false,则签名验证错误,返回签名错误,拒绝用户操作.
2.4.2. 实物资产NFT铸造
在资产所有者放入实物资产后,关闭储物格触发铸造实物资产NFT过程. 资产所有者先在移动端上传实物资产的图片或视频文件至IPFS,获取文件IPFS地址. 在移动端填写实物资产信息,实物资产所需的信息字段及字段含义如表2所示. 将实物资产信息发送至链上实物资产NFT铸造合约(physical asset NFT mint contract,PANMC),进行实物资产NFT铸造. 实物资产NFT铸造流程的算法描述如下.
表 2 实物资产信息
Tab.2
字 段 | 说 明 |
name | 实物资产名称 |
attr | 实物资产属性 |
des | 实物资产描述信息 |
ivfile | 实物资产的图片或视频文件 |
fileIPFS | 实物资产的图片或视频文件地址 |
residentify | 实物资产的真实性鉴定结果 |
sigres | 资产鉴定方对鉴定结果的签名 |
pkidentifier | 资产鉴定方公钥 |
sigwitness | 见证者对资产信息的签名 |
pkwitness | 见证者公钥 |
算法3 实物资产NFT铸造流程算法
输入 实物资产图片或视频文件ivfile,实物资产源数据rawAssetMsg
输出 assetNFT
1. fileIPFS←SaveToIPFS(ivfile)
2. keyAssetMsg←Refactory(rawAssetMsg,fileIPFS)
3. tokenIDasset←GetNewTokenIDAsset()
4. Mint(addrowner,tokenIDasset )
5. tokenIDsAsset[0]←tokenIDasset
6. assetNFT←GenNFT(IDbox, numbox, tokenIDasset, addrowner)
7. return assetNFT
如算法3所示,资产所有者在移动端上传实物资产的图片或视频文件ivfile至IPFS,获得IPFS地址fileIPFS. 提取源数据rawAssetMsg中的关键字段,如name、attr、des、ivfile等,形成实物资产关键信息keyAssetMsg,调用PANMC合约,铸造实物资产NFT:获取实物资产的tokenIDasset,将tokenIDasset与addrowner绑定;将tokenIDasset放入统计实物资产NFT数量的数组中;将IDbox、numbox、tokenIDasset和addrowner 形成assetNFT数据结构,返回assetNFT .
2.5. 实物资产提取
资产所有者通过实物资产提取功能获取保管箱内的实物资产. 为了保证实物资产和对应资产NFT在实物资产转移时状态的一致性,对于资产所有者取出的实物资产,要将资产NFT进行销毁.
实物资产提取功能主要包含身份验证和实物资产NFT销毁.
身份验证流程如算法2所示,此处不再赘述.
在进行资产NFT销毁前,需要核验该实物资产是否属于当前操作者. 智能锁部件请求资产所有者在移动端内填写实物资产NFT信息msgNFT,包含tokenIDasset和addrowner. 移动端将msgNFT发送给智能锁部件,智能锁部件将msgNFT发送至链上实物资产验证合约(physical asset verification contract,PAVC)进行验证. 验证通过后,调用实物资产NFT销毁合约(physical asset NFT burn contract,PANBC),将实物资产NFT销毁. 销毁成功后,智能锁部件开启保管箱门,提示资产所有者取出实物资产. 实物资产NFT销毁流程的算法描述如下.
算法4 实物资产NFT销毁流程的算法
输入 实物资产NFT信息msgNFT
输出 output
1. addrchain←CallPAVC(msgNFT)
2. if addrchain != addrowner then
3. output←“Address verification failed”
4. else
5. CallPANBC(addrowner,tokenIDasset )
6. output←“Asset burn succeeded”
如算法4所示,资产所有者在移动端输入实物资产NFT的信息msgNFT,主要是实物资产NFT的tokenIDasset和所有者地址addrowner. 调用PAVC合约进行验证,根据msgNFT中的tokenIDasset获取链上资产NFT的所有者地址addrchain,判断addrowner和addrchain是否一致. 若不一致,则返回“Address verification failed”,提示实物资产所有者地址校验失败. 若一致,则再调用PANBC合约,通过addrowner和tokenIDasset销毁实物资产NFT,将该实物资产NFT转移至零地址,链上返回“Asset burn succeeded”,即销毁成功.
2.6. 联盟链数据锚定至公有链
将联盟链数据锚定到公有链,实现对联盟链资产数据的保护. 联盟链与公有链数据锚定的示意图如图4所示.
图 4
图 4 联盟链与公有链数据锚定示意图
Fig.4 Schematic diagram of data anchoring between consortium chain and public chain
联盟链节点通过锚定服务收集联盟链的连续T个区块数据,计算该T个区块的Merkle树,形成锚定数据. 定义锚定数据内容为AnchorData<startB,endB,data,datasig,pk>,其中 startB为当前锚定的最小区块高度;endB为当前锚定的最大区块高度,data为该T个区块的Merkle树根,datasig为联盟链节点对data的签名;pk为当前产生AnchorData的节点公钥,用于标识节点身份.
详细的锚定过程如下:节点记录开始锚定的区块高度startB为bNum1,设定counts为1,用于记录已收集的区块数,每收集到一个区块,counts值加1. 当counts = T时,记录endB值为结束锚定的区块高度bNum2. 对该T个区块计算Merkle树,得到Merkle根. 节点对Merkle树根进行签名,得到datasig. 根据AnchorData数据格式填充相关字段值,得到 AnchorData.节点通过锚定服务调用公有链锚定数据保护合约(anchor data protection contract,ADPC),将锚定数据在公有链进行存证,实现联盟链数据锚定至公有链,提高对联盟链数据的安全性保护,能够降低用户的操作成本.
上述过程的算法描述如下.
算法5 资产数据锚定算法
输入 联盟链节点收集的T个区块blockData
输出 锚定数据AnchorData
1. startB←bNum1
2. for counts←1 to T do
3. blockData[0-n]←GetBlockData()
4. endB←bNum2
5. root←GenMerkle(blockData)
6. datasig←Sign(root)
7. AnchorData←GenAnchorData(startB,endB,root,datasig,pk)
8. CallADPC(AnchorData)
9. return AnchorData
为了检验联盟链区块是否在锚定后被篡改,可以通过如下方法验证完整性. 根据要验证的区块高度,找到该区块所在的锚定范围. 根据startB和endB,在联盟链找到处在该范围的所有区块. 计算区块的Merkle树,得到Merkle树根root. 比较root与锚定数据AnchorData中的data是否一致,若不一致,则说明锚定完成后原区块被篡改. 上述过程的算法描述如下.
算法6 资产数据验证算法
输入 待验证的区块高度bHeight,锚定数据AnchorData
输出 true/false
1. startB,endB←GetScope(bHeight)
2. for i←startB to endB
3. cBlockData[i]←GetBlock(startB,endB)
4. root←GenMerkle(cBlockData)
5. if root == AnchorData.data then
6. return true
7. else
8. return false
3. 原型系统实现
基于上述模型设计,实现原型系统. 通过自动保管箱实现实物资产NFT铸造和销毁. 搭建的实验环境和具体参数如表3所示.
表 3 实物上链资产化方法的实验环境
Tab.3
实验环境 | 参 数 |
联盟链 | 以太坊区块链 |
联盟链共识算法 | PoA |
公有链 | 以太坊区块链 |
公有链共识算法 | PoW |
分布式文件存储系统 | IPFS |
合约语言 | Solidity |
实验中,因以太坊区块链社区活跃度高和智能合约适用性强,采用以太坊作为基本区块链平台,使用solidity语言编写智能合约. 在编写好智能合约代码并调试成功后,通过remix编译获取合约的字节码和ABI;编写Nodejs脚本,将合约部署至搭建的区块链系统中. 资产所有者通过调用合约进行铸造实物资产NFT、转移实物资产NFT和销毁实物资产NFT.
3.1. 数字资产移动端
如图5所示为用户在数字资产移动端操作的主要界面,包括实物资产NFT铸造、资产概览和资产详情界面. 用户需要在资产NFT铸造界面(a)填写实物资产的相关信息、资产鉴定方信息和资产见证者信息,点击铸造NFT按钮后铸造资产NFT. 资产概览界面(b)主要展示用户拥有的实物资产. 用户点击资产概览界面(b)中的任意实物资产,跳转至资产详情页(c). 资产详情页主要显示对应资产的详细信息,包括资产基本信息、区块哈希和鉴定信息等.
图 5
3.2. 保管箱信息存证
在保管箱安装完成后,需要对保管箱进行初始化,将信息通过智能合约上链存证. 技术人员通过保管箱智能锁部件输入保管箱储物格信息,智能锁部件会调用BIDC合约保存保管箱储物格信息. 保管箱信息存证的结果如图6所示.
图 6
3.3. 实物资产NFT铸造
资产所有者输入实物资产信息,调用PANMC合约进行实物资产NFT铸造. PANMC合约铸造实物资产NFT,返回实物资产NFT的tokenID. 实物资产NFT的铸造结果如图7所示.
图 7
从图7可知,successMint为true,表示成功铸造实物资产NFT;实物资产的assetID为80···70;资产NFT的tokenID为1;该资产所有者的地址为0x54···4e.
3.4. 实物资产NFT转移
在资产所有者和购买者进行线上交易后,链上转移资产NFT至购买者地址. 实物资产NFT转移成功的结果如图8所示.
图 8
从图8可知,successTransfered为true,表示转移成功;from是资产所有者地址,to是购买者地址;assetOwner表示当前实物资产的所有者地址.
3.5. 实物资产NFT销毁
当资产所有者从保管箱取出实物资产时,需要将链上对应的实物资产NFT销毁. 资产所有者输入资产NFT信息,调用PANBC合约销毁资产NFT. 实物资产NFT销毁的结果如图9所示.
图 9
从图9可知,successBurned为true,表示实物资产NFT销毁成功. 在实物资产NFT销毁成功后,资产assetOwner为零地址.
4. 分析与评估
4.1. 功能分析
实物资产通过ERC-1155智能合约协议完成通证化,合约记录了资产所有者与实物资产通证的映射关系. 在去中心化的环境中,证明了资产所有者对该实物资产的所有权. 在实物资产完成NFT铸造后,以通证的形式链上流通,使资产所有者获取相应的收益,完成实物资产化.
资产所有者通过持有私钥的方式掌握该实物资产通证的所有权,完成实物资产的确权. 在交易过程中,通过合约将资产的所有权转移到购买者地址,通过保管箱实现线下实物资产的安全保存,通过智能锁部件与链上合约进行交互,验证该实物资产的所有者地址是否与当前操作者的身份对应,由此完成实物资产的安全交割. 在设计初期,为了提高管控效率、降低成本,保障资产见证的真实性和安全性,对自动保管箱采用固定集中式管理. 这在一定程度上会限制跨时空性. 未来可以采用结合带有移动网络通信、地理位置定位及环境传感采集等功能的移动式自动保管箱或构建于单位/社区周围的分布式保管箱,提升时空跨度和应用场景灵活度.
与线下交易实物资产的方式相比,采用NFT结合自动化保管箱的交易方式具有如下优势. 1)利用该方案铸造(实物资产上链)生成NFT的实物资产,在未完成最终兑付交割(实物资产下链)之前,实物资产的流转过程可以完全发生在链上(虚拟世界/元宇宙),无需经过物理世界中的反复转手,提升了资产的可流动性. 由此带来的其他优点包括:减少易手过程中被调换或被破坏的风险,降低资产收藏者的保管负担. 2)实物资产具有非同质化特性和唯一性,符合NFT的非同质化特征和确权属性,通过NFT交易可以完成实物资产所有权的确权存证,支撑多类实物资产交易所需的“传承有序”、“正本清源”等目标.
表 4 本文方法与其他资产化方法的对比
Tab.4
4.2. 安全性分析
4.2.1. 实物资产数据分布式存储可靠性的分析
由于实物资产的图像数据较大,上链存储成本较高,对于文件数据,借助IPFS文件存储系统进行分布式存储. 一方面,可以通过分布式存储防止单点失效问题,避免因某一个节点失效,导致数据丢失,不可访问. 另一方面,IPFS会对要存储的文件进行碎片化处理,每个节点存储的是数据碎块,不是完整的数据,因为每个文件地址是基于文件内容计算哈希生成的,具有唯一性,即使某个节点被攻击,也不用担心数据准确性和数据完整性问题.
若有节点进行共谋篡改数据,则可对数据存储发起攻击. 假设发生节点共谋攻击的概率为
式中:n为总节点数,k为存在的恶意节点数,P为每个节点在线的概率.
表 5 恶意节点成功篡改数据的概率
Tab.5
f/% | Pfault | f/% | Pfault | |
5 | 9.53×10−7 | 20 | 1.29×10−3 | |
10 | 2.00×10−5 | 25 | 5.90×10−3 | |
15 | 2.01×10−4 | 30 | 2.06×10−2 |
如表5所示,当恶意节点的占比为30%时,攻击成功的概率大约为2%. 随着恶意节点数量的增加,节点篡改数据的成功率增大. IPFS文件存储系统是基于文件内容进行哈希计算生成文件地址,当文件内容发生改变时,对应生成的文件地址也会改变. 即使文件数据被篡改,只要资产所有者保存有初始的文件地址,也能获取原始的资产文件数据.
4.2.2. 实物资产安全交割的分析
在实物资产NFT交易过程中,对于实物资产的保存存在安全隐患. 比如,在完成实物资产NFT交易后,出现实物资产损坏或者丢失,难以确定权责.
在本文方法中,实物资产所有者通过保管箱,将实物资产铸造成NFT在链上流通,且只有实物资产的所有者才能开启保管箱获取实物资产. 在双方完成NFT交易后,对于购买者,线下通过保管箱取实物资产,不仅完成了链上资产所有权的转移,而且实现了链下资产的安全交割.
4.2.3. 资产数据安全保护的分析
在提出的模型中,有以下2种类型的数据:1)实物资产的基本信息数据;2)实物资产的图像文件数据. 对于文件数据,上传至IPFS分布式文件存储系统进行存储,对于该情况的数据安全分析见4.2.1节.
对于实物资产的基本信息数据,通过调用联盟链智能合约进行存储. 联盟链中的节点实际上是由一些权威机构进行维护,机构用声誉进行担保,故每个节点都会积极维护联盟链运行. 联盟链中的节点会对用户部署和调用的智能合约进行验证,存储相关数据,在联盟链上记录正确的结果;各节点会进行数据同步,确保不同节点下智能合约运行的一致性与正确性,保证了系统的存储可信.通过将联盟链区块快照数据锚定到公有链锚定数据保护合约ADPC,实现对联盟链资产数据的保护. 因为公有链的高安全性,即使联盟链成员完成锚定后联合篡改数据,在进行资产数据验证时,从公有链获取对应的数据,与联盟链数据进行对比,也可以发现数据被篡改,降低资产数据被篡改后对用户造成的影响.
4.2.4. 实物资产物理保存安全分析
资产所有者在实际操作中,存在作恶的可能,比如没有将实物资产放入保管箱中就关闭保管箱储物格,或者将资产调包. 该方法引入见证者,由资产鉴定方提供见证者,陪同资产所有者一起将实物资产放入保管箱中并铸造资产NFT. 见证者要对资产信息进行签名,将签名数据和公钥发送给资产所有者,由资产所有者将信息上传至区块链智能合约进行存证.
通过资产鉴定方对实物资产真实性进行认定,通过鉴定方安排的见证者对资产所有者存入资产的操作进行确认,在一定程度上可以减少资产所有者在将实物资产放入保管箱时作恶的可能.
资产在完成从保管箱的提取交割后,对应NFT资产虽被销毁,但历史数据仍在链上存在,可供长期追溯查询. 对于已完成交割的实物资产,若其资产所有者有进一步流通资产的需求,重新将资产存入自动保管箱铸造NFT时,须重新对该实物资产及所有者进行见证核验. 对于持有者未变更并通过实物见证的资产,在铸造时增加对前序已销毁NFT的引用. 在实际操作中,对于高价值资产,平台将会建议持有者上传如资产的鉴定证书、具备法律效应的合同书作为支撑性材料.
为了提高实物资产在保管箱内的安全性,保管箱一般处于安全级别较高的环境中,例如银行. 在保管箱内部安装相关的温度、湿度传感器和监控摄像头等,保管箱外部环境需要安装监控摄像头,以监测保管箱周围的环境,提高一定的安全性.
4.2.5. 双花问题
双花问题是区块链交易面临的重要问题. 提出的实物上链资产化方法存在2种双花类型:跨域双花和重复铸造双花. 跨域双花是指资产所有者将实物资产铸造成NFT虚拟资产后,将链下实物资产和链上虚拟资产进行流通交易. 重复铸造双花是指资产所有者将实物资产在其他平台上进行NFT铸造,再通过该平台进行NFT铸造.
当资产所有者在铸造实物资产NFT时,需要将实物放入保管箱中,通过保管箱锁定实物资产,实现实物资产与对应NFT虚拟资产强绑定,可以解决跨域双花问题. 在实物资产放入保管箱后,被锁定,只能链上交易NFT虚拟资产. 在交易完成后,对应实物资产的所有权归属变更为购买者. 实物资产的所有者能够从保管箱取出实物资产,需要销毁链上对应的NFT虚拟资产,避免了跨域双花问题.
对于重复铸造双花问题,因为在本平台铸造NFT资产前,需要将实物资产存入保管箱中进行锁定. 在交易完成后,实物资产的所有者已经变更,在交易前的实物资产所有者已经无法从保管箱中取出实物资产,故无法实现在另一个平台上的交易,避免了双花问题. 在实际的应用过程中,会与用户签订相关协议,表明资产所有权和交易权的情况,保证了资产购买者的权益.
4.2.6. 监管友好性
由于公有链的节点可以随意加入或退出网络,导致节点数量不可控,对公有链网络的监管治理一般须通过社区治理[37]的方式,较困难. 联盟链规模可控,通常具有确定的节点准入机制,例如联盟链中任何节点加入都需要进行身份验证,对不同节点设置不同的访问权限,或者通过区块链服务平台接入监管服务. 相对于单一使用公有链的方式,设计的联盟链与公有链结合的方式具有监管友好性的特点.
4.3. 成本分析
用户使用该方法实现实物资产铸造NFT的成本主要分成2个部分:1)保管箱租用成本;2)实物资产NFT铸造和交易的成本.
自动保管箱是由银行第三方机构提供的,用户使用时需要支付一定的租赁费用.根据本团队前期研究的自动化保管箱在部分银行系统中的应用情况,针对常见的4种保管箱箱型的租赁成本预估如表6所示(银行通常能够提供极高的安全性,在其他商业保管箱中应用的成本更低). 表中,尺寸为高×宽×深.
表 6 自动保管箱的租金
Tab.6
保管箱箱型 | 尺寸/mm | 年租金/元 |
A | 60×242×453 | 400 |
B | 80×242×453 | 600 |
C | 125×242×453 | 800 |
E | 195×242×453 | 1 000 |
本方法的保护对象主要针对中高价值的实物资产,例如珠宝、古钱币、艺术字画等,使用保管箱的费用一般远低于实物资产的本身价值. 对于低价值的实物资产,当方法中的各项软硬件技术成熟,维护成本降低时可以进一步扩大其使用范围.
实物资产NFT铸造、转移和销毁等操作均通过智能合约实现,故影响实物资产NFT铸造和交易成本的主要因素之一是执行合约的消耗. 为了评估该方法的合约操作复杂性,分别对单一公有链、联盟链与公有链结合这2种情况进行消耗统计.
对于单一公有链,随机选取100份样本数据作为NFT通证化流程的输入参数,通过统计各样本在执行对应合约操作时的消耗,计算平均值作为参考值. 保管箱信息存证:166 744.5 Gas;资产NFT铸造:373 555 Gas;资产NFT转移:76 308.5 Gas;资产NFT销毁:64 952.8 Gas.
为了统一2种方式的消耗尺度,将保管箱信息存证、铸造资产NFT、转移资产NFT和销毁资产NFT 4个步骤合并,视为完整资产化流程. 假设每个区块可包含的完整资产化流程数为txs,计算公式[38]为
式中:GasLimit为允许消耗的上限,GasUsed为完整资产化流程的实际消耗值.
根据上述计算出的平均值,得出单一公有链方式下,一个完整的资产化流程需要消耗681 560.3 Gas. 根据式(2),估算出每个区块平均可以包含6.8个完整的资产化流程.
对于联盟链与公有链结合的方式,随机选取同数量的锚定数据样本进行统计,计算出锚定一次数据需要7 473 Gas.
根据上述统计结果,分别计算出在单一公有链和公有链与联盟链锚定的情况下用户操作所需的费用,如表7所示.
表 7 用户操作成本的分析
Tab.7
分类 | 合约操作 | 平均消耗值/Gas | 费用/美元 |
单一公有链 | 保管箱存证 | 166 744.5 | 13.44 |
单一公有链 | 资产NFT铸造 | 373 555 | 30.12 |
单一公有链 | 资产NFT转移 | 76 308.5 | 6.15 |
单一公有链 | 资产NFT销毁 | 64 952.25 | 5.24 |
联盟链与公有链锚定 | 联盟链数据锚定 | 7 473 | 0.609 |
根据EthGasStation[39]网站评估,在网络状况良好的情况下,为了实现交易的快速确认,将交易价格设置为30 Gwei/Gas,计算出在单一公有链的情况下,资产所有者进行资产NFT铸造所需的平均费用为30.12美元,资产NFT转移所需的费用为6.15美元,资产NFT销毁所需的费用为5.24美元. 在联盟链与公有链锚定的情况下,一次锚定的平均费用大约为0.609美元. 在联盟链与公有链锚定的情况下所需的成本远少于单一公有链,因为每次锚定包含多个合约操作,实际的使用费用低于0.609美元.
由于以太坊公有链的交易费用具有波动性,在实际进行锚定公有链操作时可以采用更加灵活的动态锚定方式,例如当公有链交易费用较低时,增加锚定批次,可以实现锚定成本的进一步优化.采用设计的联盟链与公有链锚定方式,能够较好地平衡存证成本和安全性.
5. 结 语
本文基于区块链智能合约技术和自动保管箱,完成链上NFT资产的铸造/销毁以及对应链下实物资产的锁定和解锁,实现NFT数字资产和实物资产的强绑定,克服区块链资产的跨域双花难题.利用本文方法可以实现实物资产的高效可信流转,链下借助自动保管箱完成安全兑现交割. 相比于现有的资产上链方式,本文方法具有成本低、监管友好的优势,有望促进基于区块链的NFT通证化技术进一步脱虚向实,服务于社会实体经济.未来的工作将致力于利用形式化验证[40]的方式以及引入可信执行环境(trusted execution environment, TEE)[41],保证智能合约的正确性和安全性,完善监管功能,保护资产所有者的权益.
参考文献
NFT: 基于区块链的非同质化通证及其应用
[J]. ,DOI:10.11959/j.issn.2096-6652.202125 [本文引用: 1]
NFT: blockchain-based non-fungible token and applications
[J]. ,DOI:10.11959/j.issn.2096-6652.202125 [本文引用: 1]
基于区块链非同质化代币的软件订阅模型
[J]. ,DOI:10.19678/j.issn.1000-3428.0062500 [本文引用: 1]
Software subscription model based on non-fungible tokens in blockchain
[J]. ,DOI:10.19678/j.issn.1000-3428.0062500 [本文引用: 1]
NFT在图书出版领域的应用探索
[J]. ,DOI:10.19619/j.issn.1007-1938.2021.00.074 [本文引用: 1]
Exploration on the application of NFT in the book publishing field
[J]. ,DOI:10.19619/j.issn.1007-1938.2021.00.074 [本文引用: 1]
NFT与人工智能技术融合发展前景探析
[J]. ,
NFT and artificial intelligence technology integration development prospect analysis
[J]. ,
基于区块链的档案数据保护与共享方法
[J]. ,
Archival data protection and sharing method based on blockchain
[J]. ,
联盟区块链关键技术与区块链的监管挑战
[J]. ,
Key technology in alliance chain and challenges in monitoring blockchain
[J]. ,
DLattice: a permissionless blockchain based on DPoS-BA-DAG consensus for data tokenization
[J]. ,
Virtual block group: a scalable blockchain model with partial node storage and distributed Hash table
[J]. ,
区块链跨链技术进展研究
[J]. ,
Reserach on the progress in cross-chain technology of blockchains
[J]. ,
基于区块链技术的采样机器人数据保护方法
[J]. ,
Data integrity protection method for microorganism sampling robots based on blockchain technology
[J]. ,
基于区块链智能合约的物联网数据资产化方法
[J]. ,
Data capitalization method based on blockchain smart contract for Internet of Things
[J]. ,
From technology to society: an overview of blockchain-based DAO
[J]. ,
一种代币智能合约的形式化建模与验证方法
[J]. ,DOI:10.19678/j.issn.1000-3428.0056812 [本文引用: 1]
A formal modeling and verification method for token smart contract
[J]. ,DOI:10.19678/j.issn.1000-3428.0056812 [本文引用: 1]
ShadowEth: private smart contract on public blockchain
[J]. ,DOI:10.1007/s11390-018-1839-y [本文引用: 1]
/
〈 | 〉 |