基于权限的跨链通证交换方法及计算机可读介质与流程

文档序号:16978180发布日期:2019-02-26 19:13阅读:132来源:国知局
基于权限的跨链通证交换方法及计算机可读介质与流程

本发明涉及信息技术领域,特别涉及一种基于权限的跨链通证交换方法及计算机可读介质。



背景技术:

随着区块链技术的不断发展,目前区块链生态早已脱离单链信息孤岛的模式,形成了多经济体多链的一个生态环境。不断地有新的链诞生,链与链之间的交换成了亟待解决的首要问题。

目前,跨链交换的做法大致可分为三类,但都存在各种各样的缺陷,简述如下:

1、公证人模式(notaryschemes):在公证人模式中,使用受信任的一个或者一组团体向链x声明链y上发生了某事件,或者确定该声明是正确的。这些团体既可以自动地监听和响应事件,也可以在被请求的时候进行监听和响应事件。公证人模式在许可分账领域受到很多关注,因为其既可以提供灵活共识的主要竞争者,也无需进行昂贵的工作证明或关于利益机制的复杂证明。但是公证人模式缺点也很明显,公证人模式需要多处公证人的证实,公证人是第三方、特权机构,很容易成为整个系统中信任环节中最弱的那一环。

2、侧链(sidechains)/中继(relays):如果一个链b能拥有另外一个链a的所有功能,则称链b为链a的侧链,链a为链b的主链。其中主链a并不知道侧链b的存在,侧链b知道有主链a的存在。假设区块链拥有区块header和body,header中拥有merkle等证明信息,可以将链a的区块链头,写入链b的块中,链b使用和链a一样的共识验证方法,比如pow验证难度和长度,pbft验证投票等。等待链a的区块头序列之后,链b就可以通过merkle分支的证明信息来证明链a的数据和操作。链a、b不能直接验证对方块的状态,因为这样会形成循环,但相互只包含轻节点是可行的,这个区块链验证的逻辑可以由链协议本身或应用合约实现。核心代码需要在使用中继/侧链模式的两条链上同时存在,但同时需要两条链上的通证或物是可以无限量发行的,这样才可以保证验证过程没有错误,从而来达到资产转移操作。

3、哈希锁定(hash-locking):哈希锁定模式的设计是希望链a与链b之间尽可能少的了解彼此,并作为消除公证人信任的手段。哈希锁定起源于比特币闪电网络,闪电网络本身是一种小额的快速支付的手段,后来它的关键技术哈希时间锁合约被应用到跨链技术上来。虽然哈希锁定实现了跨链资产的交换,但是没有实现跨链资产的转移,更不能实现这种跨链合约,所以它的应用场景是相对比较受限的。

综上所述,跨链交换尚无明确的、统一的交换标准。而且,可以看出以上各种跨链方法都是针对无藏品属性的通证,尚无针对藏品属性通证的跨链交换方法。



技术实现要素:

根据本发明实施例,提供了一种基于权限的跨链通证交换方法,所述通证的基础权限包含公共数据和授权数据,所述通证数据的状态标识,包含正常、交换中、禁用三种状态,默认为正常状态,包含如下步骤:

第一链锁定第一通证的状态,更新第一通证的状态标志,所述第一通证为第一链的待交换通证;

第一链向第二链发送申请信息,提出交换申请;

第二链收到交换申请后,进行交换申请确认,交换申请确认通过后,第二链主动锁定第二通证,并向第一链通知所述第二通证已锁定,所述第二通证为第二链的待交换通证;

当第一链收到第二通证的锁定信息之后,更新第一链上的第一通证的状态为禁用状态,并将第一通证允许交换的信息打包发送给第二链;

第二链在收到第一链的打包信息后进行校验,并根据打包信息生成第二链上第一通证的信息,生成第三通证;

待第三通证生成并将其状态设定为跨链交换状态,第二链将第二通证的信息打包发送给第一链,第一链校验第二通证的打包信息后生成第四通证;

当第一链和第二链打包信息互换完成后,第一链和第二链针对此次交易互相发起最终消息确认,第一链和第二链收到确认消息后,分别更新第四通证和第三通证的状态为正常。

进一步,所述通证的基础信息身份编号始终不会改变,所述通证的信息身份编号为通证当前所在链上编号。

进一步,所述第一链向第二链发送的申请信息中包含但不限于第一通证的类型信息、时间戳、过期时间、价格。

进一步,第二链进行交换申请确认如果未通过,则通知第一链交换申请取消,并告知第一链未通过的原因。

进一步,打包通证允许交换的信息的步骤包含如下子步骤:

向待交换链查询通证的权限;

查询通过后,提取待交换通证的授权信息;

打包待交换通证的授权信息和公开信息;

向交换目标链推送打包后的消息。

