首页 > 专利 > 湖北工程学院 > 一种基于区块链的可信云存储方法及系统专利详情

一种基于区块链的可信云存储方法及系统   0    0

有效专利 查看PDF
专利申请流程有哪些步骤?
专利申请流程图
申请
申请号:指国家知识产权局受理一件专利申请时给予该专利申请的一个标示号码。唯一性原则。
申请日:提出专利申请之日。
2019-03-15
申请公布
申请公布指发明专利申请经初步审查合格后,自申请日(或优先权日)起18个月期满时的公布或根据申请人的请求提前进行的公布。
申请公布号:专利申请过程中,在尚未取得专利授权之前,国家专利局《专利公报》公开专利时的编号。
申请公布日:申请公开的日期,即在专利公报上予以公开的日期。
2019-08-06
授权
授权指对发明专利申请经实质审查没有发现驳回理由,授予发明专利权;或对实用新型或外观设计专利申请经初步审查没有发现驳回理由,授予实用新型专利权或外观设计专利权。
2021-06-29
预估到期
发明专利权的期限为二十年,实用新型专利权期限为十年,外观设计专利权期限为十五年,均自申请日起计算。专利届满后法律终止保护。
2039-03-15
基本信息
有效性 有效专利 专利类型 发明专利
申请号 CN201910198624.1 申请日 2019-03-15
公开/公告号 CN110011981B 公开/公告日 2021-06-29
授权日 2021-06-29 预估到期日 2039-03-15
申请年 2019年 公开/公告年 2021年
缴费截止日
分类号 H04L29/06H04L9/06H04L29/08 主分类号 H04L29/06
是否联合申请 独立申请 文献类型号 B
独权数量 1 从权数量 7
权利要求数量 8 非专利引证数量 1
引用专利数量 1 被引证专利数量 0
非专利引证 1、2018.03.29袁勇等.区块链共识算法的发展现状与展望《.自动化学报》.2018,第44卷(第11期),第2011-2022页. 袁勇等.区块链共识算法的发展现状与展望《.自动化学报》.2018,第44卷(第11期),第2011-2022页. 刘亚辉.基于区块链的可信电子券系统的设计与实现《.中国优秀硕士学位论文全文数据库信息科技辑》.2018,第2-5章.;
引用专利 US2018089683A 被引证专利
专利权维持 3 专利申请国编码 CN
专利事件 事务标签 公开、实质审查、授权
申请人信息
申请人 第一申请人
专利权人 湖北工程学院 当前专利权人 湖北工程学院
发明人 熊曾刚、莫磊、宋伟、徐方、彭智勇 第一发明人 熊曾刚
地址 湖北省孝感市交通大道272号 邮编 432000
申请人数量 1 发明人数量 5
申请人所在省 湖北省 申请人所在市 湖北省孝感市
代理人信息
代理机构
专利代理机构是经省专利管理局审核,国家知识产权局批准设立,可以接受委托人的委托,在委托权限范围内以委托人的名义办理专利申请或其他专利事务的服务机构。
北京轻创知识产权代理有限公司 代理人
专利代理师是代理他人进行专利申请和办理其他专利事务,取得一定资格的人。
杨立、姜展志
摘要
本发明涉及一种基于区块链的可信云存储方法及系统,该方法包括:接入区块链网络的至少两个云存储服务器共识协定出记录权节点和非记录权节点;记录权节点从区块链网络接收密文文件,且基于密文文件构建完整区块,以及将完整区块发布至区块链网络;非记录权节点从区块链网络接收完整区块,且验证完整区块是否可信,若是,则将完整区块加入区块链,若否,则停止将完整区块加入区块链。本发明提供的基于区块链的可信云存储方法及系统,非记录权节点可以只将可信性验证通过的完整区块加入区块链,实现非记录节点基于区块链为密文文件提供可信云存储服务,降低了区块链占用非记录权节点中的磁盘空间,提高了磁盘性能。
  • 摘要附图
    一种基于区块链的可信云存储方法及系统
  • 说明书附图:图1
    一种基于区块链的可信云存储方法及系统
  • 说明书附图:图2
    一种基于区块链的可信云存储方法及系统
  • 说明书附图:图3
    一种基于区块链的可信云存储方法及系统
  • 说明书附图:图4
    一种基于区块链的可信云存储方法及系统
  • 说明书附图:图5
    一种基于区块链的可信云存储方法及系统
  • 说明书附图:图6
    一种基于区块链的可信云存储方法及系统
  • 说明书附图:图7
    一种基于区块链的可信云存储方法及系统
