CN108681583A - 基于区块链的数据持有证明方法、装置及可读存储介质 - Google Patents

基于区块链的数据持有证明方法、装置及可读存储介质 Download PDF

Info

Publication number
CN108681583A
CN108681583A CN201810450786.5A CN201810450786A CN108681583A CN 108681583 A CN108681583 A CN 108681583A CN 201810450786 A CN201810450786 A CN 201810450786A CN 108681583 A CN108681583 A CN 108681583A
Authority
CN
China
Prior art keywords
file destination
fragment
proof
target fragment
random number
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201810450786.5A
Other languages
English (en)
Inventor
胡宇光
殷宇辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Qihoo Technology Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201810450786.5A priority Critical patent/CN108681583A/zh
Publication of CN108681583A publication Critical patent/CN108681583A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于区块链的数据持有证明方法、装置及可读存储介质,属于互联网技术领域。该方法包括:存储节点根据第一预设规则生成挑战随机数,其中,存储节点中分片存储有目标文件,然后,根据挑战随机数查找目标文件中对应的分片,将所查找到的分片作为目标分片,进而根据目标分片以及预设的单向函数,得到与该目标文件的校验值对应的证明数据,进而将所得到的证明数据广播到区块链上,作为该存储节点的工作量证明。这样区块链上的其他节点就能够根据该证明数据以及目标文件的校验值,验证存储节点是否确实持有该目标文件,从而防止区块链系统中的存储节点存在工作量作弊的问题。

Description