进一步,若查询通证的权限未通过,则待交换链向交换目标链发送推送失败的消息。

进一步,当第一链或第二链在交换通证发生违约时,第一链或第二链将被加入黑名单。

进一步,在交换通证的交易完全履约前,第一链或第二链无法再次进行跨链交换通证。

进一步,当所述第三通证重新被交换回第一链,或,第四通证重新被交换回第二链时,所述第三通证或第四通证的原有授权信息可被重新找回。

一种计算机存储介质,包含存储在其上的计算机可读程序指令,所述计算机可读程序指令用于执行上述的方法。

本发明实现无藏品属性通证、有藏品属性通证的交换,通过该协议,链与链之间可以实现无缝对接,无需借助第三方,跨链时具有隐私性的藏品属性数据可以有效受到保护,不会因为跨链转移造成藏品属性的丢失或者泄漏,并且,跨链交换后其通证经济价值与跨链前等效,通过这一协议的实行,可以彻底打破链与链之间的信息孤岛,形成真正的跨链生态。

要理解的是,前面的一般描述和下面的详细描述两者都是示例性的,并且意图在于提供要求保护的技术的进一步说明。

附图说明

图1为图示根据本发明实施例基于权限的跨链通证交换方法的流程图;

图2为图示根据本发明实施例基于权限的跨链通证交换方法中打包通证允许交换的信息的流程图。

具体实施方式

以下将结合附图,详细描述本发明的优选实施例,对本发明做进一步阐述。

首先,将结合图1描述根据本发明实施例的基于权限的跨链通证交换方法。

图1是图示根据本发明实施例的基于权限的跨链通证交换方法的方法流程图。通证的基础权限包含公共数据和授权数据,通证数据的状态标识,包含正常、交换中、禁用三种状态,默认为正常状态,进一步,当所述第三通证重新被交换回第一链,或,第四通证重新被交换回第二链时,所述第三通证或第四通证的原有授权信息可被重新找回。在本实施例中,通证的基础信息身份编号始终不会改变,通证的信息身份编号为通证当前所在链上编号,因此,通过基础信息身份编号,系统可以始终找到该通证自诞生至当前的所有状态,当通证被交换回曾经存在过的链时,其私有属性的信息可以被恢复。

如图1所示,本发明实施例的基于权限的跨链通证交换方法,包含如下步骤:

第一链锁定第一通证的状态,更新第一通证的状态标志,所述第一通证为第一链的待交换通证。

第一链向第二链发送申请信息,提出交换申请;在本实施例中,所述第一链向第二链发送的申请信息中包含但不限于第一通证的类型信息、时间戳、过期时间、价格。

第二链收到交换申请后,进行交换申请确认,若申请确认如果未通过,则通知第一链交换申请取消,并告知第一链未通过的原因;若交换申请确认通过后,第二链主动锁定第二通证,并向第一链通知所述第二通证已锁定,所述第二通证为第二链的待交换通证。

当第一链收到第二通证的锁定信息之后,更新第一链上的第一通证的状态为禁用状态,并将第一通证允许交换的信息打包发送给第二链;在本实施例中,如图2所示,打包通证允许交换的信息的步骤包含如下子步骤:向待交换链查询通证的权限;若查询通证的权限未通过,则待交换链向交换目标链发送推送失败的消息,查询通过后,提取待交换通证的授权信息;打包待交换通证的授权信息和公开信息;向交换目标链推送打包后的消息。

第二链在收到第一链的打包信息后进行校验,并根据打包信息生成第二链上第一通证的信息,生成第三通证。

待第三通证生成并将其状态设定为跨链交换状态,第二链将第二通证的信息打包发送给第一链,第一链校验第二通证的打包信息后生成第四通证;

当第一链和第二链打包信息互换完成后,第一链和第二链针对此次交易互相发起最终消息确认,第一链和第二链收到确认消息后,分别更新第四通证和第三通证的状态为正常,跨链通证交换完成。

在本实施例中,当第一链或第二链在交换通证发生违约时,第一链或第二链将被加入黑名单。在交换通证的交易完全履约前,第一链或第二链无法再次进行跨链交换通证。

以两条公链上的erc721通证(请说明一下这是个什么通证)的跨链交换为例,假设链a上有erc721类型的爱心通证xa,链b上有erc721类型的月亮通证xb,现在链a和链b欲进行交换,但又不想各自的私有属性数据跨链泄露。那么可以通过如上图所示流程进行跨链交换。

链a加载跨链交换插件,在链b上进行注册;

链b加载跨链交换插件,在链a上进行注册;

链a,链b在各自的路由中注册成功之后,即可进行跨链通证的交换;

链a上的爱心通证发起跨链交换;