法律状态
序号 法律状态公告日 法律状态 法律状态信息
1 2021-06-29 授权
2 2019-08-06 实质审查的生效 IPC(主分类): H04L 29/06 专利申请号: 201910198624.1 申请日: 2019.03.15
3 2019-07-12 公开
权利要求
权利要求书是申请文件最核心的部分,是申请人向国家申请保护他的发明创造及划定保护范围的文件。
1.一种基于区块链的可信云存储方法,其特征在于,包括:
接入区块链网络的至少两个云存储服务器共识协定出记录权节点和非记录权节点;
所述记录权节点从所述区块链网络接收密文文件,且基于所述密文文件构建完整区块,以及将所述完整区块发布至区块链网络;
所述非记录权节点从所述区块链网络接收所述完整区块,且验证所述完整区块是否可信,若是,则将所述完整区块加入区块链,若否,则停止将所述完整区块加入所述区块链;
所述接入区块链网络的至少两个云存储服务器共识协定出记录权节点和非记录权节点,具体包括:
任一所述云存储服务器采用性能贡献计算公式对性能向量和权重向量进行计算,得到性能贡献值,且统计应用代币拥有量,以及基于所述性能贡献值、所述应用代币拥有量和委托权益证明协议选举出至少一个投票节点;
至少一个所述投票节点基于一致性哈希策略从至少两个所述云存储服务器中选择出所述记录权节点,且将不同于所述记录权节点的所述云存储服务器确定为所述非记录权节点;
所述一致性哈希策略包括负载因子计算公式、随机函数和总值计算公式,至少一个所述投票节点基于一致性哈希策略从至少两个所述云存储服务器中选择出所述记录权节点,具体包括:
获取节点哈希值;
基于所述节点哈希值确定在所述投票节点所属一致性哈希域上的任一所述云存储服务器;
针对任一所述云存储服务器收集负载参数;
基于所述负载因子计算公式对所述负载参数进行计算,得到负载因子;
将所述负载因子和所述性能贡献值组合为综合因子,所述综合因子用于表征对应所述云存储服务器的一致性哈希性能;
应用所述随机函数生成随机数;
从所述综合因子中分解出所述负载因子和所述性能贡献值;
基于所述总值计算公式对所述随机数、所述负载因子和所述性能贡献值进行求和,得到总值;
基于所述总值将与所述节点哈希值对应的所述云存储服务器确定为所述记录权节点。

2.根据权利要求1所述的基于区块链的可信云存储方法,其特征在于,在所述记录权节点基于所述密文文件构建完整区块之前,还包括:
请求节点将用于唯一标识待加密文件的文件标识信息发送至所述区块链网络;
任一所述云存储服务器从所述区块链网络接收所述文件标识信息,且基于所述文件标识信息去重检验是否存在所述待加密文件,若否,则通过所述区块链网络向所述请求节点反馈用于指示对应的所述云存储服务器中不存在所述待加密文件的第一状态信 息,若是,则通过所述区块链网络向所述请求节点反馈用于指示对应的所述云存储服务器中已存在所述待加密文件的第二状态信息;
当所述请求节点从所述区块链网络接收到所述第一状态信息时,所述请求节点基于收敛加密模型对所述待加密文件进行加密,得到所述密文文件,且将所述密文文件上传给接入所述区块链网络的缓存节点;
当所述请求节点从所述区块链网络接收到所述第二状态信息时,所述请求节点停止加密所述待加密文件。

3.根据权利要求2所述的基于区块链的可信云存储方法,其特征在于,所述收敛加密模型包括密钥加密函数和文件加密函数,当所述请求节点从所述区块链网络接收到所述第一状态信息时,所述请求节点基于收敛加密模型对所述待加密文件进行加密,得到所述密文文件,具体包括:
所述请求节点应用所述密钥加密函数对所述待加密文件进行加密,得到文件密钥;
所述请求节点应用所述文件加密函数对所述待加密文件和所述文件密钥进行加密,得到所述密文文件。

4.根据权利要求1所述的基于区块链的可信云存储方法,其特征在于,所述性能贡献计算公式具体为:
Si=k1×Ci+k2×Di+Mi×k3+Ti×k4+Ri×k5
其中,Si表示第i个所述云存储服务器的所述性能贡献值,Ci表示第i个所述云存储服务器在设定时段内的CPU主频性能,Di表示第i个所述云存储服务器的空闲磁盘占比,Mi表示第i个所述云存储服务器的内存使用占比,Ti表示第i个所述云存储服务器接入所述区块链网络的总计时,Ri表示第i个所述云存储服务器的平均响应时间,k1表示与所述CPU主频性能Ci对应的权重,k2表示与所述空闲磁盘占比Di对应的权重,k3表示与所述内存使用占比Mi对应的权重,k4表示与所述总计时Ti对应的权重,k5表示与所述平均响应时间Ri对应的权重。

5.根据权利要求1所述的基于区块链的可信云存储方法,其特征在于,所述记录权节点基于所述密文文件构建完整区块,具体包括:
应用分块函数对所述密文文件进行分块,得到多个文件块;
应用预设整合条件将所有所述文件块整合为默克尔树,基于所述默克尔树构建具有完整性的默克尔哈希树;
将所述默克尔哈希树存入区块结构,得到所述完整区块。

