一种数据持有证明方法、装置及可读存储介质制造方法及图纸

技术编号:19176506 阅读:27 留言:0更新日期:2018-10-17 00:12
本发明专利技术公开了一种数据持有证明方法、装置及可读存储介质,属于互联网技术领域。该方法包括:第一节点接收第二节点发送的对应于目标文件的挑战数据,该挑战数据包括该目标文件的特征值和满足预设条件的第一随机数,然后,根据特征值以及第一随机数查找该目标文件中对应的分片,将所查找到的分片作为目标分片,进而,根据目标分片以及预设的单向函数,得到与目标文件的校验值对应的证明数据,并将该证明数据发送给第二节点,以作为第一节点的工作量证明。这样第二节点就能够根据该证明数据以及目标文件的校验值,验证第一节点是否持有目标文件,从而防止区块链系统中的存储节点存在工作量作弊的问题。

Data holding proof method, device and readable storage medium

The invention discloses a data holding proof method, a device and a readable storage medium, belonging to the technical field of Internet. The method includes: the first node receives the challenge data sent by the second node corresponding to the target file. The challenge data includes the eigenvalue of the target file and the first random number satisfying the preset conditions. Then, according to the eigenvalue and the first random number, the corresponding fragments in the target file are searched and the fragments are found. Then, according to the target slice and the preset one-way function, the proof data corresponding to the check value of the target file is obtained, and the proof data is sent to the second node as the workload proof of the first node. In this way, the second node can verify whether the first node holds the target file according to the verification value of the proof data and the target file, thus preventing the storage node in the block chain system from cheating on the workload.

