本发明涉及区块链
技术领域:
,特别涉及一种可扩展的区块链跨链通信方法。
背景技术:
:随着区块链的发展,不同区块链之间的价值交换和操作的需求日益强烈。但是目前区块链架构各异,不同区块链间通信面临着接口通信消息不统一的问题,虽然目前也有一些跨链方案,但是只能满足部分的或者特定的区块链架构,无法统一跨链通信标准,这是制约区块链进一步发展的一大障碍,也是目前区块链未能实现价值互联的一大因素。技术实现要素:本发明针对以上技术问题,提出了一种可扩展的区块链跨链通信方法,在总体跨链方案之中设计了一种可扩展的跨链总线crosshub,该总线可以负责任意架构的区块链平台之间的通信。本发明的目的是通过以下技术方案实现的:一种可扩展的区块链跨链通信方法,包括:每个跨链组织具有至少一个跨链代理节点,每个跨链代理节点能够与该跨链组织中的任意节点连接;各个跨链组织之间通过跨链总线crosshub通信交互;所述跨链总线crosshub包括标准通信接口层、通信加密层和网络通信层,提供跨链标准通信协议cscp,能够满足不同架构的区块链平台跨链通信;所述标准通信接口层提供跨链的相关操作接口,包括注册接口、发送跨链交易接口、接收跨链交易接口、交易转换接口和验证接口;所述通信加密层用于实现tls加密、数据传输加密;所述网络通信层用于保证通信链路的数据传输安全,可以配置是否启用tls加密、数据传输加密,在网络通信层中,物理连接层与逻辑连接层分离;所述逻辑连接层主要功能包括通信链路的建立、数据传输、链路安全、链路活性控制,其拥有server和client两个成员;server负责注册网络插口slot、监听服务、分发来自client的各类消息;逻辑连接层拥有一组对应到同一区块链平台上的不同链中的slot集合,slot集合作为server成员,分别处理来自不同链的消息;client与server相对应,主要用于处理不同的消息发送请求。进一步地,所述代理节点主要负责跨链的注册、签名、跨链交易路由、验签、验证存在性、保证事务一致性。进一步地,当发起跨链交易,源链经过共识后,由源链代理节点的发送接口把跨链消息传递到目的链代理节点。进一步地,当不同的区块链平台发起跨链操作时,通过跨链总线发起如下操作步骤:(1)证书颁发:代理节点的证书管理模块生成跨链根证书及跨链公私钥对,源链用目的链公钥给目的链颁发跨链证书,目的链用源链公钥给源链颁发跨链证书;(2)跨链注册:源链通过总线的注册接口向目的链进行跨链注册,注册信息包括源链的身份信息、权限信息、签名策略、验证规则,注册成功后,目的链的验证引擎根据注册信息生成目的链架构下对源链的验证规则;(3)链审核:目的链通过总线的验证接口对源链的注册信息进行审核,审核通过则源链注册成功;(4)验证规则管理:验证规则供验证引擎对跨链交易验证存在性和有效性所用;源链向目的链注册时,由目的链的代理节点进行相应验证规则的部署、注册;(5)跨链交易检查:目的链通过总线的验证接口进行跨链交易检查;(6)跨链交易验证:检查通过的跨链交易进入验证阶段,目的链通过总线的验证接口进行跨链交易验证,由目的链的验证引擎执行,主要验证跨链交易的存在性和有效性;(7)跨链交易执行:跨链交易通过验证后执行交易并返回结果。进一步地,所述步骤(5)跨链交易检查阶段,检查工作包括:产生该跨链交易的源链是否注册、是否经过审核,是否被冻结,跨链交易标识的目的链是否存在;检查交易信息是否有相应权限;校验签名信息是否符合签名策略;检查产生该跨链交易的源链是否注册验证规则;通过验证引擎获取相应的验证规则地址。进一步地,所述步骤(6)跨链交易验证阶段,将跨链交易内容、源链身份信息、验证规则地址三个信息输入到验证引擎中,验证引擎执行以下步骤完成跨链交易验证:a、解析跨链交易,提取跨链交易中的交易证明;b、规则匹配,根据跨链交易中的源链身份信息匹配相应的验证规则;c、规则执行,将交易证明、源链身份信息作为参数来运行验证规则,验证通过的跨链交易被送入执行模块。进一步地,所述步骤(7)跨链交易执行阶段具体包括以下步骤:a、通过总线的交易转换接口将跨链标准通信消息转换为目的链的消息格式;b、将交易送入目的链的执行模块;c、执行完成后,调用总线的交易转换接口将执行结果转换成cscp格式发送到源链,若执行失败则进行回滚。进一步地,所述通信加密层中数据传输加密具体为:对网络上传输的交易信息和通信消息进行加密,首先通过ecdh算法协商对应的会话密钥,然后利用该会话密钥对业务信息进行加密,对端进行解密;所有的节点之间的通信都会利用不同的会话密钥进行加密。进一步地,所述网络通信层中,网络插口slot作为逻辑连接层同上层进行通信的主要机制,其为一个多维的线程安全的map映射,将相关方法映射到不同的消息处理器中进行处理,消息处理方法包括chat()、discuss()、whisper()、greeting()。进一步地,所述跨链标准通信协议cscp的主要字段包括:version,协议版本;sourcechainid,来源链地址;destchainid,目的链地址;crosschainpayload,跨链交易内容;timestamp,时间戳;nonce,random;signature,代理节点签名;cert,跨链交易节点证书;proof,存在性验证信息;origininfo,跨链交易原始交易信息;extra,用户扩展字段;crosschainpayload通过json序列化成字节类型,根据跨链交易的区块链架构而定,当传递到目的链时通过json解析出对应的结构。本发明的有益效果是:本发明通过区块链本身的代理节点进行跨链操作,每个跨链组织具有至少一个跨链代理节点,各个跨链组织之间通过跨链总线crosshub通信交互。本发明设计了跨链总线crosshub的三层结构,包括标准通信接口层、通信加密层和网络通信层,网络通信层中物理连接层与逻辑连接层分离,针对不同链进行并发处理,保证了链通信数据的隔离性,提高了通信的并发性及消息处理的吞吐率。本发明设计了跨链标准通信协议cscp,能够满足不同架构的区块链平台跨链通信,不仅可以在同构链之间通信,也可兼容异构链之间的跨链通信。本发明能够实现可扩展的任意架构的区块链平台的接入。附图说明图1是本发明实施例提供的整体跨链架构示意图;图2是本发明实施例提供的区块链跨链总线crosshub总体架构图;图3是本发明实施例提供的crosshub跨链流程图;图4是本发明实施例提供的网络通信层架构图;图5是本发明实施例提供的逻辑连接crosshubnet架构图。具体实施方式为了更好的理解本申请的技术方案,下面结合附图对本申请实施例进行详细描述。应当明确,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。在本申请实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。现在流行的跨链方案是采用中继链或者公证人的方式来充当中心协调者,中继链虽然是多个节点的形式,但是对于多个区块链之间操作来讲,实际上还是中心化的操作。本发明的跨链方案如下:本发明通过区块链本身的代理节点进行跨链操作,整体跨链架构如图1所示。每个跨链组织具有至少一个跨链代理节点crossagent,每个跨链代理节点crossagent能够与该跨链组织中的任意节点连接;各个跨链组织之间通过跨链总线crosshub通信交互。具体为:①跨链代理节点crossagent:能够与该跨链组织中的任意节点连接,当发起跨链交易,源链经过共识后,由crossagent的发送接口把跨链消息传递到目的链的crossagent节点,通信采用tls加密方式。crossagent主要负责跨链的注册、签名、跨链交易路由、验签、验证存在性、保证事务一致性等。②跨链总线crosshub:为跨链通信总线,主要包括:标准通信接口层、通信加密层、网络通信层、跨链标准通信协议cscp(crosschainstandardcommunicationprotocol),主要用于区块链跨链间网络通信,该总线提供标准的跨链通信协议及接口,能够满足不同架构的区块链平台跨链通信。本发明提出的可扩展的区块链跨链总线crosshub总体架构图如图2所示。crosshub跨链流程如图3所示。当不同的区块链平台发起跨链操作时,主要通过总线发起如下操作步骤(均在代理节点crossagent上执行):(1)证书颁发:crossagent证书管理模块会生成跨链根证书及跨链公私钥对,源链用目的链公钥给目的链颁发跨链证书,目的链用源链公钥给源链颁发跨链证书,通过密码学机制保证跨链安全。(2)跨链注册:源链通过总线的注册接口向目的链进行跨链注册,注册信息主要包括源链的身份信息、权限信息、签名策略、验证规则等,注册成功后,目的链的验证引擎根据注册信息生成目的链架构下对源链的验证规则,后续按照这个验证规则对跨链交易的合法性(存在性和有效性)进行验证。针对不同架构的链,将会生成不同的验证规则。(3)链审核:目的链通过总线的验证接口对源链的注册信息进行审核,审核通过则源链注册成功。(4)验证规则管理:验证规则是供验证引擎对跨链交易验证存在性和有效性所用的。但是每个链的异构性导致每个链的验证规则也是不一样的,因此就需要源链向目的链注册时,由目的链的跨链代理节点crossagent进行相应验证规则的部署、注册。(5)跨链交易检查目的链通过总线的验证接口进行跨链交易检查,主要的检查工作包括:a、产生该跨链交易的源链是否注册、是否经过审核,是否被冻结,跨链交易标识的目的链是否存在等;b、检查交易信息是否有相应权限;c、校验签名信息是否符合签名策略;d、检查产生该跨链交易的源链是否注册验证规则;e、通过验证引擎获取相应的验证规则地址;(6)跨链交易验证检查通过的跨链交易进入验证阶段,目的链通过总线的验证接口进行跨链交易验证,由目的链的验证引擎进行执行,主要验证跨链交易的存在性和有效性;跨链交易处理合约将跨链交易内容、源链身份信息、验证规则地址三个信息输入到验证引擎中,然后验证引擎执行以下三个步骤完成跨链交易的验证:a、解析跨链交易,提取跨链交易中的交易证明。b、规则匹配,根据跨链交易中的源链身份信息匹配相应的验证规则。这里的验证规则可以运行于虚拟机上,或者内置合约的形式。c、规则执行,将交易证明、源链身份信息作为参数来运行验证规则。验证通过的跨链交易,会被送入跨链执行模块。(7)跨链交易执行a、跨链交易执行首先通过总线协议转换接口将跨链标准通信消息cscp转换为成目的链的消息格式;b、将交易送入目的链的执行模块;c、执行完成后,调用总线协议转换接口将执行结果转换成cscp格式发送到源链,若执行失败则进行回滚。并以此类推,跨链总线crosshub总可以接入更多链,实现可扩展的区块链平台接入。下面详细阐述跨链总线crosshub各部分的实现过程。一、标准通信接口层:总线接口层主要提供跨链的相关操作接口,主要包括以下接口:1、注册接口接口名称registchain()接口描述跨链注册接口参数描述cscp标准跨链通信消息返回值描述注册返回结果2、更新链注册状态接口接口名称updatechain()接口描述更新跨链注册状态信息接口参数描述cscp标准跨链通信消息返回值描述更新返回结果3、删除链注册信息接口接口名称deletechain()接口描述删除链注册信息接口参数描述cscp标准跨链通信消息返回值描述删除返回信息4、发送跨链交易接口接口名称sendtx()接口描述发送跨链交易接口参数描述cscp标准跨链通信消息返回值描述是否发送成功5、接收跨链交易接口接口名称receivetx()接口描述接收跨链交易接口参数描述cscp标准跨链通信消息返回值描述是否接收成功6、交易转换接口7、交易转换接口8、验证接口二、通信加密层,实现tls加密和数据传输加密,具体地:①tls加密传输层安全是平台默认开启的功能,采用tls证书进行安全通信,从传输层面保障信息通信的安全性。进一步地,该选项是可选的。tls能够在传输层保障信息传输的安全性,是目前较为通用的网络传输实施标准,在几乎所有的网络安全传输中都采用了该技术。②数据传输加密数据传输加密是指对网络上传输的交易信息和通信消息的加密,根据用户的需求可以对所有在总线上传输的信息进行加密,其加密方案同tls类似,先通过ecdh算法协商对应的会话密钥,然后利用该会话密钥对业务信息进行加密,对端进行解密。所有的节点之间的通信都会利用不同的会话密钥进行加密。这是对传输层安全的一个补充。目前平台的消息可以通过配置进行对称加密,如果有更加复杂的消息加密需求可以使用该方式进行处理。三、网络通信层网络通信层保证了通信链路的数据传输安全,用户可以通过配置文件来配置是否启用传输安全tls、是否启动数据传输加密(或更换数据加密算法)。在网络通信层中,物理连接(physicalnetwork)与逻辑连接(crosshubnet)分离,整体架构如图4所示。逻辑连接crosshubnet其主要的功能包括通信链路的建立、数据传输、链路安全、链路活性控制等功能。其拥有server和client两个重要成员,架构图如图5所示。server在crosshubnet中负责注册网络插口(slot)、监听服务、分发来自client的各类消息。网络插口slot作为crosshubnet同上层进行通信的主要机制,其实现其实是一个多维的线程安全的map映射,将相关方法映射到不同的消息处理器中进行处理。主要包括chat()、discuss()、whisper()、greeting()这些消息处理方法。逻辑连接层拥有一组对应到同一区块链平台上的不同链(channel)中的slot集合,网络插口集合slots作为server成员,分别处理来自不同链(channel)的消息。client与server相对应,主要用于处理不同的消息发送请求。通常一个client对应于多个不同的远端server(因为一个crossagent节点可能会与多个其他crossagent节点相连),并且与不同server通信,交由sever的信息将会分发到不同的链(channel)中的slot去处理。主要包括chat()、discuss()、whisper()、greeting()这些消息处理方法。这种网络连接,针对不同链进行并发处理,保证了链通信数据的隔离性,提高了通信的并发性及消息处理的吞吐率。四、跨链标准通信协议cscp跨链标准通信协议cscp主要满足不同链之间的跨链调用,不仅可以在同构链之间通信,也可兼容异构链之间的跨链通信。本发明设计出统一的跨链标准通信协议cscp(crosschainstandardcommunicationprotocol),协议主要字段如下所示:跨链交易内容crosschainpayload通过json序列化成字节类型,可以根据跨链交易的区块链架构而定,当传递到目的链时通过json解析出对应的结构。当源链发起跨链交易前,需要构建链的注册信息crosschainregistinfo,其结构如下表所示,该信息用于源链向目的链进行跨链注册时的信息结构:在一个实施例中,提出了一种计算机设备,包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行上述各实施例中可扩展的区块链跨链通信方法中的步骤。在一个实施例中,提出了一种存储有计算机可读指令的存储介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述各实施例中可扩展的区块链跨链通信方法中的步骤。其中,存储介质可以为非易失性存储介质。本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(rom,readonlymemory)、随机存取存储器(ram,randomaccessmemory)、磁盘或光盘等。以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。当前第1页1 2 3 
技术特征:1.一种可扩展的区块链跨链通信方法,其特征在于,包括:
每个跨链组织具有至少一个跨链代理节点,每个跨链代理节点能够与该跨链组织中的任意节点连接;各个跨链组织之间通过跨链总线crosshub通信交互;
所述跨链总线crosshub包括标准通信接口层、通信加密层和网络通信层,提供跨链标准通信协议cscp,能够满足不同架构的区块链平台跨链通信;
所述标准通信接口层提供跨链的相关操作接口,包括注册接口、发送跨链交易接口、接收跨链交易接口、交易转换接口和验证接口;
所述通信加密层用于实现tls加密、数据传输加密;
所述网络通信层用于保证通信链路的数据传输安全,可以配置是否启用tls加密、数据传输加密,在网络通信层中,物理连接层与逻辑连接层分离;
所述逻辑连接层主要功能包括通信链路的建立、数据传输、链路安全、链路活性控制,其拥有server和client两个成员;server负责注册网络插口slot、监听服务、分发来自client的各类消息;逻辑连接层拥有一组对应到同一区块链平台上的不同链中的slot集合,slot集合作为server成员,分别处理来自不同链的消息;client与server相对应,主要用于处理不同的消息发送请求。
2.根据权利要求1所述的一种可扩展的区块链跨链通信方法,其特征在于,所述代理节点主要负责跨链的注册、签名、跨链交易路由、验签、验证存在性、保证事务一致性。
3.根据权利要求1所述的一种可扩展的区块链跨链通信方法,其特征在于,当发起跨链交易,源链经过共识后,由源链代理节点的发送接口把跨链消息传递到目的链代理节点。
4.根据权利要求1所述的一种可扩展的区块链跨链通信方法,其特征在于,当不同的区块链平台发起跨链操作时,通过跨链总线发起如下操作步骤:
(1)证书颁发:代理节点的证书管理模块生成跨链根证书及跨链公私钥对,源链用目的链公钥给目的链颁发跨链证书,目的链用源链公钥给源链颁发跨链证书;
(2)跨链注册:源链通过总线的注册接口向目的链进行跨链注册,注册信息包括源链的身份信息、权限信息、签名策略、验证规则,注册成功后,目的链的验证引擎根据注册信息生成目的链架构下对源链的验证规则;
(3)链审核:目的链通过总线的验证接口对源链的注册信息进行审核,审核通过则源链注册成功;
(4)验证规则管理:验证规则供验证引擎对跨链交易验证存在性和有效性所用;源链向目的链注册时,由目的链的代理节点进行相应验证规则的部署、注册;
(5)跨链交易检查:目的链通过总线的验证接口进行跨链交易检查;
(6)跨链交易验证:检查通过的跨链交易进入验证阶段,目的链通过总线的验证接口进行跨链交易验证,由目的链的验证引擎执行,主要验证跨链交易的存在性和有效性;
(7)跨链交易执行:跨链交易通过验证后执行交易并返回结果。
5.根据权利要求4所述的一种可扩展的区块链跨链通信方法,其特征在于,所述步骤(5)跨链交易检查阶段,检查工作包括:产生该跨链交易的源链是否注册、是否经过审核,是否被冻结,跨链交易标识的目的链是否存在;检查交易信息是否有相应权限;校验签名信息是否符合签名策略;检查产生该跨链交易的源链是否注册验证规则;通过验证引擎获取相应的验证规则地址。
6.根据权利要求4所述的一种可扩展的区块链跨链通信方法,其特征在于,所述步骤(6)跨链交易验证阶段,将跨链交易内容、源链身份信息、验证规则地址三个信息输入到验证引擎中,验证引擎执行以下步骤完成跨链交易验证:
a、解析跨链交易,提取跨链交易中的交易证明;
b、规则匹配,根据跨链交易中的源链身份信息匹配相应的验证规则;
c、规则执行,将交易证明、源链身份信息作为参数来运行验证规则,验证通过的跨链交易被送入执行模块。
7.根据权利要求4所述的一种可扩展的区块链跨链通信方法,其特征在于,所述步骤(7)跨链交易执行阶段具体包括以下步骤:
a、通过总线的交易转换接口将跨链标准通信消息转换为目的链的消息格式;
b、将交易送入目的链的执行模块;
c、执行完成后,调用总线的交易转换接口将执行结果转换成cscp格式发送到源链,若执行失败则进行回滚。
8.根据权利要求1所述的一种可扩展的区块链跨链通信方法,其特征在于,所述通信加密层中数据传输加密具体为:对网络上传输的交易信息和通信消息进行加密,首先通过ecdh算法协商对应的会话密钥,然后利用该会话密钥对业务信息进行加密,对端进行解密;所有的节点之间的通信都会利用不同的会话密钥进行加密。
9.根据权利要求1所述的一种可扩展的区块链跨链通信方法,其特征在于,所述网络通信层中,网络插口slot作为逻辑连接层同上层进行通信的主要机制,其为一个多维的线程安全的map映射,将相关方法映射到不同的消息处理器中进行处理,消息处理方法包括chat()、discuss()、whisper()、greeting()。
10.根据权利要求1所述的一种可扩展的区块链跨链通信方法,其特征在于,所述跨链标准通信协议cscp的主要字段包括:version,协议版本;sourcechainid,来源链地址;destchainid,目的链地址;crosschainpayload,跨链交易内容;timestamp,时间戳;nonce,random;signature,代理节点签名;cert,跨链交易节点证书;proof,存在性验证信息;origininfo,跨链交易原始交易信息;extra,用户扩展字段;crosschainpayload通过json序列化成字节类型,根据跨链交易的区块链架构而定,当传递到目的链时通过json解析出对应的结构。
技术总结本发明公开了一种可扩展的区块链跨链通信方法,通过区块链本身的代理节点进行跨链操作,每个跨链组织具有至少一个跨链代理节点,各个跨链组织之间通过跨链总线Crosshub通信交互。本发明设计了跨链总线Crosshub的三层结构,包括标准通信接口层、通信加密层和网络通信层,网络通信层中物理连接层与逻辑连接层分离,针对不同链进行并发处理,保证了链通信数据的隔离性,提高了通信的并发性及消息处理的吞吐率。本发明设计了跨链标准通信协议CSCP,能够满足不同架构的区块链平台跨链通信,不仅可以在同构链之间通信,也可兼容异构链之间的跨链通信。本发明能够实现可扩展的任意架构的区块链平台的接入。
技术研发人员:臧铖;陈嘉俊;郭东升
受保护的技术使用者:浙商银行股份有限公司
技术研发日:2020.12.10
技术公布日:2021.04.06