首页> 中国专利> 一种去中心化异构公有链资产交换方法

一种去中心化异构公有链资产交换方法

摘要

本发明公开了一种去中心化异构公有链资产交换方法,能够保证信息传递的事务一致性,即保证资产交换的安全性,实现价值对等交换。本发明设计了CSCP协议,能够满足异构公有链之间的跨链调用,该协议把区块链消息转换成统一标准的跨链总线消息,能够适用于不同架构的公链,具有很强的扩展性。当进行信息传递时首先进行身份注册,然后发起交易,并锁定相应资产,通过交易的检查验证后执行资产交换,如果不符合条件则根据冻结资产进行回滚。当处理交易时需要从代理节点连接的所有公链节点中获取多份信息,并进行比对,如果一致则认为没有作恶,否则终止交易。本发明提出的公有链资产交换流程通过智能合约进行,保证不受人为干预,提高安全性。

著录项

  • 公开/公告号CN112529706A

    专利类型发明专利

  • 公开/公告日2021-03-19

    原文格式PDF

  • 申请/专利权人 浙商银行股份有限公司;

    申请/专利号CN202011455316.1

  • 发明设计人 臧铖;陈嘉俊;郭东升;

    申请日2020-12-10

  • 分类号G06Q40/04(20120101);G06F21/64(20130101);H04L29/06(20060101);H04L29/08(20060101);

  • 代理机构33200 杭州求是专利事务所有限公司;

  • 代理人刘静

  • 地址 311200 浙江省杭州市萧山区鸿宁路1788号

  • 入库时间 2023-06-19 10:19:37

说明书

技术领域

本发明涉及区块链技术领域,特别涉及一种去中心化异构公有链资产交换方法。

背景技术

区块链最大价值是实现信息价值的传递,但是大多区块链平台具有很强的排他性,导致在如今的区块链网络中,会存在许多的价值孤岛,导致区块链之间不能够价值互联。特别针对异构公有链来讲,链间交互面临着架构不一致、接口不统一、共识不一致等等问题,因为公有链一般会有相应的代币等价值资产,在资产交换过程中要实现价值对等,所以资产交换怎么保证事务一致性问题也是一大难点;在价值交换同时也要防止一些作恶节点进行攻击造成资产损失,所以一种能够保证异构公有链之间实现价值对等、事务一致性的资产交换方法十分必要。

发明内容

本发明基于以上技术问题,设计并实现了一种去中心化异构公有链资产交换方法。

本发明的目的是通过以下技术方案实现的:一种去中心化异构公有链资产交换方法,包括:

通信双方是异构公有链,通过异构公有链代理节点实现异构公有链资产交换;异构公有链代理节点可以连接多个公有链节点,连接节点数要大于等于P,P为用户自定义的代理节点与公链节点的最小连接数;代理节点与公链建立连接的过程为:先与任意一个公链节点建立连接,通过该连接节点的与其他公链节点连接的地址中随机选择地址并试图与其建立连接,并以此类推进行连接建立,保证连接数大于等于P;当处理交易时需要从代理节点连接的所有公链节点中获取多份信息,并进行比对,如果一致则认为无异常,否则终止交易;

通过跨链标准交互协议CSCP实现异构公链间网络通信,CSCP协议上定义了标准通信接口,CSCP协议将区块链消息转换成统一标准的跨链总线消息,能够适用于不同架构的公链,标准通信接口用于异构公有链之间信息交互;

公链A与公链B发生跨链资产交换时的交互过程如下:

公链A代理节点锁定user1 v1资产,并生成锁定证明,将锁定证明发送到公链B代理节点;

公链B代理节点验证锁定证明,锁定user2 v2资产,并生成锁定证明,将锁定证明发送到公链A代理节点;

公链A代理节点验证公链B的锁定证明,如果通过则开始跨链交易,并生成跨链交易证明,将证明发送到公链B代理节点;

公链B代理节点收到跨链交易证明,验证跨链交易证明的存在性,并解锁B链的资产锁定,提交跨链事务,并将跨链交易证明发送到公链A代理节点;

