CN112115116B - 一种基于区块链的高性能防篡改数据库的构建方法 - Google Patents
一种基于区块链的高性能防篡改数据库的构建方法 Download PDFInfo
- Publication number
- CN112115116B CN112115116B CN202010779632.8A CN202010779632A CN112115116B CN 112115116 B CN112115116 B CN 112115116B CN 202010779632 A CN202010779632 A CN 202010779632A CN 112115116 B CN112115116 B CN 112115116B
- Authority
- CN
- China
- Prior art keywords
- data
- database
- block
- node
- blockchain
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000010276 construction Methods 0.000 title claims description 7
- 238000000034 method Methods 0.000 claims abstract description 57
- 230000006870 function Effects 0.000 claims abstract description 18
- 230000008569 process Effects 0.000 claims abstract description 10
- 239000010410 layer Substances 0.000 claims description 113
- 230000008859 change Effects 0.000 claims description 29
- 230000004044 response Effects 0.000 claims description 21
- 238000013461 design Methods 0.000 claims description 15
- 238000004140 cleaning Methods 0.000 claims description 11
- 230000007246 mechanism Effects 0.000 claims description 11
- 238000004891 communication Methods 0.000 claims description 10
- 239000002355 dual-layer Substances 0.000 claims description 5
- 238000012216 screening Methods 0.000 claims description 3
- 238000012163 sequencing technique Methods 0.000 claims description 2
- 238000012795 verification Methods 0.000 abstract description 7
- 238000012217 deletion Methods 0.000 abstract description 6
- 230000037430 deletion Effects 0.000 abstract description 6
- 238000013500 data storage Methods 0.000 description 8
- 238000012360 testing method Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 238000002474 experimental method Methods 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000009440 infrastructure construction Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明属于区块链技术领域,公开了一种基于区块链的高性能防篡改数据库的构建方法,基于分布式对等网络的双层数据库系统结构;低时间复杂度的数据自检与节点间互检方法;模块化可配置的系统架构。本发明解决了传统数据系统存在单点失效的问题,建立了基于B+树高效的索引结构,突破了传统区块链架构查询性能低下的瓶颈。解决了对海量数据的高速校验的难题,实现了在双层数据库架构中数据的防篡改和防删除,满足了企业对敏感数据可信存储的需求;实现了系统功能的可定制和可扩展,满足不同业务场景差异性的安全需求,降低了企业在实际部署过程中成本。本发明实现了在双层数据库架构中数据的防篡改和防删除,实现了系统功能的可定制和可扩展。
Description
技术领域
本发明属于区块链技术领域,尤其涉及一种基于区块链的高性能防篡改数据库的构建方法。
背景技术
目前:数据库系统属于基础和支撑软件,数据库系统作为数据存储、管理与加工的基础与支撑,其安全性与高效性对于发展数据中心等新型基础设施建设、发挥数据基础性资源和战略性资源的作用、探索以数据为关键要素的新增长方式具有重大意义。
尽管数据库系统对于经济发展与新型基础设施建设具有重要意义,其在安全性方面存在着以下挑战:1)传统中心化数据库在数据存储时面临单点失效的风险,2)数据库系统中存储的数据容易被非法篡改,且难以发觉。因此,确保数据库存储系统中数据的高可用性与不可篡改性是数据安全的关键。
为了解决上述问题,基于区块链的分布式数据库应运而生。相比于传统数据库,其具备去中心化、不可篡改性、公开透明等优势。然而现有的区块链数据库仍不能满足企业业务系统的需求,存在的主要问题包括:1)现有的大多数区块链数据库采用非关系存储结构,其在数据检索时存在效率低效的问题;2)现有的区块链数据库在数据储存层面不支持定制化扩展,需要企业做大量额外的适配才能适用于已有业务系统。
通过上述分析,现有技术存在的问题及缺陷为:
(1)现有的大多数区块链数据库采用非关系存储结构,其在数据检索时存在效率低效的问题。
(2)现有的区块链数据库在数据储存层面不支持定制化扩展,需要企业做大量额外的适配才能适用于已有业务系统。
发明内容
针对现有技术存在的问题,本发明提供了一种基于区块链的高性能防篡改数据库的构建方法。
本发明是这样实现的,一种基于区块链的高性能防篡改数据库的构建方法,所述基于区块链的高性能防篡改数据库的构建方法包括:
基于分布式对等网络的双层数据库系统结构:通过分层设计将数据分为两层,底层为采用区块链数据结构存储的数据变化增量,链式数据结构拥有较高的尾部写入性能,顶层是由底层数据变化增量得到的数据最终状态集,采用块式结构存储,同时使用B+树建立索引;
低时间复杂度的数据自检与节点间互检方法:底层采用区块链数据结构进行存储,通过定期对链式结构的合法性自检,并通过节点间通讯修正被篡改的数据,顶层存储数据的最终状态,顶层数据库在对数据进行操作前进行自检;
模块化可配置的系统架构:提供了可插拔地自动清理功能,支持模块化的共识机制替换方案,支持在已有区块链双层架构下,在应用层进行所需要的功能性扩展。
进一步,所述基于区块链的高性能防篡改数据库的构建方法包括:
(1)基于分布式对等网络的双层数据库系统结构;
(2)低时间复杂度的数据自检与节点间互检方法;
(3)模块化可配置的系统架构。
进一步,所述基于分布式对等网络的双层数据库系统结构包括以下步骤:
步骤一,通过分层设计将数据分为两层;
步骤二,底层为采用区块链数据结构存储的数据变化增量,链式数据结构拥有较高的尾部写入性能;
步骤三,顶层是由底层数据变化增量得到的数据最终状态集,采用块式结构存储,同时使用B+树建立索引。
进一步,所述步骤一通过分层设计将数据分为两层包括以下步骤:底层为采用区块链数据结构存储的数据变化增量,顶层是由底层数据变化增量得到的数据最终状态集;底层采用关系型数据库进行结构化存储,顶层采用业务所需的数据库类型。
进一步,所述步骤二中底层为采用区块链数据结构存储的数据变化增量,链式数据结构拥有较高的尾部写入性能,包括以下步骤:
(1)通过API接受用户的上链请求;
(2)将该上链请求以待上链交易的形式在节点间广播;
(3)共识出块时间到达时,节点将当前待上链交易打包为区块;
(4)遵循区块链数据结构,存储在底层区块链数据库中。
进一步,所述步骤三中顶层是由底层数据变化增量得到的数据最终状态集,采用块式结构存储,同时使用B+树建立索引,拥有较高的查询性能,包括以下步骤:
(1)每当节点出块时,或从其他节点获取更新区块时,会将新区块中的数据变化增量复现到顶层状态数据库中,顶层状态数据库为最新状态;
(2)利用B+树建立索引。
进一步,所述低时间复杂度的数据自检与节点间互检方法包括以下步骤:
(1)底层采用区块链数据结构进行存储,通过定期对链式结构的合法性自检,并通过节点间通讯修正被篡改的数据;
(2)顶层数据库在对数据进行操作前进行自检。
进一步,所述步骤一中底层采用区块链数据结构进行存储,通过定期对链式结构的合法性自检,并通过节点间通讯修正被篡改的数据,保证已上链数据的不可篡改性;包括以下步骤:
(1)首先节点进行自检,检查自己的区块链前后哈希是否正确;如果不正确执行(2);节点在顶层数据库在对数据进行操作前进行自检;包括以下步骤:
节点对顶层数据库计算当前最新状态的哈希值,并将该哈希值进行全网广播,进而借助模块化共识协议确认其顶层数据库状态是当前全网一致的;
如果通过共识过程该节点获知当前其顶层数据库的哈希值与全网超过1/2节点不同,那么该节点将调用底层区块链的自检互检过程,对底层与顶层数据库的最新状态进行同步;
如果通过共识过程该节点确认当前其顶层数据库的哈希值与全网超过1/2节点一致,则会继续进行数据库的增删改等操作,通过将顶层数据库操作的SQL语句发送到底层区块链数据库网络来实现的;
(2)向其周围有物理连接的区块链节点广播请求消息;包括以下步骤:
1)请求消息:节点X先其有物理连接的一跳节点广播获取丢失区块的消息Request={Cert_X,t,Nonce,Sign(Skx,H(Cert_X||t||Nonce))};其中,Cert_X表示节点X的公钥证书,t当前本地区块链的最大区块编号,Nonce为选取的随机数;
2)响应消息:邻居节点收到Request后,首先通过对其签名信息的验证以保证请求消息来源的真实性和内容的完整性,然后向该请求节点X发送包含丢失区块链的响应消息Response;以其中一邻居节点K为例,Response_K={Cert_K,Block_lost,Nonce+1,Sign(Skx,H(Cert_K||Block_lost||Nonce+1))};其中,Cert_K表示响应邻居节点K的公钥证书,Block_lost表示丢弃区块集合Block_lost={Blockt+1,……,Blockn}(假设当前全网最新的区块为Blockn),节点X会收到多个邻居节点的应答,通过选取包含最多丢失区块集合且验证合法的响应消息来恢复所有丢失的区块数据。这里的验证包含对区块中链式关系的验证,以及签名消息的验证。
进一步,所述模块化可配置的系统架构,包括以下步骤:
(1)针对底层区块链数据库,支持模块化的共识机制替换方案,内置兼具安全性与共识效率的基于Raft的共识协议,用户亦可切换到具有更高安全性的PBFT共识协议,或者手动指定出块时间;
(2)顶层数据库支持以各种接口进行数据访问,兼容各种常见数据库接入,包括关系型数据库postgres、mysql,支持用户以业务需要进行选择,支持查询者使用标准SQL语句提交查询请求,包括筛选、聚类、连接、排序复杂操作;
(3)提供了可插拔地自动清理功能,可自由配置存储近几个月的交易数据,同时选择某一节点保留全部时间的交易数据,旧数据将仅能由滑动窗口功能自动清理,同时没有任何机制能够修改已有数据。
进一步,提供了可插拔地自动清理功能,自由配置存储近几个月的交易数据,同时选择某一节点保留全部时间的交易数据,包括以下步骤:
(1)节点根据系统设置的滑动窗口大小检查区块链,发现区块链最近保留的完整的区块数大于滑动窗口的大小,则执行(2);
(2)保持窗口内的全部区块以及创世区块,其余窗口外的区块删除区块体仅保留区块头。
结合上述的所有技术方案,本发明所具备的优点及积极效果为:鉴于已有区块链存在上述数据检索时存在效率低效,不支持定制化扩展等问题,本发明将在分布式数据库系统的安全参考结构下,设计了高度灵活的分布式双层数据存储结构,解决了传统数据系统存在单点失效的难题,以及传统区块链架构查询性能低下导致的性能瓶颈。基于双层存储架构,提出了高效的数据自检与节点间互检方法,满足了企业对敏感数据的可信存储需求。提出了模块化可配置的系统架构,满足了系统的扩展性和兼容性。
本发明通过分层设计将数据分为2层:底层为采用区块链数据结构存储的数据变化增量,链式数据结构拥有较高的尾部写入性能。顶层是由底层数据变化增量得到的数据最终状态集,采用块式结构存储,同时使用B+树建立索引。底层采用区块链数据结构进行存储,通过定期对链式结构的合法性自检,并通过节点间通讯修正被篡改的数据,保证已上链数据的不可篡改性。顶层存储数据的最终状态,节点在对顶层数据库中的数据进行操作前需要自检以进一步提升系统防篡改性能。提供了可插拔地自动清理功能,支持模块化的共识机制替换方案,支持在已有区块链双层架构下,在应用层进行所需要的功能性扩展。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图做简单的介绍,显而易见地,下面所描述的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的基于区块链的高性能防篡改数据库的构建方法流程图。
图2是本发明实施例提供的实施的双层架构图。
图3是本发明实施例提供的实施的节点互检和自检架构图。
图4是本发明实施例提供的实施的总体流程图。
图5是本发明实施例提供的实施的基于分布式对等网络的双层数据库系统结构子流程图。
图6是本发明实施例提供的实施的低时间复杂度的数据自检与节点间互检的子流程图。
图7是本发明实施例提供的实施的模块化可配置的系统架构的子流程图。
图8是本发明实施例提供的实验的节点自检与数据量的关系时间图。
图9是本发明实施例提供的实验的节点互检共识节点数量与时间的关系示意图。
图10是本发明实施例提供的实验的不同数据库系统查询吞吐量示意图。
图11是本发明实施例提供的实验的不同数据库系统单操作响应时间示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
针对现有技术存在的问题,本发明提供了一种基于区块链的高性能防篡改数据库的构建方法,下面结合附图对本发明作详细的描述。
如图1所示,本发明提供的基于区块链的高性能防篡改数据库的构建方法包括以下步骤:
S101:基于分布式对等网络的双层数据库系统结构:通过分层设计将数据分为两层:底层为采用区块链数据结构存储的数据变化增量,链式数据结构拥有较高的尾部写入性能,顶层是由底层数据变化增量得到的数据最终状态集,采用块式结构存储,同时使用B+树建立索引;
S102:低时间复杂度的数据自检与节点间互检方法:底层采用区块链数据结构进行存储,通过定期对链式结构的合法性自检,并通过节点间通讯修正被篡改的数据,顶层存储数据的最终状态,节点在对顶层数据库中的数据进行操作前需要自检以进一步提升系统防篡改性能;
S103:模块化可配置的系统架构:提供了可插拔的自动清理功能,支持模块化可插拔的共识机制,支持在已有区块链双层架构下,在应用层进行所需要的功能性扩展。
本发明提供的基于区块链的高性能防篡改数据库的构建方法业内的普通技术人员还可以采用其他的步骤实施,图1的本发明提供的基于区块链的高性能防篡改数据库的构建方法仅仅是一个具体实施例而已。
下面结合附图对本发明的技术方案作进一步的描述。
本发明将在分布式数据库系统的安全参考结构下,设计了高度灵活的分布式双层数据存储结构,解决了传统数据系统存在单点失效的难题,以及传统区块链架构查询性能低下导致的性能瓶颈。基于双层存储架构,提出了高效的数据自检与节点间互检方法,实现了对底层层数据的防篡改,满足了企业对敏感数据的可信存储需求。提出了模块化可配置的系统架构,满足了系统的扩展性和兼容性。
下面结合附图对本发明的应用原理作详细的描述。
如图4所示,本发明实施例的基于区块链的高性能防篡改数据库的构建方法中包括以下步骤:
S101:基于分布式对等网络的双层数据库系统结构:
S102:低时间复杂度的数据自检与节点间互检方法;
S103:模块化可配置的系统架构;
下面结合具体实施例对本发明包含的上述应用原理作详细的说明。
如图5所示,本发明基于分布式对等网络的双层数据库系统结构的步骤如下:
步骤1,通过分层设计将数据分为2层;
1a)底层为采用区块链数据结构存储的数据变化增量,顶层是由底层数据变化增量得到的数据最终状态集。底层采用关系型数据库进行结构化存储,顶层可以采用业务所需的数据库类型。在本发明中,将底层和顶层数据库存放在同一个数据库实例中.
步骤2,底层为采用区块链数据结构存储的数据变化增量,链式数据结构拥有较高的尾部写入性能;
2a)通过API接受用户的上链请求,将该上链请求以待上链交易的形式在节点间广播,共识出块时间到达时,节点将当前待上链交易打包为区块,遵循区块链数据结构,存储在底层区块链数据库中;
步骤3,顶层是由底层数据变化增量得到的数据最终状态集,采用块式结构存储,同时使用B+树建立索引;
3a)每当节点出块时,或从其他节点获取更新区块时,会将新区块中的数据变化增量复现到顶层状态数据库中,顶层状态数据库为最新状态。利用B+树建立索引;
如图6所示,本发明低时间复杂度的数据自检与节点间互检方法的步骤如下;
步骤1,底层采用区块链数据结构进行存储,通过定期对链式结构的合法性自检,并通过节点间通讯修正被篡改的数据,保证已上链数据的不可篡改性。
1a)首先节点进行自检,检查自己的区块链前后哈希是否正确;如果不正确向其周围有物理连接的区块链节点广播请求消息;
请求消息:节点X先其有物理连接的一跳节点(简称邻居节点)广播获取丢失区块的消息Request={Cert_X,t,Nonce,Sign(Skx,H(Cert_X||t||Nonce))}。其中,Cert_X表示节点X的公钥证书,t当前本地区块链的最大区块编号,Nonce为选取的随机数。
响应消息:邻居节点收到Request后,首先通过对其签名信息的验证以保证请求消息来源的真实性和内容的完整性,然后向该请求节点X发送包含丢失区块链的响应消息Response。以其中一邻居节点K为例,Response_K={Cert_K,Block_lost,Nonce+1,Sign(Skx,H(Cert_K||Block_lost||Nonce+1))}。其中,Cert_K表示响应邻居节点K的公钥证书,Block_lost表示丢弃区块集合Block_lost={Blockt+1,……,Blockn}(假设当前全网最新的区块为Blockn)。节点X会收到多个邻居节点的应答,通过选取包含最多丢失区块集合且验证合法的响应消息来恢复所有丢失的区块数据。这里的验证包含对区块中链式关系的验证,以及签名消息的验证;
步骤2,顶层数据库在对数据进行操作前需要自检;
2a)节点对顶层数据库计算当前最新状态的哈希值,并将该哈希值进行全网广播,进而借助模块化共识协议确认其顶层数据库状态是当前全网一致的。
2b)如果通过共识过程该节点获知当前其顶层数据库的哈希值与全网超过1/2节点不同,那么该节点将调用底层区块链的自检互检过程,对底层与顶层数据库的最新状态进行同步;
2c)如果通过共识过程该节点确认当前其顶层数据库的哈希值与全网超过1/2节点一致,则会继续进行数据库的增删改等操作,这是通过将顶层数据库操作的SQL语句发送到底层区块链数据库网络来实现的。
如图7所示,本发明模块化可配置的系统架构的步骤如下:
步骤1,针对底层区块链数据库,支持模块化的共识机制替换方案;
1a)内置兼具安全性与共识效率的基于Raft的共识协议。用户亦可切换到具有更高安全性的PBFT共识协议,或者手动指定出块时间,确保系统运行效率。
步骤2,顶层数据库支持以各种接口进行数据访问,兼容各种常见数据库接入;
2a)包括关系型数据库数据库postgres、mysql等,支持用户以业务需要进行选择。支持查询者使用标准SQL语句提交查询请求,包括筛选、聚类、连接、排序等复杂操作。企业不需要做过多的适配,即可将现有业务系统的后端关系型数据库直接切换为本数据库系统;
步骤3、支持在已有区块链双层架构下。在应用层进行也许所需要的功能性扩展。
3a)该系统内置提供了可插拔地自动清理功能,可自由配置存储近几个月的交易数据,同时选择某一节点保留全部时间的交易数据。旧数据将仅能由滑动窗口功能自动清理,同时没有任何机制能够修改已有数据;
与现有技术的对比:
(1)相比于传统数据库,本发明所设计的基于区块链的防篡改数据库在安全性方面存在显著优势。具体地,传统数据库采用集中式架构,数据的添加、删除、修改均由单个节点完成,无法防止与检测单个节点被攻击者攻破后对数据进行的恶意删除与修改,也无法阻止节点向数据库写入虚假数据。本发明所设计的基于区块链的防篡改数据库,将区块链与本地数据库结合,可以有效解决传统数据库的安全瓶颈。由于数据被分布存储在网络中的多个节点,本发明可以有效检测、阻止恶意节点对数据的恶意添加、篡改与删除。此外,传统数据库中数据往往存储在单个节点,使得数据面临较为严重的单点失效问题。本发明通过利用区块链技术可以有效解决传统数据库的这一问题。本发明所设计的基于区块链的防篡改数据库与传统数据库的对比情况见表1。与传统数据库相比,本发明所设计的基于区块链的数据库在防篡改,防删除,抗单点失效等方面具有明显优势。
表1本发明项目与传统数据库对比
(2)与其他区块链数据库对比
表2.本发明数据库与现有区块链数据库对比
目前基于区块链的数据库研究与产品相对较少,其中最具代表性的成果为去中心化的开源公共区块链平台以太坊,以及基于区块链的数据库应用平台ChainSQL。在以太坊中,可以通过平台提供的智能合约实现包括数据存储在内的多种应用,难以实现可插拔等功能,同时数据查询效率较低。而在ChainSQL中,对数据库操作的每一条指令都记录到一条交易中,即一个交易对应一个数据库操作,区块链网络会以交易的形式记录下所有对数据库的操作。对于配置了数据库的区块链节点,在区块链网络记录交易的同时会完成对数据库的操作。对于未配置数据库的网络结点,交易只会记录到本节点的区块中。尽管ChainSQL也实现了基于区块链的数据防篡改存储,且能够实现区块链与传统数据库的结合,但是ChainSQL主要存在以下几个缺点:(1)不能够减轻节点的存储负担;(2)没有考虑链上数据的定期自检与互检。本发明设计的防篡改区块链数据库与ChainSQL的性能对比见表2。与ChainSQL数据库相比,本发明所设计的防篡改数据库在数据可定制化轻量级存储等方便有明显优势。
在进行功能对比后,对设计的区块链防篡改数据库与现有的区块链数据库服务在吞吐量,单个操作响应时间进行比较,如图10和图11所示。
测试结果表明,与现有区块链数据库相比,所设计的基于区块链的高性能防篡改数据库系统并发查询性能提升了约70%,并且在百万条记录的数据库中执行增、删、改、查等操作的响应时间不超过100ms。
在数据量对节点自检影响的性能方面,本发明部署了虚拟机进行测试(8核8G),测试的结果如图10所示。随着数据量的增加,节点自检花费的时间也在增加。
在共识节点数量对节点互检性能方面的影响,本发明部署了虚拟机进行测试(8核8G),测试的结果如图9所示。随着共识数量的增加,节点自检花费的时间也逐渐增加。
本发明在分布式数据库系统的安全参考结构下,设计了高度灵活的分布式双层数据存储结构,解决了传统数据系统存在单点失效的难题,以及传统区块链架构查询性能低下导致的性能瓶颈。基于双层存储架构,提出了高效的数据自检与节点间互检方法,实现了数据的防篡改。提出了模块化可配置的系统架构,满足了系统的扩展性和兼容性。其中方法包括:基于分布式对等网络的双层数据库系统结构:通过分层设计将数据分为两层:底层为采用区块链数据结构存储的数据变化增量,链式数据结构拥有较高的尾部写入性能。顶层是由底层数据变化增量得到的数据最终状态集,采用块式结构存储,同时使用B+树建立索引。低时间复杂度的数据自检与节点间互检方法:底层采用区块链数据结构进行存储,通过定期对链式结构的合法性自检,并通过节点间通讯修正被篡改的数据。顶层存储数据的最终状态,节点在对顶层数据库中的数据进行操作前需要自检以进一步提升系统防篡改性能。模块化可配置的系统架构:提供了可插拔的自动清理功能,支持模块化可插拔的共识机制,支持在已有区块链双层架构下,在应用层进行所需要的功能性扩展。
本方法设计了分布式对等网络的双层数据库系统结构,数据自检与节点间互检的数据校验方法,应用于区块链系统,将其作为一个分布式、不可篡改的数据库系统,用来存储最终的状态数据和区块数据,实现了在双层数据库架构中数据的防篡改和防删除,实现了系统功能的可定制和可扩展,满足了企业对敏感数据可信存储的需求。
应当注意,本发明的实施方式可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的设备及其模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。
Claims (6)
1.一种基于区块链的高性能防篡改数据库的构建方法,其特征在于,所述基于区块链的高性能防篡改数据库的构建方法包括:
基于分布式对等网络的双层数据库系统结构:通过分层设计将数据分为两层,底层为采用区块链数据结构存储的数据变化增量,链式数据结构拥有较高的尾部写入性能,顶层是由底层数据变化增量得到的数据最终状态集,采用块式结构存储,同时使用B+树建立索引;
低时间复杂度的数据自检与节点间互检方法:底层采用区块链数据结构进行存储,通过定期对链式结构的合法性自检,并通过节点间通讯修正被篡改的数据,顶层存储数据的最终状态,顶层数据库在对数据进行操作前进行自检;
模块化可配置的系统架构:提供了可插拔地自动清理功能,支持模块化的共识机制替换方案,支持在已有区块链双层架构下,在应用层进行所需要的功能性扩展;
所述基于区块链的高性能防篡改数据库的构建方法包括:
(1)基于分布式对等网络的双层数据库系统结构;
(2)低时间复杂度的数据自检与节点间互检方法;
(3)模块化可配置的系统架构;
所述低时间复杂度的数据自检与节点间互检方法包括以下步骤:
(1)底层采用区块链数据结构进行存储,通过定期对链式结构的合法性自检,并通过节点间通讯修正被篡改的数据;
(2)顶层数据库在对数据进行操作前进行自检;
所述(1)中底层采用区块链数据结构进行存储,通过定期对链式结构的合法性自检,并通过节点间通讯修正被篡改的数据,保证已上链数据的不可篡改性;包括以下步骤:
(1)首先节点进行自检,检查自己的区块链前后哈希是否正确;如果不正确执行(2);节点在顶层数据库在对数据进行操作前进行自检;包括以下步骤:
节点对顶层数据库计算当前最新状态的哈希值,并将该哈希值进行全网广播,进而借助模块化共识协议确认其顶层数据库状态是当前全网一致的;
如果通过共识过程该节点获知当前其顶层数据库的哈希值与全网超过1/2节点不同,那么该节点将调用底层区块链的自检互检过程,对底层与顶层数据库的最新状态进行同步;
如果通过共识过程该节点确认当前其顶层数据库的哈希值与全网超过1/2节点一致,则会继续进行数据库的增删改等操作,通过将顶层数据库操作的SQL语句发送到底层区块链数据库网络来实现的;
(2)向其周围有物理连接的区块链节点广播请求消息;包括以下步骤:
1)请求消息:节点X先其有物理连接的一跳节点广播获取丢失区块的消息Request={Cert_X,t,Nonce,Sign(Skx,H(Cert_X||t||Nonce))};其中,Cert_X表示节点X的公钥证书,t当前本地区块链的最大区块编号,Nonce为选取的随机数;
2)响应消息:邻居节点收到Request后,首先通过对其签名信息的验证以保证请求消息来源的真实性和内容的完整性,然后向该请求节点X发送包含丢失区块链的响应消息Response;以其中一邻居节点K为例,Response_K={Cert_K,Block_lost,Nonce+1,Sign(Skx,H(Cert_K||Block_lost||Nonce+1))};其中,Cert_K表示响应邻居节点K的公钥证书,Block_lost表示丢弃区块集合Block_lost={Blockt+1,……,Blockn}(假设当前全网最新的区块为Blockn),节点X会收到多个邻居节点的应答,通过选取包含最多丢失区块集合且验证合法的响应消息来恢复所有丢失的区块数据,验证包含对区块中链式关系的验证,以及签名消息的验证。
2.如权利要求1所述的基于区块链的高性能防篡改数据库的构建方法,其特征在于,所述基于分布式对等网络的双层数据库系统结构包括以下步骤:
步骤一,通过分层设计将数据分为两层;
步骤二,底层为采用区块链数据结构存储的数据变化增量,链式数据结构拥有较高的尾部写入性能;
步骤三,顶层是由底层数据变化增量得到的数据最终状态集,采用块式结构存储,同时使用B+树建立索引。
3.如权利要求2所述的基于区块链的高性能防篡改数据库的构建方法,其特征在于,所述步骤一通过分层设计将数据分为两层包括以下步骤:底层为采用区块链数据结构存储的数据变化增量,顶层是由底层数据变化增量得到的数据最终状态集;底层采用关系型数据库进行结构化存储,顶层采用业务所需的数据库类型。
4.如权利要求2所述的基于区块链的高性能防篡改数据库的构建方法,其特征在于,所述步骤二中底层为采用区块链数据结构存储的数据变化增量,链式数据结构拥有较高的尾部写入性能,包括以下步骤:
(1)通过API接受用户的上链请求;
(2)将该上链请求以待上链交易的形式在节点间广播;
(3)共识出块时间到达时,节点将当前待上链交易打包为区块;
(4)遵循区块链数据结构,存储在底层区块链数据库中。
5.如权利要求2所述的基于区块链的高性能防篡改数据库的构建方法,其特征在于,所述步骤三中顶层是由底层数据变化增量得到的数据最终状态集,采用块式结构存储,同时使用B+树建立索引,拥有较高的查询性能,包括以下步骤:
(1)每当节点出块时,或从其他节点获取更新区块时,会将新区块中的数据变化增量复现到顶层状态数据库中,顶层状态数据库为最新状态;
(2)利用B+树建立索引。
6.如权利要求1所述的基于区块链的高性能防篡改数据库的构建方法,其特征在于,所述模块化可配置的系统架构,包括以下步骤:
(1)针对底层区块链数据库,支持模块化的共识机制替换方案,内置兼具安全性与共识效率的基于Raft的共识协议,用户亦可切换到具有更高安全性的PBFT共识协议,或者手动指定出块时间;
(2)顶层数据库支持以各种接口进行数据访问,兼容各种常见数据库接入,包括关系型数据库postgres、mysql,支持用户以业务需要进行选择,支持查询者使用标准SQL语句提交查询请求,包括筛选、聚类、连接、排序复杂操作;
(3)提供了可插拔地自动清理功能,可自由配置存储近几个月的交易数据,同时选择某一节点保留全部时间的交易数据,旧数据将仅能由滑动窗口功能自动清理,同时没有任何机制能够修改已有数据;
提供了可插拔地自动清理功能,自由配置存储近几个月的交易数据,同时选择某一节点保留全部时间的交易数据,包括以下步骤:
1)节点根据系统设置的滑动窗口大小检查区块链,发现区块链最近保留的完整的区块数大于滑动窗口的大小,则执行2);
2)保持窗口内的全部区块以及创世区块,其余窗口外的区块删除区块体仅保留区块头。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010779632.8A CN112115116B (zh) | 2020-08-05 | 2020-08-05 | 一种基于区块链的高性能防篡改数据库的构建方法 |
PCT/CN2020/107591 WO2022027530A1 (zh) | 2020-08-05 | 2020-08-07 | 一种基于区块链的高性能防篡改数据库的构建方法 |
US17/505,994 US20220043928A1 (en) | 2020-08-05 | 2021-10-20 | Method of constructing high-performance anti-tampering database based on blockchain |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010779632.8A CN112115116B (zh) | 2020-08-05 | 2020-08-05 | 一种基于区块链的高性能防篡改数据库的构建方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112115116A CN112115116A (zh) | 2020-12-22 |
CN112115116B true CN112115116B (zh) | 2024-04-16 |
Family
ID=73799328
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010779632.8A Active CN112115116B (zh) | 2020-08-05 | 2020-08-05 | 一种基于区块链的高性能防篡改数据库的构建方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112115116B (zh) |
WO (1) | WO2022027530A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114168685B (zh) * | 2021-12-15 | 2023-07-18 | 北京天德科技有限公司 | 一种基于区块链系统的新型数据库架构及运行方法 |
CN114615286B (zh) * | 2022-03-15 | 2024-01-02 | 上海万向区块链股份公司 | 基于跨链技术的碳普惠业务数据流转方法和系统 |
CN115297009B (zh) * | 2022-07-08 | 2023-11-17 | 中电信数智科技有限公司 | 一种基于区块链分布式网络数字加密一致性优化的方法 |
CN115118737B (zh) * | 2022-08-25 | 2022-11-18 | 南京信息工程大学 | 一种基于节点分组的联盟链区块存储方法 |
CN115766217B (zh) * | 2022-11-15 | 2024-04-30 | 武汉大学 | 一种电网安全稳定控制系统通信业务拓扑认证系统及方法 |
CN116433413A (zh) * | 2023-03-10 | 2023-07-14 | 国网山东省电力公司滨州供电公司 | 一种光伏电站数据的可信采集方法及系统 |
CN116668466B (zh) * | 2023-08-02 | 2023-10-13 | 北京滴普科技有限公司 | 一种基于互联网的碳资产信息云端同步方法 |
CN117149915B (zh) * | 2023-10-31 | 2024-03-29 | 湖南三湘银行股份有限公司 | 用于云端数据库迁移到开源数据库的方法 |
CN118261615A (zh) * | 2024-05-30 | 2024-06-28 | 西南石油大学 | 一种基于区块链的绿色碳足迹系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111125787A (zh) * | 2019-12-27 | 2020-05-08 | 上海共链信息科技有限公司 | 一种基于区块链的燃气巡检数据上链系统及其使用方法 |
WO2020133148A1 (zh) * | 2018-12-28 | 2020-07-02 | 合肥达朴汇联科技有限公司 | 区块链的数据处理方法、装置和区块链系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106775619B (zh) * | 2016-11-12 | 2020-05-12 | 杭州复杂美科技有限公司 | 灵活区块链架构系统 |
US10225078B2 (en) * | 2017-02-09 | 2019-03-05 | International Business Machines Corporation | Managing a database management system using a blockchain database |
CN108876365B (zh) * | 2017-05-16 | 2023-08-29 | 江峰 | 一种生成区块发布机制的智能合约 |
CN107657059A (zh) * | 2017-10-20 | 2018-02-02 | 中国银行股份有限公司 | 基于区块链应用系统的数据同步方法、中间件及系统 |
CN109815746B (zh) * | 2019-01-11 | 2022-01-25 | 西安企业资本服务中心有限公司 | 一种基于区块链技术的数据防篡改方法及系统 |
CN110365695A (zh) * | 2019-07-24 | 2019-10-22 | 中国工商银行股份有限公司 | 可切换共识算法的区块链数据交互方法及装置 |
-
2020
- 2020-08-05 CN CN202010779632.8A patent/CN112115116B/zh active Active
- 2020-08-07 WO PCT/CN2020/107591 patent/WO2022027530A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020133148A1 (zh) * | 2018-12-28 | 2020-07-02 | 合肥达朴汇联科技有限公司 | 区块链的数据处理方法、装置和区块链系统 |
CN111125787A (zh) * | 2019-12-27 | 2020-05-08 | 上海共链信息科技有限公司 | 一种基于区块链的燃气巡检数据上链系统及其使用方法 |
Non-Patent Citations (1)
Title |
---|
邵奇峰 ; 金澈清 ; 张召 ; 钱卫宁 ; 周傲英 ; .区块链技术:架构及进展.计算机学报.2017,(05),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN112115116A (zh) | 2020-12-22 |
WO2022027530A1 (zh) | 2022-02-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112115116B (zh) | 一种基于区块链的高性能防篡改数据库的构建方法 | |
AU2019295818B2 (en) | Block chain-based data processing method and device | |
US20210182190A1 (en) | Intelligent die aware storage device scheduler | |
US20210294778A1 (en) | Small-file storage optimization system based on virtual file system in kubernetes user-mode application | |
US7546486B2 (en) | Scalable distributed object management in a distributed fixed content storage system | |
US8352490B2 (en) | Method and system for locating update operations in a virtual machine disk image | |
US20170242761A1 (en) | Fault tolerant listener registration in the presence of node crashes in a data grid | |
US20180004777A1 (en) | Data distribution across nodes of a distributed database base system | |
CN106598490A (zh) | 区块链数据的访问方法和区块链管理系统 | |
US20110225121A1 (en) | System for maintaining a distributed database using constraints | |
CN109582473A (zh) | 基于区块链的跨链数据访问方法和装置 | |
US9773012B2 (en) | Updating map structures in an object storage system | |
MX2008008604A (es) | Sistema de almacenamiento distribuido con interfaz para servicios al cliente via la web. | |
CN106933843A (zh) | 数据库心跳检测方法以及装置 | |
CN104407945B (zh) | 数据备份的方法、装置及系统 | |
US8931051B2 (en) | Scalable and highly available clustering for large scale real-time applications | |
CN102170460A (zh) | 一种集群存储系统及其数据存储方法 | |
CN103973810A (zh) | 基于互联网协议ip盘的数据处理方法和装置 | |
CN106104460A (zh) | 分布式存储系统中的可靠性增强 | |
CN104978336A (zh) | 基于Hadoop分布式计算平台的非结构化数据存储系统 | |
CN102968457B (zh) | 数据库间切换方法和系统 | |
CN106372160A (zh) | 一种分布式数据库及管理方法 | |
CN110162344A (zh) | 一种隔离限流的方法、装置、计算机设备及可读存储介质 | |
CN110532243A (zh) | 数据处理方法、装置和电子设备 | |
CN111245897B (zh) | 数据处理方法、装置、系统、存储介质及处理器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |