首页> 中国专利> 基于区块链的数据库系统及使用该系统的使用方法

基于区块链的数据库系统及使用该系统的使用方法

摘要

本发明公开了一种基于区块链的数据库系统,包括客户端、接入服务器和区块链验证服务器。使用该系统的方法包括步骤1、通过客户端向服务器或者自行在区块链验证服务器上面注册区块链账号并获得一个公钥和私钥;步骤2、用户通过客户端写入数据到接入服务器;步骤3、接入服务器发送请求给区块链验证服务器进行数据共识;步骤4、用户通过客户端提交查询请求到接入服务器进行相关查询;步骤5、用户得到了数据查询结果,直接使用结果读取数据,否则需要进行数据查询;数据读取后,用户通过自己的账号私钥解锁数据。解决了中心化数据库数据不安全,分布式数据库难于达成一致和数据保密性的问题。

著录项

  • 公开/公告号CN107292181A

    专利类型发明专利

  • 公开/公告日2017-10-24

    原文格式PDF

  • 申请/专利权人 无锡井通网络科技有限公司;

    申请/专利号CN201710470086.8

  • 发明设计人 李正鹏;杨建新;徐卿;

    申请日2017-06-20

  • 分类号G06F21/60(20130101);G06F21/62(20130101);G06F17/30(20060101);

  • 代理机构32260 无锡市汇诚永信专利代理事务所(普通合伙);

  • 代理人张欢勇

  • 地址 214000 江苏省无锡市新区菱湖大道111号软件园鲸鱼座C-707室

  • 入库时间 2023-06-19 03:35:50

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-05-19

    授权

    授权

  • 2017-11-24

    实质审查的生效 IPC(主分类):G06F21/60 申请日:20170620

    实质审查的生效

  • 2017-10-24

    公开

    公开

说明书

技术领域

本发明涉及数据库系统技术领域,尤其涉及一种基于区块链的数据库系统及使用该系统的使用方法。

背景技术

数据库(Database)是按照数据结构来组织、存储和管理数据的系统。数据库产生于六十年代,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据库的主要功能不再仅仅是存储,修改和读取数据,而是为用户提供所需要的各种数据管理和分析的工具。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。

在信息化社会,充分有效地管理和利用各类信息资源,是进行科学研究和决策管理的前提条件。数据库技术是管理信息系统、办公自动化系统、决策支持系统等各类信息系统的核心部分,是进行科学研究和决策管理的重要技术手段。现有的数据库技术主要包括中心化数据库和分布式数据库。

中心化数据库存在的主要问题为:1、由单一中心管理,管理者权限过大,存在利用数据谋利或对数据进行修改的可能性。2、历史数据容易被篡改,而不被发现。3、数据的产生和修改过程不透明,不具有公开性。现有的分布式数据库存在的主要问题为:1、数据同步过程比较复杂。2、需要在多个服务器上实现数据的保密性和安全性。

发明内容

为解决现在技术存在的问题,本发明提供一种基于区块链的数据库系统及使用该系统的使用方法。

为实现上述目的,本发明采用的技术方案是:一种基于区块链的数据库系统,包括:

客户端:用户通过其向接入服务器或者自行在区块链验证服务器上面注册区块链账号并获得一个公钥和私钥,并将此账号安全保存;用户提交数据时,使用私钥对数据进行加密,同时提交自己的账号公钥;如果数据是基于区块链数据库的记录,还需要提交之前的记录信息;用户和第三方通过合适的权限,通过客户端提交查询请求到接入服务器;用户得到数据查询结果后,可以直接使用结果读取数据,否则需要进行数据查询;数据读取后,用户通过自己的账号私钥解锁数据。

接入服务器:通过用户提交的公钥对客户端客户端存入的数据进行验证,并将验证结果和公钥发送请求至区块链验证服务器;接入服务器访问已验证的区块,根据公钥和索引找出记录并回溯得到所有的历史记录;接入服务器把验证结果和存储地址一起返回;用户从接入服务器获得结果。

区块链验证服务器:接入服务器发送记录请求到区块链验证服务器的验证节点对记录请求中的历史区块进行验证,确认合法及包含正确的序列号;验证成功,则将新记录请求加入验证队列中,并发送验证结果至其他验证节点;其他验证节点通过预先设置的共识机制决定是否更新验证队列;当共识周期到时,所有符合要求的新记录请求从验证队列写入区块链;加密数据可以通过客户端调用。

作为进一步的改进,私钥是不公开的内容,公钥是公开的内容。

一种基于区块链的数据库系统的使用方法,

步骤1、通过客户端向服务器或者自行在区块链验证服务器上面注册区块链账号并获得一个公钥和私钥;