6.根据权利要求1所述的基于区块链的可信云存储方法,其特征在于,所述非记录权节点验证所述完整区块是否可信,具体包括:
从所述完整区块中查找出第一哈希值;
采用哈希算法对所述完整区块中的文件体进行计算,得到第二哈希值;
基于所述第一哈希值与所述第二哈希值验证所述文件体的可信性。

7.根据权利要求1‑6任一项所述的基于区块链的可信云存储方法,其特征在于,在所述非记录权节点将所述完整区块加入区块链之后,还包括:
请求节点基于请求哈希值确定任一所述云存储服务器在哈希环上的IP地址,基于所述IP地址将文件访问请求发送至所述区块链网络;
当所述记录权节点从所述区块链网络接收到所述文件访问请求时,所述记录权节点通过所述区块链网络向所述非记录权节点发送网络请求;
当所述非记录权节点从所述区块链网络接收到所述文件访问请求时,所述非记录权节点通过所述区块链网络向所述请求节点反馈与所述区块链对应的文件账本;
当所述非记录权节点从所述区块链网络接收到所述网络请求时,所述非记录权节点对所述文件账本进行简单访问身份验证,且在验证通过时通过所述区块链网络向所述请求节点反馈所述文件账本。

8.一种基于区块链的可信云存储系统,其特征在于,包括:
接入区块链网络的至少两个云存储服务器,用于共识协定出记录权节点和非记录权节点;
所述记录权节点,用于从所述区块链网络接收密文文件,且基于所述密文文件构建完整区块,以及将所述完整区块发布至区块链网络;
所述非记录权节点,用于从所述区块链网络接收所述完整区块,且验证所述完整区块是否可信,若是,则将所述完整区块加入区块链,若否,则停止将所述完整区块加入所述区块链;
所述共识协定出记录权节点和非记录权节点,具体包括:
任一所述云存储服务器采用性能贡献计算公式对性能向量和权重向量进行计算,得到性能贡献值,且统计应用代币拥有量,以及基于所述性能贡献值、所述应用代币拥有量和委托权益证明协议选举出至少一个投票节点;
至少一个所述投票节点基于一致性哈希策略从至少两个所述云存储服务器中选择出所述记录权节点,且将不同于所述记录权节点的所述云存储服务器确定为所述非记录权节点;
所述一致性哈希策略包括负载因子计算公式、随机函数和总值计算公式,至少一个所述投票节点基于一致性哈希策略从至少两个所述云存储服务器中选择出所述记录权节点,具体包括:
获取节点哈希值;
基于所述节点哈希值确定在所述投票节点所属一致性哈希域上的任一所述云存储服务器;
针对任一所述云存储服务器收集负载参数;
基于所述负载因子计算公式对所述负载参数进行计算,得到负载因子;
将所述负载因子和所述性能贡献值组合为综合因子,所述综合因子用于表征对应所述云存储服务器的一致性哈希性能;
应用所述随机函数生成随机数;
从所述综合因子中分解出所述负载因子和所述性能贡献值;
基于所述总值计算公式对所述随机数、所述负载因子和所述性能贡献值进行求和,得到总值;
基于所述总值将与所述节点哈希值对应的所述云存储服务器确定为所述记录权节点。
说明书

技术领域

[0001] 本发明涉及云存储技术领域,具体涉及一种基于区块链的可信云存储方法及系统。

背景技术

[0002] 目前,云存储倾向于采用第三方服务商提供的云存储解决方案,这种云存储解决方案面临着第三方服务商不可信的问题,需要可信的第三方服务商来保证云存储解决方案提供的云存储服务是可信的。
[0003] 在接入区块链网络的云存储服务器中,区块链通过数字证书、签名和加密等方式为海量数据提供安全保障,将区块链应用于上述云存储服务器中能够有效提高云存储服务的可信性,但是云存储服务器需要为可信云存储服务提供较多的磁盘空间。

发明内容

[0004] 针对现有技术中云存储服务器为基于区块链的可信云存储提供较多的磁盘空间的不足,本发明提供一种基于区块链的可信云存储方法及系统。
[0005] 第一方面,本发明提供了一种基于区块链的可信云存储方法,包括:
[0006] 接入区块链网络的至少两个云存储服务器共识协定出记录权节点和非记录权节点;
[0007] 所述记录权节点从所述区块链网络接收密文文件,且基于所述密文文件构建完整区块,以及将所述完整区块发布至区块链网络;
[0008] 所述非记录权节点从所述区块链网络接收所述完整区块,且验证所述完整区块是否可信,若是,则将所述完整区块加入区块链,若否,则停止将所述完整区块加入所述区块链。
[0009] 第二方面,本发明提供了一种基于区块链的可信云存储系统,包括:
[0010] 接入区块链网络的至少两个云存储服务器,用于共识协定出记录权节点和非记录权节点;
[0011] 所述记录权节点,用于从所述区块链网络接收密文文件,且基于所述密文文件构建完整区块,以及将所述完整区块发布至区块链网络;
[0012] 所述非记录权节点,用于从所述区块链网络接收所述完整区块,且验证所述完整区块是否可信,若是,则将所述完整区块加入区块链,若否,则停止将所述完整区块加入所述区块链。
[0013] 本发明提供的基于区块链的可信云存储方法及系统的有益效果是:记录权节点基于密文文件构建并发布完整区块至区块链网络,使得非记录权节点能够从区块链网络中获得完整区块,非记录权节点可以只将可信性验证通过的完整区块加入区块链,实现非记录节点基于区块链为密文文件提供可信云存储服务,相比于传统的云存储方案,降低了区块链占用非记录权节点中的磁盘空间。