公链A代理节点收到公链B的交易证明,进行验证,通过后解锁A链的资产锁定,提交跨链事务;

在门限时间内判断锁定的资产是否解锁,如果解锁则执行转账交易;

针对异构公有链设计身份及验证规则管理方法,包括:源链向目的链注册公有链;目的链解析源链的注册信息,根据源链的身份信息及公链的类型生成相应的验证规则,根据源链身份信息及生成的验证规则构建验证规则映射表;如果发起价值交换请求,则根据公链的身份信息从映射表里匹配验证规则,将验证规则输入验证引擎,根据验证规则对交易进行验证,并输出验证结果;如果发起更新注册或者注销操作,则对映射表里映射信息进行更新或者注销。

进一步地,CSCP协议的主要字段包括:version,协议版本;SourceChainID,来源链地址;DestChainID,目的链地址;CrosschainPayload,跨链交易内容;Timestamp,时间戳;signature,代理节点签名;Cert,跨链交易节点证书;Proof,存在性验证信息;OriginInfo,跨链交易原始交易信息;extra,用户扩展字段;其中CrosschainPayload通过json序列化成字节类型,根据跨链交易的区块链架构而定,当传递到目的链时通过json解析出对应的结构;

进一步地,标准通信接口包括:交易转换接口、交易发送接口、交易接收接口、交易验证接口、注册链接口、更新链接口、注销链接口,其中交易转换接口用于将交易消息与总线标准协议CSCP相互转换。

进一步地,当进行资产交换时首先要进行身份注册,然后发起交易,并锁定相应资产,通过交易的检查验证后执行资产交换,如果不符合条件则根据冻结资产进行回滚。

进一步地,公有链资产交换流程通过内置智能合约进行,其功能包括:处理跨链交易、进行事务锁定、验证锁定、解锁事务、发送交易证明、验证交易存在性、提交跨链事务、执行转账交易;智能合约保证了异构公有链之间资产交换过程不受人为干预,保证价值的对等交换。

进一步地,异构公有链之间资产交换关键逻辑包括以下步骤:

(1)证书颁发:跨链证书管理模块给代理节点颁发跨链根证书和公私钥对;

(2)链注册:公有链源链会向目的链进行跨链注册,主要包括源链的身份信息、验证规则,注册成功后,目的链的验证引擎模块生成对该链的验证规则,并把源链的身份信息、注册信息进行持久化存储;

(3)身份及验证规则管理:验证规则用于验证跨链交易的存在性和有效性,在公有链进行通信时能够验证链的身份,并匹配相应链的验证规则对交易存在性和有效性进行验证;

(4)检查阶段:检查产生该跨链交易的源链是否已经注册过,是否具有相关访问权限;

(5)验证阶段:通过交易的源链身份信息,在目的链的注册表里匹配验证规则,然后将交易的验证信息、验证规则、跨链交易输入到验证引擎进行验证;

(6)执行阶段:跨链交易通过验证后执行交易并返回结果。

进一步地,所述跨链证书管理模块用来生成和管理相关的CA证书和数字证书,功能具体如下:

证书签发:通过跨链证书管理模块生成根证书root.ca及根证书私钥root.priv;当公有链之间发起通信时,需要注册身份信息,由目的链的根证书root.ca签发跨链证书crosschain.cert及跨链证书私钥crosschain.priv到源链;

证书检查:跨链证书管理模块提供证书检查服务,检查内容包括证书是否由目的链代理节点的root.ca证书签发的跨链证书、摘要签名是否合法;

证书撤销:当用户个人身份信息发生变化,或者私钥丢失、泄露或者疑似泄露时,证书用户可以向跨链证书管理模块提出证书的撤销请求,跨链证书管理模块会生成证书撤销列表,该列表中列举着所有在有效期内但被撤销的数字证书。在证书验证时会根据证书撤销列表检查跨链交易的证书是否被撤销。

