一种在区块链上存储文件的方法与系统技术方案

技术编号:33529981 阅读:12 留言:0更新日期:2022-05-19 01:58
本发明专利技术涉及一种在区块链上存储文件的方法与系统,属于区块链技术领域。该系统包括用户管理模块、用户登录模块、证书及密钥管理模块、区块链模块和文件管理模块。本发明专利技术首先通过负载均衡策略实现区块链上链权限的自动分配,然后对用户上传文件进行hash校验、加密存储,并将签名信息进行上链。本发明专利技术实现区块链上的文件不能被随意读取,修改,保证文件安全性。通过对链上信息进行签名,实现对数据的确权,支撑数字化背景下,数据资源的确权及相关应用,易于推广应用。易于推广应用。易于推广应用。

【技术实现步骤摘要】
一种在区块链上存储文件的方法与系统


[0001]本专利技术属于区块链
,具体涉及一种在区块链上存储文件的方法与系统。

技术介绍

[0002]区块链是一个链式存储结构,区块就是链式存储结构中的数据元素,区块链由区块相互连接形成单向链式结构,其中第一个区块被称为创始区块,内容是固定好的,无法进行更改。
[0003]当新的交易产生时,通过把多笔交易以组的形式放在一个区块中(比特币是每隔10分钟就会产生一个块),然后再将这个块追加到前一个区块的后面,如此依次链接起来。最终不断将新产生的交易以组的形式存储在块中,并进行延展链接。
[0004]区块分为块头和块体两部分。块体中存放交易的集合,即每隔10分钟,会对产生的多笔交易进行集合成块,再以块为单位进行上链。块头中包含上一个区块的哈希值(PreHash)、本区块体的哈希值(Hash),以及时间戳(TimeStamp)、版本号等信息。当需要将当前区块链接到上一区块时,那么一定会指定前一区块的Hash是多少。以此类推,每一个区块都包含有前一区块的Hash,进行不断进链接,这样就能很好地保证链上的信息不被修改,因为一旦其中的一个区块信息被修改,将无法通过下一个区块的验证,那么被修改的信息也将不被认可。
[0005]区块链技术对区块的大小有限制,目前通常是1

4M。当需要在区块链上存储资料文件的时候,目前常见的方式是计算文件的hash值,然后将这个hash值及路径信息存储到区块链上。当需要查询文件时,先到区块链上查询文件的hash值和路径信息,然后再根据hash值和路径信息在文件系统中查询到对应的文件。
[0006]目前在区块链上存储文件的方式,都是采用通用的文件系统,以明文方式存储文件。这导致攻击者不需要通过区块链,直接通过文件系统就可以对存储介质上的文件进行查询、删除甚至篡改,严重威胁着区块链上文件的安全性,给基于文件存储的区块链应用带来安全隐患。
[0007]同时,存储在链上的信息没有进行签名,导致文件难以确权,制约着数据确权方面的应用。因此如何克服现有技术的不足是目前区块链
亟需解决的问题。

技术实现思路

