一种分布式存储挑战算法制造技术

技术编号:32663702 阅读:16 留言:0更新日期:2022-03-17 11:14
本发明专利技术公开一种分布式存储挑战算法,包括四个阶段,分别为存储准备、存储证明、挑战公证与仲裁;所述存储准备阶段包括以下步骤:验证方对原始数据进行分块计算出默克尔树,然后将默克尔树树根发送给公证方,同时将原始数据发送给服务方;服务方根据验证方提供的原始数据进行分块计算默克尔树,然后将默克尔树树根发送给公证方;公证方对验证方和服务方提交的默克尔树树根进行比对,确认服务方提交的默克尔树树根与验证方提交的一致,确认默克尔树树根有效等步骤,本发明专利技术实现了在验证方和服务方不可信的情况下检查服务方是否存储了验证方的文件的同时,确认验证方在发起存储挑战时是否提交了真实有效的数据,具有高安全性、验证结果可信度高的优点。果可信度高的优点。果可信度高的优点。

【技术实现步骤摘要】
一种分布式存储挑战算法


[0001]本专利技术涉及数据存储挑战算法领域,具体是指一种分布式存储挑战算法。

技术介绍

[0002]目前,随着数字化的发展,海量数据对存储提出了新要求,市场上出现了分布式存储技术,同时也有越来越多的用户选择分布式存储,此时出现了一个问题:如何确保服务方完整地存储了验证方的文件。传统的数据内容验证方式是通过对比文件哈希值来判定文件是否是完整的,但只有在验证方和服务方都是可信的情况下,验证结果才是可信的。但分布式存储的验证方和服务方是不可信的。因此,在验证方为了验证服务方是否真实地存储了完整的文件而发起存储挑战时,需要一种方式证明双方都没有作恶,并且证明文件确实完整存在的方法。

技术实现思路