【技术实现步骤摘要】
一种数据持有证明方法、装置及可读存储介质
本专利技术涉及互联网
,尤其涉及一种数据持有证明方法、装置及可读存储介质。
技术介绍
信息化时代,数据存储至关重要。目前,数据存储方式主要分为本地存储和云存储。云存储是一个中心化服务,服务方掌控规则和主导权,一旦服务方停止服务,存储的数据即不可获得。另外,云存储服务都是通过构建专业的数据中心提供服务,成本极其高昂,在商业领域,公司大数据光存储费用就是一笔不小的开支。基于此,有研究人员提出了一种基于区块链技术的共享存储网络。区块链以及共享经济都是当下的热点和引领未来的趋势。随着信息量的增加,越来越多的用户具有数据存储需求,而也有很多用户具有闲置的存储空间。利于区块链的技术构建好激励机制,就可以将这些闲置存储空间共享出去,为具有存储需求的用户提供存储服务,从而获取对应的收益。这样既可以满足迅速增长的数据存储需求,又能发挥目前闲置存储空间的价值。但是,由于区块链系统中的节点大多是不可信的个人矿工,这些个人矿工作为存储节点为用户存储数据,为了能更多地获取收益,可能会存在工作量作弊问题。
技术实现思路
鉴于上述问题,本专利技术提出了一种数据持有证明方法、装置及可读存储介质,以解决区块链系统中的存储节点可能会存在工作量作弊的问题。第一方面,本专利技术实施例提供了一种数据持有证明方法,所述方法包括:第一节点接收第二节点发送的对应于目标文件的挑战数据,所述挑战数据包括所述目标文件的特征值和满足预设条件的第一随机数,其中,所述第一节点中分片存储有所述目标文件,所述第二节点中预先保存有所述目标文件对应的校验值;所述第一节点根据所述特征值以及所述第一随机数查找所述目标文件中对应的分片,将所查找到的分片作为目标分片;所述第一节点根据所述目标分片以及预设的单向函数,得到与所述校验值对应的证明数据;所述第一节点将所述证明数据发送给所述第二节点,以使所述第二节点根据所述证明数据以及所述校验值,验证所述第一节点是否持有所述目标文件。进一步地,所述目标文件的校验值为所述目标文件的根哈希值,所述根据所述目标分片以及预设的单向函数,得到与所述校验值对应的证明数据,包括:基于所述预设的单向函数构建所述目标文件的默克尔树;获取所述目标分片对应的默克尔树路径;基于所述目标分片以及所述默克尔树路径,得到所述证明数据。进一步地,所述基于所述目标分片以及所述默克尔树路径,得到所述证明数据包括:将所述目标分片以及所述目标分片的默克尔树路径,作为所述证明数据。进一步地,所述单向函数为同态哈希函数,所述基于所述目标分片以及所述默克尔树路径,得到所述证明数据,包括:生成第二随机数,根据所述第二随机数、所述目标分片以及与所述同态哈希函数对应的预设规则,得到不同于所述目标分片的特征数据;通过所述同态哈希函数获取所述第二随机数的哈希值;将所述目标分片的默克尔树路径、所述第二随机数的哈希值以及所述特征数据,作为所述证明数据。进一步地,所述同态哈希函数为基于椭圆曲线的同态哈希函数,所述根据所述第二随机数、所述目标分片以及与所述同态哈希函数对应的预设规则,得到不同于所述目标分片的特征数据包括:将所述第二随机数与所述目标分片相加,得到所述不同于所述目标分片的特征数据。进一步地,所述基于所述目标分片以及所述默克尔树路径,得到所述证明数据包括:根据所述目标分片以及预设的zk-SNARKs算法,生成所述目标分片的零知识证明;将所述目标分片的默克尔树路径以及所述目标分片的零知识证明,作为所述证明数据。进一步地,所述根据所述特征值以及所述第一随机数查找所述目标文件中对应的分片,将所查找到的分片作为目标分片包括:根据所述特征值查找对应的目标文件;根据所述第一随机数从所查找到的目标文件中查找对应的分片,将该分片作为目标分片。进一步地,上述数据持有证明方法应用于区块链系统,所述第一节点和所述第二节点均为所述区块链系统中的节点。第二方面,本专利技术实施例还提供了一种数据持有证明方法,所述方法包括:第二节点向第一节点发送对应于目标文件的挑战数据,所述挑战数据包括所述目标文件的特征值和满足预设条件的第一随机数,其中,所述第一节点中分片存储有所述目标文件,以使所述第一节点根据所述特征值以及所述第一随机数查找所述目标文件中对应的分片,将所查找到的分片作为目标分片,根据所述目标分片以及预设的单向函数,得到与所述目标文件的校验值对应的证明数据,将所述证明数据返回给所述第二节点;所述第二节点根据所述证明数据以及预先保存的对应于所述目标文件的校验值,验证所述第一节点是否持有所述目标文件。进一步地,所述校验值为所述目标文件的根哈希值,所述证明数据包括:所述目标分片和所述目标分片对应的默克尔树路径。所述根据所述证明数据以及预先保存的对应于所述目标文件的校验值,验证所述第一节点是否持有所述目标文件包括:通过所述单向函数得到所述证明数据中的目标分片的哈希值,验证所得到的哈希值与所述目标分片对应的默克尔树路径中该目标分片的哈希值是否一致;当验证结果为一致时,根据所述目标分片对应的默克尔树路径计算根哈希值,验证所述根哈希值与所述目标文件对应的根哈希值是否一致,当验证结果为一致时,判定当次挑战成功;根据挑战结果判定所述第一节点是否持有目标文件。进一步地,所述校验值为所述目标文件的根哈希值,所述证明数据包括:所述目标分片的默克尔树路径、所述第二随机数的哈希值以及所述目标分片的特征数据。所述根据所述证明数据以及预先保存的对应于所述目标文件的校验值,验证所述第一节点是否持有所述目标文件包括:通过所述单向函数计算证明数据中所包括的特征数据的哈希值;根据与所述单向函数对应的预设规则,判断所计算的特征数据的哈希值、所述证明数据中包括的目标分片的哈希值以及第二随机数的哈希值是否匹配;若匹配,则根据证明数据中包括的默克尔树路径计算根哈希值,验证所述根哈希值与所述目标文件的根哈希值是否一致,当验证结果为一致时,判定当次挑战成功;根据挑战结果判定所述第一节点是否持有目标文件。进一步地,所述校验值为所述目标文件的根哈希值,所述证明数据包括:所述目标分片的默克尔树路径以及所述目标分片的零知识证明。所述根据所述证明数据以及预先保存的对应于所述目标文件的校验值,验证所述第一节点是否持有所述目标文件包括:验证所述证明数据中的所述零知识证明;当验证通过时,根据证明数据中的所述默克尔树路径计算根哈希值,验证所述根哈希值与所述目标文件的根哈希值是否一致,当验证结果为一致时,判定当次挑战成功;根据挑战结果判定所述第一节点是否持有目标文件。第三方面,本专利技术实施例提供了一种数据持有证明装置,应用于第一节点,所述第一节点中分片存储有所述目标文件。所述装置包括:接收模块,用于接收第二节点发送的对应于所述目标文件的挑战数据,所述挑战数据包括所述目标文件的特征值和满足预设条件的第一随机数,其中,所述第二节点中预先保存有所述目标文件对应的校验值;查找模块,用于根据所述特征值以及所述第一随机数查找所述目标文件中对应的分片,将所查找到的分片作为目标分片;证明数据获取模块,用于根据所述目标分片以及预设的单向函数,得到与所述校验值对应的证明数据;第一发送模块,用于将所述证明数据发送给所述第二节点,以使所述第二节点根据所述证明数据以及所述本文档来自技高网...

