首页 / 专利库 / 银行与财务事项 / 分布式账本技术 / 区块链 / 区块头 / 基于区块链的数据处理系统

基于链的数据处理系统

阅读:1007发布:2020-09-15

专利汇可以提供基于链的数据处理系统专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种基于 区 块 链 的 数据处理 系统,系统包括: 基础 设施层,由 门 户、客户端和基于 对等网络 通信的N个 服务器 组成,每个服务器建立一条区块链的初始区块并维护一条区块链;处理层,用于实现系统应用层和基础设施层数据的交互和处理,该层包括:数据上传模块、单区块验证模块、数据查询模块,以及周期性区块链验证模块中基础设施层各个服务器按周期检验自身维护的区块链的正确性;应用层,用于根据用户的 请求 调用处理层的模块,并在此层实现 访问 控制。利用本发明 实施例 ,系统查询数据效率、资源利用率较其他区块链处理系统高。,下面是基于链的数据处理系统专利的具体信息内容。

1.一种基于链的数据处理系统,其特征在于,包括:基础设施层、处理层、应用层;
所述基础设施层由户、客户端和基于对等网络通信的N个服务器节点组成,每个节点建立一条区块链的初始区块并维护一条区块链;
所述门户接收来自客户端的请求时,从N个服务器节点组成的网络中随机选取出K个主节点,其中,N>=K,K>=3,K为奇数;
所述门户获取所述K个主节点的地址,将所述K个主节点的地址发至所述客户端;
所述客户端按照所述K个主节点的地址向所述K个主节点发送数据处理请求和数据;
所述K个主节点根据所述数据处理请求对所述数据进行处理;
所述处理层用于实现系统客户端和基础设施层的交互和处理,包括以下四个模块:数据上传模块、单区块验证模块、周期性区块链验证模块、数据查询模块,所述数据上传模块负责生成区块并将区块完整无误的插入全部服务器的区块链中;所述单区块验证模块负责检验并修正某个区块的信息;所述数据查询模块负责接收应用层的数据查询请求并返回准确的查询内容;所述周期性区块链验证模块负责按周期检验基础设施层中各个服务器维护的区块链的正确性;
所述应用层用于根据用户的请求调用处理层的模块,并在此层实现访问控制。
2.根据权利要求1所述的系统,其特征在于,所述K个主节点根据所述数据处理请求对所述数据进行处理包括:
所述K个主节点可接收到所述客户端发送的数据上传请求或数据查询请求;
若所述K个主节点接收到所述数据上传请求,则调用单区块验证模块对本地最后一个区块进行检验修正,经由单区块验证模块处理后,将所述客户端发送的所述数据处理生成区块,向全网中其他N-1个节点广播所述新生成的区块和所述客户端发送的原数据;
第一节点接收到所述K个主节点发送的所述区块和所述数据的副本后,保留重复次数最多的一项副本并反馈信息给所述K个主节点,所述第一节点为任一节点;
所述K个主节点分别接收所述第一节点广播的反馈数据,并将重复次数最多的反馈数据作为结果反馈给所述客户端;
所述系统还包括:
所述客户端收到所述K个主节点的反馈,将重复次数最多的数据作为最终结果呈现给用户;
若所述K个主节点接收到所述数据查询请求,则K个主节点分别调用自身单区块验证模块对所述数据查询请求中对应的区块进行检验,检验后将本地数据的副本发给客户端;所述客户端收到所述K个主节点的反馈,将重复次数最多的数据作为最终结果呈现给用户。
3.根据权利要求1至2中任一项所述的系统,其特征在于,所述系统中节点的区块链具有二维链式存储结构;
所述主链由用户的信息生成,每新增一个用户则在所述主链上新增一个区块;
所述用户拥有自己的侧链,用户存储数据时则在所述侧链新增一个区块;
所述用户的所有数据的区块组成一条侧链。
4.根据权利要求1至3中任一项所述的系统,其特征在于,所述区块包括区块头
所述区块头记录:前区块哈希值、本区块哈希值、时间戳;
所述前区块哈希值,即将区块链中前一个区块的所有内容以及前一区块对应数据的所有内容利用SHA256算法计算获取哈希值,通过所述前区块哈希值每个区块才首尾相连组成了区块链;
所述本区块哈希值,由区块主体中所有信息哈希计算得来;
所述时间戳,用于记录生成该区块的时间;
5.根据权利要求1至4中任一项所述的系统,其特征在于,所述区块包括区块主体;
所述区块主体记录系统信息,所述系统信息包括对系统的操作和录入系统的信息内容,且数据的内容存储在数据库中,数据的哈希值存储在区块当中;
所述系统信息包括:
用户ID;
数据的标题;
数据的描述;
本区块对应数据的哈希值。
6.根据权利要求1至5所述的系统,其特征在于,还包括:数据上传模块;
所述数据上传模块将所述客户端的数据存储请求发送至所述门户;
所述门户接收数据存储请求,并从所述N个节点中随机选取出L个节点作为主节点,L>=3且L为奇数;
所述门户将所述L个节点的地址发给所述客户端;
所述客户端将用户上传的数据传输至所述L个节点;
所述L个节点调用单区块验证模块对本地区块链最后一个区块进行检验修正;
所述L个节点对所接收的数据进行处理并将前一个区块的哈希值、数据的哈希值、相关信息以及其属性打包生成区块后,将区块和数据向所述N个节点中除本节点以外的所述其他N-1个节点广播;
第二节点接收到L个服务器广播的区块和数据,接收重复次数最多的区块和数据,所述第二节点为任一节点;
所述第二节点计算本地区块链的最后一个区块的哈希值并与接收区块中的前哈希值进行比较,如一致,则所述第二节点将接收的数据存储到本地数据库,接收的区块添加至自身区块链的尾部;如不一致,则所述第二节点调用单区块验证模块对自身区块链上的最后一个区块和对应存储的数据进行修正。
7.根据权利要求6所述的系统,其特征在于,所述客户端对用户上传的数据的处理包括:加密、生成数字印、数字签名。
8.根据权利要求1至7中任一项所述的系统,其特征在于,还包括:所述处理层中的数据查询模块;
所述数据查询模块将数据查询请求发送给所述门户;
所述门户并从所述N个节点中随机选取出Q个服务器作为主节点,并将这Q个节点的地址返回所述客户端,Q>=3且Q为奇数;
所述客户端将查询请求分别发送给所述Q个节点;
所述Q个节点在自身维护的区块链中找到查询请求对应的区块和对应存储的数据,并应用单区块验证模块对该区块和数据进行验证;
所述Q个节点对相应区块和数据验证完成之后,分别将存储在数据库中的数据副本发送给所述客户端;
所述客户端接收到所述Q个节点发送的数据副本,将重复次数最多的数据副本作为所述数据查询请求对应的查询结果。
9.根据权利要求1至8中任一项所述的系统,其特征在于,还包括:所述处理层中的单区块验证模块;
所述第三节点收到对特定区块和数据的验证请求,在自身维护的区块链中找到该特定区块和对应数据;所述第三节点为所述N个节点中的一个节点;
所述第三节点向其余N-1个节点广播对该特定区块的验证请求;
所述第三节点接收收到验证请求的节点返回自身维护的相应区块副本和相应数据的哈希值;
所述第三节点从收到的副本和数据哈希值中,接收重复次数最多的区块副本和数据哈希值;
所述第三节点判断所接收的区块副本和数据哈希值与本地存储的需要验证的区块和数据哈希值是否一致,如一致则验证成功,如不一致则接收随机选取有正确区块和数据哈希值的节点,调用其正确的数据副本修正该服务器本地需要验证的数据。
10.根据权利要求1至9中任一项所述的系统,其特征在于,还包括:所述处理层中的周期性区块链验证模块;
S1、所述第四节点周期性调用所述周期性区块链验证模块对本地存储的区块链进行维护,将自身第一个区块记为第p个区块,将自身区块链上的最后一个区块记为第q个区块,初始化p=1;所述第四节点为所述N个节点中的一个节点;
S2、所述第四节点将第p个区块对应存储的数据取出,计算其哈希值得到哈希值h1,取出第p个区块,将本区块中数据的哈希值替换为哈希值h1得到一个新的区块,计算此时得到的新区块的哈希值h2;
所述第四节点将得到的哈希值h2与第p+1个区块中存储的第p个区块的哈希值即前哈希值进行比较;若两者相同,则表示第p个区块没有被篡改,执行S3;若两者不同,则表示第p个区块或第p个区块的数据被篡改,执行S4;
S3、p=p+1;所述第四节点判断p>q-1是否成立;如成立,验证完成,否则返回S1;
S4、所述第四节点调用单区块验证模块对第p个区块和数据进行修正,完成后返回S2。

