一种基于区块链的电子证明系统及存证、文件恢复方法转让专利

申请号 : CN201810397463.4

文献号 : CN108647523B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 高英陈志凌温泉思林宏亮

申请人 : 华南理工大学

摘要 :

本发明公开了一种基于区块链的电子证明系统,包括分布式文件管理系统和共识网络记账装置,所述分布式文件管理系统包括属性基加密模块、文件分割模块、复制分发模块、Hash处理模块和发送模块,共识网络记账装置包括共识网络模块和记账模块。本发明还公开了电子证明存证方法以及电子证明文件恢复方法。本发明能够实现多层级关系的权限控制,可实现弱中心化管理,风险分散化,可有效防止用户信息泄露,数据不可篡改且可追踪溯源,人为操作可撤回,信息传递效率高。

权利要求 :

1.一种基于区块链的电子证明系统,其特征在于,包括:分布式文件管理系统,包括:

属性基加密模块,用于对电子证明文件进行属性基加密处理;

文件分割模块,用于将经过加密的所述电子证明文件分割成多个文件碎片;

复制分发模块,用于将每个文件碎片分别随机复制多个副本,并将每个文件碎片及其副本分别随机分发到多个不同的存储节点,其中任一文件碎片及其副本的数量大于存储节点数量的一半且小于等于存储节点数量;

Hash处理模块,用于对存储节点上的所有文件碎片分别进行hash处理,并根据所述文件碎片的hash值和存储节点的对应信息建立hash表;

发送模块,将所述hash表发送到共识网络;

共识网络记账装置,包括:

共识网络模块,包括实现共识机制的多个节点,用于通过一致性算法确保所述hash表的一致性;

记账模块,包括用于保存所述hash表的区块链,其中所述区块链将多个电子证明文件的hash表通过Merkle树进行处理得到的Merkle根放置在区块头。

2.根据权利要求1所述的一种基于区块链的电子证明系统,其特征在于,还包括:索引建立模块:用于根据电子证明文件的关键字和存储所述电子证明文件关联信息的区块链建立证明索引;

检索模块:用于通过所述证明索引进行搜索,找到与所述电子证明文件对应的区块链;

下载模块:用于从所述区块链下载与所述电子证明文件对应的hash表;

文件碎片获取模块:用于根据所述hash表搜索对应节点并通过消息协议下载对应的文件碎片;

文件重组模块:用于将下载的文件碎片重组为完整的加密文件;

解密模块:用于通过用户私钥将所述加密文件解密还原为电子证明文件。

3.根据权利要求1或2任一项所述的一种基于区块链的电子证明系统,其特征在于:所述的一致性算法采用Raft算法实现。

4.根据权利要求1或2任一项所述的一种基于区块链的电子证明系统,其特征在于:所述hash处理是指通过hash函数连续对同一文件碎片进行两次单向hash。

5.一种基于区块链的电子证明存证方法,其特征在于包括如下步骤:S110:将一个电子证明文件进行属性基加密处理;

S120:将经过加密的所述电子证明文件分割成多个文件碎片;

S130:将每个文件碎片分别随机复制多个副本,并将每个文件碎片及其副本分别随机分发到多个不同的存储节点,其中任一文件碎片及其副本的数量大于存储节点数量的一半且小于等于存储节点数量;

S140:对所有存储节点上的文件碎片分别进行hash处理,根据所有文件碎片的hash值和与之对应的存储节点的对应信息建立hash表;

S150:将所述hash表发送到共识网络;

S160:所述共识网络通过一致性算法确保将所述hash表准确地记录到区块链中;

S170:所述区块链将多个电子证明文件的hash表通过Merkle树进行处理,得到Merkle根放置在区块头。

6.根据权利要求5所述的一种基于区块链的电子证明存证方法,其特征在于:所述的一致性算法采用Raft算法实现。

7.根据权利要求5所述的一种基于区块链的电子证明存证方法,其特征在于:所述hash处理是指通过hash函数连续对同一文件碎片进行两次单向hash。

8.电子证明文件恢复方法,基于权利要求1或2所述的一种基于区块链的电子证明系统或权利要求5所述的一种基于区块链的电子证明存证方法,具体包括如下步骤:S210:根据电子证明文件的关键字和存储所述电子证明文件关联信息的区块链建立证明索引;

S220:通过所述证明索引在区块链中搜索,找到与所述电子证明文件对应的区块链;

