基于区块链技术的数据审计方法、客户端及区块链云端设备与流程

文档序号:12829170阅读:205来源:国知局
基于区块链技术的数据审计方法、客户端及区块链云端设备与流程

本发明涉及区块链技术领域,尤其涉及一种基于区块链技术的数据审计方法、客户端及区块链云端设备。



背景技术:

我们将区块链技术作为基础,实现了去中心化且寓于分布式结构的数据存储、传输和证明的方法。在应用区块链技术进行数据存储备份的系统中,数据的审计是一个很重要的问题。目前的审计方法,基本上有两种,一种是通过实时回传数据进行审计的方法,很显然,这种方法对网络带宽的消耗比较大,实用性不强。第二种方法,将数据预先生成固定数量的校验值发布到网络进行验证,这种方法的缺陷是每一次验证都要消耗一个校验值,一旦校验值用完,将无法再进行有效验证。



技术实现要素:

本发明提供的基于区块链技术的数据审计方法、客户端及区块链云端设备,能够实时地验证存储文件的有效性,且验证过程消耗较少的网络带宽资源。

第一方面,本发明提供一种基于区块链技术的数据审计方法,所述方法应用于客户端,所述方法包括:

向区块链云端上传目标文件;

动态生成所述目标文件的审计树;

根据所述审计树,验证所述目标文件的有效性。

可选地,在所述向区块链云端上传目标文件之前,所述方法还包括:

将所述目标文件进行切片,生成多个数据块;

对各个数据块进行加密处理。

可选地,所述向区块链云端上传目标文件包括:将经过加密处理后的各个数据块保存到区块链云端的各个宿主节点上。

可选地,所述动态生成所述目标文件的审计树包括:

为区块链中各个宿主节点上存放的数据块生成一个随机数;

将生成的各数据块的随机数与所述数据块合并,生成一个哈希值;

将生成的哈希值依次合并,生成一棵完整的审计树。

可选地,所述根据所述审计树,验证所述目标文件的有效性包括:

将生成的各数据块的随机数发送给对应的各宿主节点;

接收所述各宿主节点发送的的哈希值;

将接收到的哈希值与所述审计树中各宿主节点的哈希值进行对比;

判断各数据块是否有效,当对比一致时,所述数据块有效;

验证所述目标文件的有效性,当所有数据块有效时,所述目标文件有效。

第二方面,本发明提供一种基于区块链技术的数据审计方法,所述方法应用于区块链云端,所述方法包括:

接收客户端上传的目标文件;

接收客户端发送的各数据块的随机数;

将所述随机数与对应的数据块合并,计算各宿主节点的哈希值;向客户端发送所述各宿主节点的哈希值,以使客户端验证各数据块的有效性。

第三方面,本发明提供一种客户端,所述客户端包括:

上传单元,用于向区块链云端上传目标文件;

生成单元,用于动态生成所述目标文件的审计树;

第一验证单元,用于根据所述审计树,验证所述目标文件的有效性。

可选地,所述客户端还包括:

切片单元,用于在所述上传单元上传所述目标文件之前,将所述目标文件进行切片,生成多个数据块;

加密单元,用于对所述切片单元生成的各个数据块进行加密处理。

可选地,所述上传单元,用于将经过所述加密单元加密处理后的各个数据块保存到区块链云端的各个宿主节点上。

可选地,所述生成单元包括:

第一生成模块,用于为区块链中各个宿主节点上存放的数据块生成一个随机数;

第二生成模块,用于将所述第一生成模块生成的各数据块的随机数与所述数据块合并,生成一个哈希值;

第三生成模块,用于将所述第二生成模块生成的哈希值依次合并,生成一颗完整的审计树。

可选地,所述第一验证单元包括:

发送模块,用于将生成的各数据块的随机数发送给对应的各宿主节点;

接收模块,用于接收所述各宿主节点发送的哈希值;

第一对比模块,用于将接收到的哈希值与所述审计树中各宿主节点的哈希值进行对比;

第一判断模块,用于判断各数据块是否有效,当所述第一对比模块对比的结果一致时,所述数据块有效;

验证模块,用于验证所述目标文件的有效性,当所有数据块有效时,所述目标文件有效。

第四方面,本发明提供一种区块链云端设备,所述区块链云端设备包括:

第一接收单元,用于接收客户端上传的目标文件;

第二接收单元,用于接收客户端发送的各数据块的随机数;

计算单元,用于将所述随机数与对应的数据块合并,计算各宿主节点的哈希值;

发送单元,用于向客户端发送所述各宿主节点的哈希值,以使客户端验证各数据块的有效性。

本发明实施例提供的基于区块链技术的数据审计方法、客户端及区块链云端设备,通过客户端实时生成目标文件的审计树,再将审计树经特定处理后发布到区块链中,然后根据需要向宿主备份节点发起审计,从而使客户端、宿主端根据审计树完成存储文件的有效性验证。与现有技术相比,本发明能够随时发起对存储文件的验证,并且验证过程消耗较少的网络带宽资源。

附图说明

图1为本发明一实施例基于区块链技术的数据审计方法的流程图;

图2为本发明另一实施例基于区块链技术的数据审计方法的流程图;

图3为本发明生成审计树的实现方式示意图;

图4为本发明一实施例客户端的结构示意图;

图5为本发明一实施例客户端的生成单元的结构示意图;

图6为本发明一实施例客户端的第一验证单元的结构示意图;

图7为本发明一实施例客户端的结构示意图;

图8为本发明一实施例区块链云端设备的结构示意图;

图9为本发明一实施例区块链云端设备的结构示意图;