说明书全文

基于链的数据处理系统

技术领域

[0001] 本发明涉及数据防篡改领域,尤其涉及一种基于区块链的数据处理系统

背景技术

[0002] 本发明采用的是一种新兴技术——区块链技术作为底层架构,用于实现数据防篡改。
[0003] 目前基于区块链的数据放篡改系统主要有两种实现方式,一是在以以太坊为代表的公有链平台上进行开发,将数据或数据的哈希值存入公有链中;二是采用以超级账本为代表的联盟链作为底层架构存储数据。
[0004] 在公有链平台上存储数据存在以下问题:(1)若将全部数据存入平台中,则开销太大;(2)若将仅将数据的哈希值存入平台中,能够验证数据的完整性,但没有未被修改的数据的备份;(3)智能合约不可修改,一旦发布应用则不可更改。
[0005] 基于超级账本项目进行开发也是区块链数据处理系统常用方案。但目前基于超级账本项目的数据防篡改系统存在以下问题:(1)在超级账本的项目中有几个固定功能的节点用于分布式系统的共识。因此,基于超级账本的项目中心化程度较高,拥有固定功能的节点更易被集中攻击;(2)超级账本没有考虑系统出错或数据被篡改后的系统如何恢复一致性的问题,需要系统管理员维护。
[0006] 本系统设计了一个新的基于区块链的数据处理系统,改善了上述现有系统存在的问题。