[0008]本专利技术的目的是为了解决现有技术的不足,提供一种在区块链上存储文件的方法和系统,通过专用的文件管理模块,既能够实现在区块链上存储文件,又能够有效防止直接通过文件系统对存储介质上的文件进行查询、删除甚至篡改。
[0009]为实现上述目的,本专利技术采用的技术方案如下:一种在区块链上存储文件的系统,包括用户管理模块、用户登录模块、证书及密钥管理模块、区块链模块和文件管理模块;用户管理模块、用户登录模块、证书及密钥管理模块集中部署在主站;
区块链模块、文件管理模块分别部署在各区块链节点上;用户管理模块,用于管理系统中所有的系统用户信息;用户登录模块,用于对系统用户登录进行验证,验证合格后才能登录;证书及密钥管理模块,用于管理系统中所有的证书以及证书对应的对称密钥,并将证书管理与用户管理进行关联;用于为每个用户生成不同的证书及随机对称密钥,并用于证书的维护、销毁;区块链模块,用于管理本节点上区块链,包括区块链初始化、数据上链、数据查询以及节点之间共识;文件管理模块,用于管理本节点上文件查询、上传,以及存储文件的加密解密以及hash验证功能。
[0010]进一步,优选的是,用户登录模块中,登录时,对用户提供自己的证书进行验证,验证合格后才能登录。
[0011]进一步,优选的是,证书及密钥管理模块为每个用户生成证书能根据用户需求存放在ukey或者手机端,分别用于通过电脑终端登录或者通过移动APP登录。
[0012]本专利技术同时提供一种在区块链上存储文件的方法,采用上述在区块链上存储文件的系统,包括下列步骤:步骤(1),系统初始化:系统包括一个主站和多个区块链节点;系统首先启动主站,在完成主站所有模块初始化后,等待用户登录及节点接入;然后启动区块链节点,区块链节点先根据配置从主站或其它节点获取节点列表,并将本节点地址添加到列表里面,同时同步主站或其它节点列表,最后初始化本节点所有模块,完成后等待用户进行文件操作;步骤(2),用户登录:用户通过提供证书进行登录,登录完成后,通过全局负载均衡策略将文件管理功能平衡、分摊到各节点的文件管理模块中,由各节点的文件管理模块提供文件查询及存储功能;步骤(3),上传文件:用户通过添加单个、多个文件或文件夹后,上传到节点;步骤(4),生成上链数据相关信息:对于前端上传的每个文件,均生成摘要文件,每个摘要文件与原文件同名;然后对于每个摘要文件,包括文件名,单独进行加密后,统一存放到abstract文件夹下;对上传的每个文件,包括文件名,单独进行加密后,统一存放到files文件夹下;文件及摘要加密密钥为用户对应的对称密钥;生成文件存储路径,abstract和files文件夹均存储在该路径下;对abstract文件夹和files文件夹下所有文件,统一计算生成一个hash值,并使用用户证书进行签名;步骤(5),数据打包及上链:当步骤(4)用于上链的签名信息生成后,通过区块链模块对用于上链的签名信息进行打包,打包完成后,通过共识机制将包、存储的文件及路径同步到其它节点,其它节点在相同的路径下存储文件;然后等待共识,共识完成后,即可创建新的区块并实现数据上
链,上链完成后,由用户所在节点将区块的hash返回给用户管理模块保存。
[0013]进一步,优选的是,步骤(3)中,对于添加的文件夹,前端自动压缩为压缩包。
[0014]进一步,优选的是,步骤(4)中,摘要文件大小在1M以内。
[0015]进一步,优选的是,步骤(4)中,按”年/月/日/时/分/秒/毫秒/节点名称”的格式生成文件存储路径,abstract和files文件夹均存储在该路径下。
[0016]进一步,优选的是,步骤(4)中,使用用户证书进行签名具体为:使用用户证书对hash值+”,”+文件存储路径进行签名。
[0017]本专利技术还提供一种在区块链上查询文件的方法,采用上述在区块链上存储文件的系统,包括下列步骤:S1,用户文件查询:用户登录后,浏览文件列表,内容为区块的hash值,选择要查询的区块hash值;S2,根据区块hash查询区块值:区块链模块根据用户提交的区块hash值,查询对应的区块值,并取出其中的签名;S3,对签名进行解密:对签名进行解密,得到文件路径信息和文件hash值;S4,文件hash值验证:根据文件路径信息查找到对应的文件夹,如果没有对应的文件夹,进行提示并报错;如果找到对应的文件夹,则统一计算abstract和files文件夹下所有文件的hash值,并与解密出来的文件hash进行比对,如果一致,则验证通过;如果不一致,给出错误提示;S5,返回查询信息:当S4验证通过后,根据用户需求,解密abstract或files文件夹下所有文件,并返回给用户,供用户展示摘要或者供用户下载。
[0018]本专利技术与现有技术相比,其有益效果为:本专利技术提出的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种在区块链上存储文件的系统,其特征在于,包括用户管理模块(101)、用户登录模块(102)、证书及密钥管理模块(103)、区块链模块(104)和文件管理模块(105);用户管理模块(101)、用户登录模块(102)、证书及密钥管理模块(103)集中部署在主站;区块链模块(104)、文件管理模块(105)分别部署在各区块链节点上;用户管理模块(101),用于管理系统中所有的系统用户信息;用户登录模块(102),用于对系统用户登录进行验证,验证合格后才能登录;证书及密钥管理模块(103),用于管理系统中所有的证书以及证书对应的对称密钥,并将证书管理与用户管理进行关联;用于为每个用户生成不同的证书及随机对称密钥,并用于证书的维护、销毁;区块链模块(104),用于管理本节点上区块链,包括区块链初始化、数据上链、数据查询以及节点之间共识;文件管理模块(105),用于管理本节点上文件查询、上传,以及存储文件的加密解密以及hash验证功能。2.根据权利要求1所述的在区块链上存储文件的系统,其特征在于,用户登录模块(102)中,登录时,对用户提供自己的证书进行验证,验证合格后才能登录。3.根据权利要求1所述的在区块链上存储文件的系统,其特征在于,证书及密钥管理模块(103)为每个用户生成证书能根据用户需求存放在ukey或者手机端,分别用于通过电脑终端登录或者通过移动APP登录。4.一种在区块链上存储文件的方法,采用权利要求1~3任意一项所述的在区块链上存储文件的系统,其特征在于,包括下列步骤:步骤(1),系统初始化:系统包括一个主站和多个区块链节点;系统首先启动主站,在完成主站所有模块初始化后,等待用户登录及节点接入;然后启动区块链节点,区块链节点先根据配置从主站或其它节点获取节点列表,并将本节点地址添加到列表里面,同时同步主站或其它节点列表,最后初始化本节点所有模块,完成后等待用户进行文件操作;步骤(2),用户登录:用户通过提供证书进行登录,登录完成后,通过全局负载均衡策略将文件管理功能平衡、分摊到各节点的文件管理模块中,由各节点的文件管理模块提供文件查询及存储功能;步骤(3),上传文件:用户通过添加单个、多个文件或文件夹后,上传到节点;步骤(4),生成上链数据相关信息:对于前端上传的每个文件,均生成摘要文件,每个摘要文件与原文件同名;然后对于每个摘要文件,包括文件名,单独进行加密后,统一存放到abstract文件...

【专利技术属性】
技术研发人员:张劲松李瑜吴迟林罗军曾勇刘涛
申请(专利权)人:云南云电同方科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1