步骤2、用户通过客户端写入数据到接入服务器;

步骤3、接入服务器发送请求给区块链验证服务器进行数据共识;

步骤4、用户通过客户端提交查询请求到接入服务器进行相关查询;

步骤5、用户得到了数据查询结果,直接使用结果读取数据;数据读取后,用户通过自己的账号私钥解锁数据。

作为进一步的改进,步骤1包括:

1)、接入服务器使用用户提交的随机信息,或者区块链验证服务器根据系统信息生成随机信息,作为用户账号私钥;

2)、通过SECP256k1椭圆曲线算法进行处理,从用户账号私钥导出账号公钥;

3)、通过SHA256和RIPEMD160哈希算法,形成公钥哈希;

4)、将公钥哈希进行两次SHA256哈希,取其中的前面4字节作为校验值;

5)、将地址1字节的前缀加上公钥哈希加上校验值,形成中间地址;

6)、通过BASE58编码实现对中间地址的编码转换,形成用户账号地址。

作为进一步的改进,步骤2包括:

1)、用户通过客户端提交数据时,使用私钥对数据进行加密,提交自己的账号公钥,如果数据是基于区块链数据库的记录,还需要提交之前的记录信息;

2)、接入服务器通过用户的公钥对数据进行验证,并将验证结果和公钥发送请求至区块链验证服务器;区块链验证服务器验证后返回结果;接入服务器把验证结果和存储地址一起返回;

3)、用户从接入服务器获得结果。

作为进一步的改进,步骤3包括:

1)、接入服务器获得用户的存储请求,得到用户数据并通过用户的账号公钥和信息部分进行签名验证;

2)、接入服务器发送记录请求到区块链验证服务器的区块链验证节点,验证节点查询当前的活跃区块是否已有记录,如已有则忽略;

3)、验证节点对记录请求中的历史区块进行验证,确认合法及包含正确的序列号;

4)、验证成功,则将新记录请求加入验证队列中,并发送验证结果至其他验证节点;

5)、其他验证节点通过预先设置的共识机制决定是否更新验证队列;

6)、当共识周期到时,所有符合要求的新记录请求从验证队列写入区块链。

作为进一步的改进,步骤4包括:

1)、数据库用户和第三方通过合适的权限,通过客户端提交查询请求到接入服务器;

2)、接入服务器访问区块链验证服务器的已验证的区块,根据公钥和索引找出记录并回溯得到所有的历史记录;

3)、接入服务器将数据查询结果返回给查询用户。

采用本发明的技术方案后:

1、解决中心化管理者权限问题;区块链数据库通过分布式结构,不需要一个中心化管理者,从而解决了管理者权限过高的问题。

2、解决数据中心化依赖单一中心的问题;区块链通过去中心化技术,以及全网共识即时,将数据在全网进行公开以及同步,实现数据的分布式存储,不再依赖一个单一的中心进行维护,降低了数据缺失的风险。

3、解决数据修改问题;通过用户提交数据的过程,可以查到数据的改动情况。用户获取数据时,可以根据区块链内存储的验证信息对照。如果发现不应当的改动,可以追溯到改动者,也可以查询数据原来的存储情况。

4、解决数据产生,修改过程不透明问题;中心化数据库中普通用户对于数据的结果查询受限于中心化机构,不能对数据变化行为进行监督。通过区块链数据库,基于区块链公开、透明的特点,实现了全网数据的可查,解决数据不透明问题。

5、解决数据同步:通过使用区块链的共识技术,可以确保数据在多个服务器上同步。

6、解决数据保密性和安全性:通过使用私钥加密和公钥验证的技术,确保数据的保密性和安全性。对于没有账号的访问者或者没有权限的用户,加密数据是无法使用的。

附图说明

图1是数据录入的流程图。

图2是数据查询的流程图。

图3是数据读取的流程图。

具体实施方式

下面结合附图对本发明优选的技术方案做进一步的阐述:

一种基于区块链的数据库系统,包括:客户端:用户通过其向接入服务器或者自行在区块链验证服务器上面注册区块链账号并获得一个公钥和私钥,并将此账号安全保存;私钥是不公开的内容,公钥是公开的内容。用户提交数据时,使用私钥对数据进行加密,同时提交自己的账号公钥;如果数据是基于区块链数据库的记录,还需要提交之前的记录信息;用户和第三方通过合适的权限,通过客户端提交查询请求到接入服务器;用户得到数据查询结果后,可以直接使用结果读取数据,否则需要进行数据查询;数据读取后,用户通过自己的账号私钥解锁数据。接入服务器:通过用户提交的公钥对客户端存入的数据进行验证,并将验证结果和公钥发送请求至区块链验证服务器;接入服务器访问已验证的区块,根据公钥和索引找出记录并回溯得到所有的历史记录;接入服务器把验证结果和存储地址一起返回;用户从接入服务器获得结果。区块链验证服务器:接入服务器发送记录请求到区块链验证服务器的验证节点对记录请求中的历史区块进行验证,确认合法及包含正确的序列号;验证成功,则将新记录请求加入验证队列中,并发送验证结果至其他验证节点;其他验证节点通过预先设置的共识机制决定是否更新验证队列;当共识周期到时,所有符合要求的新记录请求从验证队列写入区块链;加密数据可以通过客户端调用。

