一种基于区块链技术的数据库防篡改方法及系统与流程

文档序号:23629570发布日期:2021-01-12 11:02
一种基于区块链技术的数据库防篡改方法及系统与流程

本发明涉及数据库防篡改技术,尤其涉及一种基于区块链技术的数据库防篡改方法及系统。



背景技术:

数据是信息系统的核心资产。由于信息泄露等原因导致的数据损失,将引起灾难的结果。传统的保护数据的方法是数据加密。除了基于数据加密的保护数据安全的方法之外,基于区块链的方法也可以保护数据库数据的安全。区块链技术的关键特点是交易有效性的共识机制,在没有中央机制控制的情况下,彼此之间不信任的个体之间发生了交易。

常用的区块链技术包括共识机制,hash算法,数字签名技术,点对点技术,工作量证明机制,时间戳技术等。其中hash算法是区块链技术中常用的算法,经常用于区块链的构建及交易完整性的确认等场景中。本专利以hash算法为基础,基于指示层和混合层技术,构建了数据库系统防篡改的方法与系统。



技术实现要素:

本发明的目的在于,区别于传统的数据加密方法,使用指示层与混合层的区块链技术,构建了数据库表格数据防篡改的方法与系统。

为实现上述目的,一方面,本发明提供了一种基于区块链技术的数据库防篡改方法,该方法包括以下步骤:

当一条新记录添加到数据库表格中时,基于指示函数,以当前新添加记录的id为参数,计算当前记录将要指向的记录的id,所指向的记录称为前一条记录,以在当前记录与前一条记录之间创建指向关系;当添加更多的记录时,基于相同的指示函数,构建了单区块链数据结构;以及

对单指示函数进行扩展,对于新添加的数据记录,使用多个指示函数,分别以当前记录的id为参数,计算获得多个“前一条记录”的id;在当前记录与多个“前一条记录”之间创建了指向关系,使数据库数据更安全。

优选地,在对所述数据库表格数据进行写操作时,写入当前记录的基本的数据信息和hash值,hash值是基于当前记录与多个前一条记录的内容计算所获得的hash值,同时构建当前记录与前一条记录之间的指向关系,完成写操作。

优选地,在对所述数据库表格数据进行读操作时,读取当前记录的内容及已经存储的hash值,基于指示函数,计算当前记录的各前一条记录的索引,基于当前记录及各前一条记录的内容,计算hash值,比较这两个hash值是否相等,如果相等,表明读操作成功,如果不相等,表明数据被篡改。

优选地,在进行检查操作时,调用检查所有记录的hash值函数,对已经写入数据库表格的记录,基于指示函数,计算hash值,将计算所获得的hash值与已经存储在数据库表格中的hash值进行比对,依据比对结果,以检查数据库数据是否被篡改。

优选地,数据库表格的字段包括:数据id字段、数据内容字段和hash值字段,在数据库表格中,没有创建相应的字段以存储指向关系,在需要使用指向关系验证数据的正确性时,基于指示函数,实时计算数据记录之间的指向关系。

另一方面,本发明提供了一种基于区块链技术的数据库防篡改系统,该系统包括:

指示层,用于构建单区块链数据结构;当一条新记录添加到数据库表格中时,基于指示函数,以当前新添加记录的id为参数,计算当前记录将要指向的记录的id,所指向的记录称为前一条记录,以在当前记录与前一条记录之间创建指向关系;当添加更多的记录时,基于相同的指示函数,构建了单区块链数据结构;以及

混合层,用于构建多区块链数据结构;对单指示函数进行扩展,对于新添加的数据记录,使用多个指示函数,分别以当前记录的id为参数,计算获得多个“前一条记录”的id;在当前记录与多个“前一条记录”之间创建了指向关系,基于多个指示函数,构建多区块链数据结构;使数据库数据更安全。

本发明分别基于指示层中的指示函数技术,混合层中的混合链表技术,构建单区块链数据结构和多区块链数据结构,并定义了三种操作,写操作,读操作,检查操作。当数据库表格数据被篡改时,将触发防篡改算法,冻结用户账号以阻止用户数据进一步的损失,实现数据库防篡改功能。

附图说明

图1为本发明实施例提供的一种基于区块链技术的数据库防篡改系统结构示意图;

图2为数据库表格的字段结构示意图;

图3为写操作,读操作,检查操作流程示意图。

具体实施方式