实施方案

[0022] 以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
[0023] 实施例一
[0024] 如图1所示,本发明实施例的一种基于区块链的可信云存储方法,该方法包括:
[0025] 步骤110、接入区块链网络的至少两个云存储服务器共识协定出记录权节点和非记录权节点;
[0026] 步骤120、记录权节点从区块链网络接收密文文件,且基于密文文件构建完整区块,以及将完整区块发布至区块链网络;
[0027] 步骤130、非记录权节点从区块链网络接收完整区块,且验证完整区块是否可信,若是,则将完整区块加入区块链,若否,则停止将完整区块加入区块链。
[0028] 区块链网络可以包括对等计算机网络(P2P),接入区块链网络的诸如云存储服务器和客户端等设备成为云存储网络节点,记录权节点是获得记录密文文件权限的云存储网络节点,非记录权节点是未获得记录密文文件权限的云存储网络节点。
[0029] 非记录权节点将验证完整区块的可信性作为在区块链中添加完整区块的条件,过滤掉可信性验证不通过的完整区块,仅将可信性验证通过的完整区块加入区块链,区块链具备防篡改、防泄漏、透明和可追溯的特点,能够为密文文件提供安全保障,实现非记录节点基于区块链为密文文件提供可信云存储服务,相比于传统的云存储方案,降低了区块链占用非记录权节点中的磁盘空间,并且能够更好地整合及利用闲置存储空间,提高存储空间的使用率,提高了磁盘性能。
[0030] 作为可选的实施方式,步骤110具体包括:
[0031] 步骤111、任一云存储服务器采用性能贡献计算公式对性能向量和权重向量进行计算,得到性能贡献值,且统计应用代币拥有量,以及基于性能贡献值、应用代币拥有量和委托权益证明协议选举出至少一个投票节点;
[0032] 步骤112、至少一个投票节点基于一致性哈希策略从至少两个云存储服务器中选择出记录权节点,且将不同于记录权节点的云存储服务器确定为非记录权节点。
[0033] 在一些具体实例中,云存储服务器的个数为4个,4个云存储服务器分别采用性能贡献计算公式对性能向量[Ci Di Mi Ti Ri]和权重向量[k1 k2 k3 k4 k5]进行加权计算,得到性能贡献值Si。
[0034] 性能贡献计算公式具体为:
[0035] Si=k1×Ci+k2×Di+Mi×k3+Ti×k4+Ri×k5
[0036] 其中,Si表示第i个云存储服务器的性能贡献值,Ci表示第i个云存储服务器在设定时段内的CPU主频性能,Di表示第i个云存储服务器的空闲磁盘占比,Mi表示第i个云存储服务器的内存使用占比,Ti表示第i个云存储服务器接入区块链网络的总计时,Ri表示第i个云存储服务器的平均响应时间,k1表示与CPU主频性能Ci对应的权重,k2表示与空闲磁盘占比Di对应的权重,k3表示与内存使用占比Mi对应的权重,k4表示与总计时Ti对应的权重,k5表示与平均响应时间Ri对应的权重。
[0037] 在一些具体实例中,采用统计函数token=Sum(wallet)统计得到应用代币拥有量,采用共识函数StockServers=Vote(Si,token,DPOS)投票选举出投票节点,其中,DPOS为委托权益证明协议,如此可以通过结合委托权益证明协议和一致性哈希策略实现文件记录权的分派,以完成共识协定。
[0038] 作为可选的实施方式,一致性哈希策略包括负载因子计算公式、随机函数和总值计算公式。
[0039] 步骤112具体包括:获取节点哈希值;基于节点哈希值确定在所投票节点所属一致性哈希域上的任一云存储服务器;针对任一云存储服务器收集负载参数;基于负载因子计算公式对负载参数进行计算,得到负载因子;将负载因子和性能贡献值组合为综合因子,综合因子用于表征对应所云存储服务器的一致性哈希性能;应用随机函数生成随机数;从综合因子中分解出负载因子和所述性能贡献值;基于总值计算公式对随机数、负载因子和性能贡献值进行求和,得到总值;基于总值将与节点哈希值对应的云存储服务器确定为记录权节点。
[0040] 投票节点能够将哈希环平均分割为不同的一致性哈希域,并沿着哈希环的顺时针方向统计在各个一致性哈希域上的所有云存储服务器的负载情况,获得云存储服务器集合,并收集各个云存储服务器的负载参数。
[0041] 在一些具体实例中,与投票节点对应的节点哈希值表示为:skey=ServerHashk(1 ,server),在投票节点所属一致性哈希域上的任一云存储服务器表示为:T=GetCircleServer(skey,Len(StockServers)),其中,ServerHash()表示统一哈希函数,GetCircleServer()表示环获取函数,Len(StockServers)为用于统计投票节点个数的长度函数,实现引入具有平衡性、单调性、分散性和负载均衡等特征的一致性哈希算法。
[0042] 在一些具体实例中,负载因子计算公式表示为:
[0043]
[0044] 其中,Pi表示第i个负载参数,ai表示与第i个负载参数对应的权重,负载参数包括节点请求占比P1、记录权占比P2和节点命中率P3。
[0045] 在一些具体实例中,综合因子表示为:Oi=(Si,Wi),随机数表示为:random=Random(0,1),总值计算公式表示为:crbi=Si×random+Wi×(1‑random),其中,crbi表示总值,随机数保证了构造排序的随机性。
[0046] 在一些具体实例中,记录权节点表示为:suc_server=max(crbi),采用队列加入函数write_node.append(suc_server)将记录权节点加入记录节点队列。
[0047] 作为可选的实施方式,记录权节点基于密文文件构建完整区块,具体包括:应用分块函数对密文文件进行分块,得到多个文件块;应用预设整合条件将所有文件块整合为默克尔树,基于默克尔树构建具有完整性的默克尔哈希树;将默克尔哈希树存入区块结构,得到完整区块。
[0048] 在一些具体实例中,分块函数表示为:2m,多个文件块以数组的方式表示为C=(b1,m mb2,...,b2m),其中,C表示密文文件,b2m表示第2个文件块,2中的m是由哈希函数处理要求所决定的。
[0049] 在一些具体实例中,采用预设整合条件依序将2m个文件块整合在默克尔树(Merkle‑Tree)中,预设整合条件可以是所有文件块在密文文件中的位置顺序,采用哈希函数hi=H(mi||1)对每个文件块进行哈希,再采用前述哈希函数对默克尔树中的每相邻两个哈希节点进行哈希,得到默克尔哈希树(Merkle‑Hash‑Tree)。
[0050] 在一些具体实例中,如图2所示为区块结构,区块结构包括文件头和文件体,区块头包括版本号、父区块头哈希值、Merkle根、时间戳、校验码、区块类型、加密级别、访问控制矩阵和其他信息,区块体包括默克尔树。
[0051] 版本号,主要用于各个云存储网络节点识别当前使用的协议版本、数据结构和区块生成算法等,以及根据更新版本号升级和迭代行区块链网络。
[0052] 父区块头哈希值,主要用于存储文件块构成的根节点,以防篡改及完整性校验文件。
[0053] 时间戳,主要用于区块的确认,防止区块链网络中的恶意篡改,各个云存储网络节点只接收一定时间范围的区块。
[0054] 校验码,主要用于简单校验区块头,可以CRC校验码对区块头进行计算,生成校验码,确保简单校验区块头。
[0055] 区块类型,主要用于扩展区块且支持存储不同的区块体,除了默克尔树,还可以基于不同密码学工具整合文件,提供安全保障。
[0056] 加密级别,主要用于标识当前区块所使用的加密等级,针对具有不同安全需求的数据提供不同级别的安全加密服务。
[0057] 访问控制矩阵,主要用于记录不同用户和节点对当前区块可执行的操作权限,从而进一步提升区块链网络的整体访问的安全性。
[0058] 其他信息,主要用于未来对区块链的升级,作保留字段使用。
[0059] 默克尔树是包含各个文件块的完全二叉树所构成的森林,在默克尔树中,任何一个非叶子结点都存储有其子节点哈希后的逻辑或运算的结果值,对于其叶子结点,直接存储完整文件块,采用SHA256函数计算完整文件块的哈希值,构成完整的哈希树结构,将所有文件块组织在一起,构成一个完整文件。
[0060] 基于默克尔树的特性,只要任何一个子节点的文件块内容发生了变化,那么该子节点的双亲及祖先节点都会累计发生变化,直到区块头所存储的Merkle根,很容易发现和定位发生变化的文件块。
[0061] 作为可选的实施方式,非记录权节点验证完整区块是否可信,具体包括:从完整区块中查找出第一哈希值;采用哈希算法对完整区块中的文件体进行计算,得到第二哈希值;基于第一哈希值与第二哈希值验证文件体的可信性。
[0062] 在一些具体实例中,若第一哈希值与第二哈希值匹配,确定存储在文件体中的文件块具有完整性和合法性,否则确定存储在文件体中的文件块不具有完整性和合法性,如此实现检验文件体的可信性。
[0063] 实施例二
[0064] 如图3所示,本发明实施例的另一种基于区块链的可信云存储方法,该方法包括:
[0065] 步骤310、请求节点将用于唯一标识待加密文件的文件标识信息发送至区块链网络;
[0066] 步骤320、任一云存储服务器从区块链网络接收文件标识信息,且基于文件标识信息去重检验是否存在待加密文件,若否,则通过区块链网络向请求节点反馈用于指示对应的云存储服务器中不存在待加密文件的第一状态消息,若是,则通过区块链网络向请求节点反馈用于指示对应的云存储服务器已存在待加密文件的第二状态信息;
[0067] 步骤330、当请求节点从区块链网络接收到第一状态信息时,请求节点基于收敛加密模型对待加密文件进行加密,得到密文文件,且将密文文件上传给接入区块链网络的缓存节点;或者,当请求节点从区块链网络接收到第二状态信息时,请求节点停止加密待加密文件;
[0068] 步骤340、接入区块链网络的至少两个云存储服务器共识协定出记录权节点和非记录权节点;
[0069] 步骤350、记录权节点从区块链网络接收密文文件,且基于密文文件构建完整区块,以及将完整区块发布至区块链网络;
[0070] 步骤360、非记录权节点从区块链网络接收完整区块,且验证完整区块是否可信,若是,则将完整区块加入区块链,若否,则停止将完整区块加入区块链。
[0071] 在一些具体实例中,文件标识信息包括文件标识符,文件标识符IDf表示为:IDf=SHA1(F),其中,SHA1()表示安全散列函数,f表示待加密文件F的标识。
[0072] 在一些具体实例中,通过判断文件标识信息在文件账本中是否具有唯一性来去重检验待加密文件,例如:“if IDf is unique........else”可以判断文件标识信息在文件账本中是否具有唯一性;若文件标识信息在文件账本中具有唯一性,表示服务器中不存在待加密文件,若文件标识信息在文件账本中具有非唯一性,表示服务器中存在待加密文件。
[0073] 在一些具体实例中,当接收到第二状态信息时,停止从上传文件标识信息到加密待加密文件的过程,开始记录将用户元信息记录在区块账本中,用户元信息包括用户标识和时间等。
[0074] 作为可选的实施方式,请求节点将密文文件上传给接入区块链网络的缓存节点,具体包括:基于用户元信息和待加密文件生成请求数据包;采用第一安全哈希函数对请求数据包和安全参数进行计算,得到请求哈希值;采用第二安全哈希函数对请求数据包进行计算,得到云存储服务器的IP地址;将用户元信息、待加密文件和IP地址共同上传给缓存节点。
[0075] 在一些具体实例中,请求数据包request表示为:request=Format(Cf,META),请k求哈希值rkey表示为:rkey=RequestHash(1 ,request),IP地址serverIP表示为:
serverIP=RequestServerHash(request),其中,Format()表示数据包构建函数,Cf表示密k
文文件,META表示用户元信息,RequestHash()表示第一安全哈希函数,1 表示安全参数,RequestServerHash()表示第二安全哈希函数。
[0076] 在一些具体实例中,采用上传函数UploadFile(Cf,META,serverIP)上传用户元信息META、待加密文件Cf和IP地址serverIP,采用记录函数RecordUserInfo(META)记录用户元信息。
[0077] 作为可选的实施方式,收敛加密模型包括密钥加密函数和文件加密函数,请求节点采用收敛加密模型对待加密文件进行加密,得到密文文件,具体包括:应用密钥加密函数对待加密文件进行加密,得到文件密钥;应用文件加密函数对待加密文件和文件密钥进行加密,得到密文文件。
[0078] 在一些具体实例中,文件密钥kf表示为:kf=KeyGen(1k,F),密文文件Cf表示为:Cf=Encrypt(kf,F),其中,KeyGen()表示密钥加密函数,Encrypt()表示文件加密函数,如此通过收敛加密模型(CE)实现强加密文件,同时可以保留文件的可去重性。
[0079] 实施例三
[0080] 如图4所示,本发明实施例的另一种基于区块链的可信云存储方法,该方法包括:
[0081] 步骤410、接入区块链网络的至少两个云存储服务器共识协定出记录权节点和非记录权节点;
[0082] 步骤420、记录权节点从区块链网络接收密文文件,且基于密文文件构建完整区块,以及将完整区块发布至区块链网络;
[0083] 步骤430、非记录权节点从区块链网络接收完整区块,且验证完整区块是否可信,若是,则将完整区块加入区块链,若否,则停止将完整区块加入区块链;
[0084] 步骤440、请求节点基于请求哈希值确定任一所述云存储服务器在哈希环上的IP地址,基于IP地址将文件访问请求发送至区块链网络;
[0085] 步骤450、记录权节点当从区块链网络接收到文件访问请求时通过区块链网络向非记录权节点发送网络请求;
[0086] 步骤460、当非记录权节点从区块链网络接收到文件访问请求时,非记录权节点通过区块链网络向请求节点反馈与区块链对应的文件账本;或者,当非记录权节点从区块链网络接收到网络请求时,非记录权节点对文件账本进行简单访问身份验证,且在验证通过时通过区块链网络向请求节点反馈文件账本。
[0087] 区块链具备防篡改、防泄漏、透明和可追溯的特点,请求节点不再需要存储完整性校验标签,降低了请求节点的计算量,非记录权节点只需要通过简单访问身份验证(SAA)即可实现快速、简单地对文件账本进行完整性校验,保证了区块链网络中存在一定冗余备份和文件的实时响应性。
[0088] 实施例四
[0089] 如图5所示,本发明实施例的另一种基于区块链的可信云存储方法,该方法包括:
[0090] 步骤510、请求节点将用于唯一标识待加密文件的文件标识信息发送至区块链网络;
[0091] 步骤520、任一云存储服务器从区块链网络接收文件标识信息,且基于文件标识信息去重检验是否存在待加密文件,若否,则通过区块链网络向请求节点反馈用于指示对应的云存储服务器中不存在待加密文件的第一状态消息,若是,则通过区块链网络向请求节点反馈用于指示对应的云存储服务器已存在待加密文件的第二状态信息;
[0092] 步骤530、当请求节点从区块链网络接收到第一状态信息时,请求节点基于收敛加密模型对待加密文件进行加密,得到密文文件,且将密文文件上传给接入区块链网络的缓存节点;或者,当请求节点从区块链网络接收到第二状态信息时,请求节点停止加密待加密文件;
[0093] 步骤540、接入区块链网络的至少两个云存储服务器共识协定出记录权节点和非记录权节点;
[0094] 步骤550、记录权节点从区块链网络接收密文文件,且基于密文文件构建完整区块,以及将完整区块发布至区块链网络;
[0095] 步骤560、非记录权节点从区块链网络接收完整区块,且验证完整区块是否可信,若是,则将完整区块加入区块链,若否,则停止将完整区块加入区块链;
[0096] 步骤570、请求节点基于请求哈希值确定任一云存储服务器在哈希环上的IP地址,基于IP地址将文件访问请求发送至区块链网络;
[0097] 步骤580、当记录权节点从区块链网络接收到文件访问请求时,记录权节点通过区块链网络向非记录权节点发送网络请求;
[0098] 步骤590、当非记录权节点从区块链网络接收到文件访问请求时,非记录权节点通过区块链网络向请求节点反馈与区块链对应的文件账本;或者,当非记录权节点从区块链网络接收到网络请求时,非记录权节点对文件账本进行简单访问身份验证,且在验证通过时通过区块链网络向请求节点反馈文件账本。
[0099] 实施例五
[0100] 如图6所示,本发明实施例的一种基于区块链的可信云存储系统,包括:接入区块链网络的至少两个云存储服务器,用于共识协定出记录权节点和非记录权节点;记录权节点,用于从区块链网络接收密文文件,且基于密文文件构建完整区块,以及将完整区块发布至区块链网络;非记录权节点,用于从区块链网络接收完整区块,且验证完整区块是否可信,若是,则将完整区块加入区块链,若否,则停止将完整区块加入区块链。
[0101] 任一云存储服务器,具体用于采用性能贡献计算公式对性能向量和权重向量进行计算,得到性能贡献值,且统计应用代币拥有量,以及基于性能贡献值、应用代币拥有量和委托权益证明协议选举出至少一个投票节点。
[0102] 至少一个投票节点,用于基于一致性哈希策略从至少两个云存储服务器中选择出记录权节点,且将不同于记录权节点的云存储服务器确定为非记录权节点。
[0103] 性能贡献计算公式具体为:
[0104] Si=k1×Ci+k2×Di+Mi×k3+Ti×k4+Ri×k5
[0105] 其中,Si表示第i个云存储服务器的性能贡献值,Ci表示第i个云存储服务器在设定时段内的CPU主频性能,Di表示第i个云存储服务器的空闲磁盘占比,Mi表示第i个云存储服务器的内存使用占比,Ti表示第i个云存储服务器接入区块链网络的总计时,Ri表示第i个云存储服务器的平均响应时间,k1表示与CPU主频性能Ci对应的权重,k2表示与空闲磁盘占比Di对应的权重,k3表示与内存使用占比Mi对应的权重,k4表示与总计时Ti对应的权重,k5表示与平均响应时间Ri对应的权重。
[0106] 至少一个投票节点,具体用于获取节点哈希值;基于节点哈希值确定在投票节点所属一致性哈希域上的任一云存储服务器;针对任一云存储服务器收集负载参数;基于负载因子计算公式对负载参数进行计算,得到负载因子;将负载因子和性能贡献值组合为综合因子;应用随机函数生成随机数;从综合因子中分解出负载因子和性能贡献值;基于总值计算公式对随机数、负载因子和性能贡献值进行求和,得到总值;基于总值将与节点哈希值对应的云存储服务器确定为记录权节点。
[0107] 记录权节点,具体用于应用分块函数对密文文件进行分块,得到多个文件块;应用预设整合条件将所有文件块整合为默克尔树,基于默克尔树构建具有完整性的默克尔哈希树;将默克尔哈希树存入区块结构,得到完整区块。
[0108] 非记录权节点,具体用于从完整区块中查找出第一哈希值;采用哈希算法对完整区块中的文件体进行计算,得到第二哈希值;基于第一哈希值与第二哈希值验证文件体的可信性。
[0109] 在一些具体实例中,如图6所示,在一致性哈希环的初始化过程,云存储服务器将自身的IP地址和安全系数调用统一哈希函数ServerHash(),将自身映射到一致性哈希环n上的一致性哈希域上,一致性哈希环的大小可以为2 ,以等待接收来自用户所持有的请求节点发送的文件访问请求,并且请求节点调用统一接口和第一安全哈希函数RequestHash(),统一接口封装请求,第一安全哈希函数将请求节点映射到云服务节点所属的一致性哈希域上。
[0110] 实施例六
[0111] 如图7所示,本发明实施例的另一种基于区块链的可信云存储系统,包括:请求节点、缓存节点和至少两个云存储服务器。
[0112] 请求节点,用于将用于唯一标识待加密文件的文件标识信息发送至区块链网络;
[0113] 任一云存储服务器,用于从区块链网络接收文件标识信息,且基于文件标识信息去重检验是否存在待加密文件,若否,则通过区块链网络向请求节点反馈用于指示对应的云存储服务器中不存在待加密文件的第一状态消息,若是,则通过区块链网络向请求节点反馈用于指示对应的云存储服务器已存在待加密文件的第二状态信息。
[0114] 请求节点,还用于当从区块链网络接收到第一状态信息时,基于收敛加密模型对待加密文件进行加密,得到密文文件,且将密文文件上传给接入区块链网络的缓存节点;或者,当从区块链网络接收到第二状态信息时,停止加密待加密文件。
[0115] 接入区块链网络的至少两个云存储服务器,具体用于共识协定出记录权节点和非记录权节点。
[0116] 记录权节点,具体用于从区块链网络接收密文文件,且基于密文文件构建完整区块,以及将完整区块发布至区块链网络。
[0117] 非记录权节点,具体用于从区块链网络接收完整区块,且验证完整区块是否可信,若是,则将完整区块加入区块链,若否,则停止将完整区块加入区块链。
[0118] 请求节点,还用于基于请求哈希值确定任一云存储服务器在哈希环上的IP地址,基于IP地址将文件访问请求发送至区块链网络。
[0119] 记录权节点,还用于当从区块链网络接收到文件访问请求时,通过区块链网络向非记录权节点发送网络请求。
[0120] 非记录权节点,还用于当从区块链网络接收到文件访问请求时,通过区块链网络向请求节点反馈与区块链对应的文件账本;或者,当从区块链网络接收到网络请求时,对文件账本进行简单访问身份验证,且在验证通过时通过区块链网络向请求节点反馈文件账本。
[0121] 在一些具体实例中,请求节点可以是第一客户端,缓存节点可以是距离第一客户端最近的第二客户端,哈希环包括一致性哈希环,如图7所示,在一致性哈希环上包括云存储服务器s1、s2、s3和s4,以及请求节点r1、r2、r3和r4,缓存节点未在一致性哈希环上(图7中未示出)。
[0122] 读者应理解,在本说明书的描述中,参考术语“方面”、“作为可选的实施方式”或“一些具体实例”等的描述意指结合该实施例或示例描述的具体特征、步骤或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必针对的是相同的实施例或示例。而且,描述的具体特征、步骤或者特点可以在任一或多个具体实例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同具体实例或示例以及不同实施例或示例的特征进行结合或/和组合。
[0123] 尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

附图说明

[0014] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作以简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0015] 图1为本发明实施例提供的一种基于区块链的可信云存储方法的流程示意图;
[0016] 图2为本发明实施例提供的区块结构的示意图;
[0017] 图3为本发明实施例提供的另一种基于区块链的可信云存储方法的流程示意图;
[0018] 图4为本发明实施例提供的另一种基于区块链的可信云存储方法的流程示意图;
[0019] 图5为本发明实施例提供的另一种基于区块链的可信云存储方法的流程示意图;
[0020] 图6为本发明实施例提供的一种基于区块链的可信云存储系统的结构示意图;
[0021] 图7为本发明实施例提供的另一种基于区块链的可信云存储系统的结构示意图。
版权所有:盲专网 ©2023 zlpt.xyz  蜀ICP备2023003576号