一种动态的跨链消息转发方法及系统与流程

文档序号:29690524发布日期:2022-04-16 11:23阅读:108来源:国知局
一种动态的跨链消息转发方法及系统与流程

1.本发明属于区块链技术领域,具体涉及一种动态的跨链消息转发方法及系统。


背景技术:

2.本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。
3.不同区块链之间互相传递消息时,如果采用各区块链之间直接互相广播消息的方式,需要对各条链分别进行改造以支持不同链消息的广播接收以及验证处理。而通过中继链转发跨链消息可以减少对跨链消息双方区块链的改造,降低实现跨链消息传递的难度,减少工作量,提高了延展性。
4.目前通过中继链转发跨链消息,部分方法是通过各链的少部分节点进行跨链消息的传输。参与跨链消息传播的节点如果存在节点故障或节点作恶的情形,可能会存在消息的篡改和截停等安全隐患。


技术实现要素:

5.本发明为了解决基于中继链转发跨链消息的安全问题和效率问题,提出了一种动态的跨链消息转发方法及系统,本发明构造链间节点对应关系,并根据对应关系传递跨链消息,让双方区块链的所有节点均参与到跨链消息的传递中,保证消息真实可信不被篡改,可靠传递;且对中继链节点进行动态地群组划分以提高中继链节点验证消息并聚合签名的效率。
6.根据一些实施例,本发明采用如下技术方案:
7.一种动态的跨链消息转发方法,以中继链的节点执行,包括以下步骤:
8.接收消息发起链的各节点以链间节点对应关系发送的跨链消息;
9.验证所述跨链消息的正确性,对通过验证的消息签名;
10.基于协商的动态因子划分群组,建立群组间节点发送消息的对应关系;
11.进行群组内部节点签名的广播聚合,当签名个数达到设定阈值时,进行群组间节点签名的广播聚合,直至总签名到达预定阈值;
12.按照所述链间节点对应关系,发送携带到达预定阈值的聚合签名的消息到目标链的节点,使其验证消息和聚合签名的正确性。
13.一种动态的跨链消息转发方法,包括以下步骤:
14.消息发起链的各节点以链间节点对应关系发送跨链消息至中继链节点;
15.中继链节点验证所述跨链消息的正确性,对通过验证的消息签名;
16.中继链节点基于协商的动态因子划分群组,建立群组间节点发送消息的对应关系;
17.中继链节点进行群组内部节点签名的广播聚合,当签名个数达到设定阈值时,进行群组间节点签名的广播聚合,直至总签名到达预定阈值;
18.中继链节点按照所述链间节点对应关系,发送携带到达预定阈值的聚合签名的消息到目标链的节点;
19.目标链的节点验证消息和聚合签名的正确性,任意一个节点接收并验证通过后,完成跨链消息转发。
20.作为可选择的实施方式,链间节点对应关系以双向最小覆盖原则构造得到,即消息发起链的每个节点至少要向一个节点发送消息,接收链的每个节点至少有一个节点向其发送消息,且各发送链节点对应的接收节点数尽量少,尽量均衡。
21.作为可选择的实施方式,所述动态因子为中继链各节点协商一个一致的随机数作为动态因子,作为进一步的限定,取跨链消息的哈希值作为动态因子。
22.作为可选择的实施方式,基于协商的动态因子划分群组的具体过程包括:
23.确定群组个数;
24.基于动态因子给节点编号,让不同跨链消息下节点的编号不同;
25.根据编号和群组数,按照取余的方式将中继链节点划分为多个群组,并建立群组间节点的对应关系。
26.作为进一步的限定,取中继链节点数量开平方后向下取整得到整数n作为群组个数。
27.作为进一步的限定,基于动态因子给节点编号时,将节点id和跨链消息的哈希值合并后计算哈希值,根据计算的哈希值结果排序后顺序编号。
28.作为进一步的限定,按照取余的方式划分群组的具体过程中,按照节点编号和群组数取余后余数相同的节点作为一组来划分群组。
29.作为可选择的实施方式,建立群组间节点发送消息的对应关系的具体步骤包括:将群组内的节点按照排序编号从小到大的顺序形成一个有序列表,节点和其它群组中与本节点在列表中位置相同的节点建立发送消息对应关系,列表中位置最后的节点同时和其它群组中比本节点位置更靠后的节点建立发送消息对应关系。
30.作为可选择的实施方式,当签名个数达到设定阈值时,进行群组间节点签名的广播聚合的具体过程包括:
31.中继链节点在群组内聚合的签名个数够阈值后,向其它群组的对应节点广播本群组的聚合签名,节点收到其它群组的聚合签名后再次进行聚合。
32.一种动态的跨链消息转发系统,包括:
33.消息发起链,包括多个区块链节点,用于以链间节点对应关系发送跨链消息至中继链节点;
34.中继链,包括多个区块链节点,用于验证所述跨链消息的正确性,对通过验证的消息签名;基于协商的动态因子划分群组,建立群组间节点发送消息的对应关系;进行群组内部节点签名的广播聚合,当签名个数达到设定阈值时,进行群组间节点签名的广播聚合,直至总签名到达预定阈值;按照所述链间节点对应关系,发送携带到达预定阈值的聚合签名的消息到目标链的节点;
35.目标链,包括多个区块链节点,用于接收中继链节点发送的带有聚合签名的跨链消息,并验证消息和聚合签名的正确性。
36.与现有技术相比,本发明的有益效果为:
37.本发明让消息跨链传输的双方区块链所有节点都参与跨链消息的传播,防止跨链消息传播过程中部分节点作恶或者故障导致消息的恶意篡改拦截,保证了消息的安全性和不可篡改性。
38.本发明在中继链进行消息共识验证和签名聚合时,通过动态划分群组进行签名聚合的方式,降低了中继链内节点消息广播的通信复杂度,减少了通信量,提高广播通信效率,减少资源损耗,提升了中继链性能。群组划分的动态性能够防止群组固定带来的安全风险,防止恶意控制群组作恶。
39.为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
40.构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
41.图1为本发明至少一个实施例的动态的跨链消息转发系统结构示意图;
42.图2为本发明至少一个实施例的链间节点发送消息对应关系生成示意图;
43.图3为本发明至少一个实施例的动态的跨链消息转发流程示意图;
44.图4为本发明至少一个实施例的中继链群组划分示意图;
45.图5为图4划分的群组建立群组间节点对应关系的示意图;
46.图6为图5建立的群组间节点的对应关系广播签名的示意图。
具体实施方式:
47.下面结合附图与实施例对本发明作进一步说明。
48.应该指出,以下详细说明都是例示性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
49.需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
50.本发明提供一种动态的跨链消息转发方法及系统。
51.一种动态的跨链消息转发系统,包括:
52.消息发起链,包括多个区块链节点,用于以链间节点对应关系发送跨链消息至中继链节点;
53.中继链,包括多个区块链节点,用于验证所述跨链消息的正确性,对通过验证的消息签名;基于协商的动态因子划分群组,建立群组间节点发送消息的对应关系;进行群组内部节点签名的广播聚合,当签名个数达到设定阈值时,进行群组间节点签名的广播聚合,直至总签名到达预定阈值;按照所述链间节点对应关系,发送携带到达预定阈值的聚合签名的消息到目标链的节点;
54.目标链,包括多个区块链节点,用于接收中继链节点发送的带有聚合签名的跨链
消息,并验证消息和聚合签名的正确性。
55.一种动态的跨链消息转发方法,以双向最小覆盖原则构造链间节点对应关系,并根据对应关系传递跨链消息,让双方区块链的所有节点均参与到跨链消息的传递中,保证消息真实可信不被篡改,可靠传递。且对中继链节点进行动态地群组划分以提高中继链节点验证消息并聚合签名的效率。
56.中继链进行消息共识验证时,需要达到阈值个数的节点验证并签名后再将签名聚合以保证消息的安全可信,本发明采用基于动态群组划分的方式进行节点消息签名的广播和聚合,降低签名聚合过程的通信复杂度,减少签名广播数量,提高效率,防止群组成员固定带来的群组作恶等安全风险。
57.本发明的以双向最小覆盖原则构造链间节点对应关系,即消息发起链的每个节点至少要向一个节点发送消息,接收链的每个节点至少有一个节点向其发送消息,且各发送链节点对应的接收节点数尽量少,尽量均衡。保证双方区块链的所有节点都参与到跨链消息的传递,以保证跨链消息的安全性,防止节点故障或节点作恶造成的消息恶意拦截、修改,保证了消息的安全性和不可篡改性。
58.在部分实施例中,满足双向最小覆盖原则的链间节点对应关系建立方式,将双方区块链的各个节点排序后编号,节点按照双方的顺序编号和节点数量以取余的方式建立节点间的对应关系。消息发送方的节点数为s,消息接收方节点数为r,当s《r时,序号为i的发送方节点对应的接收方节点序号k应满足条件k%s=i;当s》r时,序号为i的发送方节点对应的接收方节点序号k满足条件i%r=k。
59.本发明所提出的基于动态群组划分的方式进行节点消息签名的广播和聚合,是指中继链进行共识验证并聚合签名时,按照动态划分群组的方式,将节点划分成多个群组,并建立不同群组间节点发送消息的对应关系。各节点先进行群组内部节点签名的广播聚合,节点群组内聚合的签名达到阈值后,再向本节点对应的其它群组节点广播本群组的聚合签名,将各群组的签名进行聚合,得到中继链达到阈值的聚合签名。
60.动态划分群组方式,是指划分的群组及群组间节点对应关系随着要共识验证的消息的不同进行重构。对每个要共识验证的消息,各节点协商一个一致的随机数作为动态因子,基于该动态因子划分群组,并建立各群组间节点消息发送对应关系。
61.动态因子,在部分实施例中,为了减少各节点协商动态因子的过程,提高群组划分的效率和安全性,采用消息哈希值作为每次群组划分的动态因子。
62.基于该动态因子划分群组,并建立各群组间节点消息发送对应关系,在部分实施例中,将中继链节点数量开平方作为群组数g,将动态因子与节点id合并后求哈希值,并根据各节点求得的哈希值大小将节点排序并编号,根据排序编号和群组数取余的结果划分群组,两节点的节点编号分别为a和b,若满足条件a%g=b%g,则两节点划分到同一群组中。群组划分完成后,根据节点编号在群组中的顺序位置建立群组间节点消息发送对应关系。
63.下面以具体实施例来详细介绍本发明的具体实现方案:
64.实施例一:
65.一种动态的跨链消息转发系统,如图1所示,包含消息发起链、中继链、消息目标链。
66.消息发起链是跨链消息的发起方,包含多个区块链节点。消息发起链节点负责将
跨链消息以链间节点对应关系发送给中继链节点。
67.中继链是跨链消息的中转方,包含多个区块链节点。中继链节点负责接收发起链节点的跨链消息,验证跨链消息的正确性,对跨链消息进行签名,签名后通过动态划分群组的方式进行签名的广播和聚合。节点聚合的签名数达到阈值后,按照链间消息传递时的链间节点对应关系,将聚合签名及消息发送至目标链对应的节点。
68.消息目标链是跨链消息最终接收方,包含多个区块链节点。消息目标链的节点接收中继链节点发送的带有聚合签名的跨链消息,验证消息。
69.链间消息传递时的链间节点对应关系,是指消息发送方的节点向消息接收方的哪些节点发送消息的关系。可选的,给双方节点分别从0开始编号,按照节点编号与节点数取余方式建立链间节点对应关系。
70.在本实施例中,给节点编号,按照节点id排序并根据顺序从0开始标记序号。
71.在本实施例中,按照节点编号与节点数取余的方式建立对应关系:即设消息发送方的节点数为s,消息接收方节点数为r,当s《r时,序号为i的发送方节点对应的接收方节点序号k应满足条件k%s=i;当s》r时,序号为i的发送方节点对应的接收方节点序号k满足条件i%r=k。
72.图2为链间节点发送消息对应关系生成示例。示例中发送方有4个节点,接收方有7个节点,发送方的节点为snode_i,i代表节点排序后的编号,接收方的节点为mnode_k,k代表节点排序后的编号。如图所示,消息发送方和接收方的节点排序后,序号为0的发送方节点对应的接收方节点序号k需要满足条件k%4=0且k《7,所以snode_0对应的接收方节点为mnode_0和mnode_4。
73.实施例二:
74.一种动态的跨链消息转发方法,如图3所示,包括:
75.步骤301:消息发起链的各节点发送跨链消息至中继链节点。消息发起链的各节点按照链间传递消息时的链间节点对应关系,选择中继链节点发送跨链消息。
76.步骤302:中继链节点接收来自发起链的跨链消息,进行消息验证,验证通过后进行消息签名。
77.步骤303:中继链各节点协商一个一致的随机数作为动态因子,基于动态因子划分群组,建立群组间节点发送消息的对应关系。
78.所述的各节点协商一个一致的随机数作为动态因子。
79.在部分实施例中,直接使用跨链消息哈希值作为动态因子。
80.所述的基于动态因子划分群组,并建立各群组间节点的对应关系。在本实施例中,包含步骤3031、3032、3033:
81.步骤3031:确定群组个数。在本实施例中,取中继链节点数量开平方后向下取整得到整数n作为群组个数。
82.步骤3032:基于动态因子给节点编号,让不同跨链消息下节点的编号不同。在本实施例中,将节点id和跨链消息的哈希值合并后计算哈希值,根据计算的哈希值结果排序后从0开始编号。
83.步骤3033:根据编号和群组数,按照取余的方式将中继链节点划分为多个群组,并建立群组间节点的对应关系。
84.所述的根据排序后的编号和群组数,按照取余的方式将中继链节点划分为多个群组,并建立群组间节点的对应关系。
85.在本实施例中,按照节点编号和群组数取余后余数相同的节点作为一组来划分群组。
86.建立群组间节点的对应关系,将群组内的节点按照排序编号从小到大的顺序形成一个有序列表,节点和其它群组中与本节点在列表中位置相同的节点建立发送消息对应关系,列表中位置最后的节点同时和其它群组中比本节点位置更靠后的节点建立发送消息对应关系。
87.图4为中继链群组划分示例,中继链节点为mnode_l,l为中继链节点根据动态因子排序后的编号。如图4所示,中继链节点数为7,将群组数开平方向下取整后得到群组数2,mnode_0,mnode_2,mnode_4,mnode_6的顺序编号对2取余后结果都为0,所以这些节点组成一个群组。
88.图5为图4中划分的群组建立群组间节点对应关系的示例。在各自群组列表中位置相同的节点互相建立发送消息对应关系。中继链群组2列表的最后一个节点mnode_5在列表中的位置为2,因此mnode_5还需要对群组1中位置为3的节点mnode_6建立发送消息对应关系。
89.步骤304:中继链节点进行群组内部节点签名的广播聚合。各节点向同群组内节点广播本节点签名,节点收到签名后进行聚合。
90.步骤305:中继链节点进行群组间签名的广播聚合。节点在群组内聚合的签名个数够阈值后,向其它群组的对应节点广播本群组的聚合签名。节点收到其它群组的聚合签名后再次进行聚合。图6为中继链节点按照图5建立的群组间节点的对应关系广播签名的示例图。
91.步骤306:中继链节点聚合的签名达到阈值后,按照链间消息传递的链间节点对应关系选择消息目标链的节点,发送携带达到阈值的聚合签名的消息。
92.步骤307:消息目标链节点接收中继链节点发来的消息,验证消息和聚合签名的正确性,任意一个节点接收并验证通过后,完成跨链消息转发。
93.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
94.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
95.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指
令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
96.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
97.上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1