【技术保护点】
1.一种数据持有证明方法,其特征在于,所述方法包括:第一节点接收第二节点发送的对应于目标文件的挑战数据,所述挑战数据包括所述目标文件的特征值和满足预设条件的第一随机数,其中,所述第一节点中分片存储有所述目标文件,所述第二节点中预先保存有所述目标文件对应的校验值;所述第一节点根据所述特征值以及所述第一随机数查找所述目标文件中对应的分片,将所查找到的分片作为目标分片;所述第一节点根据所述目标分片以及预设的单向函数,得到与所述校验值对应的证明数据;所述第一节点将所述证明数据发送给所述第二节点,以使所述第二节点根据所述证明数据以及所述校验值,验证所述第一节点是否持有所述目标文件。

【技术特征摘要】
1.一种数据持有证明方法,其特征在于,所述方法包括:第一节点接收第二节点发送的对应于目标文件的挑战数据,所述挑战数据包括所述目标文件的特征值和满足预设条件的第一随机数,其中,所述第一节点中分片存储有所述目标文件,所述第二节点中预先保存有所述目标文件对应的校验值;所述第一节点根据所述特征值以及所述第一随机数查找所述目标文件中对应的分片,将所查找到的分片作为目标分片;所述第一节点根据所述目标分片以及预设的单向函数,得到与所述校验值对应的证明数据;所述第一节点将所述证明数据发送给所述第二节点,以使所述第二节点根据所述证明数据以及所述校验值,验证所述第一节点是否持有所述目标文件。2.根据权利要求1所述的方法,其特征在于,所述目标文件的校验值为所述目标文件的根哈希值,所述根据所述目标分片以及预设的单向函数,得到与所述校验值对应的证明数据,包括:基于所述预设的单向函数构建所述目标文件的默克尔树;获取所述目标分片对应的默克尔树路径;基于所述目标分片以及所述默克尔树路径,得到所述证明数据。3.根据权利要求2所述的方法,其特征在于,所述单向函数为同态哈希函数,所述基于所述目标分片以及所述默克尔树路径,得到所述证明数据,包括:生成第二随机数,根据所述第二随机数、所述目标分片以及与所述同态哈希函数对应的预设规则,得到不同于所述目标分片的特征数据;通过所述同态哈希函数获取所述第二随机数的哈希值;将所述目标分片的默克尔树路径、所述第二随机数的哈希值以及所述特征数据,作为所述证明数据。4.根据权利要求1-3中任一项所述的方法,其特征在于,应用于区块链系统,所述第一节点和所述第二节点均为所述区块链系统中的节点。5.一种数据持有证明方法,其特征在于,所述方法包括:第二节点向第一节点发送对应于目标文件的挑战数据,所述挑战数据包括所述目标文件的特征值和满足预设条件的第一随机数,其中,所述第一节点中分片存储有所述目标文件,以使所述第一节点根据所述特征值以及所述第一随机数查找所述目标文件中对应的分片,将所查找到的分片作为目标分片,根据所述目标分片以及预设的单向函数,得到与所述目标文件的校验值对应的证明数据,将所述证明数据返回给所述第二节点;所述第二节点根据所述证明数据以及预先保存的对应于所述目标文件的校验值,验证所述第一节点是否持有所述目标文件。6.一种数据持有证明装置,其特征在于,应用于第一节点,所述第一节点中分片存储有目标文件,所述装置包括:接收模块,用于接收第二节点发送的对应于所述目标文件的挑战数据,所述挑战数据包括所述目标文件的特征值和满足预设条件的第一随机数,其中,所述第二节点中预先保存有所述目标文件对应的校验值;查找模块,用于根据所述特征值以及所述第一随机数查找所述目标文件中对应...

【专利技术属性】
技术研发人员:胡宇光殷宇辉
申请(专利权)人:北京奇虎科技有限公司
类型:发明
国别省市:北京,11

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

1