基于区块链的数据持有证明方法、装置及可读存储介质
技术领域
本发明涉及互联网技术领域,尤其涉及一种基于区块链的数据持有证明方法、装置及可读存储介质。
背景技术
信息化时代,数据存储至关重要。目前,数据存储方式主要分为本地存储和云存储。云存储是一个中心化服务,服务方掌控规则和主导权,一旦服务方停止服务,存储的数据即不可获得。另外,云存储服务都是通过构建专业的数据中心提供服务,成本极其高昂,在商业领域,公司大数据光存储费用就是一笔不小的开支。基于此,有研究人员提出了一种基于区块链技术的共享存储网络。区块链以及共享经济都是当下的热点和引领未来的趋势。随着信息量的增加,越来越多的用户具有数据存储需求,而也有很多用户具有闲置的存储空间。利于区块链的技术构建好激励机制,就可以将这些闲置存储空间共享出去,为具有存储需求的用户提供存储服务,从而获取对应的收益。这样既可以满足迅速增长的数据存储需求,又能发挥目前闲置存储空间的价值。
但是,由于区块链系统中的节点大多是不可信的个人矿工,这些个人矿工作为存储节点为用户存储数据,为了能更多地获取收益,可能会存在工作量作弊问题。
发明内容
鉴于上述问题,本发明提出了一种基于区块链的数据持有证明方法、装置及可读存储介质,以解决区块链系统中的存储节点可能存在工作量作弊的问题。
第一方面,本发明实施例提供了一种基于区块链的数据持有证明方法,所述方法包括:
存储节点根据第一预设规则生成挑战随机数,其中,所述存储节点中分片存储有目标文件;
所述存储节点根据所述挑战随机数查找所述目标文件中对应的分片,将所查找到的分片作为目标分片;
所述存储节点根据所述目标分片以及预设的单向函数,得到与所述目标文件的校验值对应的证明数据;
所述存储节点将所述证明数据发送到所述区块链上的其他节点,以使得所述区块链上的其他节点能够根据所述证明数据以及所述目标文件的校验值,验证所述存储节点是否持有所述目标文件。
进一步地,所述存储节点根据第一预设规则生成挑战随机数包括:所述存储节点获取所述区块链中当前时间点的前预设数量个区块的关键值,将所述关键值作为所述挑战随机数。
进一步地,所述关键值为所述区块链中当前时间点的前预设数量个区块的哈希值。
进一步地,所述目标文件的校验值为所述目标文件的根哈希值,所述根据所述目标分片以及预设的单向函数,得到与所述目标文件的校验值对应的证明数据,包括:基于所述预设的单向函数构建所述目标文件的默克尔树;获取所述目标分片对应的默克尔树路径;基于所述目标分片以及所述默克尔树路径,得到所述证明数据。
进一步地,所述基于所述目标分片以及所述默克尔树路径,得到所述证明数据,包括:根据所述目标分片以及预设的zk-SNARKs算法,生成所述目标分片的零知识证明;将所述目标分片的默克尔树路径以及所述目标分片的零知识证明,作为所述证明数据。
进一步地,所述单向函数为同态哈希函数,所述基于所述目标分片以及所述默克尔树路径,得到所述证明数据,包括:根据所述挑战随机数、所述目标分片以及与所述同态哈希函数对应的第二预设规则,得到不同于所述目标分片的特征数据;通过所述同态哈希函数获取所述挑战随机数的哈希值;将所述目标分片的默克尔树路径、所述挑战随机数的哈希值以及所述特征数据,作为所述证明数据。
进一步地,所述同态哈希函数为基于椭圆曲线的同态哈希函数,所述根据所述挑战随机数、所述目标分片以及与所述同态哈希函数对应的第二预设规则,得到不同于所述目标分片的特征数据包括:将所述挑战随机数与所述目标分片相加,得到所述不同于所述目标分片的特征数据。
第二方面,本发明实施例还提供了一种基于区块链的数据持有证明装置,应用于存储节点,所述存储节点中分片存储有目标文件,所述装置包括:生成模块,用于根据第一预设规则生成挑战随机数;查找模块,用于根据所述挑战随机数查找所述目标文件中对应的分片,将所查找到的分片作为目标分片;证明数据获取模块,用于根据所述目标分片以及预设的单向函数,得到与所述目标文件的校验值对应的证明数据;发送模块,用于将所述证明数据发送到所述区块链上的其他节点,以使得所述区块链上的其他节点能够根据所述证明数据以及所述目标文件的校验值,验证所述存储节点是否持有所述目标文件。
进一步地,所述生成模块具体用于:所述存储节点获取所述区块链中当前时间点的前预设数量个区块的关键值,将所述关键值作为所述挑战随机数。
进一步地,所述关键值为所述区块链中当前时间点的前预设数量个区块的哈希值。
进一步地,所述目标文件的校验值为所述目标文件的根哈希值,所述证明数据获取模块包括:构建子模块,用于基于所述预设的单向函数构建所述目标文件的默克尔树;第一获取子模块,用于获取所述目标分片对应的默克尔树路径;第二获取子模块,用于基于所述目标分片以及所述默克尔树路径,得到所述证明数据。
进一步地,所述第二获取子模块具体用于:根据所述目标分片以及预设的zk-SNARKs算法,生成所述目标分片的零知识证明;将所述目标分片的默克尔树路径以及所述目标分片的零知识证明,作为所述证明数据。
进一步地,所述单向函数为同态哈希函数,所述第二获取子模块具体用于:根据所述挑战随机数、所述目标分片以及与所述同态哈希函数对应的第二预设规则,得到不同于所述目标分片的特征数据;通过所述同态哈希函数获取所述挑战随机数的哈希值;将所述目标分片的默克尔树路径、所述挑战随机数的哈希值以及所述特征数据,作为所述证明数据。
进一步地,所述同态哈希函数为基于椭圆曲线的同态哈希函数,所述第二获取子模块具体用于:将所述挑战随机数与所述目标分片相加,得到所述不同于所述目标分片的特征数据。
第三方面,本发明实施例还提供了一种基于区块链的数据持有证明装置,包括处理器和存储器,所述存储器耦接到所述处理器,所述存储器用于存储指令和分片存储有目标文件,当所述指令由所述处理器执行时使所述装置执行以下操作:根据第一预设规则生成挑战随机数;根据所述挑战随机数查找所述目标文件中对应的分片,将所查找到的分片作为目标分片;根据所述目标分片以及预设的单向函数,得到与所述目标文件的校验值对应的证明数据;将所述证明数据发送到所述区块链上的其他节点,以使得所述区块链上的其他节点能够根据所述证明数据以及所述目标文件的校验值,验证所述存储节点是否持有所述目标文件。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一方面提供的基于区块链的数据持有证明方法的步骤。
本发明提供的技术方案中,存储节点根据第一预设规则生成挑战随机数,其中,存储节点中分片存储有目标文件,然后,根据挑战随机数查找目标文件中对应的分片,将所查找到的分片作为目标分片,进而根据目标分片以及预设的单向函数,得到与该目标文件的校验值对应的证明数据,进而将所得到的证明数据广播到区块链上,作为该存储节点的工作量证明。这样区块链上的其他节点就能够根据该证明数据以及目标文件的校验值,验证存储节点是否确实持有该目标文件,从而防止区块链系统中的存储节点存在工作量作弊的问题。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的一种基于区块链的数据持有证明方法的流程图;
图2示出了本发明实施例提供的一种默克尔树的示意图;
图3示出了本发明实施例提供的一种基于区块链的数据持有证明装置的功能模块框图;
图4示出了本发明实施例提供的一种终端设备的模块框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
在基于区块链技术的分布式存储系统中,例如,在基于公有链的分布式存储系统中,一些节点具有闲置的存储空间,可以利用这些闲置的存储空间为其他具有存储需求的用户提供存储服务,即成为存储节点,从而获得一定的利益。例如,某用户发布一个文件存储任务,通过区块链全网广播,具有闲置存储空间的节点监听到后就可以接受这个存储任务,存储用户的文件,并通过上报工作量领取相应的收益。但是,区块链系统中的节点大多为不可信的个人矿工,将具有闲置存储空间的个人矿工作为存储节点,为了获取更多的收益,可能会存在存储节点工作量作弊的问题。鉴于此,本发明实施例提供了一种基于区块链的数据持有证明方法,以验证存储节点确实保存了用户所存储的数据,即证明存储节点的工作量,从而避免存储节点为了获得更多的收益出现工作量作弊行为。
在本文中,将区块链系统中具有数据存储需求的节点定义为用户节点,而区块链系统中能够给用户节点提供数据存储服务的节点定义为存储节点。其中,用户节点和存储节点均是指终端设备。
图1示出了本发明实施例提供的一种基于区块链的数据持有证明方法的方法流程图。如图1所示,本发明实施例提供的基于区块链的数据持有证明方法应用于存储节点,该方法可以包括:
步骤S101,存储节点根据第一预设规则生成挑战随机数,其中,所述存储节点中分片存储有目标文件;
本实施例中,目标文件为用户存储在第一节点中的文件。可以理解的是,在执行步骤S101之前,还包括数据存储步骤。该数据存储步骤具体包括:存储节点接收用户节点发送的目标文件,并对该目标文件进行分片存储。分片存储是指将完整的目标文件划分为多个分片,分别存储这些分片。其中,分片的具体数量可以根据需要预先设置。
用户将目标文件发送给存储节点存储后,就可以从本地终端即用户节点中删除目标文件,以节约存储空间。但在向存储节点发送待存储的目标文件之前,用户节点需要先获取该目标文件的校验值,并将该目标文件的校验值公开在区块链上,即区块链上的任意节点均能获取到目标文件的校验值。
作为一种实施方式,用户节点获取目标文件的校验值的方式可以为:对目标文件进行分片处理;基于预设的哈希(hash)函数构建该目标文件的默克尔树,得到该目标文件的根哈希值(Top Hash,也即Hash Root)将该根哈希值作为该目标文件的校验值。
需要说明的是,本发明实施例中,用户节点对待存储的目标文件进行分片处理时,所采用的分片规则与存储节点对目标文件进行分片存储时的分片规则是相同的。其中,分片规则包括分片数量以及每个分片的数据量。
在存储节点存储目标文件期间,当存储节点需要证明自己持有目标文件即证明自己的工作量时,存储节点则根据第一预设规则生成挑战随机数,从而生成证明数据发送给区块链上的其他节点,即向其他节点出示工作量证明,以证明自己的工作量。
本实施例中,在存储节点存储目标文件期间,存储节点可以每间隔预设时间,如每天下午5点,进行一次工作量证明,或者也可以在其他需要其出示工作量证明的情况下如需要证明工作量以获取相应的收益的情况下,执行本发明实施例提供的步骤S101至步骤S104,完成工作量证明。
需要说明的是,上述步骤S101中,为了防止存储节点作弊,存储节点每次生成的挑战随机数应当具有随机性。作为一种实施方式,上述存储节点根据第一预设规则生成挑战随机数的步骤,可以包括:所述存储节点获取所述区块链中当前时间点的前预设数量个区块的关键值,将所述关键值作为所述挑战随机数。其中,预设数量可以是存储节点根据需要设置。当前时间点的前预设数量个区块是指区块链中与当前时间点最接近的预设数量个区块。例如,预设数量可以是1、100或者1000等。当预设数量为1时,挑战随机数为当前时间点的前一个区块的关键值;当预设数量为100时,挑战随机数为当前时间点的前100个区块的关键值;当预设数量为1000时,挑战随机数为当前时间点的前1000个区块的关键值。可以理解的是,由于区块链在不断地更新,因此,存储节点在不同时间点获取到的当前时间点的前预设数量个区块的关键值是动态变化的。
作为一种实施方式,关键值可以为所述区块链中当前时间点的前预设数量个区块的哈希值。
步骤S102,所述存储节点根据所述挑战随机数查找所述目标文件中对应的分片,将所查找到的分片作为目标分片;
由于目标文件是分片存储的,基于挑战随机数即可以找到目标文件的各分片中与该挑战随机数对应的分片。具体的,挑战随机数与目标文件的各分片的对应规则可以根据需要设置。例如,目标文件为1G的文件,存储节点中存储的目标文件的每个分片大小为1k,此时分片数量为1048576个,当挑战随机数对应于第200个分片时,则目标分片为目标文件的第200个分片。
步骤S103,所述存储节点根据所述目标分片以及预设的单向函数,得到与所述目标文件的校验值对应的证明数据;
步骤S104,所述存储节点将所述证明数据发送到所述区块链上的其他节点,以使得所述区块链上的其他节点能够根据所述证明数据以及所述目标文件的校验值,验证所述存储节点是否持有所述目标文件。
可以理解的是,步骤S103中,得到与目标文件的校验值对应的证明数据是指存储节点生成的证明数据应当与目标文件的校验值类型相关,确保其他节点能够通过比较证明数据与目标文件的校验值验证存储节点是否持有目标文件。需要注意的是,由于存储节点是将证明数据广播给区块链上的其他节点,作为工作量证明,因此,为了避免将目标文件泄漏给除目标文件所有者之外的其他节点,本实施例中的证明数据不包括目标文件的源数据,如目标文件的分片,并且其他节点也不能根据证明数据得到目标文件的源数据。
于本发明的一实施例中,当目标文件的校验值为目标文件的根哈希值时,上述步骤S103中,根据所述目标分片以及预设的单向函数,得到与所述目标文件的校验值对应的证明数据,可以包括:基于所述预设的单向函数构建所述目标文件的默克尔树(MerkleTree);获取所述目标分片对应的默克尔树路径;基于所述目标分片以及所述默克尔树路径,得到所述证明数据。其中,默克尔树路径为从默克尔树中所述目标分片对应的叶子节点到根节点即Merkle Root的路径,包括从默克尔树中所述目标分片对应的叶子节点到根节点即MerkleRoot之间的所有节点的值。
此后,存储节点就可以将证明数据广播给区块链上的其他节点,作为存储节点的工作量证明。
例如,在一种具体应用场景中,某目标文件被划分为4个分片存储,分别是L1,L2,L3和L4。存储节点根据预设的单向函数所构建的目标文件的默克尔树如图2所示。假设存储节点生成的挑战随机数r对应的分片为L1,则目标分片L1对应的默克尔树路径包括:从默克尔树中分片L1的对应的叶子节点到根节点即Merkle Root之间的所有节点(图2中的用虚线框标记的节点)的值。可以理解的是,如图2所示,若目标文件包括4个分片,所构建的默克尔树一共有2+1层,此时目标分片对应的默克尔树路径包括2*2+1个hash值。若第一节点中存储的目标文件包括1024个分片,则所构建的默克尔树一共有10+1层,此时目标分片对应的默克尔树路径包括10*2+1个hash值。
本实施例中,上述的基于所述目标分片以及所述默克尔树路径,得到所述证明数据的实施方式可以有多种。本实施例中,主要列出以下两种进行详细说明。
第一种,上述基于所述目标分片以及所述默克尔树路径,得到与目标文件的校验值对应的证明数据的步骤,可以包括:根据所述目标分片以及预设的zk-SNARKs(zero-knowledge Succinct Non-interactive ARgument of Knowledge)算法,生成所述目标分片的零知识证明;将所述目标分片的默克尔树路径以及所述目标分片的零知识证明作为所述证明数据。
可以理解的是,零知识证明是在不揭露其它信息的情况下,使验证者相信某个论断是正确的。也就是说,通过预设的zk-SNARKs所生成的目标分片的零知识证明,能够使得区块链上的其他节点在没有获取到目标分片的情况下,验证存储节点是否持有目标分片,且目标分片的哈希值为存储节点发送的证明数据中的默克尔树路径对应的叶子节点的值。
此时,当目标文件的校验值为目标文件的根哈希值时,区块链上的其他节点接收到存储节点广播的证明数据后,能够根据该证明数据以及目标文件对应的校验值,验证所述存储节点是否持有所述目标文件。具体可以为:验证所述证明数据中的零知识证明;验证通过后,根据所述证明数据中的默克尔树路径计算根哈希值,验证所述根哈希值与所述目标文件的根哈希值是否一致,当验证结果为一致时,则表明存储节点持有目标文件。
在上述过程中,存储节点并没有将目标文件的源数据公开给其他节点,区块链上的其他节点拿不到目标分片,只能拿到目标分片的默克尔树路径以及零知识证明。因此,其他节点得不到目标文件的任何源码。这样能够有效地避免存储节点在数据持有证明即工作量证明的过程中泄露目标文件。
第二种,当上述步骤S103中的单向函数为同态哈希函数时,上述基于所述目标分片以及所述默克尔树路径,得到对应于所述目标分片的证明数据,可以包括:根据所述挑战随机数、所述目标分片以及与所述同态哈希函数对应的第二预设规则,得到不同于所述目标分片的特征数据;通过所述同态哈希函数获取所述挑战随机数的哈希值;将所述目标分片的默克尔树路径、所述挑战随机数的哈希值以及所述特征数据,作为所述证明数据。
在代数中,同态是两个代数结构(例如群、环)同态是抽象代数中2个代数结构、域或向量空间)之间的保持结构不变的映射。即存在映射Φ:X→Y,满足:其中,“·”是X上的运算,是Y上的运算。通常公钥密码算法具有同态性,如RSA是一个对乘法具有同态性的密码算法。当然,也有些算法对加法具有同态性,如Paillier。假设某加密算法为E(·)。若该加密算法对乘法具有同态性,则该加密算法对数据x和y加密具有特性:E(x×y)=E(x)×E(y)。若该加密算法对加法具有同态性,则该加密算法对数据x和y加密具有特性:E(x+y)=E(x)+E(y)。
也就是说,同态哈希函数具有同态特性,例如,可以是对加法具有同态性,或者,也可以是对乘法具有同态性。本实施例中,基于同态哈希函数所具有的同态特性设置上述的第二预设规则,从而根据挑战随机数、目标分片以及第二预设规则,生成不同于目标分片的特征数据。例如,当预设的同态哈希函数对加法具有同态性时,第二预设规则为将挑战随机数和目标分片相加得到特征数据,当然,为了生成不同于目标分片的特征数据,挑战随机数应不能等于0。
例如,当同态哈希函数采用基于椭圆曲线的BLS(Boneh–Lynn–Shacham)hash算法时,目标文件对应的默克尔树则根据该hash算法构建,且该hash算法具有如下特性:BLS_Hash(A+B)=BLS_Hash(A)^BLS_Hash(B)。此时,上述的根据所述挑战随机数、所述目标分片以及与所述同态哈希函数对应的第二预设规则,得到不同于所述目标分片的特征数据的步骤,具体可以包括:将所述挑战随机数与所述目标分片相加,得到所述不同于所述目标分片的特征数据。
以图2示出的包括4个分片的目标文件为例,假设挑战随机数r对应的目标分片为L1。此时存储节点将挑战随机数r与目标分片L1相加,得到特征数据L1+r。将L1+r、BLS_Hash(r)以及目标分片L1对应的默克尔树路径,作为对应于该目标分片的证明数据,广播到区块链中。
当然,除了采用基于椭圆曲线的BLS hash算法,也可以采用其他的同态hash算法。例如,当采用对乘法具有同态性的hash算法时,上述的根据所述挑战随机数、所述目标分片以及与所述同态哈希函数对应的第二预设规则,得到不同于所述目标分片的特征数据的步骤,则可以具体包括:将所述挑战随机数与所述目标分片相乘,得到所述不同于所述目标分片的特征数据。
此时,当目标文件的校验值为目标文件的根哈希值时,区块链上的其他节点接收到存储节点广播的证明数据后,能够根据该证明数据以及目标文件对应的校验值,验证所述存储节点是否持有所述目标文件。具体验证方法可以为:通过预设的单向函数计算证明数据中所包括的特征数据的哈希值;根据与所述单向函数对应的第二预设规则,判断所计算的特征数据的哈希值、所述证明数据中包括的目标分片的哈希值以及挑战随机数的哈希值是否匹配,若匹配,则根据证明数据中包括的默克尔树路径计算根哈希值,验证所述根哈希值与所述目标文件的根哈希值是否一致,当验证结果为一致时,则表明存储节点持有目标文件。
具体的,当采用基于椭圆曲线的BLS hash算法时,上述根据与所述单向函数对应的第二预设规则,判断所计算的特征数据的哈希值、所述证明数据中包括的目标分片的哈希值以及挑战随机数的哈希值是否匹配,具体可以包括:判断BLS_Hash(L+r)是否等于BLS_Hash(L)^BLS_Hash(r),若相等,则判定所计算的特征数据的哈希值、所述证明数据中包括的目标分片的哈希值以及挑战随机数的哈希值匹配,反之,则判定所计算的特征数据的哈希值、所述证明数据中包括的目标分片的哈希值以及挑战随机数的哈希值不匹配。其中,L+r表示特征数据,L表示目标分片,r表示由存储节点生成的挑战随机数。
需要说明的是,在上述验证过程中,验证节点采用的单向函数与存储节点中用于构建默克尔树的hash函数相同,且当所计算的特征数据的哈希值、证明数据中包括的目标分片的哈希值以及挑战随机数的哈希值不匹配时,或者是,所计算的根哈希值与目标文件的根哈希值是不一致时,均表示存储节点的工作量证明不通过,也就是说,该存储节点可能存在作弊行为。
本实施例中,存储节点在进行数据持有证明即工作量证明过程中,并没有将目标文件的源数据公开给其他节点,区块链上的其他节点拿不到目标分片,只能拿到由目标分片以及挑战随机数得到的不同于目标分片的特征数据。且由于哈希函数为单向函数,其他节点获取到证明数据后,也无法通过挑战随机数的哈希值反推出挑战随机数,因此,其他节点得不到目标文件的任何源码。这样能够有效地避免存储节点在数据持有证明即工作量证明的过程中泄露目标文件。
综上所述,本发明实施例提供的基于区块链的数据持有证明方法中,当需要存储节点出示工作量证明时,存储节点根据第一预设规则生成挑战随机数,其中,存储节点中分片存储有目标文件,然后,根据挑战随机数查找目标文件中对应的分片,将所查找到的分片作为目标分片,进而根据目标分片以及预设的单向函数,得到与该目标文件的校验值对应的证明数据,进而将所得到的证明数据广播到区块链上,作为该存储节点的工作量证明。这样区块链上的其他节点就能够根据该证明数据以及目标文件的校验值,验证存储节点是否确实持有该目标文件,从而防止区块链系统中的存储节点存在工作量作弊的问题。
另外,基于同一发明构思,本发明第实施例还提供了一种基于区块链的数据持有证明装置,运行于区块链中的存储节点,所述存储节点中分片存储有目标文件。如图3所示,该数据持有证明装置300包括:生成模块301、查找模块302、证明数据获取模块303和发送模块304。
其中,生成模块301,用于根据第一预设规则生成挑战随机数。
查找模块302,用于根据所述挑战随机数查找所述目标文件中对应的分片,将所查找到的分片作为目标分片。
证明数据获取模块303,用于根据所述目标分片以及预设的单向函数,得到与所述目标文件的校验值对应的证明数据。
发送模块304,用于将所述证明数据发送到所述区块链上的其他节点,以使得所述区块链上的其他节点能够根据所述证明数据以及所述目标文件的校验值,验证所述存储节点是否持有所述目标文件。
进一步地,所述生成模块301具体用于:所述存储节点获取所述区块链中当前时间点的前预设数量个区块的关键值,将所述关键值作为所述挑战随机数。
进一步地,所述关键值为所述区块链中当前时间点的前预设数量个区块的哈希值。
进一步地,所述目标文件的校验值为所述目标文件的根哈希值,所述证明数据获取模块303包括:构建子模块,用于基于所述预设的单向函数构建所述目标文件的默克尔树;第一获取子模块,用于获取所述目标分片对应的默克尔树路径;第二获取子模块,用于基于所述目标分片以及所述默克尔树路径,得到所述证明数据。
进一步地,所述第二获取子模块具体用于:根据所述目标分片以及预设的zk-SNARKs算法,生成所述目标分片的零知识证明;将所述目标分片的默克尔树路径以及所述目标分片的零知识证明,作为所述证明数据。
进一步地,所述单向函数为同态哈希函数,所述第二获取子模块具体用于:根据所述挑战随机数、所述目标分片以及与所述同态哈希函数对应的第二预设规则,得到不同于所述目标分片的特征数据;通过所述同态哈希函数获取所述挑战随机数的哈希值;将所述目标分片的默克尔树路径、所述挑战随机数的哈希值以及所述特征数据,作为所述证明数据。
进一步地,所述同态哈希函数为基于椭圆曲线的同态哈希函数,所述第二获取子模块具体用于:将所述挑战随机数与所述目标分片相加,得到所述不同于所述目标分片的特征数据。
以上实施例中,各模块可以是由软件代码实现,此时,上述的各模块可存储于存储节点的存储器内。当然,以上各模块同样可以由硬件例如集成电路芯片实现。
需要说明的是,本发明实施例所提供的基于区块链的数据持有证明装置300中,上述每个步骤的具体实现及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
另外,基于同一发明构思,本发明实施例还提供了一种基于区块链的数据持有证明装置,包括处理器和存储器。所述存储器耦接到所述处理器,所述存储器用于存储指令和分片存储有目标文件,当所述指令由所述处理器执行时使所述装置执行以下操作:
当满足预设条件时,根据第一预设规则生成挑战随机数;
根据所述挑战随机数查找所述目标文件中对应的分片,将所查找到的分片作为目标分片;
根据所述目标分片以及预设的单向函数,得到与所述目标文件的校验值对应的证明数据;
将所述证明数据发送到所述区块链上的其他节点,以使得所述区块链上的其他节点能够根据所述证明数据以及所述目标文件的校验值,验证所述存储节点是否持有所述目标文件。
需要说明的是,本发明实施例所提供的基于区块链的数据持有证明装置中,上述每个步骤的具体实现及产生的技术效果和前述方法实施例相同,为简要描述,本实施例未提及之处可参考前述方法实施例中相应内容。
于本发明实施例中,基于区块链的数据持有证明装置可以为具有闲置存储空间、能够为其他用户提供数据存储服务的终端设备。
图4示出了一种示例性终端设备400的模块框图。如图4所示,终端设备400包括存储器402、存储控制器404,一个或多个(图中仅示出一个)处理器406、外设接口408、网络模块410、输入输出模块412、显示模块414等。这些组件通过一条或多条通讯总线/信号线416相互通讯。
存储器402可用于存储软件程序以及模块,如本发明实施例中的基于区块链的数据持有证明方法以及装置对应的程序指令/模块,处理器406通过运行存储在存储器402内的软件程序以及模块,从而执行各种功能应用以及数据处理,如本发明实施例提供的基于区块链的数据持有证明方法。另外,存储器402还用于分片存储目标文件,即帮助其他用户节点存储数据。
存储器402可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。处理器406以及其他可能的组件对存储器402的访问可在存储控制器404的控制下进行。
外设接口408将各种输入/输出装置耦合至处理器406以及存储器402。在一些实施例中,外设接口408,处理器406以及存储控制器404可以在单个芯片中实现。在其他一些实例中,他们可以分别由独立的芯片实现。
网络模块410用于接收以及发送网络信号。上述网络信号可包括无线信号或者有线信号。
输入输出模块412用于提供给用户输入数据实现用户与用户终端的交互。所述输入输出模块412可以是,但不限于,鼠标、键盘和触控屏幕等。
显示模块414在终端设备400与用户之间提供一个交互界面(例如用户操作界面)或用于显示图像数据给用户参考。在本实施例中,所述显示模块414可以是液晶显示器或触控显示器。若为触控显示器,其可为支持单点和多点触控操作的电容式触控屏或电阻式触控屏等。支持单点和多点触控操作是指触控显示器能感应到来自该触控显示器上一个或多个位置处同时产生的触控操作,并将该感应到的触控操作交由处理器进行计算和处理。
可以理解,图4所示的结构仅为示意,终端设备400还可包括比图4中所示更多或者更少的组件,或者具有与图4所示不同的配置。图4中所示的各组件可以采用硬件、软件或其组合实现。
本发明实施例还提供了一种计算机存储介质。本发明实施例中的基于区块链的数据持有证明装置集成的功能模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例提供的基于区块链的数据持有证明方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的网关、代理服务器、系统中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了A1、一种基于区块链的数据持有证明方法,所述方法包括:
存储节点根据第一预设规则生成挑战随机数,其中,所述存储节点中分片存储有目标文件;
所述存储节点根据所述挑战随机数查找所述目标文件中对应的分片,将所查找到的分片作为目标分片;
所述存储节点根据所述目标分片以及预设的单向函数,得到与所述目标文件的校验值对应的证明数据;
所述存储节点将所述证明数据发送到所述区块链上的其他节点,以使得所述区块链上的其他节点能够根据所述证明数据以及所述目标文件的校验值,验证所述存储节点是否持有所述目标文件。
A2、根据A1所述的方法,所述存储节点根据第一预设规则生成挑战随机数包括:
所述存储节点获取所述区块链中当前时间点的前预设数量个区块的关键值,将所述关键值作为所述挑战随机数。
A3、根据A2所述的方法,所述关键值为所述区块链中当前时间点的前预设数量个区块的哈希值。
A4、根据A1所述的方法,所述目标文件的校验值为所述目标文件的根哈希值,所述根据所述目标分片以及预设的单向函数,得到与所述目标文件的校验值对应的证明数据,包括:
基于所述预设的单向函数构建所述目标文件的默克尔树;
获取所述目标分片对应的默克尔树路径;
基于所述目标分片以及所述默克尔树路径,得到所述证明数据。
A5、根据A4所述的方法,所述基于所述目标分片以及所述默克尔树路径,得到所述证明数据,包括:
根据所述目标分片以及预设的zk-SNARKs算法,生成所述目标分片的零知识证明;
将所述目标分片的默克尔树路径以及所述目标分片的零知识证明,作为所述证明数据。
A6、根据A4所述的方法,所述单向函数为同态哈希函数,所述基于所述目标分片以及所述默克尔树路径,得到所述证明数据,包括:
根据所述挑战随机数、所述目标分片以及与所述同态哈希函数对应的第二预设规则,得到不同于所述目标分片的特征数据;
通过所述同态哈希函数获取所述挑战随机数的哈希值;
将所述目标分片的默克尔树路径、所述挑战随机数的哈希值以及所述特征数据,作为所述证明数据。
A7、根据A6所述的方法,所述同态哈希函数为基于椭圆曲线的同态哈希函数,所述根据所述挑战随机数、所述目标分片以及与所述同态哈希函数对应的第二预设规则,得到不同于所述目标分片的特征数据包括:
将所述挑战随机数与所述目标分片相加,得到所述不同于所述目标分片的特征数据。
本发明公开了B8、一种基于区块链的数据持有证明装置,应用于存储节点,所述存储节点中分片存储有目标文件,所述装置包括:
生成模块,用于根据第一预设规则生成挑战随机数;
查找模块,用于根据所述挑战随机数查找所述目标文件中对应的分片,将所查找到的分片作为目标分片;
证明数据获取模块,用于根据所述目标分片以及预设的单向函数,得到与所述目标文件的校验值对应的证明数据;
发送模块,用于将所述证明数据发送到所述区块链上的其他节点,以使得所述区块链上的其他节点能够根据所述证明数据以及所述目标文件的校验值,验证所述存储节点是否持有所述目标文件。
B9、根据B8所述的装置,所述生成模块具体用于:
所述存储节点获取所述区块链中当前时间点的前预设数量个区块的关键值,将所述关键值作为所述挑战随机数。
B10、根据B9所述的装置,所述关键值为所述区块链中当前时间点的前预设数量个区块的哈希值。
B11、根据B8所述的装置,所述目标文件的校验值为所述目标文件的根哈希值,所述证明数据获取模块包括:
构建子模块,用于基于所述预设的单向函数构建所述目标文件的默克尔树;
第一获取子模块,用于获取所述目标分片对应的默克尔树路径;
第二获取子模块,用于基于所述目标分片以及所述默克尔树路径,得到所述证明数据。
B12、根据B11所述的装置,所述第二获取子模块具体用于:
根据所述目标分片以及预设的zk-SNARKs算法,生成所述目标分片的零知识证明;
将所述目标分片的默克尔树路径以及所述目标分片的零知识证明,作为所述证明数据。
B13、根据B11所述的装置,所述单向函数为同态哈希函数,所述第二获取子模块具体用于:
根据所述挑战随机数、所述目标分片以及与所述同态哈希函数对应的第二预设规则,得到不同于所述目标分片的特征数据;
通过所述同态哈希函数获取所述挑战随机数的哈希值;
将所述目标分片的默克尔树路径、所述挑战随机数的哈希值以及所述特征数据,作为所述证明数据。
B14、根据B13所述的装置,所述同态哈希函数为基于椭圆曲线的同态哈希函数,所述第二获取子模块具体用于:
将所述挑战随机数与所述目标分片相加,得到所述不同于所述目标分片的特征数据。
本发明公开了C15、一种基于区块链的数据持有证明装置,包括处理器和存储器,所述存储器耦接到所述处理器,所述存储器用于存储指令和分片存储有目标文件,当所述指令由所述处理器执行时使所述装置执行以下操作:
根据第一预设规则生成挑战随机数;
根据所述挑战随机数查找所述目标文件中对应的分片,将所查找到的分片作为目标分片;
根据所述目标分片以及预设的单向函数,得到与所述目标文件的校验值对应的证明数据;
将所述证明数据发送到所述区块链上的其他节点,以使得所述区块链上的其他节点能够根据所述证明数据以及所述目标文件的校验值,验证所述存储节点是否持有所述目标文件。
本发明公开了D16、一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现A1-A7中任一项所述的步骤。

