掌桥专利:专业的专利平台
掌桥专利
首页

基于金融联盟链的数据传输方法、装置、设备、介质

文献发布时间:2024-04-18 20:02:40


基于金融联盟链的数据传输方法、装置、设备、介质

技术领域

本申请涉及区块链技术领域和金融科技技术领域,特别是涉及一种基于金融联盟链的数据传输方法、装置、计算机设备、存储介质和计算机程序产品。

背景技术

随着区块链技术的发展以及金融机构之间合作的加深,出现了由多个金融机构组成的金融联盟链。基于金融联盟链,不同金融机构的节点都可以与链上的其他金融机构的节点进行安全的数据共享。

然而,在目前的金融联盟链中,两个金融机构节点之间通常以广播的方式进行数据传输,从而在待传输数据具有较大数据量的情况下,难以保证数据抵达目的节点的及时性。

发明内容

基于此,有必要针对上述技术问题,提供一种基于金融联盟链的数据传输方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。

第一方面,本申请提供了一种基于金融联盟链的数据传输方法。所述方法包括:

根据待传输的金融数据的数据量以及基于金融联盟链的数据传输群组的数据传输进程并发量,确定本节点到目标节点的最优路由路径组;其中,所述最优路由路径组包括多个路由路径,所述多个路由路径使所述待传输的金融数据从本节点分路传输至所述目标节点的总时间最短,最优路由路径组中每条路由路径由所述数据传输群组中的数据传输参与方的节点组成;

根据所述待传输的金融数据,确定所述多个路由路径对应的多个金融子数据;

建立所述多个路由路径对应的多个加密隧道,基于所述多个加密隧道将所述多个金融子数据经所述多个路由路径分路传输至所述目标节点。

在其中一个实施例中,所述方法还包括:当接收由所述数据传输群组中的其他数据传输参与方的节点基于加密隧道传输的金融子数据时,判断本节点是否为目标节点;若是,则根据接收的多个金融子数据,得到所述金融数据。

在其中一个实施例中,所述方法还包括:若本节点不是目标节点,则根据存证于所述金融联盟链的动态路由表,获取所述金融子数据对应的路由信息;基于加密隧道将所述金融子数据经所述路由信息对应的路由路径转发至所述目标节点。

在其中一个实施例中,所述根据待传输的金融数据的数据量以及基于金融联盟链的数据传输群组的数据传输进程并发量,确定本节点到目标节点的最优路由路径组,包括:根据所述数据传输群组的数据传输进程并发量,将所述多个金融数据分配至多个数据传输进程,确定各数据传输进程的数据负载;结合所述数据负载以及设定的传输时间窗,使用蚁群算法获取适用于所述多个数据传输进程的多个路由路径;由所述多个路由路径得到所述最优路由路径组。

在其中一个实施例中,所述方法还包括:将所述最优路由路径组中的每个路由路径的路由信息存证于所述金融联盟链的动态路由表。

在其中一个实施例中,所述建立所述多个路由路径对应的多个加密隧道,基于所述多个加密隧道将所述多个金融子数据经所述多个路由路径分路传输至所述目标节点,包括:根据所述路由路径的路由信息,确定本节点在所述路由路径中的下一跳节点;根据所述金融联盟链的共同公钥和本节点的公钥,与所述下一跳节点建立分段加密隧道;将所述金融子数据基于所述分段加密隧道传输至所述下一跳节点。

在其中一个实施例中,所述将所述金融子数据基于所述分段加密隧道传输至所述下一跳节点,包括:根据本节点与所述下一跳节点协商的对称密钥加密所述金融子数据,按照预设加密隧道协议的数据传输报文格式以及所述路由信息,将经加密的金融子数据传输至所述下一跳节点。

第二方面,本申请还提供了一种基于金融联盟链的数据传输装置。所述装置包括:

路径确定模块,用于根据待传输的金融数据的数据量以及基于金融联盟链的数据传输群组的数据传输进程并发量,确定本节点到目标节点的最优路由路径组;其中,所述最优路由路径组包括多个路由路径,所述多个路由路径使所述待传输的金融数据从本节点分路传输至所述目标节点的总时间最短,最优路由路径组中每条路由路径由所述数据传输群组中的数据传输参与方的节点组成;