一种基于区块链的数据库系统的使用方法,

步骤1、通过客户端向服务器或者自行在区块链验证服务器上面注册区块链账号并获得一个公钥和私钥;步骤1具体为:1)、接入服务器使用用户提交的随机信息,或者区块链验证服务器根据系统信息生成随机信息,作为用户账号私钥;2)、通过SECP256k1椭圆曲线算法进行处理,从账号私钥导出账号公钥;3)、通过SHA256和RIPEMD160哈希算法,形成公钥哈希;4)、将公钥哈希进行两次SHA256哈希,取其中的前面4字节作为校验值;5)、将地址1字节的前缀加上公钥哈希加上校验值,形成中间地址;6)、通过BASE58编码实现对中间地址的编码转换,形成用户账号地址。

步骤2、用户通过客户端写入数据到接入服务器;步骤2具体为:1)、用户通过客户端提交数据时,使用私钥对数据进行加密,提交自己的账号公钥,如果数据是基于区块链数据库的记录,还需要提交之前的记录信息;2)、接入服务器通过用户的公钥对数据进行验证,并将验证结果和公钥发送请求至区块链验证服务器;区块链验证服务器验证后返回结果;接入服务器把验证结果和存储地址一起返回;3)、用户从接入服务器获得结果。

步骤3、接入服务器发送请求给区块链验证服务器进行数据共识;步骤3具体为:1)、接入服务器获得用户的存储请求,得到用户数据并通过用户的账号公钥和信息部分进行签名验证;2)、接入服务器发送记录请求到区块链验证服务器的区块链验证节点,验证节点查询当前的活跃区块是否已有记录,如已有则忽略;3)、验证节点对记录请求中的历史区块进行验证,确认合法及包含正确的序列号;4)、验证成功,则将新记录请求加入验证队列中,并发送验证结果至其他验证节点;5)、其他验证节点通过预先设置的共识机制决定是否更新验证队列;6)、当共识周期到时,所有符合要求的新记录请求从验证队列写入区块链。

步骤4、用户和第三方通过合适的权限,借助于客户端提交查询请求到接入服务器进行相关查询;步骤4具体为:1)、数据库用户和第三方通过合适的权限,通过客户端提交查询请求到接入服务器;2)、接入服务器访问区块链验证服务器的已验证的区块,根据公钥和索引找出记录并回溯得到所有的历史记录;3)、接入服务器将数据查询结果返回给查询用户。

步骤5、用户得到了数据查询结果,直接使用结果读取数据;数据读取后,用户通过自己的账号私钥解锁数据。

为了更好对本技术方案进行充分说明,现就数据录入、数据查询及数据读取进行描述。

如图1所示,关于数据录入,用户通过客户端在自己的用户账户(该账户包含账户和私钥)下将用户数据上传到接入服务器。接入服务器对用户的账户进行验证,并记录数据的修改情况和验证状态。通过私钥加密数据后并将其存入到区块链数据库中方便用户进行数据索引。

如图2所示,关于数据查询,用户通过客户端使用用户账户发出用户查询请求,客户端提交数据查询请求给接入服务器,接入服务器判断是否在索引中,否,返回查询失败的结果。是,进行是否有权限读取加密数据的验证,否,返回查询失败的结果,是,继续查询数据状态是否在数据状态表中,否、返回查询失败的结果,是,返回加密数据地址的结果,然后将该数据地址通过客户端呈现给用户。

如图3所示,关于数据读取,用户通过客户端使用用户账户提交数据地址(由数据查询所得)给接入服务器,接入服务器判断是否有权限读取加密数据,否,返回读取失败的结果,是,直接读取区块链数据库中的加密数据,加密数据对用户读取出来,读取出来之后用户通过自己的账号私钥对数据进行解密,最终呈现给用户的解密之后的数据。

以上实施方式只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人了解本发明的内容并加以实施,并不能以此限制本发明的保护范围,凡根据本发明精神实质所做的等效变化或修饰,都应涵盖在本发明的保护范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号