一种基于区块链的审计数据的传输方法及系统与流程

文档序号:15567524发布日期:2018-09-29 03:41阅读:175来源:国知局

本发明涉及区块链技术领域,更具体的,涉及一种基于区块链的审计数据的传输方法及系统。



背景技术:

数据的可信程度一直是审计过程关心的重点,直接影响审计结果的可信度。传统现场审计是对过去一段时间内会计信息进行监督和检查。由于时间上滞后,使得管账人员存在非法修饰或篡改会计账簿的可能,因而存在经营活动信息失真的风险。审计时间上滞后也使得监管部门未能及时发现被监管单位的违法违规行为,导致监管职能缺失。随着手工做账被财务软件取代,使得会计资料的表现形式发生历史性变化,电子数据成为审计核查的主体。电子数据与纸质资料相比,易于篡改且篡改之后不会留下篡改痕迹,这使得审计人员很难发现,存在会计信息失真的风险;一旦电子数据经过缜密的非法修改之后,审计人员无法将修改的电子数据进行恢复,从而不能得到真实有效的审计数据。

因此,无论是手工做账还是电子记账的审计方法,虽然通过耗费大量的人力、物理,最大限度的保证审计数据可信。但是在审计数据的传输过程中仍存在数据不准确的情况。



技术实现要素:

有鉴于此,本发明提供了一种基于区块链的审计数据的传输方法及系统,实现审计数据的安全可靠的传输。

为了实现上述发明目的,本发明提供的具体技术方案如下:

一种基于区块链的审计数据的传输方法,所述方法包括:

标识解析模块对接收到的数据请求节点发送的数据请求报文进行解析,得到目标数据标识,并当本地未存储目标数据时,根据所述目标数据标识将所述数据请求报文发送至数据发布节点;

所述数据发布节点使用所述数据请求节点的公钥对目标数据进行加密,得到目标数据的加密数据包,使用所述数据发布节点的私钥对目标数据的加密数据包进行签名,并将携带有签名的目标数据的加密数据包发送至所述数据请求节点;

所述数据请求节点使用所述数据发布节点的公钥对目标数据的加密数据包的签名进行验证,当验证通过后,使用所述数据请求节点的私钥对目标数据的加密数据包进行解密,得到目标数据。

优选的,所述目标数据标识包括命名体系、前缀字段和后缀字段;所述前缀字段表示所述目标数据对应的数据发布节点地址,所述后缀字段为所述目标数据在相应的数据发布节点上的唯一标识。

优选的,在所述标识解析模块对接收到的数据请求节点发送的数据请求报文进行解析之前,所述方法还包括:

标识同步模块将公有链中的系统一级标识备份到本地,并将联盟链中的系统每个节点的多级标识备份到本地。

优选的,在所述标识解析模块对接收到的数据请求节点发送的数据请求报文进行解析,得到目标数据标识之后还包括:

所述标识解析模块根据所述目标数据标识判断本地是否存储有目标数据对应的数据发布节点的地址;

若是,向所述数据请求节点发送目标数据对应的数据发布节点的地址;

若否,触发执行所述标识解析模块根据所述目标数据标识将所述数据请求报文发送至数据发布节点。

优选的,所述标识解析模块根据所述目标数据标识将所述数据请求报文发送至数据发布节点,包括:

所述标识解析模块判断所述目标数据标识是否为一级数据标识;

若是,所述标识解析模块获取与所述目标数据标识对应的数据发布节点地址,并将所述数据请求报文转发至所述数据发布节点;

若否,所述标识解析模块获取与所述目标数据标识对应的第一转发目的节点地址,并将所述数据请求报文转发至所述第一转发目的节点;

所述第一转发目的节点根据所述目标数据标识判断所述第一转发目的节点是否为所述目标数据标识对应的数据发布节点;

若不是所述目标数据标识对应的数据发布节点,所述第一转发目的节点获取与所述目标数据标识对应的第二转发目的节点地址,并将所述数据请求报文转发至所述第二转发目的节点,直到将所述数据请求报文转发至所述目标数据标识对应的数据发布节点。

优选的,所述数据发布节点将携带有签名的目标数据的加密数据包发送至所述数据请求节点,包括:

所述数据发布节点将携带有签名的目标数据的加密数据包发送至数据验证模块;

所述数据验证模块使用所述数据发布节点的公钥对目标数据的加密数据包的签名进行验证;

当验证通过后,所述数据验证模块根据所述目标数据标识判断本地是否存储有目标数据对应的数据请求节点的地址;