链b上的月亮通证收到交换申请后,如果同意交换,则发送同意交换通知,进入跨链交换流程;

链b上的月亮通证和链a上的心形通证分别获取授权信息,确权成功后,对公共数据和授权数据进行打包推送给对方,当收到信息后进行在各自的公链上生成影子通证;

影子通证(跨链后的通证)生成后,进行全网广播,并通知对方;

双方都收到通知后,更新各自的影子通证为激活状态,并禁用原始通证。至此,跨链交换完成。

通过以上的跨链交换流程,既保护了月亮通证和爱心通证的隐私数据,又保证了当月亮通证和爱心通证被交换回上一公链时其授权数据可被找回。从而保证区块链公开、透明,不可更改的属性。

如上所述,在根据本发明实施例的基于权限的跨链通证交换方法,实现无藏品属性通证、有藏品属性通证的交换,通过该协议,链与链之间可以实现无缝对接,无需借助第三方,跨链时具有隐私性的藏品属性数据可以有效受到保护,不会因为跨链转移造成藏品属性的丢失或者泄漏,并且,跨链交换后其通证经济价值与跨链前等效,通过这一协议的实行,可以彻底打破链与链之间的信息孤岛,形成真正的跨链生态。

一般而言,本公开的各种示例实施例可以在硬件或专用电路、软件、固件、逻辑,或其任何组合中实施。某些方面可以在硬件中实施,而其他方面可以在可以由控制器、微处理器或其他计算设备执行的固件或软件中实施。当本公开的实施例的各方面被图示或描述为框图、流程图或使用某些其他图形表示时,将理解此处描述的方框、装置、系统、技术或方法可以作为非限制性的示例在硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备,或其某些组合中实施。

作为示例,可以用通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或其它可编程逻辑器件、分立门或者晶体管逻辑、分立硬件组件或用于执行本文所述的功能的任意组合来实现或执行结合本公开所描述的各种示例性的逻辑块、模块和电路。通用处理器可以是微处理器,或者,处理器也可以是任何普通的处理器、控制器、微控制器或者状态机。处理器也可以实现为计算设备的组合,例如,dsp和微处理器的组合、多个微处理器、一个或多个微处理器与dsp内核的结合,或者任何其它此种结构。

作为示例,本公开的实施例可以在机器可执行指令的上下文中被描述,机器可执行指令诸如包括在目标的真实或者虚拟处理器上的器件中执行的程序模块中。一般而言,程序模块包括例程、程序、库、对象、类、组件、数据结构等,其执行特定的任务或者实现特定的抽象数据结构。在各实施例中,程序模块的功能可以在所描述的程序模块之间合并或者分割。用于程序模块的机器可执行指令可以在本地或者分布式设备内执行。在分布式设备中,程序模块可以位于本地和远程存储介质二者中。

用于实现本公开的方法的计算机程序代码可以用一种或多种编程语言编写。这些计算机程序代码可以提供给通用计算机、专用计算机或其他可编程的数据处理装置的处理器,使得程序代码在被计算机或其他可编程的数据处理装置执行的时候,引起在流程图和/或框图中规定的功能/操作被实施。程序代码可以完全在计算机上、部分在计算机上、作为独立的软件包、部分在计算机上且部分在远程计算机上或完全在远程计算机或服务器上执行。

在本公开的上下文中,计算机存储介质可以是包含或存储用于或有关于指令执行系统、装置或设备的程序的任何有形介质。计算机存储介质可以是机器可读信号介质或机器可读存储介质。计算机存储介质可以包括但不限于电子的、磁的、光学的、电磁的、红外的或半导体系统、装置或设备,或其任意合适的组合。机器可读存储介质的更详细示例包括带有一根或多根导线的电气连接、便携式计算机磁盘、硬盘、随机存储存取器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪存)、光存储设备、磁存储设备,或其任意合适的组合。

另外,尽管本发明实施例的动态分片方法以特定顺序被描绘,但这并不应该理解为要求此类操作以示出的特定顺序或以相继顺序完成,或者执行所有图示的操作以获取期望结果。在某些情况下,多任务或并行处理会是有益的。同样地,尽管上述讨论包含了某些特定的实施细节,但这并不应解释为限制任何发明或权利要求的范围,而应解释为对可以针对特定发明的特定实施例的描述。本说明书中在分开的实施例的上下文中描述的某些特征也可以整合实施在单个实施例中。反之,在单个实施例的上下文中描述的各种特征也可以分离地在多个实施例或在任意合适的子组合中实施。

需要说明的是,在本说明书中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

尽管已经以特定于结构特征和/或方法动作的语言描述了主题,但是应当理解,所附权利要求中限定的主题并不限于上文描述的特定特征或动作。相反,上文描述的特定特征和动作是作为实现权利要求的示例形式而被公开的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1