基于区块链的数据源完整性检测方法及系统及装置及介质与流程

文档序号:25053252发布日期:2021-05-14 13:33阅读:76来源:国知局
基于区块链的数据源完整性检测方法及系统及装置及介质与流程

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.基于标识数据在数据源中查询是否存在对应的第一数据记录;若数据源中不存在对应的第一数据记录,则表明该条第一数据记录已被删除,并将删除记录统计值加1,删除记录统计值初始为0;
26.若数据源中存在对应的第一数据记录,则从第二数据记录中获得第一哈希值,计算获得第一数据记录的第二哈希值,比较第一哈希值与第二哈希值是否一致;
27.若比较结果一致,则表明该条第一数据记录未被修改,若比较结果不一致,则表明该条第一数据记录已被修改,并将比较结果不一致的统计值加1,比较结果不一致的统计值初始为0。
28.优选的,本方法中若数据源完整性检测统计结果中删除记录统计值大于0,则表明数据源的数据记录存在被修改的情况;若数据源完整性检测统计结果中比较结果不一致的统计值大于0,则表明数据源的数据记录存在被删除的情况。
29.优选的,本方法中若数据源完整性检测结果中被修改的数据记录数目与数据源中总数据记录数目的比值大于阈值,则判断该数据源完整性存在风险;以及若数据源完整性检测结果中被删除的数据记录数目与数据源中总数据记录数目的比值大于阈值,则判断该数据源完整性存在风险。
30.与本发明中的方法对应,本发明还提供了基于区块链的数据源完整性检测系统,所述系统包括:
31.标识数据获得单元,用于针对数据源中的每条第一数据记录,提取能够唯一标识该条第一数据记录的字段或者字段集,获得该条第一数据记录的标识数据;
32.上链单元,用于将数据源中所有第一数据记录存储于区块链中,其中每条第一数据记录的标识数据作为其在链上记录的标识;
33.检测单元,用于比较区块链上的第二数据记录与数据源中对应第一数据记录的一致性,基于比较结果获得数据源完整性检测结果。
34.本发明还提供了一种基于区块链的数据源完整性检测装置,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述基于区块链的数据源完整性检测方法的步骤。
35.本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述基于区块链的数据源完整性检测方法的步骤。
36.本发明提供的一个或多个技术方案,至少具有如下技术效果或优点:
37.本发明利于区块链的不可篡改和验真溯源的特性,实现了一种成本低、实施手段简单,并且能够实时监测和发现数据源的完整性问题,特别是对于档案类、判决类等不会有二次修改的静态数据源,本发明能够完整准确地检测来自于外部的恶意非法攻击、内部的不符合规则和操作流程从而造成数据源的完整性风险问题。
附图说明
38.此处所说明的附图用来提供对本发明实施例的进一步理解,构成本发明的一部分,并不构成对本发明实施例的限定;
39.图1为基于区块链的数据源完整性检测方法的流程示意图;
40.图2为基于区块链的数据源完整性检测系统的组成示意图。
具体实施方式
41.为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在相互不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。
42.在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述范围内的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
43.本领域技术人员应理解的是,在本发明的揭露中,术语“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”等指示的方位或位置关系是基于附图所示的方位或位置关系,其仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此上述术语不能理解为对本发明的限制。
44.可以理解的是,术语“一”应理解为“至少一”或“一个或多个”,即在一个实施例中,一个元件的数量可以为一个,而在另外的实施例中,该元件的数量可以为多个,术语“一”不能理解为对数量的限制。
45.实施例一
46.请参考图1,图1为基于区块链的数据源完整性检测方法的流程示意图,本发明实
施例一提供了基于区块链的数据源完整性检测方法,所述方法包括:
47.针对数据源中的每条第一数据记录,提取能够唯一标识该条第一数据记录的字段或者字段集,获得该条第一数据记录的标识数据;
48.将数据源中所有第一数据记录存储于区块链中,其中每条第一数据记录的标识数据作为其在链上记录的标识;
49.比较区块链上的第二数据记录与数据源中对应第一数据记录的一致性,基于比较结果获得数据源完整性检测结果。
50.其中,本实施例中的方法利用区块链技术不可篡改和验真溯源的特性,将数据源中的数据记录上链存证,然后在需要检测时将链上的数据记录与数据源中的数据记录进行比较即可判断数据源中数据的完整性。
51.下面举例对本发明中的基于区块链的数据源完整性检测方法进行详细的介绍,本实施例中的方法包括如下步骤:
52.1.提取数据源的关键属性或属性集,也即能唯一标识该数据源每一条记录的字段或字段集,记为pk;
53.2.将数据源的全部记录进行上链存证;
54.2.1顺序处理每一个记录,使用pk的值作为链上记录的数据标识,也即通过该标识能唯一定位链上数据的位置;
55.2.2计算记录的哈希值,也即将记录的各个字段分别计算哈希,然后再将各个字段的哈希值进行字符串连接,并对连接后的字符串计算哈希,形式化表示为:
56.设数据源字段集为f1,f2,f3;
57.f1_hash=sha256(f1);
58.f2_hash=sha256(f2);
59.f3_hash=sha256(f3);
60.record_hash=sha256(f1_hash+f2_hash+f3_hash);
61.其中,sha256是一种常用的哈希函数,用于将字符串计算生成一段固定长度的字符串;f1_hash,f2_hash和f3_hash是哈希函数计算出来的各个字段的哈希值;;record_hash是记录的哈希值;本发明实施例中也可以采用其他哈希函数或者其他方式计算哈希值,本发明对哈希值的具体计算方式不进行限定;
62.2.3将pk和步骤2.2生成记录的哈希值进行组合,形成一条链上的数据记录:{pk,record_hash}
63.2.4调用上链函数将{pk,record_hash}进行上链存证,生成一个不可篡改的区块链数据记录;
64.2.5返回步骤2.1,直至数据源当前的全部记录处理完毕;
65.3.利用区块链的链上数据记录来检测数据源的数据完整性;
66.3.1以步骤2所生成的链上数据记录集为依据,逐一进行处理;
67.3.2以链上数据记录的pk,也即数据源的关键属性或属性集为条件,去数据源中进行查询;
68.3.3如果该pk所对应的记录存在于数据源中,则提取出该条记录的全部字段,参照步骤2.2的计算方法和过程进行计算,将计算所得的结果record_hash与链上该记录的
record_hash进行比对,如果比对结果一致,则说明该条记录未被修改;如果比对结果不一致,则说明该条记录已被修改,将比对不一致的计算值changed_count加1;
69.3.4如果该pk所对应的记录不存在于数据源中,则说明该条记录已被删除,将deleted_count加1;
70.3.5返回步骤3.1,直至链上数据记录集的全部记录处理完毕;
71.3.6判断changed_count和deleted_count的值是否大于0,如果changed_count大于0,则说明数据源的记录存在被修改的情况;如果deleted_count大于0,则说明数据源的记录存在被删除的情况;
72.3.7设置完整性比对阈值,比如万分之一,也即比对不一致的比率。如果比率高于该阈值,则说明该数据源的完整性存在风险。
73.举例如下:设链上数据记录集的总数为1000,case 1:changed_count为0,deleted_count为0,(changed_count+deleted_count)/1000=0;0小于万分之一,说明该数据源的完整性不存在风险;
74.case 2:changed_count为1,deleted_count为0,(changed_count+deleted_count)/1000=0.001,0.001大于万分之一,说明该数据源的完整性存在风险;
75.4.根据数据源的数据变化情况,可以设置上链周期为不同的时间值,比如1分钟、30分钟、1小时、1天等,以及时将数据源中新增的数据上链存证,以备完整性检测。
76.实施例二
77.请参考图2,图2为基于区块链的数据源完整性检测系统的组成示意图,本发明实施例二提供了基于区块链的数据源完整性检测系统,所述系统包括:
78.标识数据获得单元,用于针对数据源中的每条第一数据记录,提取能够唯一标识该条第一数据记录的字段或者字段集,获得该条第一数据记录的标识数据;
79.上链单元,用于将数据源中所有第一数据记录存储于区块链中,其中每条第一数据记录的标识数据作为其在链上记录的标识;
80.检测单元,用于比较区块链上的第二数据记录与数据源中对应第一数据记录的一致性,基于比较结果获得数据源完整性检测结果。
81.实施例三
82.本发明还提供了一种基于区块链的数据源完整性检测装置,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述基于区块链的数据源完整性检测方法的步骤。
83.其中,所述处理器可以是中央处理器(cpu,central processing unit),还可以是其他通用处理器、数字信号处理器(digital signal processor)、专用集成电路(application specific integrated circuit)、现成可编程门阵列(fieldprogrammable gate array)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
84.所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的数据,实现发明中基于区块链的数据源完整性检测装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等。此外,存储器可以
包括高速随机存取存储器、还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡,安全数字卡,闪存卡、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
85.实施例四
86.本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述基于区块链的数据源完整性检测方法的步骤。
87.所述基于区块链的数据源完整性检测装置如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序可存储于一计算机可读存介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码、对象代码形式、可执行文件或某些中间形式等。所述计算机可读取介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器、随机存储器、点载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减。
88.尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
89.显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1