若是,所述数据验证模块将携带有签名的目标数据的加密数据包转发至数据请求节点;

若否,所述数据验证模块获取与所述目标数据标识对应的第一回传目的节点地址,并将携带有签名的目标数据的加密数据包转发至第一回传目的节点;

所述第一回传目的节点使用所述数据发布节点的公钥对目标数据的加密数据包的签名进行验证;

当验证通过后,所述第一回传目的节点根据所述目标数据标识判断所述第一回传目的节点是否为所述目标数据标识对应的数据请求节点;

若不是所述目标数据标识对应的数据请求节点,所述第一回传目的节点获取与所述目标数据标识对应的第二回传目的节点地址,并将携带有签名的目标数据的加密数据包转发至所述第二回传目的节点,直到将携带有签名的目标数据的加密数据包转发至所述目标数据标识对应的数据请求节点。

优选的,所述数据发布节点使用所述数据请求节点的公钥对目标数据进行加密,得到目标数据的加密数据包,使用所述数据发布节点的私钥对目标数据的加密数据包进行签名,包括:

所述数据发布节点根据预设加密算法使用所述数据请求节点的公钥,对目标数据进行加密,得到目标数据的密文;

根据预设传输协议和目标数据的密文,构建目标数据的加密数据包;

获取所述数据发布节点的私钥,并根据所述预设加密算法和所述数据发布节点的私钥对目标数据的加密数据包进行签名。

一种基于区块链的审计数据的传输系统,包括:标识解析模块、数据请求节点和数据发布节点;

所述标识解析模块,用于对接收到的所述数据请求节点发送的数据请求报文进行解析,得到目标数据标识,并当本地未存储目标数据时,根据所述目标数据标识将所述数据请求报文发送至所述数据发布节点;

所述数据发布节点,用于使用所述数据请求节点的公钥对目标数据进行加密,得到目标数据的加密数据包,使用所述数据发布节点的私钥对目标数据的加密数据包进行签名,并将携带有签名的目标数据的加密数据包发送至所述数据请求节点;

所述数据请求节点,用于使用所述数据发布节点的公钥对目标数据的加密数据包的签名进行验证,当验证通过后,使用所述数据请求节点的私钥对目标数据的加密数据包进行解密,得到目标数据。

优选的,所述系统还包括:

标识同步模块,用于将公有链中的系统一级标识备份到本地,并将联盟链中的系统每个节点的多级标识备份到本地。

优选的,所述标识解析模块根据所述目标数据标识判断本地是否存储有目标数据对应的数据发布节点的地址;

若是,向所述数据请求节点发送目标数据对应的数据发布节点的地址;

若否,触发执行所述标识解析模块根据所述目标数据标识将所述数据请求报文发送至数据发布节点。

相对于现有技术,本发明的有益效果如下:

本发明公开的一种基于区块链的审计数据的传输方法及系统,应用区块链技术实现审计数据的传输,通过目标数据标识定位目标数据的数据发布节点的地址,标识解析模块对接收到的数据请求节点发送的数据请求报文进行解析,得到目标数据标识,并当本地未存储目标数据时,根据所述目标数据标识将所述数据请求报文发送至数据发布节点,并通过利用各个节点的公私钥分别对数据进行加密和解密,签名验证,审计数据可以公开存放在区块链链上而不必担心数据被恶意第三方利用,从而实现审计数据的安全可靠的传输。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例公开的一种基于区块链的审计数据的传输方法流程图;

图2为本发明实施例公开的一种将所述数据请求报文发送至数据发布节点的方法流程图;

图3为本发明实施例公开的一级标识解析的场景示意图;

图4为本发明实施例公开的多级标识解析的场景示意图;

图5为本发明实施例公开的一种基于区块链的审计数据的传输系统结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1,本实施例公开了一种基于区块链的审计数据的传输方法,具体包括以下步骤:

s101:标识解析模块对接收到的数据请求节点发送的数据请求报文进行解析,得到目标数据标识,并当本地未存储目标数据时,根据所述目标数据标识将所述数据请求报文发送至数据发布节点;

在进行审计数据传输之前,首先要将审计系统注册到公有链上,公有链对所有人开放,当审计系统注册到公有链上时,审计系统得到一对公私钥和一级标识;然后,基于fabric架构及一级标识构建联盟链,联盟链对部分组织机构开放,联盟链中包括多个节点,多个节点之间可以有层级划分,如在一级标识下,还可以包括多个二级标识,多个三级标识,等等;联盟链中多个节点也可以为同一层,每个节点都具有一级标识下的二级标识。

所述目标数据为存储在区块链上的审计数据,所述目标数据标识包括命名体系、前缀字段和后缀字段;所述前缀字段表示所述目标数据对应的数据发布节点地址,所述后缀字段为所述目标数据在相应的数据发布节点上的唯一标识。命名体系、前缀字段和后缀字段三部分,用斜杠分开,前缀中以小数点分为两部分,格式为[btc_block_sn].[btc_trans_index],其中[btc_block_sn]为审计系统从公有链上的登记记录所在的区块的数字流水号,[btc_trans_index]为审计系统在区块链上的登记记录所在的区块内的具体存储位置的阿拉伯数字编号,区块链的不可篡改性保证了数据标识的不可篡改性。后缀[dss]由审计系统可选并自行给出,自主确保唯一性,从而确定该标识所对应的具体数据内容标识。

需要说明的是,在所述标识解析模块对接收到的数据请求节点发送的数据请求报文进行解析之前,所述方法还包括:

标识同步模块将公有链中的系统一级标识备份到本地,并将联盟链中的系统每个节点的多级标识备份到本地。

对每个节点的标识备份到本地便于标识解析模块后续对目标数据标识进行解析。

还需要说明的是,标识解析模块解析的标识可能是某一目标数据的标识,也可能为某一传感器的标识。

在所述标识解析模块对接收到的数据请求节点发送的数据请求报文进行解析,得到目标数据标识之后还包括:

所述标识解析模块根据所述目标数据标识判断本地是否存储有目标数据对应的数据发布节点的地址;

若是,向所述数据请求节点发送目标数据对应的数据发布节点的地址;

若否,触发执行所述标识解析模块根据所述目标数据标识将所述数据请求报文发送至数据发布节点。

请参阅图2,所述标识解析模块根据所述目标数据标识将所述数据请求报文发送至数据发布节点,包括:

s201:所述标识解析模块判断所述目标数据标识是否为一级数据标识;

若是,执行s202,s202:所述标识解析模块获取与所述目标数据标识对应的数据发布节点地址,并将所述数据请求报文转发至所述数据发布节点;

若否,执行s203,s203:所述标识解析模块获取与所述目标数据标识对应的第一转发目的节点地址,并将所述数据请求报文转发至所述第一转发目的节点;

s204:所述第一转发目的节点根据所述目标数据标识判断所述第一转发目的节点是否为所述目标数据标识对应的数据发布节点;

若是所述目标数据标识对应的数据发布节点执行s205,s205:将所述数据请求报文转发至所述第一转发目的节点;

若不是所述目标数据标识对应的数据发布节点执行s206,s206:所述第一转发目的节点获取与所述目标数据标识对应的第二转发目的节点地址,并将所述数据请求报文转发至所述第二转发目的节点,直到将所述数据请求报文转发至所述目标数据标识对应的数据发布节点。

具体的,请参阅图3和图4,图3为标识解析模块进行一级标识解析的场景示意图,图4为多级标识解析的场景示意图。用户在客户端所在数据请求节点输入目标数据标识,数据请求节点将目标数据标识打包得到数据请求报文后发起数据请求。若本地不存在目标数据则在联盟链查询获取转发目的地址,并将数据报文转发到该地址,该地址对应的节点判断目标数据标识是否已到达最后一级,重复解析直到找到所需数据后,原路返回。

s102:所述数据发布节点使用所述数据请求节点的公钥对目标数据进行加密,得到目标数据的加密数据包,使用所述数据发布节点的私钥对目标数据的加密数据包进行签名,并将携带有签名的目标数据的加密数据包发送至所述数据请求节点;

需要说明的是,每个节点都有属于自身的公私钥对,每个节点都可以通过查询区块链获取其他节点的公钥,但不能获取其他节点的私钥。

具体的,所述数据发布节点根据预设加密算法使用所述数据请求节点的公钥,对目标数据进行加密,得到目标数据的密文;

根据预设传输协议和目标数据的密文,构建目标数据的加密数据包;

获取所述数据发布节点的私钥,并根据所述预设加密算法和所述数据发布节点的私钥对目标数据的加密数据包进行签名。

预设加密算法可以为任意一种加密算法,例如rsa算法等。

为目标数据的加密数据包进行签名,保证目标数据在传输过程中不被篡改,保证目标数据来源可靠。

s103:所述数据请求节点使用所述数据发布节点的公钥对目标数据的加密数据包的签名进行验证,当验证通过后,使用所述数据请求节点的私钥对目标数据的加密数据包进行解密,得到目标数据。

