面向连接的可靠链间路由跨链方法及系统与流程

文档序号:30370223发布日期:2022-06-11 00:23阅读:117来源:国知局
面向连接的可靠链间路由跨链方法及系统与流程

1.本发明涉及区块链技术领域,具体地,涉及面向连接的可靠链间路由跨链方法及系统。


背景技术:

2.传统的区块链跨链系统中通常需要两个系统之间单独进行通信,存在数据通信复杂度高,数据格式难以统一的问题。为了解决这些问题,在改进的面向连接的可靠链间路由跨链方法及系统中,所有的跨链系统只需要和交易路由模块进行可靠传输连接即可,将通信的复杂度从o(n^2)降为了o(n),同时将跨链数据传输从链与链之间解藕。同时,本系统为了协调异构链间数据通信格式不一致的问题,设计了一种区块链数据通信协议(blockchain data communication protocol,bdcp),使用该协议可实现异构链间使用的共识算法不同和加密算法不同导致的数据不一致的问题。
3.专利文献cn110019103a(申请号:201811199663.5)公开了一种基于区块链的跨链系统和跨链实现方法,跨链系统包括被跨越链、担保链和跨越链;被跨越链、担保链和跨越链三者组成并行架构链;其中,跨链实现方法包括:信号接收模板接收到客户端发送的交易信息,查询转入账户和转出账户的路由规则,并将接收到的交易信息发送给担保链,担保链根据转出账户的路由规则确定被跨越链,被跨越链根据交易信息执行交易操作,并在执行成功后返回至担保链,担保链将执行成功信息反馈给被跨越链,被跨越链最终将执行成功信息反馈给客户端的信号接收模板。


技术实现要素:

4.针对现有技术中的缺陷,本发明的目的是提供一种面向连接的可靠链间路由跨链方法及系统。
5.根据本发明提供的一种面向连接的可靠链间路由跨链方法,包括:
6.步骤s1:当链a的交易执行成功时,则发起与链b有关的跨链交易;
7.步骤s2:跨链交易通过调用跨链合约利用区块链数据通信协议bdcp转换为bdcp数据格式,并进行签名,发送至区块敲定模块;
8.步骤s3:区块敲定模块检查跨链交易的签名,并根据区块是否被敲定判断当前的跨链交易是否被确认,将确认后的跨链交易发送至交易路由模块;
9.步骤s4:交易路由模块对收到的跨链交易进行签名验证,当签名验证通过后,则将当前跨链交易发送至交易验证模块;当签名验证失败后,则将当前跨链交易视为无效交易直接丢弃;
10.步骤s5:交易验证模块对跨链交易进行验证,当验证成功后,则将跨链交易发送至链b,等待链b执行的回执;当验证失败后,则将跨链交易转发至回滚/回调模块进行回滚或回调。
11.优选地,所述区块链数据通信协议bdcp通过跨链合约实现异构链间使用的共识算
法不同和加密算法不同导致的数据不一致的问题。
12.优选地,所述区块敲定模块采用:使用grandpa共识算法计算跨链系统中区块的确定性,获得确定性的区块将不会被分叉;当确定性达到预设值时,则当前跨链交易被确认。
13.优选地,在所述交易路由模块中:维护各个异构链对应的ip地址,交易路由模块根据bdcp数据格式中的目的链id查找当前交易需要转发的目的链b。
14.优选地,在所述交易路由模块中,维护每个交易执行结果列表,记录每笔交易在对应的链上是否执行成功;当跨链交易在两条链上都执行成功,则跨链交易才是最终执行成功。
15.优选地,在所述交易验证模块中,验证跨链交易的签名,通过spv的方式生成跨链交易生成的证明字段验证跨链交易的合法性,最后验证当前跨链交易是否被确认,经过交易验证的交易才会被路由转发给跨链交易的目的地。
16.优选地,在所述回滚/回调模块中,当跨链交易在链b上执行错误,交易路由模块获取失败的结果或者等待时间超时时,将跨链交易发送至回滚/回调模块,执行交易的回滚操作,保证数据的原子性。
17.根据本发明提供的一种面向连接的可靠链间路由跨链系统,包括:
18.模块m1:当链a的交易执行成功时,则发起与链b有关的跨链交易;
19.模块m2:跨链交易通过调用跨链合约利用区块链数据通信协议bdcp转换为bdcp数据格式,并进行签名,发送至区块敲定模块;
20.区块敲定模块:检查跨链交易的签名,并根据区块是否被敲定判断当前的跨链交易是否被确认,将确认后的跨链交易发送至交易路由模块;
21.交易路由模块:对收到的跨链交易进行签名验证,当签名验证通过后,则将当前跨链交易发送至交易验证模块;当签名验证失败后,则将当前跨链交易视为无效交易直接丢弃;
22.交易验证模块:对跨链交易进行验证,当验证成功后,则将跨链交易发送至链b,等待链b执行的回执;当验证失败后,则将跨链交易转发至回滚/回调模块进行回滚或回调;
23.所述区块链数据通信协议bdcp通过跨链合约实现异构链间使用的共识算法不同和加密算法不同导致的数据不一致的问题。
24.优选地,所述区块敲定模块采用:使用grandpa共识算法计算跨链系统中区块的确定性,获得确定性的区块将不会被分叉;当确定性达到预设值时,则当前跨链交易被确认;
25.在所述交易路由模块中:维护各个异构链对应的ip地址,交易路由模块根据bdcp数据格式中的目的链id查找当前交易需要转发的目的链b;
26.在所述交易路由模块中,维护每个交易执行结果列表,记录每笔交易在对应的链上是否执行成功;当跨链交易在两条链上都执行成功,则跨链交易才是最终执行成功。
27.优选地,在所述交易验证模块中,验证跨链交易的签名,通过spv的方式生成跨链交易生成的证明字段验证跨链交易的合法性,最后验证当前跨链交易是否被确认,经过交易验证的交易才会被路由转发给跨链交易的目的地;
28.在所述回滚/回调模块中,当跨链交易在链b上执行错误,交易路由模块获取失败的结果或者等待时间超时时,将跨链交易发送至回滚/回调模块,执行交易的回滚操作,保证数据的原子性。
29.与现有技术相比,本发明具有如下的有益效果:
30.1、本发明将原始的跨链通信的复杂度从o(n^2)降为了o(n);
31.2、区块敲定模块和回滚/回调模块保证数据的原子性;
32.3、区块链数据通信协议(blockchain data communication protocol,bdcp)解决了异构链间使用的共识算法不同和加密算法不同导致的数据不一致的问题;
33.4、区块敲定模块可以确定交易的最终状态;
34.5、使用交易验证模块可以证明该交易的有效性,提高跨链系统的安全性;
35.6、该发明可应用于异构跨链的场景;例如:可以实现从以太坊到venachain的跨链转账,跨链合约调用等;能够解决目前多链存在的数据孤岛的问题。
附图说明
36.通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
37.图1为面向连接的可靠链间路由跨链系统示意图。
具体实施方式
38.下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
39.实施例1
40.根据本发明提供的一种面向连接的可靠链间路由跨链方法,包括:
41.步骤s1:当链a的交易执行成功时,则发起与链b有关的跨链交易;
42.步骤s2:跨链交易通过调用跨链合约利用区块链数据通信协议bdcp转换为bdcp数据格式,并进行签名,发送至区块敲定模块;
43.步骤s3:区块敲定模块检查跨链交易的签名,并根据区块是否被敲定判断当前的跨链交易是否被确认,将确认后的跨链交易发送至交易路由模块;
44.具体地,所述区块敲定模块采用:使用grandpa共识算法计算跨链系统中区块的确定性,获得确定性的区块将不会被分叉;当确定性达到预设值时,则当前跨链交易被确认。
45.所述确定性是指这个区块最终不会被分叉,即不会被篡改。当一个区块被敲定后,它就会获得一个确定性。
46.步骤s4:交易路由模块对收到的跨链交易进行签名验证,当签名验证通过后,则将当前跨链交易发送至交易验证模块;当签名验证失败后,则将当前跨链交易视为无效交易直接丢弃;
47.具体地,在所述交易路由模块中:维护各个异构链对应的ip地址,交易路由模块根据bdcp数据格式中的目的链id查找当前交易需要转发的目的链b。
48.更为具体地,在所述交易路由模块中,维护每个交易执行结果列表,记录每笔交易在对应的链上是否执行成功;当跨链交易在两条链上都执行成功,则跨链交易才是最终执行成功。
49.步骤s5:交易验证模块对跨链交易进行验证,当验证成功后,则将跨链交易发送至链b,等待链b执行的回执;当验证失败后,则将跨链交易转发至回滚/回调模块进行回滚或回调;
50.具体地,在所述交易验证模块中,验证跨链交易的签名,通过spv(simplified payment verification)的方式生成跨链交易生成的证明字段验证跨链交易的合法性,最后验证当前跨链交易是否被确认,经过交易验证的交易才会被路由转发给跨链交易的目的地。其中,spv属于区块链当中支付验证体系中的一种,是为了适应简便、快速支付的验证手段,它不需要下载新区块所有数据,只需要保存区块头部数据,这些数据保存在默克尔树当中。
51.具体地,在所述回滚/回调模块中,当跨链交易在链b上执行错误,交易路由模块获取失败的结果或者等待时间超时时,将跨链交易发送至回滚/回调模块,执行交易的回滚操作,保证数据的原子性。
52.所述区块链数据通信协议bdcp通过跨链合约实现异构链间使用的共识算法不同和加密算法不同导致的数据不一致的问题。
53.根据本发明提供的一种面向连接的可靠链间路由跨链系统,包括:
54.模块m1:当链a的交易执行成功时,则发起与链b有关的跨链交易;
55.模块m2:跨链交易通过调用跨链合约利用区块链数据通信协议bdcp转换为bdcp数据格式,并进行签名,发送至区块敲定模块;
56.模块m3:区块敲定模块检查跨链交易的签名,并根据区块是否被敲定判断当前的跨链交易是否被确认,将确认后的跨链交易发送至交易路由模块;
57.具体地,所述区块敲定模块采用:使用grandpa共识算法计算跨链系统中区块的确定性,获得确定性的区块将不会被分叉;当确定性达到预设值时,则当前跨链交易被确认。
58.所述确定性是指这个区块最终不会被分叉,即不会被篡改。当一个区块被敲定后,它就会获得一个确定性。
59.模块m4:交易路由模块对收到的跨链交易进行签名验证,当签名验证通过后,则将当前跨链交易发送至交易验证模块;当签名验证失败后,则将当前跨链交易视为无效交易直接丢弃;
60.具体地,在所述交易路由模块中:维护各个异构链对应的ip地址,交易路由模块根据bdcp数据格式中的目的链id查找当前交易需要转发的目的链b。
61.更为具体地,在所述交易路由模块中,维护每个交易执行结果列表,记录每笔交易在对应的链上是否执行成功;当跨链交易在两条链上都执行成功,则跨链交易才是最终执行成功。
62.模块m5:交易验证模块对跨链交易进行验证,当验证成功后,则将跨链交易发送至链b,等待链b执行的回执;当验证失败后,则将跨链交易转发至回滚/回调模块进行回滚或回调;
63.具体地,在所述交易验证模块中,验证跨链交易的签名,通过spv(simplified payment verification)的方式生成跨链交易生成的证明字段验证跨链交易的合法性,最后验证当前跨链交易是否被确认,经过交易验证的交易才会被路由转发给跨链交易的目的地。其中,spv属于区块链当中支付验证体系中的一种,是为了适应简便、快速支付的验证手
段,它不需要下载新区块所有数据,只需要保存区块头部数据,这些数据保存在默克尔树当中。
64.具体地,在所述回滚/回调模块中,当跨链交易在链b上执行错误,交易路由模块获取失败的结果或者等待时间超时时,将跨链交易发送至回滚/回调模块,执行交易的回滚操作,保证数据的原子性。
65.所述区块链数据通信协议bdcp通过跨链合约实现异构链间使用的共识算法不同和加密算法不同导致的数据不一致的问题。
66.实施例2
67.实施例2是实施例1的优选例
68.本发明由传统的面向连接的可靠通信协议tcp协议出发,针对异构跨链中存在的可靠性、原子性、安全性等问题,提出了一种面向连接的可靠链间路由跨链方法及系统。本发明包括交易路由模块、区块敲定模块、回滚/回调模块和交易验证模块。该系统的特点是应用于异构跨链系统中,无需每两个系统之间单独进行通信,所有的跨链系统只需要和交易路由模块进行可靠传输连接即可,将通信的复杂度从o(n^2)降为了o(n),同时将跨链数据传输从链与链之间解藕。在进行与交易路由模块握手之后,所有的跨链交易都可通过路由模块转发,并同时通过区块敲定模块和回滚/回调模块保证交易执行的原子性。最后,本系统为了协调异构链间数据通信格式不一致的问题,设计了一种区块链数据通信协议(blockchain data communication protocol,bdcp),使用该协议可实现异构链间使用的共识算法不同和加密算法不同导致的数据不一致的问题。
69.所述区块敲定模块是针对异构跨链系统中使用的概率性共识设计的特有模块。在异构的跨链系统中,由于不同的区块链系统会使用不同的共识协议,如hyperleger fabric使用的背书共识机制,由于有区块的共识有背书节点对交易进行最终敲定,一旦敲定就不会再被更改,因此是一种确定性的共识机制。但如venachain使用的ibft共识、趣链使用的rbft共识、中本聪的区块链网络使用的pow共识机制等,都是在允许拜占庭节点存在的情况下的一种概率性共识。即使当时出块成功,最终还是会有一个微小的概率该块被分叉。
70.基于此,本系统设计了一个区块敲定模块,使用grandpa共识算法,与加入系统的各个异构链达成一致,只要该块的确定性达到某个阈值,即可给该块一个finality的标志位,表示该块被最终敲定,之后将不会被分叉。
71.本模块的特点是考虑了跨链系统中的所有共识情况,拿到finality标志位的交易是一个确定性状态的的交易,利于进行之后的回滚和回调操作。
72.所述回滚/回调模块是配合交易执行方法,一旦交易被发送到另一条链上时,在另一条链上执行错误,那么在路由模块获取失败的结果或者等待时间超时后,将交易转发到回滚/回调模块,执行交易的回滚操作,保证数据的原子性,在两条链上的跨链交易要么同时成功,要么同时失败。
73.该模块的特点是将回滚和回调的工作从交易中解藕,交易中不需要包含回滚的方法,减少了交易数据的复杂性。回滚方法将会从交易中解耦出来,放在回滚/回调模块中。同时,类似的交易调用方法可以调用相同的回滚/回调函数,这也大大提高了模块的复用性。
74.所述交易路由模块是本系统中的核心模块。经过链a发出的跨链交易,首先组装成bdcp的数据格式(如表1所示),发给交易路由模块。在该模块中,会维护一张各个异构链对
应的ip地址,交易路由模块会根据发过来的bdcp中的to字段,查找该笔交易需要转发的目的链b,在发送成功以后等待回执。同时,在该模块中会维护一张每个交易执行结果列表,记录这每笔交易在对应的链上是否执行成功。若该笔跨链交易在两条链上都执行成功,则该笔跨链交易才是最终执行成功。
75.该模块的特点是将交易转发过程从链与链之间解藕到多链与路由之间,极大的减少了跨链的复杂度,通信的复杂度从o(n^2)降为了o(n),同时将跨链数据传输从链与链之间解藕。在进行与交易路由模块握手之后,所有的跨链交易都可通过路由模块转发。并且所有转发的交易都是可靠连接转发,都经过发送者的签名,是一个面向连接的可靠的传输方式。
76.表1.bdcp数据格式
77.参数说明from来源链idto目的链idtxhash交易的哈希值timestamp跨链交易发生的时间戳payload跨链调用内容的编码proof跨链交易生成的证明finality敲定标识signed发送者的签名
78.所述交易验证模块首先会验证发送过来的交易的签名,然后根据生成的proof字段用spv的方式验证该交易的合法性,最后验证交易是否包含finality标志位,即该交易是否被敲定。经过交易验证的交易才会被路由转发给跨链交易的目的地。该模块的特点是能够通过签名、proof和finality三轮验证,保证交易的正确性且不会被篡改,同时在一定程度上保障链安全性。
79.系统的执行流程图如图1所示。本系统主要针对异构跨链交易,首先链a和链b是两条使用不同共识算法,两种不同加密标准的异构链,现由链a发起一笔与链b有关的跨链交易,如调用链b中某个合约的方法,此时走到流程1,由链a发起跨链交易。此跨链交易需要调用到一个跨链合约,将原交易转换为bdcp数据格式,并进行签名,发送到区块敲定模块。
80.所述区块敲定模块首先检查该交易的签名,并基于2发送过来的交易,根据阈值判断该笔交易是否最终会被确认。例如在pbft类的共识中,若该笔交易已经接收到了3/4的commit,并经过12个块的共识,则证明该块已经有接近1的概率可以被最终敲定,则区块敲定模块会在bdcp数据结构中的finality字段填1,并重新签名该数据结构。最后将该交易发送给交易路由模块。
81.所述交易路由模块首先对3发送过来的交易进行签名验证,然后验证finality字段是否为true,若签名通过,并且finality字段为true,则将该笔交易发给交易验证模块验证proof。若验证失败,则表示该交易是一笔无效交易,直接丢弃。
82.所述交易验证模块会对4路由转发过来的交易使用spv简单支付验证的方法进行验证,若验证成功,则执行5.1直接转发给链b,等待链b执行的回执,若验证失败,执行5.2将交易转发给回滚/回调模块进行8回滚。
83.最后,若交易在b链上执行成功,链b会将该笔跨链交易的执行结果会记录在交易路由模块维护的结果表中。只有当该跨链交易分别在两条链中都执行成功,该笔跨链交易才算执行成功。交易路由模块同时会开启订阅的接口,节点可以实时监听该跨链交易的执行结果。
84.进一步地,所述交易路由模块中,在获取链b交易的回执时,使用监听链b区块头中有关事件回执的方式去查询相关跨链交易的执行结果。但使用监听的方式,可能会存在遗漏区块通知的情况。为了解决这个问题,可有使交易路由模块隔一段时间主动想链b获取交易回执,这样能够保证不会出现遗失交易的情况。同时,设置一个超时等待时间,若到了该时间还未拿到交易的回执,则判断该笔交易执行失败。
85.此外,在将交易转换为bdcp格式时,是由节点调用一个跨链合约的方式去进行的,使用合约调用的方式的优点是可以将数据转换的方法统一抽象出来,可以应用于各个交易,并且该转换的过程及签名也会记录在链上。但同时,使用该合约调用但方式同时也会增加系统但复杂性,基于此,可以将该合约转换成一个模块,每个调用跨链交易但节点在发起交易后执行这个格式转换模块,将交易转换成bdcp格式。
86.本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
87.以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本技术的实施例和实施例中的特征可以任意相互组合。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1