金融子数据确定模块,用于根据所述待传输的金融数据,确定所述多个路由路径对应的多个金融子数据;

分路传输模块,用于建立所述多个路由路径对应的多个加密隧道,基于所述多个加密隧道将所述多个金融子数据经所述多个路由路径分路传输至所述目标节点。

第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

根据待传输的金融数据的数据量以及基于金融联盟链的数据传输群组的数据传输进程并发量,确定本节点到目标节点的最优路由路径组;其中,所述最优路由路径组包括多个路由路径,所述多个路由路径使所述待传输的金融数据从本节点分路传输至所述目标节点的总时间最短,最优路由路径组中每条路由路径由所述数据传输群组中的数据传输参与方的节点组成;

根据所述待传输的金融数据,确定所述多个路由路径对应的多个金融子数据;

建立所述多个路由路径对应的多个加密隧道,基于所述多个加密隧道将所述多个金融子数据经所述多个路由路径分路传输至所述目标节点。

第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

根据待传输的金融数据的数据量以及基于金融联盟链的数据传输群组的数据传输进程并发量,确定本节点到目标节点的最优路由路径组;其中,所述最优路由路径组包括多个路由路径,所述多个路由路径使所述待传输的金融数据从本节点分路传输至所述目标节点的总时间最短,最优路由路径组中每条路由路径由所述数据传输群组中的数据传输参与方的节点组成;

根据所述待传输的金融数据,确定所述多个路由路径对应的多个金融子数据;

建立所述多个路由路径对应的多个加密隧道,基于所述多个加密隧道将所述多个金融子数据经所述多个路由路径分路传输至所述目标节点。

第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:

根据待传输的金融数据的数据量以及基于金融联盟链的数据传输群组的数据传输进程并发量,确定本节点到目标节点的最优路由路径组;其中,所述最优路由路径组包括多个路由路径,所述多个路由路径使所述待传输的金融数据从本节点分路传输至所述目标节点的总时间最短,最优路由路径组中每条路由路径由所述数据传输群组中的数据传输参与方的节点组成;

根据所述待传输的金融数据,确定所述多个路由路径对应的多个金融子数据;

建立所述多个路由路径对应的多个加密隧道,基于所述多个加密隧道将所述多个金融子数据经所述多个路由路径分路传输至所述目标节点。

上述基于金融联盟链的数据传输方法、装置、计算机设备、存储介质和计算机程序产品,根据待传输的金融数据的数据量以及基于金融联盟链的数据传输群组的数据传输进程并发量,确定能够使待传输的金融数据从本节点分路传输至所述目标节点的总时间最短的最优路由路径组,确定对应于最优路由路径组中的多个路由路径对应的多个金融子数据,建立多个路由路径对应的多个加密隧道,基于多个加密隧道将多个金融子数据经多个路由路径分路传输至目标节点。该过程中,结合待传输的金融数据的数据量、数据传输群组的数据传输进程并发量以及数据的传输总时间几个因素确定对应的最优路由路径组,能够适应于不同的数据负载量,动态地提供最优路由路径,从而使不同数据量的金融数据都能够在尽量短的时间内从本节点传输至目标节点,有效保障数据传输的及时性。进一步地,建立对应于多个路由路径的多个加密隧道,并基于加密隧道将金融数据分路传输至目标节点,可以在保障数据传输速度的基础上同时保障各路金融数据的传输安全性。

附图说明

图1为一个实施例中基于金融联盟链的数据传输方法的应用环境图;

图2为一个实施例中基于金融联盟链的数据传输方法的流程示意图;

图3为一个实施例中转发金融子数据步骤的流程示意图;

图4为一个实施例中获取最优路由路径组的流程示意图;

图5为一个实施例中建立加密隧道的流程示意图;

图6为一个实施例中基于金融联盟链的数据传输装置的结构框图;

图7为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

以下为本申请中涉及的一些定义:

字节序列级联:设X和Y为字节序列,则级联表示为两个字节序列X和Y的连接,形成另一个字节序列Z的过程,形式化表示为Z=X||Y。

群签名的安全参数:设ω>1,k,l