S230:从所述区块链下载与所述电子证明文件对应的hash表;

S240:根据所述hash表搜索对应存储节点并通过消息协议下载对应的文件碎片;

S250:将下载的文件碎片重组为完整的加密文件;

S260:通过用户私钥将所述加密文件解密还原为电子证明文件。

说明书 :

一种基于区块链的电子证明系统及存证、文件恢复方法

技术领域

[0001] 本发明属于区块链技术领域,具体涉及一种基于区块链的电子证明系统及存证、文件恢复方法。

背景技术

[0002] 传统的电子证明系统主要有以下一些特点:1、电子签名制作数据用于电子签名时,属于电子签名人专有;2、签署时电子签名制作数据仅由电子签名人控制;3、签署后对电子签名的任何改动能够被发现;4、签署后对数据电文内容和形式的任何改动能够被发现,当事人也可以选择使用符合其约定的可靠条件的电子签名。
[0003] 这种传统的电子证明系统依赖于权威第三方机构提供服务并进行监管,如图1所示便是传统的电子证明系统的主要结构。
[0004] 在这个结构中,会发现传统的电子证明系统的主要问题表现在以下几个方面:1、性能方面:由于存在一个第三方的机构集中式提供证明的颁发与管理,那么这个集中机构便是整个系统架构的性能瓶颈所在,同时也导致了风险集中化;2、安全性方面:由于这个系统架构依赖于第三方机构集中服务,那么只要是这个第三方机构的所有服务受到了比较严重的安全事件,包括外部攻击和内部的误操作等等,便会导致系统的安全性问题,进而导致用户的信息泄露、数据丢失、数据损坏等等问题。具体如下:
[0005] 1、传统电子政务系统有极高的中心故障风险:传统的电子政务系统一般都是基于数据中心构建的,任何数据中心都有中心故障风险,这包括:软件出错,病毒,管理员误操作,自然灾害,机房故障等;数据中心不可用或者遭受破坏会导致直接经济损失,停产,降低生产力,处罚,丢失客户,同时也带来负面社会效应,客户满意度下降等。
[0006] 2、人为操作失误将导致无法挽回的错误:由于传统的电子政务系统是基于数据中心的模式构建的,在强中心化的体系下,系统都需要付出很大的人工成本去维护数据的安全性和可靠性,但是人无完人,人可能会由于疏忽和失误、知识或技能因素导致电子证明系统出现错误,甚至是无法挽回的错误。
[0007] 3、传统的电子证明系统可能造成用户隐私泄漏:传统的电子证明系统难以避免的是用户的隐私泄露问题,由于用户的数据都是集中化存储在对应节点的数据中心的,容易受到黑客等非法分子的入侵,盗取用户的信息进行信息买卖。同时也无法避免在数据中心的管理人员有意或者无意导致的数据丢失、用户隐私信息泄露等问题。

发明内容