发明内容

[0007] 本发明实施例的目的在于提供一种基于区块链的数据处理系统,实现数据处理系统的不可篡改性和不可破坏性、提高数据可靠性,从而为用户提供可信的数据存储平台。
[0008] 具体技术方案如下:
[0009] 一种基于区块链的数据处理系统,包括:基础设施层、处理层、应用层;
[0010] 所述基础设施层由户、客户端和基于对等网络通信的N个服务器节点组成,每个节点建立一条区块链的初始区块并维护一条区块链;
[0011] 所述门户接收来自客户端的请求时,从N个服务器节点组成的网络中随机选取出K个主节点,其中,N>=K,K>=3,K为奇数;
[0012] 所述门户获取所述K个主节点的地址,将所述K个主节点的地址发至所述客户端;
[0013] 所述客户端按照所述K个主节点的地址向所述K个主节点发送数据处理请求和数据;
[0014] 所述K个主节点根据所述数据处理请求对所述数据进行处理;
[0015] 所述处理层用于实现系统客户端和基础设施层的交互和处理,包括以下四个模块:数据上传模块、单区块验证模块、周期性区块链验证模块、数据查询模块,所述数据上传模块负责生成区块并将区块完整无误的插入全部服务器的区块链中;所述单区块验证模块负责检验并修正某个区块的信息;所述数据查询模块负责接收应用层的数据查询请求并返回准确的查询内容;所述周期性区块链验证模块负责按周期检验基础设施层中各个服务器维护的区块链的正确性;
[0016] 所述应用层用于根据用户的请求调用处理层的模块,并在此层实现访问控制。
[0017] 本系统所述K个主节点根据所述数据处理请求对所述数据进行处理包括:
[0018] 所述K个主节点可接收到所述客户端发送的数据上传请求或数据查询请求;
[0019] 若所述K个主节点接收到所述数据上传请求,则调用单区块验证模块对本地最后一个区块进行检验修正。经由单区块验证模块处理后,将所述客户端发送的所述数据处理生成区块,向全网中其他N-1个节点广播所述新生成的区块和所述客户端发送的原数据;
[0020] 第一节点接收到所述K个主节点发送的所述区块和所述数据的副本后,保留重复次数最多的一项副本并反馈信息给所述K个主节点,所述第一节点为任一节点;
[0021] 所述K个主节点分别接收所述第一节点广播的反馈数据,并将重复次数最多的反馈数据作为结果反馈给所述客户端;
[0022] 所述系统还包括:
[0023] 所述客户端收到所述K个主节点的反馈,将重复次数最多的数据作为最终结果呈现给用户。
[0024] 若所述K个主节点接收到所述数据查询请求,则K个主节点分别调用自身单区块验证模块对所述数据查询请求中对应的区块进行检验。检验后将本地数据的副本发给客户端;所述客户端收到所述K个主节点的反馈,将重复次数最多的数据作为最终结果呈现给用户。
[0025] 所述系统中节点的区块链具有二维链式存储结构;
[0026] 所述主链由用户的信息生成,每新增一个用户则在所述主链上新增一个区块;
[0027] 所述用户拥有自己的侧链,用户存储数据时则在所述侧链新增一个区块;
[0028] 所述用户的所有数据的区块组成一条侧链。
[0029] 本系统所述区块包括区块头
[0030] 所述区块头记录:前区块哈希值、本区块哈希值、时间戳;
[0031] 前区块哈希值,即将区块链中前一个区块的所有内容以及前一区块对应数据的所有内容利用SHA256算法计算获取哈希值,通过所述前区块哈希值每个区块才首尾相连组成了区块链;
[0032] 本区块哈希值,由区块主体中所有信息哈希计算得来;
[0033] 时间戳,用于记录生成该区块的时间;
[0034] 本系统所述区块包括区块主体;
[0035] 所述区块主体记录系统信息,所述系统信息包括对系统的操作和录入系统的信息内容,且数据的内容存储在数据库中,数据的哈希值存储在区块当中;
[0036] 所述系统信息包括:
[0037] 用户ID;
[0038] 数据的标题;
[0039] 数据的描述;
[0040] 本区块对应数据的哈希值。
[0041] 本系统处理层包括:数据上传模块;
[0042] 所述数据上传模块将所述客户端的数据存储请求发送至所述门户;
[0043] 所述门户接收数据存储请求,并从所述N个节点中随机选取出L个节点作为主节点,L>=3且L为奇数;
[0044] 所述门户将所述L个节点的地址发给所述客户端;
[0045] 所述客户端将用户上传的数据传输至所述L个节点;
[0046] 所述L个节点调用单区块验证模块对本地区块链最后一个区块进行检验修正;
[0047] 所述L个节点对所接收的数据进行处理并将前一个区块的哈希值、数据的哈希值、相关信息以及其属性打包生成区块后,将区块和数据向所述N个节点中除本节点以外的所述其他N-1个节点广播;
[0048] 第二节点接收到L个服务器广播的区块和数据,接收重复次数最多的区块和数据,所述第二节点为任一节点;
[0049] 所述第二节点计算本地区块链的最后一个区块的哈希值并与接收区块中的前哈希值进行比较,如一致,则所述第二节点将接收的数据存储到本地数据库,接收的区块添加至自身区块链的尾部;如不一致,则所述第二节点调用单区块验证模块对自身区块链上的最后一个区块和对应存储的数据进行修正。
[0050] 所述客户端对数据的处理包括:加密、生成数字印、数字签名。
[0051] 本系统还包括:所述处理层中的数据查询模块;
[0052] 所述数据查询模块将数据查询请求发送给所述门户;
[0053] 所述门户并从所述N个节点中随机选取出Q个服务器作为主节点,并将这Q个节点的地址返回所述客户端(Q>=3且Q为奇数);
[0054] 所述客户端将查询请求分别发送给所述Q个节点;
[0055] 所述Q个节点在自身维护的区块链中找到查询请求对应的区块和对应存储的数据,并应用单区块验证模块对该区块和数据进行验证;
[0056] 所述Q个节点对相应区块和数据验证完成之后,分别将存储在数据库中的数据副本发送给所述客户端;
[0057] 所述客户端接收到所述Q个节点发送的数据副本,将重复次数最多的数据副本作为所述数据查询请求对应的查询结果。
[0058] 本系统还包括:所述处理层中的单区块验证模块,;
[0059] 所述第三节点收到对特定区块和数据的验证请求,在自身维护的区块链中找到该特定区块和对应数据;所述第三节点为所述N个节点中的一个节点;
[0060] 所述第三节点向其余N-1个节点广播对该特定区块的验证请求;
[0061] 所述第三节点接收收到验证请求的节点返回自身维护的相应区块副本和相应数据的哈希值;
[0062] 所述第三节点从收到的副本和数据哈希值中,接收重复次数最多的区块副本和数据哈希值;
[0063] 所述第三节点判断所接收的区块副本和数据哈希值与本地存储的需要验证的区块和数据哈希值是否一致,如一致则验证成功,如不一致则接收随机选取有正确区块和数据哈希值的节点,调用其正确的数据副本修正该服务器本地需要验证的数据。
[0064] 本系统还包括:所述处理层中的周期性区块链验证模块;
[0065] S1、所述第四节点周期性调用所述周期性区块链验证模块对本地存储的区块链进行维护,将自身第一个区块记为第p个区块,将自身区块链上的最后一个区块记为第q个区块,初始化p=1;所述第四节点为所述N个节点中的一个节点;
[0066] S2、所述第四节点将第p个区块对应存储的数据取出,计算其哈希值得到哈希值h1,取出第p个区块,将本区块中数据的哈希值替换为哈希值h1得到一个新的区块,计算此时得到的新区块的哈希值h2;
[0067] 所述第四节点将得到的哈希值h2与第p+1个区块中存储的第p个区块的哈希值即前哈希值进行比较;若两者相同,则表示第p个区块没有被篡改,执行S3;若两者不同,则表示第p个区块或第p个区块的数据被篡改,执行S4;
[0068] S3、p=p+1;所述第四节点判断p>q-1是否成立;如成立,验证完成,否则返回S1;
[0069] S4、所述第四节点调用单区块验证模块对第p个区块和数据进行修正,完成后返回S2。
[0070] 本发明实施例提供的基于区块链的数据处理系统,系统的安全性和鲁棒性得到了保障;提高了系统去中心化的程度,有效克服现有了数据存储系统过于中心化而导致的数据易被集中攻击破坏或篡改、被内部恶意人员破坏或篡改的问题;保证了数据的不可篡改性、安全性和可靠性;系统资源利用率较其他区块链系统高;系统查询数据效率较其他区块链系统高。附图说明
[0071] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0072] 图1为本发明实施例提供的基于区块链的数据处理系统的一种结构示意图;
[0073] 图2为本发明实施例提供的一种数据处理流程图
[0074] 图3为本发明实施例提供的一种区块链结构示意图;
[0075] 图4为本发明实施例提供的一种区块数据结构示意图;
[0076] 图5为本发明实施例提供的一种数据上传流程图;
[0077] 图6为本发明实施例提供的一种数据查询流程图;
[0078] 图7为本发明实施例提供的一种单区块验证流程图;
[0079] 图8为本发明实施例提供的一种周期性区块链验证流程图。