令H表示哈希函数,形式上表示为:H:{0,1}

需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。

本申请实施例提供的基于金融联盟链的数据传输方法,可以应用于如图1所示的应用环境中,该应用环境可以包括:金融联盟链的多个节点、用户的终端。在本申请中,金融联盟链中的一个节点可以作为数据传输群组的一个数据传输参与方,在一个数据传输参与方加入基于该金融联盟链的数据传输群组后,其系统对应于该金融联盟链的一个节点。其中,数据传输群组可以包括三个或三个以上的参与方,该参与方可以是银行等金融机构。用户终端可以用于发送和接收来自用户的交易请求等金融数据,可以与如其中一个参与方的节点连接,通过该参与方的节点将金融数据传输到对应的如另一个参与方的节点,同时也可以从参与方节点接收金融数据,返回至用户。

如图1所示的应用环境中,用户终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。金融联盟链的节点可以是服务器,具体可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

在一个实施例中,如图2所示,提供了一种基于金融联盟链的数据传输方法,包括以下步骤:

步骤S201,根据待传输的金融数据的数据量以及基于金融联盟链的数据传输群组的数据传输进程并发量,确定本节点到目标节点的最优路由路径组;其中,最优路由路径组包括多个路由路径,多个路由路径使待传输的金融数据从本节点分路传输至目标节点的总时间最短,最优路由路径组中每条路由路径由数据传输群组中的数据传输参与方的节点组成。

具体地,待传输的金融数据可以是数据传输参与方通过用户终端接收的来自用户的交易请求等金融数据,也可以是数据传输参与方自身产生的需要传输至数据传输群组中另一参与方的金融数据。根据待传输的金融数据,可以确定其数据量以及本次数据传输的目标节点。数据传输进程并发量可以由数据传输群组的性能以及当前的数据传输状态确定。

本步骤中,当数据传输群组中的一个数据传输参与方的节点需要将金融数据从本节点传输至目标节点时,可以在数据传输群组中确定可用于数据传输的数据传输参与方的节点,并由此确定从本节点到目标节点的多条路由路径。进一步地,根据待传输的金融数据的数据量以及数据传输群组的数据传输进程并发量,可以将待传输的金融数据分配至各数据传输进程,并对各数据传输进程在不同的路由路径上所需的数据传输时间进行估计,确定能够使待传输的金融数据从本节点分路传输至所述目标节点的总时间最短的多个路由路径,由此得到对应于本次金融数据传输的最优路由路径组。

步骤S202,根据待传输的金融数据,确定多个路由路径对应的多个金融子数据。

具体地,对应于步骤S201中确定的多个路由路径,本步骤中可以对待传输的金融数据进行拆分,得到分配至每个路由路径上的金融子数据。

步骤S203,建立多个路由路径对应的多个加密隧道,基于多个加密隧道将多个金融子数据经多个路由路径分路传输至目标节点。

具体地,本步骤中可以针对多个路由路径建立对应的多个加密隧道。其中,加密隧道可以建立于初始节点(即本节点)与目标节点之间,也可以建立于路由路径的节点之间,其可以对数据进行加密和封装。示例性地,加密隧道可以参照例如wireguard隧道协议建立。

进一步地,基于建立的多个加密隧道,可以将步骤S202中确定的多个金融子数据经其对应的路由路径,分别加密传输至目标节点。

上述基于金融联盟链的数据传输方法中,根据待传输的金融数据的数据量以及基于金融联盟链的数据传输群组的数据传输进程并发量,确定能够使待传输的金融数据从本节点分路传输至所述目标节点的总时间最短的最优路由路径组,确定对应于最优路由路径组中的多个路由路径对应的多个金融子数据,建立多个路由路径对应的多个加密隧道,基于多个加密隧道将多个金融子数据经多个路由路径分路传输至目标节点。该过程中,结合待传输的金融数据的数据量、数据传输群组的数据传输进程并发量以及数据的传输总时间几个因素确定对应的最优路由路径组,能够适应于不同的数据负载量,动态地提供最优路由路径,从而使不同数据量的金融数据都能够在尽量短的时间内从本节点传输至目标节点,有效保障数据传输的及时性。进一步地,建立对应于多个路由路径的多个加密隧道,并基于加密隧道将金融数据分路传输至目标节点,可以在保障数据传输速度的基础上同时保障各路金融数据的传输安全性。