[0008] 针对现有技术中所存在的不足,本发明提供一种能够实现多层级关系的权限控制、实现弱中心化管理、风险分散化、有效防止用户信息泄露、数据不可篡改、数据可追踪、人为操作可撤回、信息传递效率高的基于区块链的电子证明系统。
[0009] 一种基于区块链的电子证明系统,包括:
[0010] 分布式文件管理系统,包括:
[0011] 属性基加密模块,用于对电子证明文件进行属性基加密处理;
[0012] 文件分割模块,用于将经过加密的所述电子证明文件分割成多个文件碎片;
[0013] 复制分发模块,用于将每个文件碎片分别随机复制多个副本,并将每个文件碎片及其副本分别随机分发到多个不同的存储节点,其中任一文件碎片及其副本的数量大于存储节点数量的一半且小于等于存储节点数量;
[0014] Hash处理模块,用于对存储节点上的所有文件碎片分别进行hash处理,并根据所述文件碎片的hash值和存储节点的对应信息建立hash表;
[0015] 发送模块,将所述hash表发送到共识网络;
[0016] 共识网络记账装置,包括:
[0017] 共识网络模块,包括实现共识机制的多个节点,用于通过一致性算法确保所述hash表的一致性;
[0018] 记账模块,包括用于保存所述hash表的区块链,其中所述区块链将多个电子证明文件的hash表通过Merkle树进行处理得到的Merkle根放置在区块头。
[0019] 进一步地,还包括:
[0020] 索引建立模块:用于根据电子证明文件的关键字和存储所述电子证明文件关联信息的区块链建立证明索引;
[0021] 检索模块:用于通过所述证明索引进行搜索,找到与所述电子证明文件对应的区块链;
[0022] 下载模块:用于从所述区块链下载与所述电子证明文件对应的hash表;
[0023] 文件碎片获取模块:用于根据所述hash表搜索对应节点并通过消息协议下载对应的文件碎片;
[0024] 文件重组模块:用于将下载的文件碎片重组为完整的加密文件;
[0025] 解密模块:用于通过用户私钥将所述加密文件解密还原为电子证明文件。
[0026] 进一步地,所述的一致性算法采用Raft算法实现。
[0027] 进一步地,所述hash处理是指通过hash函数连续对同一文件碎片进行两次单向hash。
[0028] 一种基于区块链的电子证明存证方法,包括如下步骤:
[0029] S110:将一个电子证明文件进行属性基加密处理;
[0030] S120:将经过加密的所述电子证明文件分割成多个文件碎片;
[0031] S130:将每个文件碎片分别随机复制多个副本,并将每个文件碎片及其副本分别随机分发到多个不同的存储节点,其中任一文件碎片及其副本的数量大于存储节点数量的一半且小于等于存储节点数量;
[0032] S140:对所有存储节点上的文件碎片分别进行hash处理,根据所有文件碎片的hash值和与之对应的存储节点的对应信息建立hash表;
[0033] S150:将所述hash表发送到共识网络;
[0034] S160:所述共识网络通过一致性算法确保将所述hash表准确地记录到区块链中;
[0035] S170:所述区块链将多个电子证明文件的hash表通过Merkle树进行处理,得到Merkle根放置在区块头。
[0036] 进一步地,所述的一致性算法采用Raft算法实现。
[0037] 进一步地,所述hash处理是指通过hash函数连续对同一文件碎片进行两次单向hash。
[0038] 电子证明文件恢复方法,基于前述任一项所述的一种基于区块链的电子证明系统或一种基于区块链的电子证明存证方法,具体包括如下步骤:
[0039] S210:根据电子证明文件的关键字和存储所述电子证明文件关联信息的区块链建立证明索引;
[0040] S220:通过所述证明索引在区块链中搜索,找到与所述电子证明文件对应的区块链;
[0041] S230:从所述区块链下载与所述电子证明文件对应的hash表;
[0042] S240:根据所述hash表搜索对应存储节点并通过消息协议下载对应的文件碎片;
[0043] S250:将下载的文件碎片重组为完整的加密文件;
[0044] S260:通过用户私钥将所述加密文件解密还原为电子证明文件。
[0045] 相比于现有技术,本发明具有如下有益效果:
[0046] 1、通过采用属性基加密技术对电子证明信息进行属性加密,让对应的访问控制作为系统的权限开关,保证数据即使被窃取了也没有办法获得明文信息,实现了电子证明系统多层级关系的权限控制,显著提高了电子证明信息的安全性;
[0047] 2、通过将电子证明文件切割后的碎片进行分布式存储,实现了弱中心化管理,将风险分散化,有效解决了集中存储易出现故障、被攻击导致用户信息泄露等问题;
[0048] 3、通过使用区块链的Merkle Tree存储文件碎片信息的hash值,保证信息的可靠性,实现了数据的不可篡改以及对异常信息追踪溯源的功能,从而解决人为操作导致错误而不能被及时撤回解决的问题,提高电子证明信息传递效率。

附图说明

[0049] 图1为传统电子证明系统架构设计图;
[0050] 图2为本发明分布式文件管理系统的存证流程示意框图;
[0051] 图3为本发明电子证明系统结构示意图;
[0052] 图4为本发明一种基于区块链的电子证明存证方法的流程示意框图;
[0053] 图5为本发明电子证明文件恢复方法的流程示意框图。

具体实施方式