图10为本发明一实施例区块链云端设备的第二验证单元结构示意图。

具体实施方式

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

本发明提供一种基于区块链技术的数据审计方法,所述方法应用于客户端,如图1所示,所述方法包括:

s11、向区块链云端上传目标文件;

s12、生成所述目标文件的审计树;

s13、根据所述审计树,验证所述目标文件的有效性。

本发明提供一种基于区块链技术的数据审计方法,所述方法应用于区块链云端,如图2所示,所述方法包括:

s21、接收客户端上传的目标文件;

s22、接收客户端发送的各数据块的随机数;

s23、将所述随机数与对应的数据块合并,计算各宿主节点的哈希值;

s24、向客户端返回所述随机数对应的各宿主节点的哈希值,以使客户端验证各数据块的有效性。

本发明实施例提供的基于区块链技术的数据审计方法,通过客户端实时生成目标文件的审计树,再将审计树经特定处理后发布到区块链中,然后根据需要向宿主备份节点发起审计,从而使客户端、宿主端根据审计树完成存储文件的有效性验证。与现有技术相比,本发明能够随时发起对存储文件的验证,并且验证过程消耗较少的网络带宽资源。

具体地,用户通过客户端向区块链云端上传一个文件,为了保证区块链云端保存的文件数据不被篡改,客户端需要经常验证文件的有效性。本发明提供的基于区块链技术的数据审计方法的具体实现步骤如下:

步骤一、用户通过客户端上传一个文件,系统会把文件进行切片分割成若干个数据块,每个数据块单独加密,然后保存到互联网上其他用户贡献出来的硬盘空间上。其中,贡献硬盘空间的用户节点在此成为宿主节点。

步骤二、客户端每次要验证文件时,为每个宿主节点(i)上存放的数据块(i)生成一个随机数(i),再将随机数(i)与数据块(i)合并,生成一个哈希值(i),然后依次合并,最终生成一颗完整的merkle树(审计树),实现方式描述如图3所示。

步骤三、客户端将merkle树删除叶子节点(哈希值0、哈希值1、哈希值2、哈希值3这一层)后发布到网络上,各宿主节点以此验证客户端。验证方法是,对比动态计算的根哈希值和客户端发布的根哈希值,一致则表示客户端是可信的。

步骤四、客户端向宿主节点(i)验证数据块(i)时,将随机数(i)发送给宿主节点(i),然后对比宿主节点(i)返回的哈希值(i)即可判定该数据块的有效性。

步骤五、当所有数据块验证有效时,确定整个文件的有效性。

本发明实施例还提供一种客户端,如图4所示,所述客户端包括:

上传单元11,用于向区块链云端上传目标文件;

生成单元12,用于生成所述目标文件的审计树;

第一验证单元13,用于根据所述审计树,验证所述目标文件的有效性。

可选地,如图5所示,所述客户端还包括:

切片单元14,用于在所述上传单元11上传所述目标文件之前,将所述目标文件进行切片,生成多个数据块;

加密单元15,用于对所述切片单元生成的各个数据块进行加密处理。

可选地,如图6所示,所述生成单元12包括:

第一生成模块121,用于为区块链中各个宿主节点上存放的数据块生成一个随机数;

第二生成模块122,用于将所述第一生成模块121生成的各数据块的随机数与所述数据块合并,生成一个哈希值;

第三生成模块123,用于将所述第二生成模块122生成的哈希值依次合并,生成一颗完整的审计树。

可选地,如图7所示,所述第一验证单元13包括:

发送模块131,用于将生成的各数据块的随机数发送给对应的各宿主节点;

接收模块132,用于接收所述各宿主节点发送的哈希值;

第一对比模块133,用于将所述接收模块132接收到的哈希值与所述审计树中各宿主节点的哈希值进行对比;

第一判断模块134,用于判断各数据块是否有效,当所述第一对比模块133对比的结果一致时,所述数据块有效;

验证模块135,用于验证所述目标文件的有效性,当所有数据块有效时,所述目标文件有效。

可选地,如图5所示,所述客户端还包括:

发布单元16,用于在所述生成单元生成所述目标文件的审计树之后,将所述审计树删除叶子节点后发布到网络上,以使所述区块链云端验证客户端的可信性。

本发明实施例还提供一种区块链云端设备,如图8所示,所述区块链云端设备包括:

第一接收单元21,用于接收客户端上传的目标文件;

第二接收单元22,用于接收客户端发送的各数据块的随机数;

计算单元23,用于将所述随机数与对应的数据块合并,计算各宿主节点的哈希值;

发送单元24,用于向客户端发送所述各宿主节点的哈希值,以使客户端验证各数据块的有效性。

可选地,如图9所示,所述区块链云端设备还包括:

第二验证单元25,用于在所述第二接收单元23接收客户端发送的各数据块的随机数之后,验证客户端的可信性。

可选地,如图10所示,所述第二验证单元25包括:

第二对比模块251,用于将所述客户端发布的审计树的哈希值与宿主节点回传的哈希值进行对比;

第二判断模块252,用于判断所述客户端是否可信,当所述第二对比模块对比的结果一致时,判定所述客户端可信且不可抵赖。

本发明实施例提供的客户端及区块链云端设备,通过客户端实时生成目标文件的审计树,再将审计树经特定处理后发布到区块链中,然后根据需要向宿主备份节点发起审计,从而使客户端、宿主端根据审计树完成存储文件的有效性验证。与现有技术相比,本发明能够随时发起对存储文件的验证,并且验证过程消耗较少的网络带宽资源。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

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