在一个实施例中,上述方法还包括:当接收由所述数据传输群组中的其他数据传输参与方的节点基于加密隧道传输的金融子数据时,判断本节点是否为目标节点;若是,则根据接收的多个金融子数据,得到所述金融数据。

具体地,数据传输群组的数据传输参与方可以接收来自群组中其他数据传输参与方的节点基于加密隧道传输的金融子数据。当接收到来自其他节点的金融子数据时,数据传输参与方可以根据金融子数据所携带的用于指示目标节点的信息,例如对应于目标节点的目的地址等,确定本节点是否为该金融子数据的目标节点。

其中,在确定本节点为目标节点的情况下,数据传输参与方可以进一步接收经由其他路由路径基于加密隧道传输的金融子数据,对接收到的多个金融子数据进行解密,并将解密后的多个金融子数据组合得到原始的金融数据。

本实施例中,作为目标节点的数据传输参与方可以接收在多个不同的路由路径中基于加密隧道传输的多个金融子数据,并还原得到原始的金融数据。由于各金融子数据都是通过最优路由路径组中的路径进行传输,因此作为目标节点的数据传输参与方可以在最短时间内接收到所有金融子数据,大大节省对数据的等待时间。并且,由于每个金融子数据都是基于加密隧道传输,因此目标节点可以避免接收到经篡改的数据,有效保障自身的安全性。

在一个实施例中,如图3所示,上述方法还包括:

步骤S301,若本节点不是目标节点,则根据存证于所述金融联盟链的动态路由表,获取所述金融子数据对应的路由信息。

步骤S302,基于加密隧道将所述金融子数据经所述路由信息对应的路由路径转发至所述目标节点。

具体地,在步骤S301中,数据传输参与方在确定本节点不是目标节点的情况下,可以确定本节点为该金融子数据所对应的路由路径上的中间节点。在此情况下,数据传输参与方可以根据金融子数据携带的用于指示其初始节点和目标节点的信息,查询存证于金融联盟链的动态路由表,获取从初始节点到目标节点并且经过本节点的路由路径信息。其中,该路由路径信息可以包括该路由路径上对应于本节点的下一跳节点地址等信息。进一步地,基于获取的路由信息,在步骤S302中,数据传输参与方可以基于加密隧道将接收到的金融子数据经由其对应的路由路径转发至目标节点。

本实施例中,作为中间节点的数据传输方可以根据存证于金融联盟链的动态路由表获取金融子数据对应的路由信息,并将其基于加密隧道,转发至目标节点。其中,存证于金融联盟链的动态路由表可以在多方见证下避免被恶意篡改,因此中间节点从该动态路由表可以获得具有安全保障的路由信息,并进而可以将金融子数据按照正确的路由路径转发至目标节点。

在一个实施例中,如图4所示,上述步骤S201,根据待传输的金融数据的数据量以及基于金融联盟链的数据传输群组的数据传输进程并发量,确定本节点到目标节点的最优路由路径组,包括:

步骤S401,根据数据传输群组的数据传输进程并发量,将多个金融数据分配至多个数据传输进程,确定各数据传输进程的数据负载。

步骤S402,结合数据负载以及设定的传输时间窗,使用蚁群算法获取适用于多个数据传输进程的多个路由路径。

步骤S403,由多个路由路径得到最优路由路径组。

具体地,当本节点需要传输金融数据时,在步骤S401中可以采用文件分片技术将待传输的金融数据拆分成数据量大小相同的数据包,然后根据数据传输进程并发量,将数据包分配至各数据传输进程。示例性地,本实施例中可以将数据包均分至每个数据传输进程。

进一步地,本实施例在步骤S402中可以基于蚁群优化算法,结合数据负载量和传输时间窗模拟信息素的熵增,以获得适用于多个数据传输进程的多个路由路径,并进一步在步骤S403中由多个路由路径的集合得到最优路由路径组。

具体地,本实施例中通过蚁群优化算法确定最优路由路径组,可以包括:

步骤S501,对蚁群优化算法的参数进行初始化。