具体实施方式

[0080] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0081] 如图1所示,本发明实施例提供一种基于区块链的数据处理系统,该系统包括:基础设施层、处理层、应用层;
[0082] 基础设施层,由门户、客户端和基于对等网络通信的N个服务器节点组成,每个服务器节点建立一条区块链的初始区块并维护一条区块链。
[0083] 在一个实施例中,服务器节点之间采用P2P协议进行通信,区块链中每个区块包含的信息包括:前区块哈希值、本区块哈希值、时间戳、用户ID、数据的标题、数据的描述、本区块对应数据的哈希值。
[0084] 所述门户接收来自客户端的请求时,从N个服务器节点组成的网络中随机选取出K个主节点,其中,N>=K,K>=3,K为奇数;
[0085] 所述门户获取所述K个主节点的地址,将所述K个主节点的地址发至所述客户端;
[0086] 所述客户端按照所述K个主节点的地址向所述K个主节点发送数据处理请求和数据;
[0087] 所述K个主节点根据所述数据处理请求对所述数据进行处理。
[0088] 处理层,用于实现系统应用层和底层数据的交互和处理,包括以下四个模块:数据上传模块、单区块验证模块、周期性区块链验证模块、数据查询模块,数据上传模块负责生成区块并将区块完整无误的插入全部服务器的区块链中;单区块验证模块负责检验并修正某个区块的信息;数据查询模块负责接收应用层的数据查询请求并返回准确的查询内容;周期性区块链验证模块负责按周期检验基础设施层中各个服务器维护的区块链的正确性。
[0089] 应用层,用于根据用户的请求调用处理层的模块,并在此层实现访问控制。
[0090] 在一个实施例中,基于区块链的数据处理系统采用B/S和C/S的组合架构。目前应对拜占庭问题应用最广的算法是(Practical Byzantine Fault Tolerant,简称PBFT)算法。但这个算法鲁棒性不足。本系统改进了已有的PBFT算法,从网络环境中存在恶意攻击的度提出了一个面向拜占庭问题的容错算法,以解决在网络通信可靠但节点可能故障或者主节点可能被攻击的情况下如何达成共识的问题。
[0091] 在一个实施例中,所述K个主节点根据所述数据处理请求对所述数据进行处理包括:
[0092] 所述K个主节点可接收到所述客户端发送的数据上传请求或数据查询请求;
[0093] 若所述K个主节点接收到所述数据上传请求,则调用单区块验证模块对本地最后一个区块进行检验修正。经由单区块验证模块处理后,将所述客户端发送的所述数据处理生成区块,向全网中其他N-1个节点广播所述新生成的区块和所述客户端发送的原数据;
[0094] 第一节点接收到所述K个主节点发送的所述区块和所述数据的副本后,保留重复次数最多的一项副本并反馈信息给所述K个主节点,所述第一节点为任一节点;
[0095] 所述K个主节点分别接收所述第一节点广播的反馈数据,并将重复次数最多的反馈数据作为结果反馈给所述客户端;
[0096] 相应的,该系统还包括:
[0097] 所述客户端收到所述K个主节点的反馈,将重复次数最多的数据作为最终结果呈现给用户。
[0098] 若所述K个主节点接收到所述数据查询请求,则K个主节点分别调用自身单区块验证模块对所述数据查询请求中对应的区块进行检验。检验后将本地数据的副本发给客户端;所述客户端收到所述K个主节点的反馈,将重复次数最多的数据作为最终结果呈现给用户。
[0099] 在一个实施例中,图2所示K个主节点根据所述数据处理请求对所述数据进行处理包括:
[0100] 21、用户发送请求到门户;
[0101] 22、门户从全网N个节点随机选取出K个主节点(Leader),新区块由主节点负责生成。门户选取结束后将这K个主节点的地址发给用户(K>=3且K为奇数);
[0102] 23、用户将具体的请求和数据发送给这K个主节点;
[0103] 24、每个节点把客户端发来的数据或请求向全网N-1个节点广播;
[0104] 25、每个节点接收到K个请求或数据副本后,保留重复次数最多的一项副本,处理相关请求或数据副本并反馈信息给K个主节点;
[0105] 26、K个主节点分别收到N-1份反馈,并将重复次数最多的数据作为结果,经过处理和判断后反馈给用户;
[0106] 27、用户端收到K份反馈,将重复次数最多的数据作为最终结果呈现给用户。
[0107] 在一个实施例中,如图3所示,该基于区块链的数据处理系统中的计算机节点的区块链具有二维链式存储结构;
[0108] 所述主链由用户的信息生成,每新增一个用户则在所述主链上新增一个区块;
[0109] 所述用户拥有自己的侧链,用户存储数据时则在所述侧链新增一个区块;
[0110] 所述用户的所有数据的区块组成一条侧链。
[0111] 在一个实施例中,每个区块由区块头和区块主体组成,区块主体只负责记录前一段时间内的所有系统信息(包括对系统的操作和录入系统的信息内容),区块链的大部分功能都由区块头实现。本系统将具体数据的内容存储在了数据库中,将数据的哈希值存储在区块当中。
[0112] 在一个实施例中,如图4所示,所述区块包括区块头;
[0113] 所述区块头记录:前区块哈希值、本区块哈希值、时间戳;
[0114] 前区块哈希值,即将区块链中前一个区块的所有内容以及前一区块对应数据的所有内容利用SHA256算法计算获取哈希值,通过所述前区块哈希值每个区块才首尾相连组成了区块链;并且这个值对区块链的安全性起到了至关重要的作用,关于安全性的具体叙述详见之后的验证算法;
[0115] 本区块哈希值,由区块主体中所有信息哈希计算得来;
[0116] 时间戳,用于记录生成该区块的时间,精确到毫秒。
[0117] 在一个实施例中,所述区块包括区块主体;所述区块主体记录系统信息,所述系统信息包括对系统的操作和录入系统的信息内容,且数据的内容存储在数据库中,数据的哈希值存储在区块当中;所述系统信息包括:用户ID;数据的标题;数据的描述;本区块对应数据的哈希值。
[0118] 在一个实施例中,该基于区块链的数据处理系统还包括:数据上传模块;
[0119] 所述数据上传模块将所述客户端的数据存储请求发送至所述门户;
[0120] 所述门户接收数据存储请求,并从所述N个节点中随机选取出L个节点作为主节点,L>=3且L为奇数;
[0121] 所述门户将所述L个节点的地址发给所述客户端;
[0122] 所述客户端将用户上传的数据传输至所述L个节点;
[0123] 所述L个节点调用单区块验证模块对本地区块链最后一个区块进行检验修正;
[0124] 所述L个节点对所接收的数据进行处理并将前一个区块的哈希值、数据的哈希值、相关信息以及其属性打包生成区块后,将区块和数据向所述N个节点中除本节点以外的所述其他N-1个节点广播;
[0125] 第二节点接收到L个服务器广播的区块和数据,接收重复次数最多的区块和数据,所述第二节点为任一节点;
[0126] 所述第二节点计算本地区块链的最后一个区块的哈希值并与接收区块中的前哈希值进行比较,如一致,则所述第二节点将接收的数据存储到本地数据库,接收的区块添加至自身区块链的尾部;如不一致,则所述第二节点调用单区块验证模块对自身区块链上的最后一个区块和对应存储的数据进行修正。
[0127] 在一个实施例中,所述客户端对数据的处理包括:加密、生成数字水印、数字签名。
[0128] 在一个实施例中,数据上传模块接收应用层的数据录入请求,并将数据的数据存储在每个服务器中,并将数据的哈希值以区块链的结构存储在系统的每个服务器中。接收到数据上传请求后,门户从N个服务器中随机选取K个服务器,并将这K个服务器的地址返回给客户端。客户端将数据分别上传至K个服务器,这K个服务器分别向网络中的其余N-1个服务器广播接收到的数据,网络中的每台服务器接受重复次数最多的数据副本作为用户上传的数据进行处理和存储。
[0129] 在一个实施例中,如图5所示,本系统的数据上传模块数据上传步骤包括:
[0130] 51、数据上传模块将用户的数据存储请求发送给基础设施层的门户;
[0131] 52、门户接收数据存储请求,并从从全网N个服务器中随机选取出K个服务器作为主节点,新区块由被选出的服务器负责生成。门户选取结束后将这K个服务器的地址发给用户(K>=3且K为奇数);
[0132] 53、客户端将用户上传的数据经过必要的处理后传输至这K个服务器;根据不同的应用需求,客户端对数据的处理包括加密、生成数字水印、数字签名;
[0133] 54、此K个服务器对所接收的数据进行处理并将数据的哈希值、相关信息以及其属性打包生成区块后,将区块和数据向其余N-1个服务器广播;
[0134] 55、每个服务器接收到K个服务器广播的区块和数据,接受重复次数最多的区块和数据;
[0135] 56、每个服务器计算本地区块链的前哈希值并与接受区块中的前哈希值进行比较,如一致,执行57;如不一致,调用处理层的单区块验证模块对自身区块链上的最后一个区块和对应存储的数据进行修正;
[0136] 57、每个服务器将接受的数据存储到本地数据库,接受的区块添加至自身区块链的尾部。
[0137] 在一个实施例中,该基于区块链的数据处理系统还包括:所述处理层中的数据查询模块;
[0138] 所述数据查询模块将数据查询请求发送给所述门户;
[0139] 所述门户并从所述N个节点中随机选取出Q个服务器作为主节点,并将这Q个节点的地址返回所述客户端(Q>=3且Q为奇数);
[0140] 所述客户端将查询请求分别发送给所述Q个节点;
[0141] 所述Q个节点在自身维护的区块链中找到查询请求对应的区块和对应存储的数据,并应用单区块验证模块对该区块和数据进行验证;
[0142] 所述Q个节点对相应区块和数据验证完成之后,分别将存储在数据库中的数据副本发送给所述客户端;
[0143] 所述客户端接收到所述Q个节点发送的数据副本,将重复次数最多的数据副本作为所述数据查询请求对应的查询结果。
[0144] 在一个实施例中,处理层接收到来自应用层的数据查询请求后将调用数据查询模块以完成数据查询任务。接收到数据上传请求后,门户从N个服务器中随机选取K个服务器作为主节点,这K个服务器分别在本地找到被查询的区块和对应的数据库中的数据,在对该区块和数据进行验证后,将数据库中的数据返回至客户端;客户端接受重复次数最多的数据副本作为其查询结果。
[0145] 在一个实施例中,如图6所示,数据查询模块进行数据查询的步骤包括:
[0146] 61、数据查询模块将数据查询请求发送给门户;
[0147] 62、门户并从从全网N个服务器中随机选取出K个服务器作为主节点,并将这K个服务器的地址返回客户端(K>=3且K为奇数);
[0148] 63、客户端将查询请求分别发送给这K个服务器;
[0149] 64、该K个服务器在自身维护的区块链中找到查询请求对应的区块和对应存储的数据,并调用单区块验证模块对该区块和数据进行验证;
[0150] 65、K个服务器对相应区块和数据验证完成之后,分别将存储在数据库中的数据发送给客户端;
[0151] 66、客户端接收到K个数据的副本,将重复次数最多的数据副本作为所述数据查询请求对应的查询结果。
[0152] 在一个实施例中,该基于区块链的数据处理系统还包括:所述处理层中的单区块验证模块,;
[0153] 所述第三节点收到对特定区块和数据的验证请求,在自身维护的区块链中找到该特定区块和对应数据;所述第三节点为所述N个节点中的一个节点;
[0154] 所述第三节点向其余N-1个节点广播对该特定区块的验证请求;
[0155] 所述第三节点接收收到验证请求的节点返回自身维护的相应区块副本和相应数据的哈希值;
[0156] 所述第三节点从收到的副本和数据哈希值中,接收重复次数最多的区块副本和数据哈希值;
[0157] 所述第三节点判断所接收的区块副本和数据哈希值与本地存储的需要验证的区块和数据哈希值是否一致,如一致则验证成功,如不一致则接收随机选取有正确区块和数据哈希值的节点,调用其正确的数据副本修正该服务器本地需要验证的数据。
[0158] 在一个实施例中,单区块验证模块实现对服务器中某个区块的完整性进行验证,并在发现错误时予以修正。该服务器获取网络中所有其它服务器中的相应区块副本及相应区块对应的数据的哈希值,并接受重复次数最多的区块副本和哈希值。如果该副本和哈希值和该服务器中的相应区块以及对应数据的哈希值不同,则用该副本更新该区块,并从有正确区块及数据的节点获取正确的数据,更新该数据。
[0159] 在一个实施例中,如图7所示,单区块验证模块进行区块验证的步骤包括:
[0160] 71、服务器接收到对特定区块和数据的验证请求,在自身维护的区块链中找到该区块和对应数据;
[0161] 72、该服务器向其余N-1个服务器广播对该特定区块的验证请求;
[0162] 73、收到验证请求的服务器返回自身维护的相应区块副本和相应数据的哈希值;
[0163] 74、发送验证请求的服务器收到N-1个区块的副本和数据哈希值,接受重复次数最多的区块副本和数据哈希值;
[0164] 75、判断所接受的区块副本和数据哈希值与本地存储的需要验证的区块和数据哈希值是否一致,如一致则验证成功,不一致则执行76;
[0165] 76、用接受的正确副本更新该区块,并随机选取有正确区块和数据哈希值的服务器,调用其数据修正该服务器本地需要验证的数据。
[0166] 在一个实施例中,该基于区块链的数据处理系统还包括:所述处理层中的周期性区块链验证模块.
[0167] 在一个实施例中,如图8所示,周期性区块链验证模块进行区块验证的步骤包括:
[0168] S1、所述第四节点周期性调用所述周期性区块链验证模块对本地存储的区块链进行维护,将自身第一个区块记为第p个区块,将自身区块链上的最后一个区块记为第q个区块,初始化p=1;所述第四节点为所述N个节点中的一个节点;
[0169] S2、所述第四节点将第p个区块对应存储的数据取出,计算其哈希值得到哈希值h1,取出第p个区块,将本区块中数据的哈希值替换为哈希值h1得到一个新的区块,计算此时得到的新区块的哈希值h2;
[0170] 所述第四节点将得到的哈希值h2与第p+1个区块中存储的第p个区块的哈希值即前哈希值进行比较;若两者相同,则表示第p个区块没有被篡改,执行S3;若两者不同,则表示第p个区块或第p个区块的数据被篡改,执行S4;
[0171] S3、p=p+1;所述第四节点判断p>q-1是否成立;如成立,验证完成,否则返回S1;
[0172] S4、所述第四节点调用单区块验证模块对第p个区块和数据进行修正,完成后返回S2。
[0173] 本发明实施例,基础设施层的服务器周期性地调用周期性验证模块,验证本地服务器维护数据的完整性,每个服务器从自身所维护的区块链的第一个区块开始验证。
[0174] 本发明实施例实现的基于区块链的数据处理系统可以防止来自内部或外部的数据的篡改,保证数据的安全可靠性,同时保证系统良好的容错性和高资源利用率。系统采用了区块链技术、哈希算法、改进的拜占庭容错算法、单区块验证机制、周期性区块验证机制等,将数据进行有效组织管理并实现高可靠性和高完整性保护。该系统实现了面向存在恶意攻击的网络环境的防护以及在生成区块之后的纠错性;同时,本系统所具有的独特的二维链式存储结构极大地提高了系统查询的效率。以基础设施层中的区块链技术作为数据防护的基础,结合上层处理层多模块处理及应用层的访问控制形成了多层次、立体化的保护体系,赋予了系统灵活的细粒度访问控制策略,保证了数据的不可篡改性和可靠性。
[0175] 本系统应用前景极其广阔,它可广泛应用于个人、企事业单位、政府、军队等来存储隐私或机密数据,也可以扩展应用到金融行业、供应链、商品溯源防伪、电子商务、数字版权专利等领域。
[0176] 本发明实施例采用区块链的周期性验证机制和单区块验证机制。周期性验证机制重点用于系统日常的数据维护以达到不同节点所维护的数据副本一致的目的,单区块验证机制验证并修正具体数据,提高了系统的安全性。本系统的周期性验证模块、单区块验证模块,可对存在错误的节点中的某个区块进行纠错处理。
[0177] 本发明实施例采用一种改进的拜占庭容错机制,即随机取样共识机制。K个主服务器的随机选取能够保证系统在不安全的网络中有一定的抗攻击性,提高了攻击者的攻击难度。由门户随机选择K个服务器节点的方式使每个节点都可能具有录入信息的权利,体现了区块链节点的平等性。比较K个副本选择多数增加了系统存储数据时的可信性和容错性,减少了数据在录入系统时被篡改影响存储结果的险。
[0178] 本发明实施例采用区块链的二维链式存储结构:用户信息组成一条横链,一个用户的数据组成一条纵链。在查找信息时,只需在横链上找到某用户后在其纵链查找相关信息,无需遍历整条区块链。这极大地提高了系统查找信息的效率。同时应用了散列函数和区块链技术,保证了数据的不可篡改性、安全性和可靠性。
[0179] 本发明实施例采用区块链中不存储具体数据,只保存所需存储的数据的哈希值。在查询或检验数据时,节点将重新计算存储在本地数据库中的数据的哈希值,并用此哈希值和对应区块的内容再生产一个哈希值,用于向主节点反馈该节点存储的信息的情况。
[0180] 本发明实施例采用分层的结构,将系统分为应用层、处理层和基础设施层。基础设施层以区块链技术为核心,为上层提供存储服务;处理层负责对应用层传来的请求和数据进行处理,并负责维护基础设施层的数据一致性和完整性;应用层可使用处理层提供的服务,灵活扩展各项功能。分层的结构有利于本系统的组织管理、更新和维护。
[0181] 本发明实施例采用门户将客户端分散地、随机地与各节点进行对接,因此中心化程度更低,恶意分子的攻击难度更大,系统的安全性和鲁棒性得到了保障,提高了系统去中心化的程度,有效克服现有了数据存储系统过于中心化而导致的数据易被集中攻击破坏或篡改、被内部恶意人员破坏或篡改的问题。
[0182] 本发明实施例系统保证了数据的不可篡改性、安全性和可靠性;系统资源利用率较其他区块链系统高;系统查询数据效率较其他区块链系统高。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