进一步地,对异构公有链链间交易通过默克尔证明实现交易存在性证明,异构公有链之间交易验证具体方法为:

获取区块hash的默克尔树:如果公链区块采用默克尔树结构存储,则直接获取当前交易的默克尔树作为该交易的存在性证明;如果公链区块没有采用默克尔树结构存储,则生成区块的默克尔树证明,具体为:计算区块的hash值,并作为二叉树叶子节点,叶子节点的父节点为两个叶子节点hash值的hash值,并以此类推计算出根节点hash值;

将生成或者获取的默克尔树作为通信消息进行封装,使之符合CSCP。

进一步地,为保证异构公有链跨链事务一致性,在两个资产交换的公链A和公链B的代理节点执行以下操作:

公链A的代理节点生成跨链交易证明和跨链交易摘要签名,锁定事务α,向公链B的代理节点发起跨链事务请求;

公链B的代理节点收到跨链事务请求后,验证锁定的事务α,如果验证通过则锁定事务β,生成事务β锁定证明,并将事务β锁定证明发送给公链A的代理节点;

公链A的代理节点接收并验证事务β锁定证明,如果验证通过则向公链B发起跨链交易请求,所述跨链交易请求中包括跨链交易证明和跨链交易摘要签名;

公链B的代理节点接收跨链交易请求,并验证跨链交易证明和跨链交易摘要签名,如果验证通过则解锁事务β,提交跨链事务,并向公链A的代理节点返回提交跨链事务凭证;

公链A的代理节点接收并验证提交跨链事务凭证,如果验证通过则解锁事务α,实现事务α和事务β的一致性操作;

在验证过程中,公链B的代理节点在门限时间内验证事务β是否解锁,如果已解锁则跨链交易已执行;否则回滚跨链事务,释放事务β;公链A的代理节点在门限时间内验证事务α是否解锁,如果已解锁则跨链交易已执行;否则回滚跨链事务,释放事务α;

通过事务锁定和交互,保证事务α和事务β同时解锁或者同时未解锁,解锁事务锁定的必要条件是验证通过对端链交易的存证性证明。

进一步地,通过内置智能合约保证信息传递不受人为干预,保证了通信双方锁定的事务同时成功或同时失败,事务一致性保证与内置智能合约的实现流程如下:

用户发起价值交换请求到源链代理节点;源链代理节点处理跨链价值交换请求;源链内置智能合约收到跨链价值交换请求后,生成跨链交易存在证明与签名;源链开始跨链事务锁定,锁定事务α;源链将锁定证明发送到目的链;

目的链内置智能合约验证锁定证明,并开始事务锁定β;目的链发送事务β锁定证明到源链;

源链验证事务β锁定证明,并发送跨链交易存在证明与签名到目的链;

目的链验证源链跨链交易存在证明与签名,通过后解锁事务β并提交跨链事务;目的链将跨链交易存在证明与签名发送到源链;

源链验证目的链发送的跨链交易存在证明与签名,验证通过后解锁事务α并提交跨链事务;

源链与目的链在门限时间内判断事务锁定有没有解锁,如果解锁则执行交易进行价值交换,否则进行事务回滚并解锁事务锁定。

进一步地,在两个资产交换的公链A和公链B之间的消息传递流程如下:

公有链A发送跨链消息到代理节点;公有链A的代理节点把A链消息类型转换为总线标准通信消息CSCP,对CSCP消息签名,将CSCP消息发送到B链的代理节点;

公有链B的代理节点接收到CSCP消息,对CSCP消息进行签名验证、身份验证、权限验证、存在性验证,将CSCP消息转换成B链格式的交易消息,将跨链交易发送到B链;

公有链B处理跨链消息,返回处理结果。

