一种基于公证人组的跨链交易方法、系统及介质与流程

文档序号:33621076发布日期:2023-03-25 11:51阅读:81来源:国知局
一种基于公证人组的跨链交易方法、系统及介质与流程

1.本发明涉及区块链跨链技术,具体涉及一种基于公证人组的跨链交易方法、系统及介质,用于区块链跨链交易。


背景技术:

2.区块链跨链技术中的公证人机制是通过引入可信第三方进行跨链消息的验证和转发,为了防止中心化并最大限度保证交易可信,公证人的选取一般选取多名信誉度较高的公证人,在跨链交互过程中承担数据收集,验证,交互操作确认,交易验证和回滚等任务。
3.虽然引入了公证人机制,但是现有的区块链跨链交易过程中仍然存在以下问题:
4.1.现有的跨链交易方法中源节点和目标节点需要直接通信,对源节点和目标节点的要求很高,原因如下:
5.(1)源节点与目标节点的底层通信需要两者的网络互通,这需要两者同处一个局域网,或者直接部署于广域网中;
6.(2)对于应用层的交互来说,源节点需要了解目标节点的应用层通信协议和相关数据结构,才能直接进行应用数据的交互;
7.2.现有的跨链交易方法对速度和可靠性的要求都是固定的,无法动态去适配不同的业务要求,原因如下:
8.(1)跨链交易机制本质上是对交易结果可靠性和交易效率的权衡,两者不可兼得,对于不同的业务的跨链交易,有些需要交易速度更快,有些更注重结果可信任;
9.(2)通常公证人的选择都是使用固定算法,没有针对每一次跨链交易的需求实现适配。
10.3.现有的跨链交易方法通常没有考虑公证人组和区块链节点之间的网络拓扑结构,随着公证人组成员的变动(比如加入、退出或链接的路由器的变化),跨链交易的通信时延会不可控,原因如下:
11.(1)底层网络通信依赖于网络拓扑结构中的路由器/交换机节点的转发和路由;
12.(2)两个边缘终端的之间的通信需要经过的路由器/交换机越多,通信越慢;
13.(3)而公证人所处的网络拓扑结构的位置是不可预测的。
14.4.现有的跨链交易方法需要公证人组共同维护保证金池和忠诚度表,这也加大了公证人组之间的数据一致性难度,并且加重了公证人组和的网络压力,原因如下:
15.(1)公证人组是一个分布式系统,彼此之间的数据互相认可并达成一致需要额外的共识机制;
16.(2)而共识机制需要系统节点之间大量的数据广播,挤占了原本用于跨链交易验证的带宽;
17.(3)另外,分布式系统的节点加入和退出需要使用p2p协议的话,对于每一个公证人节点的加入和退出都需要额外的动态哈希表(dht)同步时间和流程。


技术实现要素:

18.本发明要解决的技术问题:针对现有技术的上述问题,提供一种基于公证人组的跨链交易方法、系统及介质,该方法降低了跨链交易的物理设备要求,提高交易速度,降低了跨链交易风险。
19.为了解决上述技术问题,本发明采用的技术方案为:
20.一种基于公证人组的跨链交易方法,实施步骤包括:
21.1)源节点s从公证人池中选择一个公证人节点作为第一公证人,向第一公证人发送目标节点t的数据,请求从公证人池中选择最优公证人组;
22.2)第一公证人根据目标节点t的数据及预设的公证人选择策略,从公证人池中选择本次跨链最优公证人组ni,将选择结果返回源节点s;
23.3)源节点s将预跨链交易信息包括源节点信息、公证人组信息分别发送给公证人组nl中的每一个公证人ni,并通过公证人组转发及处理,完成跨链交易。
24.可选地,所述步骤2)中预设的公证人选择策略为:根据源节点s地址和目标节点t地址,以及源节点s对本次跨链交易需要的公证人个数num进行筛选,具体计算公式如下:
25.s(ni)=a
×
ts(ni)+b
×
t
t
(ni)+c
×
r(ni)
26.其中,s(ni)为公证人ni的最后得分,ts(ni)为公证人ni和源节点s的通信耗时,t
t
(ni)为公证人ni和目标节点的通信耗时,r(ni)为公证人ni的历史执行表现分数,a,b,c为各自的权重,a+b+c=1;
27.得到每一个公证人ni的最后得分s(ni)后,根据s(ni)进行排名,取前num个作为本次跨链的公证人组。
28.可选地,所述公证人ni的历史执行表现分数r(ni)的计算公式为:
[0029][0030]
其中,ei(success)指公证人ni参与的跨链交易中,其验证结果与公证人组的验证结果相同的次数;ei(all)指公证人ni参与的所有的跨链交易次数;e(all)是系统内所有跨链交易的次数;e(success)是系统内所有跨链交易执行成功的次数。
[0031]
可选地,所述步骤1)中第一公证人为公证人池中历史执行表现分数r(ni)最高的公证人。
[0032]
可选地,所述步骤3)的具体实施步骤为:
[0033]
31)源节点s将预跨链交易信息包括源节点信息、公证人组信息分别发送给公证人组nl中的每一个公证人ni;
[0034]
32)公证人ni验证源节点签名后,分别将预跨链交易信息转发给目标节点t;
[0035]
33)目标节点t收到所有公证人组的消息后,验证预跨链交易信息,若同意该跨链交易,则返回同意,并且锁定相关资源,否则返回失败,该预跨链交易回执分别发送给公证人组nl里的每一个公证人;
[0036]
34)公证人ni在收到目标节点t的预跨链交易回执后,验证目标节点t签名,若是同意回执,则锁定目标节点t和源节点s在本地的相关资源,若是拒绝执行,则不做处理,将回执转发给源节点s;
[0037]
35)源节点s收到所有公证人的回执后,验证回执的目标节点t签名,若是回执为同
意,则执行第二阶段跨链交易,否则直接结束本次跨链交易;
[0038]
可选地,所述第二阶段跨链交易步骤包括:
[0039]
36)源节点s将执行跨链交易事务中在本区块链执行的交易,并发送commit指令给公证人组nl中的每一个公证人ni;
[0040]
37)公证人在收到commit指令后验证源节点签名,并对源节点s所在区块链的交易信息进行验证,将验证结果签名后返回给目标节点t,若是验证成功,注册本次源节点交易的回滚函数,用于跨链交易事务失败后的回滚;
[0041]
38)目标节点t在收到所有公证人组的关于源节点s的交易验证结果后,根据少数服从多数原则,确定源节点s上的交易是否已经执行成功,若是源节点交易验证成功,则开始执行跨链交易事务中需要目标节点t执行的交易,若是源节点交易验证失败,则不在目标区块链上执行交易,然后将源节点交易验证结果和执行结果签名后发送给公证人组nl中的每一个公证人ni;
[0042]
39)公证人根据执行结果判定,若是跨链交易事务成功,则解锁区块链上相关资源,并给源节点s和目标节点t发送成功回执,源节点s和目标节点t也解锁本次跨链交易相关资源,若是跨链交易事务失败,则调用回滚函数,对已执行成功的交易进行回滚,并解锁相关资源,跨链交易结束。
[0043]
可选地,所述跨链交易结束后,源节点s记录本次跨链交易的评价信息,即与源节点与各公证人的底层通信耗时,本次跨链交易的执行结果,验证结果等,提交给公证人池管理,用作下次选择第一公证人时的凭证。
[0044]
可选地,所述步骤2)中公证人在加入公证人组后,发布一次广播,声明自己的网络位置,公证人组中的其余公证人收到后更新本地网络拓扑结构数据,从而以链接的路由器为单位对区块链各节点进行规划,记录所有无环路径。
[0045]
本发明还提供一种基于公证人组的跨链交易系统,包括计算机设备,该计算机设备被编程或配置以执行上述基于公证人组的跨链交易方法的步骤,或该计算机设备的存储器上存储有被编程或配置以执行上述基于公证人组的跨链交易方法的计算机程序。
[0046]
本发明还提供一种计算机可读存储介质,该计算机可读存储介质上存储有被编程或配置以执行上述基于公证人组的跨链交易方法的计算机程序。
[0047]
和现有技术相比,本发明具有下述优点:
[0048]
1.本发明提出了一种基于公证人组的跨链交易方法实现区块链之间的价值交换,本方法不需要两个区块链之间有数据通信,全部由公证人组来处理和转发数据,降低了跨链操作的物理设备要求;
[0049]
2.本发明在传统选择公证人的基础上加上了对于通信时延的考虑,源节点在跨链交易发起时可以动态平衡交易风险和通信效率两种因素的权重,对于一些要求不太严格的跨链请求可以在传输层面上加快交易速度;
[0050]
3.本发明提出一种结合网络拓扑结构和历史执行分数信誉度的公证人选取机制,优化跨链交易的通信时延,解决了公证人组与区块链之间网络拓扑结构变化带来的通信时长不可控问题;
[0051]
4.本发明通过增加公证人的个数,降低了跨链交易的风险,因为公证人节点被同时黑客攻击的概率较小,从而增加了公证人的可信度;
[0052]
5.本发明去除了对保证金池和交易利润的数字账本的维护,使用公证人的历史执行分数作为链下激励分配凭证,降低了系统复杂度。
附图说明
[0053]
图1为本发明中一种基于公证人组的跨链交易方法流程示意图;
[0054]
图2为本发明中一种基于公证人组的跨链交易方法网络结构示意图。
具体实施方式
[0055]
如图1所示,本实施例一种基于公证人组的跨链交易方法的实施步骤包括:
[0056]
1)源节点s从公证人池中选择一个公证人节点作为第一公证人,向第一公证人发送目标节点t的数据,请求从公证人池中选择最优公证人组;
[0057]
2)第一公证人根据目标节点t的数据及预设的公证人选择策略,从公证人池中选择本次跨链最优公证人组ni,将选择结果返回源节点s;
[0058]
3)源节点s将预跨链交易信息包括源节点信息、公证人组信息分别发送给公证人组nl中的每一个公证人ni,并通过公证人组转发及处理,完成跨链交易。
[0059]
本实施例提出了一种基于公证人组的跨链交易方法实现区块链之间的价值交换,本方法不需要两个区块链之间有数据通信,全部由公证人组来处理和转发数据,降低了跨链操作的物理设备要求。
[0060]
本实施例中所述公证人池指本跨链系统里所有公证人的集合,每次跨链交易会选取一部分公证人组成公证人组,进行跨链交易,任意区块链节点在成为公证人前需要向跨链双方区块链中的公证人提交申请,在已有公证人组内达成共识后写入智能合约,该智能合约记录每一个公证人的地址,支持的区块链,帐号信息和公钥。
[0061]
进一步地,所述步骤2)中预设的公证人选择策略为:根据源节点s地址和目标节点t地址,以及源节点s对本次跨链交易需要的公证人个数num进行筛选,具体计算公式如下:
[0062]
s(ni)=a
×
ts(ni)+b
×
t
t
(ni)+c
×
r(ni)
[0063]
其中,s(ni)为公证人ni的最后得分,ts(ni)为公证人ni和源节点s的通信耗时,t
t
(ni)为公证人ni和目标节点的通信耗时,r(ni)为公证人ni的历史执行表现分数,a,b,c为各自的权重,a+b+c=1;
[0064]
得到每一个公证人ni的最后得分s(ni)后,根据s(ni)进行排名,取前num个作为本次跨链的公证人组。
[0065]
本实施例在传统选择公证人的基础上加上了对于通信时延的考虑,源节点在跨链交易发起时可以动态平衡交易风险和通信效率两种因素的权重,对于一些要求不太严格的跨链请求可以在传输层面上加快交易速度。
[0066]
本实施例提出一种结合网络拓扑结构和历史执行分数信誉度的公证人选取机制,优化跨链交易的通信时延,解决了公证人组与区块链之间网络拓扑结构变化带来的通信时长不可控问题。
[0067]
本实施例通过增加公证人的个数,降低了跨链交易的风险,因为公证人节点被同时黑客攻击的概率较小,从而增加了公证人的可信度。
[0068]
进一步地,所述公证人ni的历史执行表现分数r(ni)的计算公式为:
[0069][0070]
其中,ei(success)指公证人ni参与的跨链交易中,其验证结果与公证人组的验证结果相同的次数;ei(all)指公证人ni参与的所有的跨链交易次数;e(all)是系统内所有跨链交易的次数;e(success)是系统内所有跨链交易执行成功的次数。
[0071]
进一步地,所述步骤1)中第一公证人为公证人池中历史执行表现分数r(ni)最高的公证人。
[0072]
进一步地,所述步骤3)的具体实施步骤为:
[0073]
31)源节点s将预跨链交易信息包括源节点信息、公证人组信息分别发送给公证人组nl中的每一个公证人ni;
[0074]
32)公证人ni验证源节点签名后,分别将预跨链交易信息转发给目标节点t;
[0075]
33)目标节点t收到所有公证人组的消息后,验证预跨链交易信息,若同意该跨链交易,则返回同意,并且锁定相关资源,否则返回失败,该预跨链交易回执分别发送给公证人组nl里的每一个公证人;
[0076]
34)公证人ni在收到目标节点t的预跨链交易回执后,验证目标节点t签名,若是同意回执,则锁定目标节点t和源节点s在本地的相关资源,若是拒绝执行,则不做处理,将回执转发给源节点s;
[0077]
35)源节点s收到所有公证人的回执后,验证回执的目标节点t签名,若是回执为同意,则执行第二阶段跨链交易,否则直接结束本次跨链交易;
[0078]
进一步地,所述第二阶段跨链交易步骤包括:
[0079]
36)源节点s将执行跨链交易事务中在本区块链执行的交易,并发送commit指令给公证人组nl中的每一个公证人ni;
[0080]
37)公证人在收到commit指令后验证源节点签名,并对源节点s所在区块链的交易信息进行验证,将验证结果签名后返回给目标节点t,若是验证成功,注册本次源节点交易的回滚函数,用于跨链交易事务失败后的回滚;
[0081]
38)目标节点t在收到所有公证人组的关于源节点s的交易验证结果后,根据少数服从多数原则,确定源节点s上的交易是否已经执行成功,若是源节点交易验证成功,则开始执行跨链交易事务中需要目标节点t执行的交易,若是源节点交易验证失败,则不在目标区块链上执行交易,然后将源节点交易验证结果和执行结果签名后发送给公证人组nl中的每一个公证人ni;
[0082]
39)公证人根据执行结果判定,若是跨链交易事务成功,则解锁区块链上相关资源,并给源节点s和目标节点t发送成功回执,源节点s和目标节点t也解锁本次跨链交易相关资源,若是跨链交易事务失败,则调用回滚函数,对已执行成功的交易进行回滚,并解锁相关资源,跨链交易结束。
[0083]
进一步地,所述跨链交易结束后,源节点s记录本次跨链交易的评价信息,即与源节点与各公证人的底层通信耗时,本次跨链交易的执行结果,验证结果等,提交给公证人池管理,用作下次选择第一公证人时的凭证。
[0084]
本实施例去除了对保证金池和交易利润的数字账本的维护,使用公证人的历史执行分数作为链下激励分配凭证,降低了系统复杂度。
[0085]
进一步地,所述步骤2)中公证人在加入公证人组后,发布一次广播,声明自己的网络位置,公证人组中的其余公证人收到后更新本地网络拓扑结构数据,从而以链接的路由器为单位对区块链各节点进行规划,记录所有无环路径。
[0086]
本实施例还提供一种基于公证人组的跨链交易系统,包括计算机设备,该计算机设备被编程或配置以执行上述基于公证人组的跨链交易方法的步骤,或该计算机设备的存储器上存储有被编程或配置以执行上述基于公证人组的跨链交易方法的计算机程序。
[0087]
本实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有被编程或配置以执行上述基于公证人组的跨链交易方法的计算机程序。
[0088]
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1