所述数据发布节点将携带有签名的目标数据的加密数据包发送至所述数据请求节点,包括:

所述数据发布节点将携带有签名的目标数据的加密数据包发送至数据验证模块;

所述数据验证模块使用所述数据发布节点的公钥对目标数据的加密数据包的签名进行验证;

当验证通过后,所述数据验证模块根据所述目标数据标识判断本地是否存储有目标数据对应的数据请求节点的地址;

若是,所述数据验证模块将携带有签名的目标数据的加密数据包转发至数据请求节点;

若否,所述数据验证模块获取与所述目标数据标识对应的第一回传目的节点地址,并将携带有签名的目标数据的加密数据包转发至第一回传目的节点;

所述第一回传目的节点使用所述数据发布节点的公钥对目标数据的加密数据包的签名进行验证;

当验证通过后,所述第一回传目的节点根据所述目标数据标识判断所述第一回传目的节点是否为所述目标数据标识对应的数据请求节点;

若不是所述目标数据标识对应的数据请求节点,所述第一回传目的节点获取与所述目标数据标识对应的第二回传目的节点地址,并将携带有签名的目标数据的加密数据包转发至所述第二回传目的节点,直到将携带有签名的目标数据的加密数据包转发至所述目标数据标识对应的数据请求节点。

可以理解的是,在目标数据的回传过程中,每个回传目的节点、以及数据请求节点都需要对目标数据的签名进行验证,验证目标数据来源的可靠性,验证通过则缓存并继续向下处理回传,否则将目标数据的加密数据包丢弃。

在目标数据的回传过程中,只有数据请求节点有权限解密目标数据的加密数据包,即,可以通过数据请求节点的私钥对目标数据的加密数据包进行解密,其他节点由于没有数据请求节点的私钥,没有权限对目标数据的加密数据包进行解密,保证目标数据在传输过程中的安全性。

本实施例公开的一种基于区块链的审计数据的传输方法,应用区块链技术实现审计数据的传输,通过目标数据标识定位目标数据的数据发布节点的地址,标识解析模块对接收到的数据请求节点发送的数据请求报文进行解析,得到目标数据标识,并当本地未存储目标数据时,根据所述目标数据标识将所述数据请求报文发送至数据发布节点,并通过利用各个节点的公私钥分别对数据进行加密和解密,签名验证,审计数据可以公开存放在区块链链上而不必担心数据被恶意第三方利用,从而实现审计数据的安全可靠的传输。

基于上述实施例公开的一种基于区块链的审计数据的传输方法,请参阅图5,本实施例对应公开了一种基于区块链的审计数据的传输系统,包括:标识解析模块501、数据请求节点502和数据发布节点503;

所述标识解析模块501,用于对接收到的所述数据请求节点502发送的数据请求报文进行解析,得到目标数据标识,并当本地未存储目标数据时,根据所述目标数据标识将所述数据请求报文发送至所述数据发布节点503;

所述数据发布节点503,用于使用所述数据请求节点502的公钥对目标数据进行加密,得到目标数据的加密数据包,使用所述数据发布节点503的私钥对目标数据的加密数据包进行签名,并将携带有签名的目标数据的加密数据包发送至所述数据请求节点502;

所述数据请求节点502,用于使用所述数据发布节点503的公钥对目标数据的加密数据包的签名进行验证,当验证通过后,使用所述数据请求节点的私钥对目标数据的加密数据包进行解密,得到目标数据。

优选的,所述系统还包括:

标识同步模块,用于将公有链中的系统一级标识备份到本地,并将联盟链中的系统每个节点的多级标识备份到本地。

优选的,所述标识解析模块根据所述目标数据标识判断本地是否存储有目标数据对应的数据发布节点的地址;

若是,向所述数据请求节点发送目标数据对应的数据发布节点的地址;

若否,触发执行所述标识解析模块根据所述目标数据标识将所述数据请求报文发送至数据发布节点。

本实施例公开的一种基于区块链的审计数据的传输系统,应用区块链技术实现审计数据的传输,通过目标数据标识定位目标数据的数据发布节点的地址,标识解析模块对接收到的数据请求节点发送的数据请求报文进行解析,得到目标数据标识,并当本地未存储目标数据时,根据所述目标数据标识将所述数据请求报文发送至数据发布节点,并通过利用各个节点的公私钥分别对数据进行加密和解密,签名验证,审计数据可以公开存放在区块链链上而不必担心数据被恶意第三方利用,从而实现审计数据的安全可靠的传输。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1