本发明的有益效果是:本发明设计并实现了一种去中心化异构公有链资产交换方法,能够保证信息传递的事务一致性,即保证资产交换的安全性,实现价值对等交换。本发明设计了CSCP协议,能够满足异构公有链之间的跨链调用,该协议把区块链消息转换成统一标准的跨链总线消息,能够适用于不同架构的公链,具有很强的扩展性。当进行信息传递时首先进行身份注册,然后发起交易,并锁定相应资产,通过交易的检查验证后执行资产交换,如果不符合条件则根据冻结资产进行回滚。当处理交易时需要从代理节点连接的所有公链节点中获取多份信息,并进行比对,如果一致则认为没有作恶,否则终止交易。本发明提出的公有链资产交换流程通过智能合约进行,保证不受人为干预,提高安全性。

附图说明

图1是本发明实施例提供的去中心化异构公有链资产交换总体架构图;

图2是本发明实施例提供的异构公有链之间资产交换流程图;

图3是本发明实施例提供的身份及验证规则管理方法流程图;

图4是本发明实施例提供的默克尔树结构图;

图5是本发明实施例提供的事务一致性保证与内置智能合约的实现流程图;

图6是本发明实施例提供的异构公有链消息传递流程图。

具体实施方式

为了更好的理解本申请的技术方案,下面结合附图对本申请实施例进行详细描述。

应当明确,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。

在本申请实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。

本发明设计并实现了一种在异构公有链之间传递信息的方法,能够保证信息传递的事务一致性,即保证资产交换的安全性,实现价值对等交换。当进行信息传递时首先要进行身份注册,然后发起交易,并锁定相应资产,通过交易的检查验证后执行资产交换,如果不符合条件则根据冻结资产进行回滚。本发明提出的公有链资产交换流程通过智能合约进行,保证不受人为干预,提高安全性。

本发明设计一种异构公有链代理节点crossagent,通过代理节点crossagent实现异构公有链资产交换,其主要功能包括:跨链证书管理模块、标准通信总线CSCP、标准通信接口、资产交换智能合约。总体架构如图1所示。通信双方是异构公有链,通过代理节点crossagent进行通信。

一、代理节点crossagent

crossagent为异构公有链之间通信的代理节点,可以连接多个公有链节点,提供一定的容错能力,这里规定连接节点要大于等于P个(P为用户自己定义的crossagent与公链节点的最小连接数,p值越大,出错的概率越小),一般默认P等于6。当用户APP发起跨链交易时,由crossagent的发送接口把跨链消息传递到目的链的crossagent节点,然后再传递到目的链上进行相关操作。通信过程采用TLS加密,可以确保信息传递安全性。

crossagent与公链建立连接的过程为:

1、先与任意一个公链节点建立连接;

2、通过该连接节点的与其他公链节点连接的地址中随机选择地址并试图与其建立连接;并以此类推进行连接建立,保证连接数大于等于P。

这样做的好处是排除异常节点作恶,当处理交易时需要从crossagent连接的所有公链节点中获取多份信息,并进行比对,如果一致则认为没有作恶,否则终止交易。

二、标准通信总线CSCP

CSCP为跨链标准交互协议(crosschain standard communication protocol),主要用于异构公链间网络通信。

异构公有链通信通过CSCP总线协议,能够满足异构公有链之间的跨链调用,该协议把区块链消息转换成统一标准的跨链总线消息,能够适用于不同架构的公链,具有很强的扩展性,该协议主要字段如下所示:

其中跨链交易内容CrosschainPayload通过json序列化成字节类型,可以根据跨链交易的区块链架构而定,当传递到目的链时通过json解析出对应的结构。

CSCP协议上定义了标准通信接口,用于异构公有链之间信息交互。主要有:

交易转换接口TxToCSCP\CSCPToTx,能够将交易消息与总线标准协议CSCP相互转换,在通信过程中可以利用总线上统一标准接口;

交易发送接口SendTx,用于源链向目的链发送信息;

交易接收接口ReceiveTX,用于目的链接收跨链交易;

交易验证接口VerifyCSCP,用于验证交易信息;

注册链接口RegistChain,用于身份注册;

更新链接口UpdateChain,用于更新链身份信息;

注销链接口DeleteChain,用于注销链身份信息。

本发明提出的一种去中心化异构公有链资产交换方法,其流程为:

公链A上具有账户user1、账户user2,同样公链B上也有账户user1、user2,公链A与公链B上的账户user1为同一法人;同理公链A与公链B上的账户user2也为同一法人。

当公链A与公链B发生跨链资产交换时,具体地在公链A上为user1向user2转移资产v1,那么对等的公链B上需要user2向user1转移相应的等价资产v2。

1、公链A的crossagent上锁定user1 v1资产,并生成锁定证明;

2、将锁定证明发送到公链B的crossagent;

3、公链B的crossagent验证锁定证明,并锁定user2 v2资产,并生成锁定证明;

4、公链B的crossagent将公链B的锁定证明发送到公链A的crossagent;

5、公链A的crossagent验证公链B的锁定证明,如果通过则开始跨链交易,并生成跨链交易证明,并将证明发送到公链B的crossagent;

6、公链B的crossagent收到跨链交易证明,验证跨链交易证明的存在性,并解锁B链的资产锁定,提交跨链事务,并将跨链交易证明发送公链A的crossagent;

7、公链A的crossagent收到公链B的交易证明,进行验证,通过后解锁A链的资产锁定,提交跨链事务;

8、在门限时间内判断锁定的资产是否解锁,如果解锁则执行转账交易。

本发明设计一种异构公有链资产交换内置智能合约,其功能主要包括:处理跨链交易、进行事务锁定、验证锁定、解锁事务、发送交易证明、验证交易存在性、提交跨链事务、执行转账交易等。智能合约保证了异构公有链之间资产交换过程不受人为干预。也就是说保证两边同时成功或者同时失败,不会出现不一致的情况,保证了价值的对等交换。

异构公有链之间资产交换关键逻辑流程如图2所示,包括以下步骤:

(1)证书颁发

证书管理模块给代理节点颁发跨链根证书和公私钥对。具体颁发规则为,假设公链A与公链B之间相互通信,那么A链根证书采用B链公钥给B链颁发跨链证书;B链根证书采用A链公钥给A链颁发跨链证书,并把证书及公私钥对部署在跨链通信代理节点crossagent上。那么B链可以用根证书去验证A链发过来的消息的跨链证书,同样A链可以用根证书去验证B链发送过来的消息的跨链证书;同时也会对消息摘要签名进行验证,进而达到身份验证以及保证通信安全。

本发明设计并实现了证书管理模块certManage,主要用来生成和管理相关的CA证书和数字证书,包括证书签发、公私钥生成、证书检查、证书撤销等功能。具体如下:

(1)证书签发:crossagent节点通过certManage生成根证书root.ca及根证书私钥root.priv。当公有链之间发起通信时,需要注册身份信息,首先会由目的链的根证书root.ca签发跨链证书crosschain.cert及跨链证书私钥crosschain.priv到源链。

(2)证书检查:certManage提供证书检查服务,检查内容包括证书是否由目的链crossagent的root.ca证书签发的跨链证书、摘要签名是否合法等。

(3)证书撤销:当用户个人身份信息发生变化,或者私钥丢失、泄露或者疑似泄露时,证书用户可以向CertManage提出证书的撤销请求,certManage会生成证书撤销列表,该列表中列举着所有在有效期内但被撤销的数字证书。在证书验证时会根据证书撤销列表检查跨链交易的证书是否被撤销。

(2)链注册

公有链源链会向目的链进行跨链注册,主要包括源链的身份信息、验证规则等,注册成功后,目的链的验证引擎模块会生成对该链的验证规则,后续按照这个验证规则对跨链交易的合法性进行验证。针对不同架构的公有链,会生成不同的验证规则。并把源链的身份信息、注册信息进行持久化存储。目的链crossagent的验证引擎会对源链注册的信息进行核对。

crossagent支持链更新和注销操作,总体流程如注册流程类似,更新和注销信息经过检查验证后,会更新注册表内容。

(3)身份及验证规则管理