图1为本发明实施例提供的一种基于区块链技术的数据库防篡改系统结构示意图。如图1所示,底层是待保护的数据库表格数据。

在指示层,定义指示函数,针对底层的数据库表格中存储的数据记录,构建单区块链数据结构。当一条数据记录添加到数据库表格中,例如,当前添加到数据库表格的记录编号是200,指示函数以当前编号为200的记录为输入,计算当前记录将要指向的记录编号,假设指示函数计算结果返回的记录编号是30,即记录30是记录200的前一条记录,记录200将指向记录30。继续添加其他记录,使用相同的单指向函数,在新添加的记录与表格中已有的记录之间构建指向关系。当数据库表格中添加了多条数据记录之后,基于单指示函数,在多条数据记录之间构建单区块链数据结构。

在混合层,定义多个指示函数,以实现构建多区块链数据结构的功能。通过扩展上述单指示函数的示例,以说明混合区块链技术。例如,当前添加到数据库表格的记录编号是200,使用多个指示函数计算编号为200的记录将要指向的记录。例如,使用两个不同的指示函数,分别返回的编号是30,51,即编号为30和51的记录分别是编号为200的记录的不同的前一条记录,记录200将指向记录30和记录51。当继续添加新记录时,分别基于不同的指示函数,计算新记录将要指向的不同的记录编号。基于多个指示函数,构建多区块链数据结构。基于构建的多区块链数据结构,在进行写操作,读操作,检查操作时,实现数据库数据的防篡改功能。

图2为数据库表格的字段结构示意图。如图2所示,指示函数构建了数据记录之间的指向关系。图2表示数据库表格的字段设置。其中,三个实线框:数据id字段,数据内容字段,hash值字段,在构建数据库表格时,创建了对应的字段以存储相应的信息,而指向字段以虚线框表示,在数据库表格中,没有创建相应的字段以存储指向关系,在需要使用指向关系验证数据的正确性时,基于指示函数,实时计算数据记录之间的指向关系。

基于指示层与混合层的区块链技术的数据库防篡改算法如下:

输入:当前数据库表格数据。

输出:基于指示层与混合层,分别创建数据结构,实现防篡改功能。

本发明实施例提供的基于指示层与混合层的区块链技术的数据库防篡改方法定义了三种操作,写操作,读操作,检查操作,如图3所示。本发明实施例构建的方法是实现数据库数据的防篡改功能,需要先进行写操作,数据才能保存在数据库中。所以写操作先于读操作,检查操作进行。在图3中,写操作与读操作,检查操作出现在图的不同位置,以示区别。

对于写操作,调用数据存储函数(算法第23行至第25行),保存数据至数据库表格。具体的写操作的,除了存储本记录的信息,还需要计算记录之间的指向关系。数据存储函数调用设置hash值函数(算法第26行至第33行),以当前记录的id为参数,获取当前记录的各前一条记录,基于当前记录及多个前一条记录,计算hash值并且返回。再调用算法的公用模块(第7行至第14行,第15行至第22行),公用模块实现的功能是计算当前记录的前一条记录的索引。获取了当前记录所要指向的前一条记录的id之后,即构建了当前记录与前一条记录之间的指向关系,完成写操作。

对于读操作,调用读取数据函数(第1行至第6行),不仅读取本记录的信息,还需要比对计算获取的hash值与数据库中已经存储的hash值是否相等(第34行至第42行),如果一致,表明当前读取操作正确,如果不一致,表明数据已经被篡改。当实现上述比对功能时,需要调用本算法的公用模块(第7行至第14行,第15行至第22行),以读取当前记录的多个前一条记录数据,结合当前记录数据,以计算hash值。

对于检查操作,调用检查所有记录的hash值函数(第43行至第48行),遍历所有的记录数据,并且调用hash检查函数(第34行至第42行),比较记录数据的hash值计算结果与已经存储的hash值,如果hash值一致,表明数据没有被篡改,如果hash值不一致,表明数据已经被篡改,以实现在设置的时间点检查数据库数据的安全性的功能。

本发明实施例分别基于指示层中的指示函数技术,混合层中的混合链表技术,构建单区块链数据结构和多区块链数据结构,并定义了三种操作,写操作,读操作,检查操作。当数据库表格数据被篡改时,将触发防篡改算法,冻结用户账号以阻止用户数据进一步的损失,实现数据库防篡改功能。

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