Claims (10)

1.一种基于区块链的数据持有证明方法,其特征在于,所述方法包括:
存储节点根据第一预设规则生成挑战随机数,其中,所述存储节点中分片存储有目标文件;
所述存储节点根据所述挑战随机数查找所述目标文件中对应的分片,将所查找到的分片作为目标分片;
所述存储节点根据所述目标分片以及预设的单向函数,得到与所述目标文件的校验值对应的证明数据;
所述存储节点将所述证明数据发送到所述区块链上的其他节点,以使得所述区块链上的其他节点能够根据所述证明数据以及所述目标文件的校验值,验证所述存储节点是否持有所述目标文件。
2.根据权利要求1所述的方法,其特征在于,所述存储节点根据第一预设规则生成挑战随机数包括:
所述存储节点获取所述区块链中当前时间点的前预设数量个区块的关键值,将所述关键值作为所述挑战随机数。
3.根据权利要求2所述的方法,其特征在于,所述关键值为所述区块链中当前时间点的前预设数量个区块的哈希值。
4.根据权利要求1所述的方法,其特征在于,所述目标文件的校验值为所述目标文件的根哈希值,所述根据所述目标分片以及预设的单向函数,得到与所述目标文件的校验值对应的证明数据,包括:
基于所述预设的单向函数构建所述目标文件的默克尔树;
获取所述目标分片对应的默克尔树路径;
基于所述目标分片以及所述默克尔树路径,得到所述证明数据。
5.根据权利要求4所述的方法,其特征在于,所述基于所述目标分片以及所述默克尔树路径,得到所述证明数据,包括:
根据所述目标分片以及预设的zk-SNARKs算法,生成所述目标分片的零知识证明;
将所述目标分片的默克尔树路径以及所述目标分片的零知识证明,作为所述证明数据。
6.根据权利要求4所述的方法,其特征在于,所述单向函数为同态哈希函数,所述基于所述目标分片以及所述默克尔树路径,得到所述证明数据,包括:
根据所述挑战随机数、所述目标分片以及与所述同态哈希函数对应的第二预设规则,得到不同于所述目标分片的特征数据;
通过所述同态哈希函数获取所述挑战随机数的哈希值;
将所述目标分片的默克尔树路径、所述挑战随机数的哈希值以及所述特征数据,作为所述证明数据。
7.根据权利要求6所述的方法,其特征在于,所述同态哈希函数为基于椭圆曲线的同态哈希函数,所述根据所述挑战随机数、所述目标分片以及与所述同态哈希函数对应的第二预设规则,得到不同于所述目标分片的特征数据包括:
将所述挑战随机数与所述目标分片相加,得到所述不同于所述目标分片的特征数据。
8.一种基于区块链的数据持有证明装置,其特征在于,应用于存储节点,所述存储节点中分片存储有目标文件,所述装置包括:
生成模块,用于根据第一预设规则生成挑战随机数;
查找模块,用于根据所述挑战随机数查找所述目标文件中对应的分片,将所查找到的分片作为目标分片;
证明数据获取模块,用于根据所述目标分片以及预设的单向函数,得到与所述目标文件的校验值对应的证明数据;
发送模块,用于将所述证明数据发送到所述区块链上的其他节点,以使得所述区块链上的其他节点能够根据所述证明数据以及所述目标文件的校验值,验证所述存储节点是否持有所述目标文件。
9.一种基于区块链的数据持有证明装置,其特征在于,包括处理器和存储器,所述存储器耦接到所述处理器,所述存储器用于存储指令和分片存储有目标文件,当所述指令由所述处理器执行时使所述装置执行以下操作:
根据第一预设规则生成挑战随机数;
根据所述挑战随机数查找所述目标文件中对应的分片,将所查找到的分片作为目标分片;
根据所述目标分片以及预设的单向函数,得到与所述目标文件的校验值对应的证明数据;
将所述证明数据发送到所述区块链上的其他节点,以使得所述区块链上的其他节点能够根据所述证明数据以及所述目标文件的校验值,验证所述存储节点是否持有所述目标文件。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-7中任一项所述的步骤。
CN201810450786.5A 2018-05-11 2018-05-11 基于区块链的数据持有证明方法、装置及可读存储介质 Pending CN108681583A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810450786.5A CN108681583A (zh) 2018-05-11 2018-05-11 基于区块链的数据持有证明方法、装置及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810450786.5A CN108681583A (zh) 2018-05-11 2018-05-11 基于区块链的数据持有证明方法、装置及可读存储介质