[0054] 为了使发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体图示,进一步阐述本发明。
[0055] 一种电子证明存证方法,如图4所示,包括如下步骤:
[0056] S110:将一个电子证明文件进行属性基加密处理;
[0057] S120:将经过加密的所述电子证明文件分割成多个文件碎片;
[0058] S130:将每个文件碎片分别随机复制多个副本,并将每个文件碎片及其副本分别随机分发到多个不同的存储节点,其中任一文件碎片及其副本的数量大于存储节点数量的一半且小于等于存储节点数量;
[0059] S140:对所有存储节点上的文件碎片分别进行hash处理,根据所有文件碎片的hash值和与之对应的存储节点的对应信息建立hash表(所述hash表包括一个电子证明文件所有文件碎片的存储信息);
[0060] S150:将所述hash表发送到共识网络;
[0061] S160:所述共识网络通过一致性算法确保将所述hash表准确地记录到区块链中;
[0062] S170:所述区块链将多个电子证明文件的hash表通过Merkle树进行处理,得到Merkle根放置在区块头。
[0063] 本发明中的电子证明文件(或者说是电子证明数据)使用属性基加密处理,属性基加密能够保证之后要解密的人需要是具备某种权限的人方可解密。为了更好的说明属性基加密算法,以电子证明机构为例,角色A具备属性:公安局、管理员、可信度80,角色B具备属性:工商局、运维人员、可信度40,现在我们定义一个规则“(公安局or工商局)and(可信度>60)and(管理员or管理中心工作人员)”,只有对应的角色的属性满足了这个规则的人才能解密我们加密的密文。因为角色A的部门属于公安局、可信度高于60、属于管理员角色,所以A可以解密我们加密的文件;但是B却不能满足可信度大于60以及不属于管理员或者管理中心工作人员的属性,因此没有办法解密我们加密的文件。由此可以看出,属性基加密对于电子证明文件的加密来说是非常合适的。
[0064] 本发明中的文件碎片,都是密文进行固定大小切割的,每个碎片块的大小可选为1MB,如果文件切割后有碎片的大小不够1MB,则用二进制0填充。之所以要讲文件进行碎片化,是因为这样可以对文件存储风险分散化,不再是集中式存储在数据中心中,而是以碎片的形式存储在去中心化的系统中。攻击者就算是获得了碎片也没有办法知道如何重组,即使重组了也需要属性基加密的私钥才能解密文件内容。这样可以提高电子证明文件的安全性。
[0065] 本发明中之所以需要进行文件碎片的复制,是因为之后将文件碎片随机存储在不同的节点中之后,如果没有采用冗余机制进行复制碎片,那么如果某一个节点出现故障之后这个节点上的碎片就无法得到恢复,也就没有办法还原拼凑成一个完整的文件了。考虑到安全性因素,任一文件碎片及其副本的数量应大于存储节点数量的一半。
[0066] 本发明中每个碎片文件都有各自的复制(副本),而每个副本都会随机选择对应的节点进行存储,因此为了避免出现一个节点存储超过两个副本的现象,任一文件碎片及其副本的数量应小于等于存储节点数量。
[0067] 本发明中所谓的存储节点就是加入到分布式存储的物理机,可以是对应部门的台式电脑,也可以是专用的服务器,由于我们的存储功能需要持续在线,因此专用常年开机的服务器数量需要占大多数。
[0068] 本发明中生成的Hash表内容会交给共识网络进行处理,然后记录在区块链中,作为一个文件的完整交易过程,同时这个交易记录在区块链之后便具备了不可篡改、可追溯的功能。本发明的做法是,将记录文件碎片存储信息的hash表作为交易内容保存在区块体,利用区块链将文件碎片存储的hash信息进行打包,并计算Merkle根放置在区块头,由此来保证数据的不可篡改性。
[0069] 本发明中共识网络的主要工作就是实现共识机制,采用共识算法实现让有效的可靠的节点进行信息记录。其作用就是在多个节点中,实现信息的最终一致性,进而使得记录在区块链中的信息是得到了绝大部分节点认可的正确的信息。
[0070] 本发明通过采用属性基加密技术对电子证明信息进行属性加密,让对应的访问控制作为系统的权限开关,保证数据即使被窃取了也没有办法获得明文信息,实现了电子证明系统多层级关系的权限控制;又通过将电子证明文件切割后的碎片进行分布式存储,实现了弱中心化管理,将风险分散化,不再存在集中存储易出现故障、被攻击导致用户信息泄露等问题;通过使用区块链的Merkle树存储文件碎片信息的hash值,保证信息的可靠性,实现了数据的不可篡改以及对异常信息追踪溯源的功能,从而解决人为操作导致错误而不能被及时撤回解决的问题,提高电子证明信息传递效率。
[0071] 作为优化,所述一致性算法采用Raft算法实现。由于本发明的系统是一个电子证明系统,其对应的区块链应用背景是属于联盟链。因此本发明采用的共识算法是基于故障容错算法Raft而不采取类似于比特币那样的工作量证明POW。Raft算法可以高效迅速地在节点间达成一致性,能够有效提高共识效率。
[0072] 作为优化,步骤S140中所述存储节点的对应信息可以包括IP和路由信息。
[0073] 作为优化,步骤S140中所述的hash处理是指通过hash函数连续对同一文件碎片进行两次单向hash。进行两次hash可以有效提高数据的安全性,并且对性能的影响很小,可以忽略不计。
[0074] 一种基于区块链的电子证明系统,如图2、3所示,包括:
[0075] 分布式文件管理系统,包括:
[0076] 属性基加密模块,用于对电子证明文件进行属性基加密处理;
[0077] 文件分割模块,用于将经过加密的所述电子证明文件分割成多个文件碎片;
[0078] 复制分发模块,用于将每个文件碎片分别随机复制多个副本,并将每个文件碎片及其副本分别随机分发到多个不同的存储节点,其中任一文件碎片及其副本的数量大于存储节点数量的一半且小于等于存储节点数量;
[0079] Hash处理模块,用于对存储节点上的所有文件碎片分别进行hash处理,并根据所述文件碎片的hash值和存储节点的对应信息建立hash表;
[0080] 发送模块,将所述hash表发送到共识网络;
[0081] 共识网络记账装置,包括:
[0082] 共识网络模块,包括实现共识机制的多个节点,用于通过一致性算法确保所述hash表的一致性;
[0083] 记账模块,包括用于保存所述hash表的区块链,其中所述区块链将多个电子证明文件的hash表通过Merkle树进行处理得到的Merkle根放置在区块头。
[0084] 本电子证明系统可以实现对电子证明进行存证的功能。本电子证明系统中所述一致性算法可采用Raft算法来实现;所述存储节点的对应信息可以包括IP和路由信息;所述的hash处理可以是通过hash函数连续对同一文件碎片进行两次单向hash。
[0085] 进一步地,所述一种基于区块链的电子证明系统,还包括:
[0086] 索引建立模块:用于根据电子证明文件的关键字和存储所述电子证明文件关联信息的区块链建立证明索引;
[0087] 检索模块:用于通过所述证明索引进行搜索,找到与所述电子证明文件对应的区块链;
[0088] 下载模块:用于从所述区块链下载与所述电子证明文件对应的hash表;
[0089] 文件碎片获取模块:用于根据所述hash表搜索对应节点并通过消息协议下载对应的文件碎片;
[0090] 文件重组模块:用于将下载的文件碎片重组为完整的加密文件;
[0091] 解密模块:用于通过用户私钥将所述加密文件解密还原为电子证明文件。
[0092] 所述证明索引就是用户自己本身维护的证明关键字和区块链地址的一个对应表。所述用户可以使用区块链浏览器来搜索对应的区块链。所述用户私钥由用户自己保管,能够解密电子证明文件。
[0093] 本发明在前述任一种电子证明系统或前述一种电子证明存证方法的基础上,还提供了一种电子证明文件恢复的方法,如图5所示,具体包括如下步骤:
[0094] S210:根据电子证明文件的关键字和存储所述电子证明文件关联信息的区块链建立证明索引;
[0095] S220:通过所述证明索引在区块链中搜索,找到与所述电子证明文件对应的区块链;
[0096] S230:从所述区块链下载与所述电子证明文件对应的hash表;
[0097] S240:根据所述hash表搜索对应存储节点并通过消息协议下载对应的文件碎片;
[0098] S250:将下载的文件碎片重组为完整的加密文件;
[0099] S260:通过用户私钥将所述加密文件解密还原为电子证明文件,以供证明或校验使用。
[0100] 本发明采用基于区块链的分布式文件管理系统设计,实现电子证明系统证明文件的恢复还原。文件碎片在下载的时候对应每一个碎片都只下载一份,不用每一个副本都下载,最后这个碎片的组合刚好是完整的加密文件。
[0101] 以上所述仅为本发明的优选实施方式,本发明的保护范围并不仅限于上述实施方式,凡是属于本发明原理的技术方案均属于本发明的保护范围。对于本领域的技术人员而言,在不脱离本发明的原理的前提下进行的若干改进,这些改进也应视为本发明的保护范围。