基于多链nft跨链方法及系统
技术领域
本发明属于区块链
技术领域
,具体涉及一种基于多链NFT跨链方法及系统。背景技术
非同质化通证(下文简称NFT)是区块链上的加密通证,代表某一独特物品的所有权。NFT既可以代表真实资产(如一片土地),也可以代表数字资产(如稀有的虚拟卡片)。比特币属于同质化通证,因为一枚比特币可以交换任何一枚其他的比特币。而与之相比,每一个NFT都是独一无二的,其本质上是用数字化的方式表示资产的稀缺性,并且这种稀缺性是可验证的。
将独特的物品作为数据储存在区块链上这个概念对NFT社区的大多数人来说并不陌生。区块链是展示和交易NFT资产的标准媒介,这些资产公开透明,在全世界范围内都可交易,而且流动性更高。区块链还提供了一个安全的环境,储存资产从创建至今的所有可信历史记录。在统一的去中心化平台(即区块链)上注册并自由交易独特的资产,这个概念本身就具有价值。而现在则存在一个瓶颈,那就是区块链为了保障其去中心化的安全属性,切断了与所有外部系统的联系,也就是说NFT资产无法与链下数据和其他链交互。
随着DeFi和NFT的发展,按照如今以太坊的容量,它还无法承载大规模的NFT生态。在这种情况下,一种是采用Layer2的方法进行扩展,还有一种是通过多链模式进行发展。随着波卡、Solana、Heco、BSC等多链的发展,不同公链上的NFT资产也开始不断增长。在这样的背景下,关于跨链NFT的协议也开始引起人们的关注,利用跨链技术使NFT具有流通价值并且更好的适配Web3应用是目前亟需解决的问题。
发明内容
本发明基于上述背景和现有技术所存在的问题,拟设计一种基于多链NFT跨链方法及系统,在多链体系中进行NFT的安全生成和高效跨链转移,增加NFT在区块链生态的流动性。
一种基于多链NFT跨链方法,涉及NFT的生成及跨链转移,具体包括以下步骤:
在业务链中设置预言机节点,通过预言机节点链外关联ETL网关,对业务链外真实资产进行实时监控并收集转化,并在业务链上调用NFT生成合约生成相应NFT;
基于各业务链轻节点部署链间平行进程,并在平行进程中基于各业务链Merkle树交互制定交易并行机制和统一的跨链交互协议,通过交易并行机制对平行链中的跨链交易进行验证,基于跨链交互协议传递各业务链间的跨消息;所述轻节点部署在关联各业务链的公共链中;
所述轻节点将验证确认结果发送至NFT转移合约,所述NFT转移合约调用跨链交互协议解析跨链交互消息,确认抵押流转通证达到预设值时,执行NFT转移。
预言机与NFT相结合,将NFT智能合约利用预言机完成对真实世界的实时监控与数据交互。最基础的就是,通过设置预言机可以快速方便导入链下譬如土地和艺术品之类的真实资产。更进一步,就是增强NFT与真实世界的动态联系。
基于多个NFT业务链构建平行进程体系,可在共识层面进行多链融合,统一交易事务,将外部跨链事务转化为内部共识跨链,并制定跨链交互协议即制定统一的跨链标准规范,并将各业务链的NFT交互信息转移至公共链托管,进一步转接传递交易通信,实现NFT的高效跨链交换。
进一步地,在业务链中通过预言机节点链外关联ETL网关,对链外真实资产进行实时监控并收集转化,并在链上调用NFT生成合约生成相应NFT,具体如下:
在业务链中关联用户客户端设置预言机节点,在所述预言机节点链上部署NFT生成合约,链外连接ETL网关,并在所述网关中按照NFT元数据属性制定链外资产类别及同类资产中稀有度等级标准;
所述预言机节点经ETL网关将收集的链外资产进行清洗分类及分配稀有度等级,并向NFT生成合约输出NFT元数据,包括资产类别及稀有度等级;
NFT生成合约根据收到NFT元数据分配ID号作为其唯一身份识别号,其中,所述ID号由用户客户端输入的固定PIN码和链上生成的随机数组成,ID号根据稀有度等级分配随机数数量。
预言机(Oracle)向基于区块链技术运行的智能合约提供外部数据,并将外部世界(链外)的数据与区块链世界(链上)的数据连接起来的计算机程序,预言机的作用是为区块链上世界与链外真实世界提高安全可靠的数据交互。其目的是在区块链和互联网之间建立一道可信的数据网关,其目标是打破智能合约获取数据的束缚,在保证可信的情况下,使其具有访问互联网数据的能力。目前,MakerDAO、Compound、Synthetix、dYdX等知名DeFi项目等都需要预言机提供的价格数据流服务。预言机查询、核实并认证外部数据,然后将其中继到封闭的区块链系统,之后再经过身份验证的数据将用于验证智能合约。预言机建立了与区块链的双向通信线路:数据可以发送进来,也可以传输出去。
在这里利用预言机获取生成NFT的大量链外数据资源,并首先通过ETL网关对数据资源进行分类整合,其中,ETL网关用来将数据从链外收集后经过抽取、转换、加载至预言机节点的过程。
由固定PIN码和链上生成的随机数组成ID号,作为用户PIN码可以绑定不同的地址,并允许所属业务链和其他链中的应用赋予ID号多种属性,并且增加链上随机数,使ID号具备不可篡改、可追溯性,ID号作为NFT的唯一标识,可以使NFT在业务链中连带其附有属性被交易流通。
进一步地,所述基于各业务链轻节点部署链间平行进程,并在平行进程中基于各业务链Merkle树交互制定交易并行机制和统一的跨链交互协议,具体如下:
基于substate架构创建公共链,在公共链部署每个业务链的轻节点,并关联轻节点设置共享接口作为插槽提供平行进程,所述业务链通过竞拍插槽成为平行链,所述插槽设置所属平行链ID号,所述轻节点记录相应平行链标识,所述平行链标识为加入公共链时当前公共链区块号和平行链ID组成;
将所述Merkle树结构中各平行链中的跨链消息进行消息队列排列,并将仅存储消息队列哈希头存储至公共链上,其中,跨链消息包括跨链NFT ID号、流转通证抵押值、目标平行链标识,目标客户端账户及来源客户端账户;
设置公共链的平行链进程通道,每条通道生成其对应平行链的位字段,并将通道列表存储在公共链状态中,通过平行链通道进行链间消息通信;
加入公共链的平行链区块头中还包含平行链区块中跨链消息根和位字段,所述跨链消息根用于从接收对象中查找消息队列哈希头,位字段用于关联目标平行链进程通道;
在平行链中记录公共链状态存储,通过构建公共链区块实现与其他平行链通信,其中,所述公共链区块包含平行链标识、消息根和通道位字段。
平行链区块头中的消息哈希存储着该平行链中当前的NFT跨链转移请求信息,而链间Merkle树记录各平行链中跨链消息,通过对比两者的一致性,验证跨链信息真实性,保障NFT跨链过程中的安全性,防止恶意交易和双花问题。
特别地,所述通过交易并行机制对平行链中的跨链交易进行验证,包括以下步骤:
将平行链中当前跨链消息进行哈希计算,利用各平行链计算哈希值搭建依次交互的Merkle树结构,并将相互关联的Merkle根存至平行链轻节点中;
所述轻节点实时记录相应平行链区块头信息,通过对比区块头中跨链消息哈希与相互关联的Merkle根存在的跨链消息哈希的一致性验证所属平行链的跨链信息真实性,并将验证结果在链上广播。
所述交易并行机制是基于公共链对各平行链进行交易验签并行,并在每个平行链中进行跨链消息同步及路径转移。具体是通过设置Merkle树,轻节点存储Merkle树根获取各平行链的跨链交易信息,并利用轻节点进行验证,将串联的各平行链跨链消息在公共链上进行并行处理,提高跨链效率和扩展了平行链体系的性能。
搭建Merkle树结构,并基于所述Merkle树制定统一的跨链交互协议,针对不同多链结构,支持Raft、SBFT、PBFT、Kafka等共识算法切换,实现共识算法可配置,融合跨链共识,执行跨链消息传递。
特别地,所述公共链中还设有流转通证,所述流转通证为平行链NFT跨链转移的媒介,具体为:
所述业务链通过抵押流转通证获取竞拍插槽的权限,通过排比各业务链抵押流转通证的数量获取平行链准许优先权及占用平行链插槽的时间;
不同平行链客户端通过在公共链上抵押流转通证并达到预设值获取NFT链间转移的权限。
设置流转通证作为激励或惩罚NFT跨链参与者的一种手段,该流转通证并不用来交易,仅作为公共链中类似积分的一种流通方式。
进一步地,所述轻节点将验证确认结果发送至NFT转移合约,所述NFT转移合约调用跨链交互协议解析跨链交互消息,确认抵押流转通证达到预设值时,执行NFT转移,具体如下:
在公共链上部署NFT转移合约,并设置流转通证抵押预设值,所述NFT转移合约接收轻节点验证结果;
当结果确认跨链信息真实后,调用跨链交互协议获取跨链交互消息,验证来源客户端抵押流转通证是否达到预设值,确认抵押流转通证达到预设值时,启动NFT转移合约内的NFT转移函数,关联目标平行链标识,获取函数输入参数包括NFT的ID号、目标客户端账户及来源客户端账户;
将所述NFT的ID号发送至目标客户端账户,并注销来源客户端账户中NFT的ID号。
NFT转移合约用于响应并执行NFT的链间转移,由链间跨链交互协议打通来源链与目标平行链的跨链消息通道,启动该合约,实施NFT转移流程。
特别地,还包括以下步骤:
验证客户端账户是否存在需要转移的NFT,若不存在,则关联预言机节点生成相应NFT;若存在,则启动转移函数,执行NFT转移。
一种基于多链NFT的跨链系统,包括NFT生成模块、跨链互通模块及执行模块;
所述NFT生成模块用于在业务链中设置通过预言机节点链外关联ETL网关,通过预言机对链外真实资产进行实时监控并收集转化,并在链上与链上响应用户客户端调用NFT生成合约生成相应NFT;NFT生成模块部署在每个业务链中,也就是说每个业务链都可以根据各自属性生成其链上特有的NFT。
所述跨链互通模块用于利用各业务链轻节点设置链间平行进程,在平行进程中基于各业务链Merkle树交互制定交易并行机制,利用交易并行机制对平行链中的跨链交易进行验证;同时基于所述Merkle树制定统一的跨链交互协议,用于各业务链间的跨消息传递;所述轻节点部署在关联各业务链的公共链中;跨链互通模块整合多个NFT业务链,构建平行链架构体系,融合多链,形成跨链共识,并制定统一的跨链执行标准,使NFT跨链转移快速高效进行。
所述执行模块响应平行链客户端跨链转移请求,所述轻节点将验证确认结果发送至NFT转移合约,所述NFT转移合约调用跨链交互协议解析跨链交互消息,确认抵押流转通证达到预设值时,执行NFT转移。
进一步地,所述跨链互通模块还包括体系创建模块、权限获取模块及通信传递模块;
所述体系创建模块用于搭建跨链互通的平行链架构体系,包括多个不同NFT业务链组成的平行链及提供平行插槽的公共链,所述公共链中部署各平行链的轻节点,并在各平行链间制定交易并行机制和统一的跨链交互协议;
所述权限获取模块用于抵押流转通证获取不同NFT业务链获取成为平行链的权限和平行链获取跨链转移的权限;以及经轻节点验证确认跨链信息真实性后获取调用跨链交互协议的权限;
所述通信传递模块用于关联执行模块启动转移合约调用跨链交互协议进行平行链间跨链转移通信。
在本发明中利用预言机关联智能合约在业务链中自动生成独立的NFT,基于统一的跨链交互协议构建平行链架构体系,提供NFT跨链转移传递通道,并设置流通权限和验证机制,提高NFT跨链转移的安全性,在公共链上部署跨链转移合约,快速响应跨链请求并对标执行。
附图说明
图1为本发明业务链NFT生成及元数据获取结构图;
图2为平行链架构体系结构图;
图3为交易并行机制原理图;
图4为链交互协议原理图;
图5为NFT链间转移执行流程图;
图6为不同NFT的跨链转移整体流程图;
图7为多链NFT跨链系统结构图。
具体实施方式
为了清晰地阐述本发明,使本发明实施例的目的、技术方案和优点更加清楚,下面结合了本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,以令本领域技术人员参照说明书文字能够据以实施,其具体实现的交互过程可用常见的资产交易过程为例来描述,以方便本领域技术人员的理解。
实施例1:
一种基于多链NFT跨链方法,涉及NFT的生成及跨链转移,包括:
(1)各业务链中NFT的生成;
(2)多链平行架构体系的搭建;
(3)基于多链的NFT跨链转移的执行。
具体实施如下:
(1)各业务链中NFT的生成:
在多个业务链中(包括业务链1,2…n),在每个业务链中设置预言机节点,并且每个预言机节点上部署NFT生成合约,在链外预言机节点通过RPC通信关联ETL网关,在ETL网关中按照NFT元数据属性制定链外资产类别及同类资产中稀有度等级标准,ETL网关通过API接口连接多个主流大数据网站,用于收集相关NFT元数据的链外数据资源,并进行清洗,转化归类,其结构图如图1所示。
响应业务链客户端生成NFT请求,调用NFT生成合约监听预言机节点,预言机节点采用分布式预言机,通过多个预言者(Oracles)之间进行相互验证,提供分散式oracle收集与NFT相关的业务数据资源,并经过ETL网关的清洗分类,向NFT生成合约输出NFT元数据,包括资产类别及稀有度等级;
NFT生成合约内配置NFT唯一识别ID号的生成程序,该生成程序获取用户客户端输入的固定PIN码(比如6位有效数字),并引入随机函数生成随机数结合PIN码组建ID号,并根据提供的稀有度等级确认随机数的个数,保证等级越高,随机数位数越多,使同类NFT具有价值分级。
以足球经营类游戏为例,其中NFT资产主要是以球员限量卡片的形式存在,预言机节点实时监控线下足球类网站比赛数据,根据球员在比赛中的精彩表现,经预言机和ETL网关转化,将现实世界中球员的样貌、身份作为其NFT元数据属性发送至到链上,并将能力数字化,生成对应的限量稀有专属NFT卡片。
(2)多链平行架构体系的搭建:
存在业务链1,2…n,每个业务链上都可生成其各自属性的NFT(NFT1,NFT2…NFTn),
如图2所示,为平行链架构体系结构图,首先基于substate架构创建公共链,该公共链作为NFT跨链转移的交互链,融合多个业务链的交易共识,托管共识逻辑。在公共链上提供多个Restful接口供各业务链的接入,并且每个接口编辑有平行链ID号(Para1,Para2…Paran)用于区分各个平行链。
在该公共链创建初期发行一定数额的流转通证,各业务链客户端可通过提前购买或后期参与公共链业务获取激励的方式获取流转通证,在存在NFT跨链转移需求时,业务链1,2…n可通过选择性抵押持有的流转通证获取竞拍插槽的权限,在每次竞拍插槽时,抵押流转通证的数量决定平行链插槽占有优先权和占有时间;
不同平行链客户端通过在公共链上抵押流转通证获取NFT链间转移的权限。
在竞拍成功后,在公共链上部署该平行链的轻节点,轻节点中记录该平行链的标识号,包括平行链ID号和该平行链接入时的公共链区块链号;
如图3所示为交易并行机制原理图,在该平行链体系中,利用交易并行机制,将每个平行链中当前跨链消息进行哈希计算,利用各平行链计算哈希值搭建依次交互的Merkle树结构,并将相互关联的Merkle根存至平行链轻节点中,利用轻节点对Merkle根中的跨链交易进行验证,形成并行的交易信息流;
每个平行链轻节点实时记录相应平行链区块头信息,每个区块头中包含其所在链上的当前发生的跨链交易信息Tx,通过对比区块头中跨链消息哈希与Merkle根存在的跨链消息哈希的一致性验证所属平行链的跨链信息真实性,并将验证结果在链上广播。
如图3,针对轻节点1记录Para1的区块头信息,包含Tx1,计算hashTx1,采用交易并行机制获取Hash(1,2)=HashTx1|HashTx2;Hash(1,n)=HashTx1|HashTxn;
轻节点2记录Para2的区块头信息,包含Tx2,计算hashTx2,采用交易并行机制获取Hash(1,2)=HashTx1|HashTx2;Hash(2,3)=HashTx2|HashTx3;
轻节点3记录Para3的区块头信息,包含Tx3,计算hashTx3,采用交易并行机制获取Hash(2,3)=HashTx2|HashTx3;Hash(3,4)=HashTx3|HashTx4;
直至轻节点n记录Paran的区块头信息,包含Txn,计算hashTxn,采用交易并行机制获取Hash(n-1,n)=HashTx(n-1)|HashTxn;Hash(1,n)=HashTx1|HashTxn;
通过双重验证一致性:hashTx1|hashTx2与Hash(1,2),hashTx2|hashTx3与Hash(2,3),hashTx3|hashTx4与Hash(3,4),直至hashTx1|hashTxn与Hash(1,n),从而确认Tx1,Tx2,Tx3…Txn的真实性。
基于所述Merkle树制定统一的跨链交互协议,用于各平行链间的消息传递,形成跨链消息流;如图4所示,在平行链架构体系chain{1,2,…n}中,存在平行链1,2,3…n,其跨链交互协议具体实现如下:
1)Para1到其他平行链:1->2(Para 1到Para 2的NFT跨链消息),1->3,…,1->n;
Chain2到其他平行链:2->1(Para 2到Para 1的跨链消息),2->3,…,2->n;
直至chain1n同上。
依次按照$$H(Head_{HC}):Head_{HC}=H(m)||b||H(previous Head_{HC}))$$
顺序进行消息队列哈希,并将仅存储消息队列哈希头$Head_{HC}$存储至公共链上:
其中$m$是一条消息,$H()$是一个哈希函数,$b$是最后发送消息的公共链区块号,包含前一条消息。
首先将消息队列进行哈希计算得到$H(1)$、$H(11)$、$H(111)$...$H(1n)$,取其哈希头信息$Head_{1}$、$Head_{11}$、$Head_{111}$、$Head_{1n}$依次存储至各自平行链上,然后进行哈希运算,得到消息根(Merkle root)。
2)设置公共链的平行链线程通道(1,2,…n),每条通道生成其对应平行链的位字段,并将通道列表存储在公共链状态中,通过平行链通道进行链间消息通信;
3)公共链区块的平行链区块头中还包含平行链区块消息根(Merkle root)和位字段,通过(Merkle root)从接收对象中查找$Head_{HC}$;
4)当Para 1的标识sign作为最后一个标识加入公共链的存储状态时,公共链共识出块,根据其区块头信息,通过Merkle root查找$Head_{1}$,可查询Para 1对应的跨链消息1->2,1->3,....1->n,根据位字段关联Para 2、Para 3…Paran的平行线程通道,进行跨链消息通信。
如图5所示,NFT链间转移执行流程具体如下:
在构建公共链时部署NFT转移合约,当平行链发生NFT跨链转移请求时,获取轻节点验证结果,确认跨链信息真实性后,解析跨链信息,并验证该平行链客户端抵押的流转通证是否达到阈值,当达到阈值后,启动合约内的转移函数,根据链间跨链交互协议关联目标平行链标识,获取函数输入参数包括NFT ID号、目标客户端账户及来源客户端账户;其中,输入参数是通过解析跨链信息获取的。
转移函数执行:发送所述NFT ID号至目标客户端账户,并注销来源客户端账户中NFT ID号。
实施例2:
如图6所示,不同NFT的跨链转移具体流程如下:
(1)用户客户端所在所属业务链上通过抵押流转通证,竞拍获取平行链插槽并成为平行链之一,并分配平行链标识(x,Para1),x为当前公共链的区块号,Para1为当前平行链的ID号索引,在公共链上部署Para1的轻节点peer1,记录平行链标识;
(2)Para1的用户客户端在公共链上的流转通证资源池中抵押流转通证并在Para1上发出NFT跨链转移请求(包括NFT ID号、用户客户端账户及目标客户端账户);
(3)响应跨链转移请求,其预言机节点验证客户端账户是否存在需要转移的NFT,若不存在则调用预言机节点生成具有ID识别号的NFT;
(4)若存在则生成跨链信息Tx1并进行哈希运算存储在Para1中,peer1实时记录所述平行链中区块头信息,通过交易并行机制轻节点验证跨链信息的真实性;
(5)确认真实后,调用转移合约,验证抵押流转通证是否达到阈值,确认达到后,根据平行链间跨链交互协议关联目标平行链并建立跨链通信消息流,获取目标链标识;
(6)启动转移函数,输入NFT转移参数,发送NFT ID号至目标客户端账户,并注销用户客户端账户中NFT ID号,实现NFT的链间转移。
实施例3:
如图7为本发明基于多链NFT的跨链系统结构图,包括NFT生成模块、跨链互通模块及执行模块;
所述NFT生成模块用于在业务链中设置预言机节点,通过预言机对链外真实资产进行实时监控,并与链上响应用户客户端生成相应NFT;
所述跨链互通模块用于将包含不同NFT的业务链组合为多个平行链,并基于多个平行链组建公共链,各平行链间设置交易并行机制并制定统一的跨链交互协议,构建多链结构的NFT跨链交互体系;其中,所述交易并行机制是在公共链上进行各平行链的跨链交易验签,同时在每个平行链上进行同步交易消息;
所述跨链互通模块还包括体系创建模块、权限获取模块及通信传递模块;
所述体系创建模块用于搭建跨链互通的平行链架构体系,包括多个不同NFT业务链组成的平行链及提供平行链插槽的公共链,所述公共链中部署各平行链的轻节点,并在各平行链间制定交易并行机制和统一的跨链交互协议;
所述权限获取模块用于抵押流转通证获取不同NFT业务链获取成为平行链的权限和平行链获取跨链转移的权限;以及经轻节点验证确认跨链信息真实性后获取调用跨链交互协议的权限;
所述通信传递模块用于关联执行模块启动转移合约调用跨链交互协议进行平行链间跨链转移通信。
所述执行模块响应不同平行链用户客户端跨链转移请求,调用跨链交互协议在平行链见进行跨链信息交互并在公共链中进行不同NFT的跨链转移。
在该系统中还包括存储计算机程序的存储器和执行多链NFT跨链方法的处理器以及计算机可读存储介质。
上述对实施例的描述是为便于本技术领域的普通技术人员能理解和应用本发明。熟悉本领域技术的人员显然可以容易地对上述实施例做出各种修改,并把在此说明的一般原理应用到其他实施例中而不必经过创造性的劳动。因此,本发明不限于上述实施例,本领域技术人员根据本发明的揭示,对于本发明做出的改进和修改都应该在本发明的保护范围之内。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:一种基于国产数据库的数据同步方法