Publications (1)

Publication Number Publication Date
CN108681583A true CN108681583A (zh) 2018-10-19

Family

ID=63806247

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810450786.5A Pending CN108681583A (zh) 2018-05-11 2018-05-11 基于区块链的数据持有证明方法、装置及可读存储介质

Country Status (1)

Country Link
CN (1) CN108681583A (zh)

Cited By (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109447804A (zh) * 2018-10-30 2019-03-08 杭州复杂美科技有限公司 交易分流方法、设备和存储介质
CN109657499A (zh) * 2018-10-31 2019-04-19 深圳市网心科技有限公司 元数据验证方法、系统服务器和计算机可读存储介质
CN109684413A (zh) * 2018-12-25 2019-04-26 深圳市网心科技有限公司 一种区块链存储证明方法、系统及电子设备和存储介质
CN109783057A (zh) * 2018-12-03 2019-05-21 北京建筑大学 一种区块链上随机数生成方法及装置
CN110099112A (zh) * 2019-04-28 2019-08-06 平安科技(深圳)有限公司 基于点对点网络的数据存储方法、装置、介质及终端设备
CN110263580A (zh) * 2019-04-29 2019-09-20 阿里巴巴集团控股有限公司 基于区块链的数据处理方法、装置和区块链节点
CN110300173A (zh) * 2019-06-28 2019-10-01 杭州复杂美科技有限公司 去中心化数据存储方法、验证方法、设备和存储介质
CN110310115A (zh) * 2019-05-23 2019-10-08 杭州云象网络技术有限公司 一种基于分片机制实现分布式账本横向扩展的方法
CN110321074A (zh) * 2019-05-20 2019-10-11 西安电子科技大学 基于区块链和分布式存储系统的安全存储证明的共识方法
CN110321735A (zh) * 2019-04-29 2019-10-11 山东工商学院 基于零知识证明的业务办理方法、系统及存储介质
CN110414981A (zh) * 2019-07-04 2019-11-05 华中科技大学 一种支持ZKPs的同态加密方法和区块链交易金额加密方法
CN110569021A (zh) * 2019-09-06 2019-12-13 湖南天河国云科技有限公司 一种抗asic挖矿的工作量证明方法
CN110648139A (zh) * 2019-09-03 2020-01-03 北京航空航天大学 基于分片技术和博弈论的区块链事务验证扩容方法及装置
CN111026767A (zh) * 2020-01-04 2020-04-17 天津金农企业管理咨询合伙企业(有限合伙) 区块链的数据存储方法、装置及硬件设备
CN111049656A (zh) * 2019-12-09 2020-04-21 中山大学 一种基于ecdlp的工作量证明方法
CN111083105A (zh) * 2019-11-05 2020-04-28 湖南大学 一种基于区块链的云数据持有性验证方法及系统
WO2020082889A1 (zh) * 2018-10-26 2020-04-30 阿里巴巴集团控股有限公司 征信评估方法及装置、电子设备
CN111104385A (zh) * 2018-10-25 2020-05-05 财团法人资讯工业策进会 用于物联网系统的数据处理装置及数据处理方法
CN111291420A (zh) * 2020-01-21 2020-06-16 国家市场监督管理总局信息中心 一种基于区块链的分布式离链数据存储方法
CN111338841A (zh) * 2018-12-19 2020-06-26 北京京东尚科信息技术有限公司 数据处理方法、装置、设备和存储介质
CN111444547A (zh) * 2020-03-20 2020-07-24 苏州链原信息科技有限公司 用于数据完整性证明的方法、设备及计算机存储介质
CN111444548A (zh) * 2020-03-20 2020-07-24 苏州链原信息科技有限公司 用于数据完整性证明的方法、设备及计算机存储介质
CN111444535A (zh) * 2020-03-20 2020-07-24 苏州链原信息科技有限公司 用于生成聚合数据标签的方法、设备及计算机存储介质
WO2020151330A1 (zh) * 2019-01-23 2020-07-30 平安科技(深圳)有限公司 数据持有性验证方法及终端设备
CN111698092A (zh) * 2020-05-29 2020-09-22 湖南天河国云科技有限公司 基于零知识证明和区块链的文件存储证明方法、系统及介质
CN112000993A (zh) * 2020-07-30 2020-11-27 杭州趣链科技有限公司 一种基于区块链的数据存储验证方法、设备和存储介质
CN112287040A (zh) * 2020-10-30 2021-01-29 深圳前海微众银行股份有限公司 一种基于区块链的权益合并方法及装置
CN112311548A (zh) * 2020-03-25 2021-02-02 北京沃东天骏信息技术有限公司 数据持有性验证方法、系统、装置及计算机可读存储介质
US11115188B2 (en) 2019-04-29 2021-09-07 Advanced New Technologies Co., Ltd. Blockchain-based data processing method, apparatus, and blockchain node
CN113642027A (zh) * 2021-09-01 2021-11-12 卫宁健康科技集团股份有限公司 医疗信息整合方法、装置、计算机设备、介质及系统
CN113961908A (zh) * 2021-12-23 2022-01-21 杭州链城数字科技有限公司 数据存证方法、装置、计算机设备和存储介质
CN116614231A (zh) * 2023-07-19 2023-08-18 北京信安世纪科技股份有限公司 数据持有性的证明方法、系统、设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106936818A (zh) * 2017-02-24 2017-07-07 中国科学院软件研究所 基于区块链技术的数据审计方法、客户端及区块链云端设备
CN107220559A (zh) * 2017-06-11 2017-09-29 南京安链数据科技有限公司 一种针对不可篡改文件的加密存储方法
CN107249046A (zh) * 2017-08-15 2017-10-13 李俊庄 一种基于区块链的分布式云存储系统构建方法
CN107770154A (zh) * 2017-09-22 2018-03-06 中国科学院信息工程研究所 基于云存储的区块链可靠数据存储方法、终端及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106936818A (zh) * 2017-02-24 2017-07-07 中国科学院软件研究所 基于区块链技术的数据审计方法、客户端及区块链云端设备
CN107220559A (zh) * 2017-06-11 2017-09-29 南京安链数据科技有限公司 一种针对不可篡改文件的加密存储方法
CN107249046A (zh) * 2017-08-15 2017-10-13 李俊庄 一种基于区块链的分布式云存储系统构建方法
CN107770154A (zh) * 2017-09-22 2018-03-06 中国科学院信息工程研究所 基于云存储的区块链可靠数据存储方法、终端及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
以太坊爱好者: "zkSNARKs(零知识证明)简述", 《ETHFANS》 *
元家昕: "零知识证明与zkSNARK", 《简书》 *

Cited By (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111104385A (zh) * 2018-10-25 2020-05-05 财团法人资讯工业策进会 用于物联网系统的数据处理装置及数据处理方法
WO2020082889A1 (zh) * 2018-10-26 2020-04-30 阿里巴巴集团控股有限公司 征信评估方法及装置、电子设备
TWI724389B (zh) * 2018-10-26 2021-04-11 開曼群島商創新先進技術有限公司 徵信評估方法及裝置、電子設備
CN109447804A (zh) * 2018-10-30 2019-03-08 杭州复杂美科技有限公司 交易分流方法、设备和存储介质
CN109447804B (zh) * 2018-10-30 2020-08-14 杭州复杂美科技有限公司 交易分流方法、设备和存储介质
CN109657499A (zh) * 2018-10-31 2019-04-19 深圳市网心科技有限公司 元数据验证方法、系统服务器和计算机可读存储介质
CN109783057A (zh) * 2018-12-03 2019-05-21 北京建筑大学 一种区块链上随机数生成方法及装置
CN111338841A (zh) * 2018-12-19 2020-06-26 北京京东尚科信息技术有限公司 数据处理方法、装置、设备和存储介质
CN109684413A (zh) * 2018-12-25 2019-04-26 深圳市网心科技有限公司 一种区块链存储证明方法、系统及电子设备和存储介质
WO2020151330A1 (zh) * 2019-01-23 2020-07-30 平安科技(深圳)有限公司 数据持有性验证方法及终端设备
CN110099112A (zh) * 2019-04-28 2019-08-06 平安科技(深圳)有限公司 基于点对点网络的数据存储方法、装置、介质及终端设备
CN110263580B (zh) * 2019-04-29 2021-03-23 创新先进技术有限公司 基于区块链的数据处理方法、装置和区块链节点
US11115188B2 (en) 2019-04-29 2021-09-07 Advanced New Technologies Co., Ltd. Blockchain-based data processing method, apparatus, and blockchain node
CN110321735A (zh) * 2019-04-29 2019-10-11 山东工商学院 基于零知识证明的业务办理方法、系统及存储介质
CN110263580A (zh) * 2019-04-29 2019-09-20 阿里巴巴集团控股有限公司 基于区块链的数据处理方法、装置和区块链节点
CN110321074B (zh) * 2019-05-20 2021-07-09 西安电子科技大学 基于区块链和分布式存储系统的安全存储证明的共识方法
CN110321074A (zh) * 2019-05-20 2019-10-11 西安电子科技大学 基于区块链和分布式存储系统的安全存储证明的共识方法
CN110310115A (zh) * 2019-05-23 2019-10-08 杭州云象网络技术有限公司 一种基于分片机制实现分布式账本横向扩展的方法
CN110300173A (zh) * 2019-06-28 2019-10-01 杭州复杂美科技有限公司 去中心化数据存储方法、验证方法、设备和存储介质
CN110414981A (zh) * 2019-07-04 2019-11-05 华中科技大学 一种支持ZKPs的同态加密方法和区块链交易金额加密方法
CN110648139A (zh) * 2019-09-03 2020-01-03 北京航空航天大学 基于分片技术和博弈论的区块链事务验证扩容方法及装置
CN110648139B (zh) * 2019-09-03 2022-04-12 北京航空航天大学 基于分片技术和博弈论的区块链事务验证扩容方法及装置
CN110569021B (zh) * 2019-09-06 2023-09-12 湖南天河国云科技有限公司 一种抗asic挖矿的工作量证明方法
CN110569021A (zh) * 2019-09-06 2019-12-13 湖南天河国云科技有限公司 一种抗asic挖矿的工作量证明方法
CN111083105A (zh) * 2019-11-05 2020-04-28 湖南大学 一种基于区块链的云数据持有性验证方法及系统
CN111083105B (zh) * 2019-11-05 2021-06-25 湖南大学 一种基于区块链的云数据持有性验证方法及系统
CN111049656A (zh) * 2019-12-09 2020-04-21 中山大学 一种基于ecdlp的工作量证明方法
CN111026767B (zh) * 2020-01-04 2023-05-26 天津金农企业管理咨询合伙企业(有限合伙) 区块链的数据存储方法、装置及硬件设备
CN111026767A (zh) * 2020-01-04 2020-04-17 天津金农企业管理咨询合伙企业(有限合伙) 区块链的数据存储方法、装置及硬件设备
CN111291420A (zh) * 2020-01-21 2020-06-16 国家市场监督管理总局信息中心 一种基于区块链的分布式离链数据存储方法
CN111444548A (zh) * 2020-03-20 2020-07-24 苏州链原信息科技有限公司 用于数据完整性证明的方法、设备及计算机存储介质
CN111444547B (zh) * 2020-03-20 2024-03-19 苏州链原信息科技有限公司 用于数据完整性证明的方法、设备及计算机存储介质
CN111444548B (zh) * 2020-03-20 2024-03-19 苏州链原信息科技有限公司 用于数据完整性证明的方法、设备及计算机存储介质
CN111444535B (zh) * 2020-03-20 2024-01-26 苏州链原信息科技有限公司 用于生成聚合数据标签的方法、设备及计算机存储介质
CN111444535A (zh) * 2020-03-20 2020-07-24 苏州链原信息科技有限公司 用于生成聚合数据标签的方法、设备及计算机存储介质
CN111444547A (zh) * 2020-03-20 2020-07-24 苏州链原信息科技有限公司 用于数据完整性证明的方法、设备及计算机存储介质
CN112311548A (zh) * 2020-03-25 2021-02-02 北京沃东天骏信息技术有限公司 数据持有性验证方法、系统、装置及计算机可读存储介质
CN111698092A (zh) * 2020-05-29 2020-09-22 湖南天河国云科技有限公司 基于零知识证明和区块链的文件存储证明方法、系统及介质
CN112000993B (zh) * 2020-07-30 2023-12-05 杭州趣链科技有限公司 一种基于区块链的数据存储验证方法、设备和存储介质
CN112000993A (zh) * 2020-07-30 2020-11-27 杭州趣链科技有限公司 一种基于区块链的数据存储验证方法、设备和存储介质
CN112287040B (zh) * 2020-10-30 2022-11-04 深圳前海微众银行股份有限公司 一种基于区块链的权益合并方法、装置、设备及介质
CN112287040A (zh) * 2020-10-30 2021-01-29 深圳前海微众银行股份有限公司 一种基于区块链的权益合并方法及装置
CN113642027A (zh) * 2021-09-01 2021-11-12 卫宁健康科技集团股份有限公司 医疗信息整合方法、装置、计算机设备、介质及系统
CN113642027B (zh) * 2021-09-01 2024-04-16 卫宁健康科技集团股份有限公司 医疗信息整合方法、装置、计算机设备、介质及系统
CN113961908B (zh) * 2021-12-23 2022-03-22 杭州链城数字科技有限公司 数据存证方法、装置、计算机设备和存储介质
CN113961908A (zh) * 2021-12-23 2022-01-21 杭州链城数字科技有限公司 数据存证方法、装置、计算机设备和存储介质
CN116614231A (zh) * 2023-07-19 2023-08-18 北京信安世纪科技股份有限公司 数据持有性的证明方法、系统、设备和存储介质
CN116614231B (zh) * 2023-07-19 2023-09-22 北京信安世纪科技股份有限公司 数据持有性的证明方法、系统、设备和存储介质

Similar Documents

Publication Publication Date Title
CN108681583A (zh) 基于区块链的数据持有证明方法、装置及可读存储介质
CN108664221A (zh) 一种数据持有证明方法、装置及可读存储介质
JP7552970B2 (ja) ブロックチェーンを用いてデータ記録を分配するシステム及び方法
CA3014752C (en) System and method for controlling asset-related actions via a blockchain
US11962513B2 (en) Verification of data processes in a network of computing resources
CN111460511A (zh) 基于隐私保护的联邦学习、虚拟对象分配方法和装置
CN110493007A (zh) 一种基于区块链的信息验证方法、装置、设备及存储介质
CN109615370A (zh) 对象选取方法及装置、电子设备
CN109191212A (zh) 确定分享用户的方法、装置、设备及计算机可读存储介质
US20200143242A1 (en) System and method for creating and providing crime intelligence based on crowdsourced information stored on a blockchain
CN108737109A (zh) 数据持有证明方法、装置及系统
Serena et al. Cryptocurrencies activity as a complex network: Analysis of transactions graphs
JP7397212B2 (ja) コンテンツ配信における情報に対するアクセスを保護するためのセキュアなmpcおよびベクトル計算の使用
CN111488616A (zh) 业务数据区块链的预言机实现方法及装置
Alamgir et al. Federated recommenders: methods, challenges and future
CN110046092A (zh) 实验分流方法、装置、电子设备和计算机可读存储介质
CN108769057A (zh) 基于区块链的身份识别方法及装置
JP7515623B2 (ja) 情報に対するアクセスを保護するためのセキュアなマルチパーティ計算および確率的データ構造の使用
CN108712379A (zh) 数据推送方法及装置
US10546032B2 (en) System and method for association rule mining from encrypted databases
WO2021053426A1 (en) Allocation of a digital asset using blockchain transactions
Odiete et al. Using blockchain to support data and service management in IoV/IoT
Janakiraman et al. Dual sourcing inventory systems: On optimal policies and the value of costless returns
JP6721724B2 (ja) 支払い主体の拡張を促進する方法およびデバイス
CN108776687A (zh) 基于区块链的网络空间搜索方法、系统及计算设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20181019