首页> 中国专利> 一种同构公有链价值交换方法

一种同构公有链价值交换方法

摘要

本发明公开了一种同构公有链价值交换方法,通过同构公有链代理节点实现同构公有链资产交换;同构公有链代理节点可以连接多个公有链节点,连接节点数要大于等于P,P为用户自定义的代理节点与公链节点的最小连接数;各个同构公有链之间通过网络通信交互;本发明方法能够保证信息传递的事务一致性,即保证资产交换的安全性,实现价值对等交换。当进行价值资产交换时,首先进行身份注册,然后发起交易,并锁定相应资产,通过交易的检查验证后执行资产交换,如果不符合条件则根据冻结资产进行回滚。本发明提出的公有链资产交换流程通过智能合约进行,保证不受人为干预,提高安全性。

著录项

  • 公开/公告号CN112508703A

    专利类型发明专利

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

    原文格式PDF

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

    申请/专利号CN202011455300.0

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

    申请日2020-12-10

  • 分类号G06Q40/04(20120101);G06F21/64(20130101);

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

  • 代理人刘静

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

  • 入库时间 2023-06-19 10:16:30

说明书

技术领域

本发明涉及区块链技术领域,特别涉及一种同构公有链价值交换方法。

背景技术

区块链最大价值是实现信息价值的传递,但是大多区块链平台具有很强的排他性,导致在如今的区块链网络中,会存在许多的价值孤岛,导致区块链之间不能够价值互联。即使相同架构的公有链由于价值交换过程中原子性、事务一致性等问题,同构公有链也不能实现价交换,例如利用以太坊上实现的各种代币,虽然底层区块链平台都是以太坊,但是各种代币之间也无法直接进行价值交换。因为公有链一般会有相应的代币等价值资产,在资产交换过程中要实现价值对等,所以资产交换怎么保证事务一致性问题也是一大难点;在价值交换同时也要防止一些作恶节点进行攻击造成资产损失,所以一种能够保证同构公有链之间实现价值对等、事务一致性的资产交换方法十分必要。

发明内容

本发明基于以上技术问题,提出了一种同构公有链价值交换方法。

本发明的目的是通过以下技术方案实现的:一种同构公有链价值交换方法,该方法包括:

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

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

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

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

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

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

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

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

同构公有链之间传递信息的过程包括:证书颁发,证书用于确定资产交互时的身份信息;注册,注册用于身份信息验证以及定制化需求;注册信息审核并持久化存储;发起价值资产交换请求;验证跨链交易;事务一致性保证交互流程;执行价值资产交换。

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

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

进一步地,通过证书管理模块按照需求给代理节点颁发跨链根证书和公私钥对;证书管理模块主要用来生成和管理相关的CA证书和数字证书,具体功能如下:

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

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

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

进一步地,链注册具体为:公有链源链会向目的链进行跨链注册,主要包括源链的身份信息、验证规则,注册成功后,目的链的验证引擎生成对该链的验证规则,后续按照这个验证规则对跨链交易的合法性进行验证,并把源链的身份信息、注册信息进行持久化存储。

进一步地,在交易执行阶段,通过非对称秘钥签名和验签保证交易消息的有效性。

进一步地,同构公有链跨链交易的存在性证明由默克尔证明实现。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

公有链A发送跨链消息到代理节点;公有链A的代理节点对通信消息签名,将通信消息发送到B链的代理节点;

公有链B的代理节点接收到通信消息,对通信消息进行签名验证、身份验证、存在性验证,将跨链交易发送到B链;

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

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

附图说明

图1是本发明实施例提供的同构公有链价值交换总体架构图;

图2是本发明实施例提供的同构公有链之间传递信息关键逻辑流程图;

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

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

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

具体实施方式

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

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

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

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

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

一、代理节点crossagent

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

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

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

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

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

二、通信信息与通信接口

同构公有链定义了通信信息与通信接口,其中通信消息主要内容如下表所示:

通信接口,用于公有链之间的信息交互。主要有:

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

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

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

注册链接口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的crossagen收到公链B的交易证明,进行验证,通过后解锁A链的资产锁定,提交跨链事务;

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

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

同构公有链之间传递信息关键逻辑流程如图2所示,包括以下步骤:

1、证书颁发,证书用于确定资产交互时的身份信息;

2、注册,注册用于身份信息验证以及一些定制化需求;

3、注册信息审核并持久化存储;

4、发起价值资产交换请求;

5、验证跨链交易;

6、事务一致性保证交互流程;

7、执行价值资产交换。

在一个实施例中,证书颁发具体为:

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

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

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

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

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

在一个实施例中,链注册具体为:

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

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

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

在一个实施例中,验证阶段的工作具体为:

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

在一个实施例中,执行阶段具体为:

跨链交易通过验证后进入执行阶段,执行阶段设计了交易有效性、交易存在性证明和事务一致性保证的方法;目的链将执行结构及执行状态信息构建成返回信息发送到源链。

1、交易有效性

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

2、交易存在性

本发明中,跨链交易的存在性证明是由默克尔证明来实现的。默克尔树的结构如图3所示,每个非叶子节点通过其子节点的哈希值来进行标注,树的根节点叫作默克尔根(merkle root)。图3所示是某区块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。

3、事务一致性

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

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

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

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

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

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

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

在验证过程中:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2、公有链A的crossAgent对通信消息签名;

3、公有链A的crossAgent将通信消息发送到B链的crossAgent;

4、公有链B的crossAgent接收到通信消息;

5、公有链B的crossAgent对通信消息进行签名验证;

6、公有链B的crossAgent对通信消息进行身份验证;

7、公有链B的crossAgent对通信消息进行存在性验证;

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

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

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

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

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

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

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

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号