验证规则是供验证引擎对跨链交易验证存在性和有效性所用的。源链向目的链注册时,由目的链的crossagent进行相应验证规则的部署、注册,并记录注册链的身份信息。在公有链进行通信时能够验证链的身份,并匹配相应链的验证规则对交易存在性和有效性进行验证,验证通过后执行相关交易。

因为公链的异构性,资产交换的公链可能共识机制不一致,那么对不同的公链来讲,验证规则是不一样的,本发明设计一种身份及验证规则管理方法,如图3所示,包括以下步骤:

1、源链向目的链注册公有链;

2、目的链解析源链的注册信息;

3、目的链根据源链的身份信息及公链的类型生成相应的验证规则;

4、根据源链身份信息及生成的验证规则构建验证规则映射表;

5、如果发起价值交换请求,则根据公链的身份信息从映射表里匹配验证规则;

6、将验证规则输入验证引擎;

7、验证引擎根据验证规则对交易进行验证;

8、验证引擎输出验证结果,进行后续步骤;

9、如果发起更新注册或者注销操作,则对映射表里映射信息进行更新或者注销。

(4)检查阶段

跨链交易的检查工作包括:产生该跨链交易的源链是否已经注册过,包括源链身份信息、验证规则,以及是否具有相关访问权限等。

(5)验证阶段

检查通过的跨链交易进入验证阶段,验证阶段由验证引擎执行,通过交易的源链身份信息,在目的链的注册信息表里匹配验证规则,然后将交易的验证信息、验证规则、跨链交易输入到验证引擎,然后进行验证。验证通过后,交易将进入执行阶段。

(6)执行阶段

跨链交易通过验证后进入执行阶段,执行阶段设计了交易有效性、交易存在性证明和事务一致性保证的方法。

6.1、交易有效性

通过非对称秘钥签名和验签保证交易消息的有效性。

6.2、交易存在性

本发明中,跨链交易的存在性证明是由默克尔证明来实现的。默克尔树的结构如图4示,每个非叶子节点通过其子节点的哈希值来进行标注,树的根节点叫作默克尔根(merkle root)。图4所示是某区块X的的默克尔树结构,如果要验证交易Tx_D是否在该区块中,无需获取整个区块,只需要提供交易Tx_D,H_AB,H_C以及merkle root即可。具体过程如下:

a、根据交易D计算哈希,得到H_D;

b、根据H_C和H_D计算哈希,得到H_CD;

c、根据H_AB和H_CD计算哈希,得到H_ABCD;

d、对比H_ABCD和merkle root,如果相同,则证明区块中存在交易Tx_D,否则说明不存在。

公有链之间通信需要存在性证明,在交易信息中需要带有验证信息,证明信息是指验证过程中用到的初始哈希值,即H_AB、H_C、merkle root以及交易信息Tx_D。

异构公有链之间交易验证具体方法为:

1、获取区块hash的默克尔树,没有则自己构造生成

①如果公链区块采用默克尔树结构存储,则直接获取当前交易的默克尔树,作为该交易的存在性证明;

②因为公链的异构性,有些区块链平台区块存储没有采用默克尔树结构,

这时需要遍历区块,自己生成区块的默克尔树证明,具体生成方法是:

a)计算区块的hash值,并作为二叉树叶子节点;

b)叶子节点的父节点为两个叶子节点hash值的hash值;

c)并以此类推计算出根节点hash值。

2、封装成标准跨链交易消息,符合CSCP

将生成或者获取的默克尔树作为通信消息进行封装,使之符合CSCP协议标准。

6.3、事务一致性

区块链通过共识机制保证了节点之间的一致性,针对单链内部的事务保证,共识算法能够保证其状态是确定的,所有的交易执行结果在所有集群中均是一致的。但是在跨链交互当中,一方面,链间状态并没有相互同步,如果链内部采用的共识协议不同的话,节点内部共识状态也无法作为事务提交的标志。但是跨链交互又需要获取链之间的交易和状态数据,那么跨链交互过程当中的事务保证则成为了一个关键点。

为了实现跨链事务机制,本发明设计了跨链事务锁方案,跨链事务交互流程如下:

1、公链A的代理节点生成跨链交易证明和跨链交易摘要签名,锁定事务α,向公链B的代理节点发起跨链事务请求;

2、公链B的代理节点收到跨链事务请求后,验证锁定的事务α,如果验证通过则锁定事务β,生成事务β锁定证明,并将事务β锁定证明发送给公链A的代理节点;

3、公链A的代理节点接收并验证事务β锁定证明,如果验证通过则向公链B发起跨链交易请求,所述跨链交易请求中包括跨链交易证明和跨链交易摘要签名;

4、公链B的代理节点接收跨链交易请求,并验证跨链交易证明和跨链交易摘要签名,如果验证通过则解锁事务β,提交跨链事务,并向公链A的代理节点返回提交跨链事务凭证;

5、公链A的代理节点接收并验证提交跨链事务凭证,如果验证通过则解锁事务α,实现事务α和事务β的一致性操作。

在验证过程中:

公链B的代理节点在门限时间内验证事务β是否解锁,如果已解锁则跨链交易已执行;否则回滚跨链事务,释放事务β;

公链A的代理节点在门限时间内验证事务α是否解锁,如果已解锁则跨链交易已执行;否则回滚跨链事务,释放事务α。

通过事务锁定和交互,保证事务α和事务β同时解锁或者同时未解锁,解锁事务锁定的必要条件是验证通过对端链交易的存证性证明。

通过内置的智能合约,保证了信息传递不受人为干预,保证了通信双方锁定的事务,要么同时成功,要么同时失败,保证了事务一致性。

事务一致性保证与内置智能合约的主要功能与处理流程如图5所示,包括:

1、用户发起价值交换请求到源链代理节点;

2、源链代理节点处理跨链价值交换请求;

3、源链内置智能合约收到跨链价值交换请求后,生成跨链交易存在证明与签名;

4、源链开始跨链事务锁定,锁定事务α(可以是价值资产);

5、源链将锁定证明发送到目的链;

6、目的链内置智能合约验证锁定证明,并开始事务锁定β;

7、目的链发送事务β锁定证明到源链;

8、源链验证事务β锁定证明,并发送跨链交易存在证明与签名到目的链;

9、目的链验证源链跨链交易存在证明与签名,通过后解锁事务β并提交跨链事务;

10、目的链将跨链交易存在证明与签名发送到源链;

11、源链验证目的链发送的跨链交易存在证明与签名,验证通过后解锁事务α并提交跨链事务;

12、源链与目的链在门限时间内判断事务锁定有没有解锁,如果解锁则执行交易进行价值交换,否则进行事务回滚并解锁事务锁定。

(7)结果返回

目的链将执行结构及执行状态信息构建成返回信息发送到源链。

消息传递流程如图6所示,包括以下步骤:

1、公有链A发送跨链消息到代理节点CrossAgent;

2、公有链A的crossAgent把A链消息类型转换为总线标准通信消息CSCP;

3、公有链A的crossAgent对CSCP消息签名;

4、公有链A的crossAgent将CSCP消息发送到B链的crossAgent;

5、公有链B的crossAgent接收到CSCP消息;

6、公有链B的crossAgent对CSCP消息进行签名验证;

7、公有链B的crossAgent对CSCP消息进行身份验证;

8、公有链B的crossAgent对CSCP消息进行权限验证;

9、公有链B的crossAgent对CSCP消息进行存在性验证;

10、公有链B的crossAgent将CSCP消息转换成B链格式的交易消息;

11、公有链B的crossAgent将跨链交易发送到B链;

12、公有链B处理跨链消息;

13、公有链B返回处理结果。

在一个实施例中,提出了一种计算机设备,包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行上述各实施例中去中心化异构公有链资产交换方法中的步骤。

在一个实施例中,提出了一种存储有计算机可读指令的存储介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述各实施例中去中心化异构公有链资产交换方法中的步骤。其中,存储介质可以为非易失性存储介质。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁盘或光盘等。

以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号