具体地,设置初始节点为a,目标节点为b,设信息素τ(a,b)的值为常数c,初始化表示为τ(a,b)=c,初始化信息素的增益Δτ(a,b)

进一步地,设置最大的迭代次数为N

步骤S502,初始化蚁群路由信息,计算每个节点的启发式信息。具体地,可以根据数据传输群组中的网络状态,对蚁群路由信息进行初始化。

步骤S503,在迭代次数小于N

步骤S504,对于每个蚁群,使其中的每个路径选择进程搜索从初始节点到目标节点的路由路径。

示例性的,对于位于节点a的路径选择进程k,当a不是目标节点时,按照以下规则,根据信息素的“浓度”,选取下一访问节点s:

其中,β是决定信息素与距离相对重要性的参数,通常情况下β>0,J

对于被选择的下一访问节点,如果该节点不满足约束条件,则搜索下一个节点;如果该节点满足约束条件且不存在于已访问节点库中,则在已访问节点库中添加当前访问节点,并增加该节点至解决方案s

进一步地,根据传输时间窗和数据负载更新信息素等信息。获取各数据包的文件分片大小size(本实施例中设文件分片大小相同),传输时间窗w,设w为一个时间范围[e

其中,δ

步骤S505,对于每个蚁群k,更新最优化路径选择,计算每个路径的长度,更新最短路径shortest。进一步地,对于每个节点,更新信息素矩阵PM,并设置未更新的路径为最差值。具体地,可以按照如下式所示的规则,根据路径距离μ和信息素“浓度”循环更新信息素参数:

其中:

上式中,0<α<1表示信息素衰减因子,L

步骤S506,当迭代次数达到N

本实施例中使用结合数据负载和传输时间窗,使用蚁群算法获取最优路由路径组,能够有效兼顾多个路由路径之间的负载均衡以及每个路径到达目标节点的时间,得到能使目标节点在最短时间内接收到所有金融子数据的最优路由路径组,该过程增加了路径优化的效率,并且能够提高路由访问效率。

在一个实施例中,上述方法还包括:将所述最优路由路径组中的每个路由路径的路由信息存证于金融联盟链的动态路由表。

具体地,金融联盟链的动态路由表可以包含数据传输群组中各参与方之间的最优路由路径组所对应的路由信息。本实施例中,数据传输参与方的节点在得到本节点到目标节点的最优路由路径组后,可以将其包含的每个路由路径的路由信息存证于金融联盟链的动态路由表中。

本实施例中,获取最优路由路径组后,将其中包含的路由路径的路由信息存证于金融联盟链的动态路由表,可以实现对动态路由表的动态更新,使数据传输群组中的数据传输参与方的节点都可以及时查询到最新的路由信息。

在一个实施例中,如图5所示,上述步骤S203,建立多个路由路径对应的多个加密隧道,基于多个加密隧道将多个金融子数据经多个路由路径分路传输至目标节点,包括:

步骤S601,根据路由路径的路由信息,确定本节点在路由路径中的下一跳节点。

步骤S602,根据金融联盟链的共同公钥和本节点的公钥,与下一跳节点建立分段加密隧道。

步骤S603,将金融子数据基于分段加密隧道传输至下一跳节点。

具体地,本实施中各路由路径对应的加密隧道由建立于路由路径的每两个相邻节点之间的分段加密隧道组成。其中,数据传输参与方的节点可以在步骤S601中通过例如查询存证于金融联盟链的动态路由表获取金融子数据对应的路由路径的路由信息再进一步确定路径上相对于本节点的下一跳节点,然后在步骤S602中根据金融联盟链的共同公钥PK以及本节点的公钥pk(i)与下一跳节点建立分段加密隧道,再在步骤S603中将金融子数据基于建立好的分段加密隧道传输至下一跳节点。

示例性地,本实施例的步骤S602可以包括以下步骤:

步骤S701,获取金融联盟链的共同公钥和本节点的公钥。

具体地,金融联盟链的管理方的节点可以采用椭圆曲线算法X25519的初始化参数,对数据传输群组中的各参与方的节点循环生成其公钥pk(i)和私钥sk(i)。

金融联盟链的共同公钥PK的获取方式可以包括:选取安全参数并在金融联盟链存证;数据传输群组中各参与方对安全参数的签名于金融联盟链存证后,获取由金融联盟链的管理方的节点基于安全参数生成的共同公钥。

其中,数据传输参与方的节点可以选取安全参数包括:长度为l

产生随机数

T

T

T

随机选取

(1)

(2)c=H(g||h||y||a

(3)

将对安全参数进行签名得到的签名信息(c,s

步骤S702,向下一跳节点发送加密隧道建立请求报文。

具体地,数据传输参与方的节点可以按照预设加密隧道协议的第一报文格式,向下一跳节点发送加密隧道建立请求报文,该加密隧道建立请求报文中可以包含金融联盟链的共同公钥和本节点的公钥,以及在步骤S601中获得的路由路径确定的路由信息,还可以包括本节点对该共同公钥的签名。具体的,第一报文格式如下:

其中,IP报头表示数据报文头,路由信息可以包含Next hop,type表示消息类型,type=0X1表示发送消息、type=0x2表示接收消息等,reserved表示保留字段,sender表示发送者公钥,receiver表示接收者公钥,ephemeral表示临时凭证,timestamp表示发送时间戳,static表示静态信息,该静态信息可包括共同公钥PK,mac1、mac2表示消息认证算法(MAC,Message Authentication Codes),哈希形式的头信息Hi,在形式上表示为:H_i=Hash(Hash(Construct)||PK_i)。其中,其中,Hash表示哈希算法SHA-256,Construct表示结构体的内容信息,PKi表示通信节点i(本节点)的公钥,||表示字节序列级联运算符号。

步骤S703,接收下一跳节点发送的加密隧道建立响应报文。

具体地,本节点向下一跳节点发送加密隧道建立请求报文后,下一跳节点可以对共同公钥和公钥进行验证,对共同公钥和公钥的验证通过后可以按照预设加密隧道协议的第二报文格式返回加密隧道建立响应报文,本节点可以接收下一跳节点按照预设加密隧道协议的第二报文格式发送的加密隧道建立响应报文。该加密隧道建立请求报文中可以包含由路由路径确定的路由信息。其中,加密隧道建立请求报文和加密隧道建立响应报文用于本节点和下一跳节点协商对称密钥。具体的,第二报文格式如下:

其中,IP报头表示数据报文头,路由信息可以包含Next hop,Empty的字段表示对12字节的全零数据计算Poly1035的认证标签authentication tag。

本节点接收到下一跳节点发送的加密隧道建立响应报文后,可表示分段加密隧道建立成功,可以发送通信消息。

示例性地,下一跳节点对共同公钥和公钥进行验证可以包括:执行预设的签名验证函数验证共同公钥的签名,及执行预设的身份验证函数验证公钥。

具体地,下一跳节点可以执行预设的签名验证函数bool=Verifysign(PK,sk(i)),验证共同公钥的签名。其中,sk(i)表示下一跳节点的私钥,PK表示共同公钥,bool表示验证签名的结果,bool=true表示成功,bool=false表示失败。当验证签名失败时,下一跳节点可拒绝通信连接。

下一跳节点还可以执行预设的身份验证函数bool=AuthenKey(PK,pk(j))验证公钥,其中PK(j)表示本节点的公钥,PK表示共同公钥,bool表示身份验证的结果,bool=true表示身份验证成功,bool=false表示身份验证失败。当验证身份失败时,下一跳节点可拒绝通信连接。

按照上述过程完成本节点与下一跳节点之间的分段加密隧道建立后,在步骤S603中即可基于该分段加密隧道将金融子数据从本节点传输至下一跳节点。

本实施例中,由路由路径中的每两个相邻节点形成分段加密隧道,并将金融子数据基于分段加密隧道从一个节点传输至其下一跳节点。该过程中,随着金融子数据的传输而建立对应的分段加密隧道,可以有效提高加密隧道的建立效率,从而提高金融子数据的传输效率。而且,在两个节点建立分段加密隧道的过程中,还可以对两个节点的身份进行验证,更进一步提高了数据传输的安全性。

在一个实施例中,上述步骤S603,将金融子数据基于分段加密隧道传输至下一跳节点,包括:根据本节点与所述下一跳节点协商的对称密钥加密所述金融子数据,按照预设加密隧道协议的数据传输报文格式以及所述路由信息,将经加密的金融子数据传输至所述下一跳节点。

本实施例中,数据传输参与方的节点(本节点)可以使用其与下一跳节点在分段加密隧道建立过程中协商的对称密钥,对金融子数据进行加密,得到经加密的金融子数据。然后,本节点可以按照预设加密隧道协议的数据传输报文格式,将经加密的金融子数据传输至下一跳节点。

示例性地,以P表示待传输的经加密的金融子数据的数据包,||P||表示数据包P的长度,数据传输报文格式可表示为:

其中,IP报头表示数据报文头,路由信息可以包含Next hop,type=0X4可表示通信传输消息,counter表示“加盐”信息,P的定义如下:

P:=P||0

其中,AEAD是ChaCha20-Poly1305算法的计算公式,

本实施例中,本节点使用其与下一跳节点协商的对称密钥对金融子数据进行加密,再按照预设加密隧道协议的数据传输报文格式将其传输至下一跳节点,金融子数据在此传输过程中能够得到更高的安全保障。

应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的基于金融联盟链的数据传输方法的基于金融联盟链的数据传输装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个基于金融联盟链的数据传输装置实施例中的具体限定可以参见上文中对于基于金融联盟链的数据传输方法的限定,在此不再赘述。

在一个实施例中,如图6所示,提供了一种基于金融联盟链的数据传输装置800,包括:

路径确定模块801,用于根据待传输的金融数据的数据量以及基于金融联盟链的数据传输群组的数据传输进程并发量,确定本节点到目标节点的最优路由路径组;其中,所述最优路由路径组包括多个路由路径,所述多个路由路径使所述待传输的金融数据从本节点分路传输至所述目标节点的总时间最短,最优路由路径组中每条路由路径由所述数据传输群组中的数据传输参与方的节点组成;

金融子数据确定模块802,用于根据所述待传输的金融数据,确定所述多个路由路径对应的多个金融子数据;

分路传输模块803,用于建立所述多个路由路径对应的多个加密隧道,基于所述多个加密隧道将所述多个金融子数据经所述多个路由路径分路传输至所述目标节点。

在一个实施例中,上述装置还包括:数据接收处理模块,用于当接收由所述数据传输群组中的其他数据传输参与方的节点基于加密隧道传输的金融子数据时,判断本节点是否为目标节点;若是,则根据接收的多个金融子数据,得到所述金融数据。

在一个实施例中,上述数据接收处理模块,还用于:若本节点不是目标节点,则根据存证于所述金融联盟链的动态路由表,获取所述金融子数据对应的路由信息;基于加密隧道将所述金融子数据经所述路由信息对应的路由路径转发至所述目标节点。

在一个实施例中,上述路径确定模块801,还用于:根据所述数据传输群组的数据传输进程并发量,将所述多个金融数据分配至多个数据传输进程,确定各数据传输进程的数据负载;结合所述数据负载以及设定的传输时间窗,使用蚁群算法获取适用于所述多个数据传输进程的多个路由路径;由所述多个路由路径得到所述最优路由路径组。

在一个实施例中,上述路径确定模块801,还用于:将所述最优路由路径组中的每个路由路径的路由信息存证于所述金融联盟链的动态路由表。

在一个实施例中,上述分路传输模块803,还用于:根据所述路由路径的路由信息,确定本节点在所述路由路径中的下一跳节点;根据所述金融联盟链的共同公钥和本节点的公钥,与所述下一跳节点建立分段加密隧道;将所述金融子数据基于所述分段加密隧道传输至所述下一跳节点。

在一个实施例中,上述分路传输模块803,还用于:根据本节点与所述下一跳节点协商的对称密钥加密所述金融子数据,按照预设加密隧道协议的数据传输报文格式以及所述路由信息,将经加密的金融子数据传输至所述下一跳节点。

上述基于金融联盟链的数据传输装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储金融数据、金融子数据、数据传输进程并发数等数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于金融联盟链的数据传输方法。

本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。

在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

技术分类

06120116588354