[0003]鉴于此,本专利技术提出了一种分布式存储挑战算法。
[0004]本专利技术提供的技术方案为:
[0005]一种分布式存储挑战算法,具体包括四个阶段,分别为存储准备、存储证明、挑战公证与仲裁;
[0006]所述存储准备阶段包括以下步骤:
[0007]1.1验证方对原始数据进行分块计算出默克尔树,然后将默克尔树树根发送给公证方,同时将原始数据发送给服务方;
[0008]1.2服务方根据验证方提供的原始数据进行分块计算默克尔树,然后将默克尔树树根发送给公证方;
[0009]1.3公证方对验证方和服务方提交的默克尔树树根进行比对,确认服务方提交的默克尔树树根与验证方提交的一致,确认默克尔树树根有效;若不一致,则存储准备终止;
[0010]所述存储证明阶段包括以下步骤:
[0011]2.1验证方发起随机存储挑战:随机提取一个数据块,发送随机数,ID给服务方;
[0012]2.2服务方收到验证方发的存储挑战,需在限定时间内根据挑战要求进行应答,计算公式:hash(Block(H,ID)+随机数);
[0013]2.3验证方收到服务方的应答,对验证方挑战的签名进行验证操作,验证成功,则视为服务方应答有效;若验证失败,则视为服务方应答无效,验证方可发起挑战公证;
[0014]2.4若服务方未在限定时间内发送应答给验证方或拒绝应答,验证方可发起挑战公证;
[0015]所述挑战公证阶段包括以下步骤:
[0016]3.1验证方发起随机存储挑战:随机提取一个数据块,加上当前时间戳,然后进行整体签名,发给公证方;
[0017]3.2验证方向公证方提起挑战公证后,服务方需在限定时间内根据挑战要求进行
应答,计算公式:hash(Block(H,ID)+随机数);
[0018]3.3公证方收到服务方的应答,对验证方挑战的签名进行验证操作,验证成功,则视为服务方应答有效;若验证失败,则视为服务方应答无效;
[0019]3.4若服务方未在限定时间内发送应答给公证方或拒绝回答,则视为服务方应答无效;
[0020]3.5若服务方认为验证方为无效挑战,可针对此次挑战向公证方发起仲裁;
[0021]所述仲裁阶段包括以下步骤:
[0022]4.1服务方向公证方提出仲裁后,验证方需在指定时间内将指定数据块的原始数据和对应剪枝默克尔树提交给公证方;
[0023]4.2若验证方未在指定时间内提交挑战证明,则视为验证挑战无效,说明验证方违约;
[0024]4.3公证方验证原始默克尔树树根与验证方提交的剪枝默克尔树树根一致;若不一致,证明验证方挑战无效,说明验证方违约;
[0025]4.4公证方对验证方提供的剪枝默克尔树进行验证;若不一致,证明验证方挑战无效,说明验证方违约;
[0026]4.5公证方根据验证方所提供的指定原始数据块计算指定原始数据块的哈希,确认是否和剪枝默克尔树中对应叶子节点哈希一致;若不一致,证明验证方挑战无效,说明验证方违约;
[0027]4.6公证方对验证方所提供的签名进行校验;若结果一致,证明验证方挑战有效,说明服务方应答无效;若对比结果不一致,证明验证方挑战无效,说明验证方违约。
[0028]进一步的,所述步骤3.1中的计算公式:hash(Block(H,ID)+随机数),同时发送随机数,ID。
[0029]进一步的,所述步骤3.2中的计算公式:hash(Block(H,ID)+随机数)。
[0030]进一步的,所述存储准备、存储证明、挑战公证与仲裁四个阶段包括验证方、服务方、公证方,所述公证方为权威机构或区块链智能合约。
[0031]本专利技术与现有技术相比的优点在于:
[0032]本专利技术实现了在验证方和服务方不可信的情况下检查服务方是否存储了验证方的文件的同时,确认验证方在发起存储挑战时是否提交了真实有效的数据,具有高安全性、验证结果可信度高的优点。
附图说明
[0033]图1为本专利技术的存储准备阶段的流程图;
[0034]图2为本专利技术存储证明阶段的流程图;
[0035]图3为本专利技术挑战公证阶段的流程图;
[0036]图4为本专利技术仲裁阶段的流程图。
具体实施方式
[0037]一种分布式存储挑战算法,具体包括四个阶段,分别为存储准备、存储证明、挑战公证与仲裁;
[0038]所述存储准备阶段包括以下步骤:
[0039]1.1验证方对原始数据进行分块计算出默克尔树,然后将默克尔树树根发送给公证方,同时将原始数据发送给服务方;
[0040]1.2服务方根据验证方提供的原始数据进行分块计算默克尔树,然后将默克尔树树根发送给公证方;
[0041]1.3公证方对验证方和服务方提交的默克尔树树根进行比对,确认服务方提交的默克尔树树根与验证方提交的一致,确认默克尔树树根有效;若不一致,则存储准备终止;
[0042]所述存储证明阶段包括以下步骤:
[0043]2.1验证方发起随机存储挑战:随机提取一个数据块,发送随机数,ID给服务方;
[0044]2.2服务方收到验证方发的存储挑战,需在限定时间内根据挑战要求进行应答,计算公式:hash(Block(H,ID)+随机数);
[0045]2.3验证方收到服务方的应答,对验证方挑战的签名进行验证操作,验证成功,则视为服务方应答有效;若验证失败,则视为服务方应答无效,验证方可发起挑战公证;
[0046]2.4若服务方未在限定时间内发送应答给验证方或拒绝应答,验证方可发起挑战公证;
[0047]所述挑战公证阶段包括以下步骤:
[0048]3.1验证方发起随机存储挑战:随机提取一个数据块,加上当前时间戳,然后进行整体签名,发给公证方;
[0049]3.2验证方向公证方提起挑战公证后,服务方需在限定时间内根据挑战要求进行应答,计算公式:hash(Block(H,ID)+随机数);
[0050]3.3公证方收到服务方的应答,对验证方挑战的签名进行验证操作,验证成功,则视为服务方应答有效;若验证失败,则视为服务方应答无效;
[0051]3本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式存储挑战算法,其特征在于,具体包括四个阶段,分别为存储准备、存储证明、挑战公证与仲裁;所述存储准备阶段包括以下步骤:1.1验证方对原始数据进行分块计算出默克尔树,然后将默克尔树树根发送给公证方,同时将原始数据发送给服务方;1.2服务方根据验证方提供的原始数据进行分块计算默克尔树,然后将默克尔树树根发送给公证方;1.3公证方对验证方和服务方提交的默克尔树树根进行比对,确认服务方提交的默克尔树树根与验证方提交的一致,确认默克尔树树根有效;若不一致,则存储准备终止;所述存储证明阶段包括以下步骤:2.1验证方发起随机存储挑战:随机提取一个数据块,发送随机数,ID给服务方;2.2服务方收到验证方发的存储挑战,需在限定时间内根据挑战要求进行应答,计算公式:hash(Block(H,ID)+随机数);2.3验证方收到服务方的应答,对验证方挑战的签名进行验证操作,验证成功,则视为服务方应答有效;若验证失败,则视为服务方应答无效,验证方可发起挑战公证;2.4若服务方未在限定时间内发送应答给验证方或拒绝应答,验证方可发起挑战公证;所述挑战公证阶段包括以下步骤:3.1验证方发起随机存储挑战:随机提取一个数据块,加上当前时间戳,然后进行整体签名,发给公证方;3.2验证方向公证方提起挑战公证后,服务方需在限定时间内根据挑战要求进行应答,计算公式:hash(Block(H,ID)+随机数);3.3公证方收到服务方的应答,对验证方挑战的签名进行验证操作,验证成功,则视为服务方应答有效;若验证失败,则视为服务方应答无效;3.4若服务方未在...

【专利技术属性】
技术研发人员:刘琥
申请(专利权)人:南京第三极区块链科技有限公司
类型:发明
国别省市:

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

1