CN113935069A - 一种基于区块链的数据验证方法、装置、设备及存储介质 - Google Patents
一种基于区块链的数据验证方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113935069A CN113935069A CN202111509762.0A CN202111509762A CN113935069A CN 113935069 A CN113935069 A CN 113935069A CN 202111509762 A CN202111509762 A CN 202111509762A CN 113935069 A CN113935069 A CN 113935069A
- Authority
- CN
- China
- Prior art keywords
- data
- value
- point group
- signature value
- verified
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Bioethics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种基于区块链的数据验证方法、装置、设备及存储介质,涉及区块链技术领域,可用于云计算和云服务。具体实现方案为:响应于数据拥有方发起的包括待验证数据块的标识信息和有效性校验值的数据验证事务请求,获取数据存储方对所述数据验证事务请求的应答签名值;基于第一点群和第二点群之间的双线性映射关系,根据所述标识信息、所述有效性校验值、所述应答签名值和所述数据拥有方的公钥,验证所述数据存储方中是否存储有所述待验证数据块;其中,所述应答签名值属于第一点群,所述数据拥有方的公钥属于第二点群。本公开的技术方案,能够在不需要提供数据本身的情况下,验证数据存储方是否真正存储了数据拥有方的数据。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及区块链技术,可用于云计算和云服务。
背景技术
随着技术的进步,海量隐私、高价值数据需要安全存储。数据拥有方面临巨大的存储压力,需要一种存储服务,利用闲置的存储资源,对数据拥有方所生成的数据进行存储。其中,如何保证数据存储方真正对数据拥有方的数据进行了存储至关重要。
发明内容
本公开提供了一种基于区块链的数据验证方法、装置、设备及存储介质。
根据本公开的一方面,提供了一种基于区块链的数据验证方法,该方法包括:
响应于数据拥有方发起的包括待验证数据块的标识信息和有效性校验值的数据验证事务请求,获取数据存储方对所述数据验证事务请求的应答签名值;
基于第一点群和第二点群之间的双线性映射关系,根据所述标识信息、所述有效性校验值、所述应答签名值和所述数据拥有方的公钥,验证所述数据存储方中是否存储有所述待验证数据块;
其中,所述应答签名值属于第一点群,所述数据拥有方的公钥属于第二点群。
根据本公开的另一方面,提供了一种基于区块链的数据验证方法,该方法包括:
从已向数据存储方分发的目标文件的数据块中选择待验证数据块;
生成所述待验证数据块的有效性校验值;
向区块链网络发起包括所述待验证数据块的标识信息和所述有效性校验值的数据验证事务请求。
根据本公开的另一方面,提供了一种基于区块链的数据验证方法,该方法包括:
获取数据拥有方发起的包括待验证数据块的标识信息和有效性校验值的数据验证事务请求;
根据所述标识信息,从本地存储的文件数据中获取待验证数据块的数据内容和数据签名值;
根据所述数据内容、所述数据签名值和所述有效性校验值,生成应答签名值;
向区块链网络发送所述应答签名值。
根据本公开的另一方面,提供了一种电子设备,该电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开任一实施例所述的基于区块链的数据验证方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使计算机执行本公开任一实施例所述的基于区块链的数据验证方法。
根据本公开的技术方案,能够在不需要提供数据本身的情况下,验证数据存储方是否真正存储了数据拥有方的数据。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开实施例提供的一种基于区块链的数据验证方法的流程图;
图2是根据本公开实施例提供的另一种基于区块链的数据验证方法的流程图;
图3是根据本公开实施例提供的又一种基于区块链的数据验证方法的流程图;
图4是根据本公开实施例提供的又一种基于区块链的数据验证方法的流程图;
图5是根据本公开实施例提供的再一种基于区块链的数据验证方法的流程图;
图6是根据本公开实施例提供的一种基于区块链的数据验证的实现过程示意图;
图7是根据本公开实施例提供的一种基于区块链的数据验证装置的结构示意图;
图8是根据本公开实施例提供的又一种基于区块链的数据验证装置的结构示意图;
图9是根据本公开实施例提供的再一种基于区块链的数据验证装置的结构示意图;
图10是用来实现本公开实施例的基于区块链的数据验证方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本公开实施例提供的一种基于区块链的数据验证方法的流程图。本公开实施例适用于基于区块链技术对数据进行验证的情况,尤其适用于数据拥有方已向数据存储方分发文件的至少两个数据块的情况下,如何验证数据存储方是否存储了数据拥有方数据的情况。整套基于区块链的数据验证方法由数据拥有方、数据存储方、以及区块链网络中的节点相互配合来执行。其中,所谓数据拥有方即为借助数据存储方来存储其所拥有的数据的一方;数据存储方即为具有丰富存储资源的一方,可专门用于存储数据;进一步的,区块链网络中的节点能够与数据拥有方和数据存储方交互。
本实施例中基于区块链的数据验证方法可以由区块链网络中的节点执行,具体可以由区块链网络中的区块生成节点来执行。该方法可以由基于区块链的数据验证装置来执行,该装置可以采用软件和/或硬件的方式实现,并可集成于承载基于区块链的数据验证功能的区块链节点的计算设备中。如图1所示,本实施例提供的基于区块链的数据验证方法可以包括:
S101,响应于数据拥有方发起的包括待验证数据块的标识信息和有效性校验值的数据验证事务请求,获取数据存储方对数据验证事务请求的应答签名值。
本实施例中,待验证数据块是指需要进行验证是否存储在数据存储方的数据块,可以是从目标文件对应的所有数据块中随机选择出的数据块,例如目标文件被分为100个数据块,可以随机选择出20个数据块作为待验证数据块。其中,目标文件是指已经向数据存储方分发的要存储的文件数据。
所谓待验证数据块的标识信息用于唯一表征待验证数据块,例如可以是待验证数据块的编号。
本实施例中,所谓有效性校验值可以是具有唯一性作用的数值或者字符串,能够用于后续验证数据存储方中是否存储有待验证数据块。示例性的,有效性校验值可以为随机值,具体可以是数据拥有方在发起数据验证事务请求前,预先随机生成的,或者通过执行某一智能合约后生成的。可选的,有效性校验值与待验证数据块一一对应,待验证数据块具有唯一的标识信息,即有效性验证值与标识信息一一对应。该有效性校验值具有唯一性,该唯一性可以是全局唯一的,也可以是局部唯一的。
所谓数据验证事务请求可以是数据拥有方在具有数据验证需求时所发起的请求。具体可以是,数据拥有方基于租赁智能合约发起数据验证事务请求。其中,租赁智能合约可以是基于插件机制所编写的代码段,专门用于处理数据拥有方和数据存储方之间数据存储交易等的相关事宜。
可选的,数据验证事务请求中可以包括数据拥有方的标识信息。其中,数据拥有方的标识信息可用于唯一表征数据拥有方的身份,例如可以是数据拥有方的ID。数据验证事务请求中还可以包括待验证数据块的标识信息和有效性校验值。
此外,数据验证事务请求中还可以包括待验证数据块的至少一个数据存储方的标识信息。其中,数据存储方的标识信息可用于唯一表征数据存储方的身份,例如可以是数据存储方的ID。数据验证事务请求中还可以包括其他信息,比如待验证数据块的数据结构等。
具体的,数据拥有方在具有数据验证需求时,可以基于租赁智能合约,向区块链网络发起数据验证事务请求。进而区块链网络中的节点可以从区块链网络中获取数据拥有方发起的数据验证事务请求,并响应,同时获取数据存储方对数据验证事务请求的应答签名值。
本实施例中,所谓应答签名值是指数据存储方对数据验证事务请求应答的签名值。可选的,一个数据验证事务请求对应一个应答签名值;进一步的,应答签名值可以包括第一签名值和第二签名值。可选的,根据有效性校验值和数据内容,生成应答签名值中的第一签名值;根据数据签名值和有效性校验值,生成应答签名值中的第二签名值。其中,所谓数据签名值为数据拥有方对待验证数据块的签名值。进一步的,每一待验证数据块具有一个唯一性的数据签名值。
在一可实施方式中,若数据存储方不是区块链网络中的节点,则区块链网络中的节点在获取到数据拥有方发起的数据验证事务请求后,可以将数据拥有方的数据验证事务请求告知数据存储方,由数据存储方等决定是否对数据拥有方的数据验证事务请求进行应答。可选的,对于决定对数据拥有方的数据验证事务请求进行应答的数据存储方,可以向区块链网络中的节点进行反馈,进而区块链网络中的节点可以获取数据存储方对数据验证事务请求的应答签名值。
在又一可实施方式中,若数据存储方是区块链网络中的节点,则数据存储方也可以从区块链网络中获取到数据拥有方发起的数据验证事务请求。此时数据存储方可以决定是否对数据拥有方的数据验证事务请求进行应答。可选的,对于决定对数据拥有方的数据验证事务请求进行应答的数据存储方,可以向区块链生成节点即本机节点进行反馈,进而本机节点可以获取数据存储方对数据验证事务请求的应答签名值。
S102,基于第一点群和第二点群之间的双线性映射关系,根据标识信息、有效性校验值、应答签名值和数据拥有方的公钥,验证数据存储方中是否存储有待验证数据块。
本实施例中,双线性映射,即由两个点群中的点,生成第三个点群中的点的函数,该函数对每个参数都是线性的。也就是说,若e:V×W→X是一个双线性映射,则V固定,W可变时,W到X的映射是线性的;W固定,V可变时,V到X的映射也是线性的;即保持双线性映射中的任意一个参数固定,另一个参数对X的映射都是线性的。
需要说明的是,本实施例中具有两个点群,可以将这两个点群中任意一个点群作为第一点群,另一个作为第二点群。
进一步的,第一点群和第二点群之间的双线性映射关系,即为第一点群中的点和第二点群中的点,生成第三点群中的点的函数关系,该函数对第一点群和第二点群中的点都是线性的。其中,第一点群和第二点群均为使用一种椭圆曲线构造的点群;进一步的,构造第一点群的椭圆曲线和构造第二点群的椭圆曲线不同。
可选的,应答签名值和数据拥有方的公钥属于不同点群。即应答签名值属于第一点群,可以基于第一点群的基点生成;数据拥有方的公钥属于第二点群;示例性的,数据拥有方的公钥基于数据拥有方的私钥和第二点群的基点确定。所谓第一点群的基点是指第一点群的生成元,第一点群中的其他点可以基于基点生成;对应的,第二点群的基点是指第二点群的生成元,第二点群中的其他点可以基于基点生成。
更进一步的,在应答签名值属于第一点群,数据拥有方的公钥属于第二点群的情况下,有效性校验值小于第一点群的阶数;其中,第一点群的阶数是指第一点群中点的总数量。
具体的,可以基于第一点群和第二点群之间的双线性映射关系,将待验证数据块的标识信息、有效性校验值、应答签名值和数据拥有方的公钥等,输入至双线性验证模型中,以验证数据存储方中是否存储有待验证数据块。
进一步的,可以调用租赁智能合约,基于第一点群和第二点群之间的双线性映射关系,将待验证数据块的标识信息和有效性校验值,应答签名值,数据拥有方的公钥等,验证数据存储方中是否存储有待验证数据块。
本公开实施例的技术方案,通过响应于数据拥有方发起的包括待验证数据块的标识信息和有效性校验值的数据验证事务请求,获取数据存储方对数据验证事务请求的应答签名值,之后基于第一点群和第二点群之间的双线性映射关系,根据标识信息、有效性校验值、应答签名值和数据拥有方的公钥,验证数据存储方中是否存储有待验证数据块。上述技术方案,引入双线性映射关系,在不需要提供数据的情况下,有效的验证了数据存储方是否真正存储了数据拥有方的数据。
示例性的,在上述实施例的基础上,基于第一点群和第二点群之间的双线性映射关系,根据标识信息、有效性校验值、应答签名值和数据拥有方的公钥,验证数据存储方中是否存储有待验证数据块还可以是:基于第一点群和第二点群之间的双线性映射关系,根据标识信息、有效性校验值、应答签名值、辅助签名值、数据拥有方的公钥和第二点群中的基点,验证数据存储方中是否存储有待验证数据块。
其中,所谓辅助签名值是指数据拥有方对待验证数据块进行签名时所使用的辅助值;可选的,辅助签名值可以包括第一辅助值和第二辅助值;进一步的,第一辅助值和第二辅助值可以是不同的随机值。更进一步的,第一辅助值和第二辅助值也小于第一点群的阶数。
例如可以是,可以基于第一点群和第二点群之间的双线性映射关系,将待验证数据块的标识信息、有效性校验值、应答签名值、辅助签名值、数据拥有方的公钥和第二点群中的基点,一并输入至双线性验证模型中,以验证数据存储方中是否存储有待验证数据块。
还可以是,根据第一点群和第二点群之间的双线性映射关系所构建的公式,将待验证数据块的标识信息、有效性校验值、应答签名值、辅助签名值、数据拥有方的公钥和第二点群中的基点,一并输入至该公式,验证该公式是否成立,来验证数据存储方中是否存储有待验证数据块。
可以理解的是,本实施例基于双线性映射关系,结合标识信息、有效性校验值、应答签名值、辅助签名值、数据拥有方的公钥和第二点群中的基点等多种数据来验证数据存储方中是否存储有待验证数据块,提高了验证结果的准确度。
图2是根据本公开实施例提供的另一种基于区块链的数据验证方法的流程图,在上述实施例的基础上,对“基于第一点群和第二点群之间的双线性映射关系,根据标识信息、有效性校验值、应答签名值和数据拥有方的公钥,验证数据存储方中是否存储有待验证数据块”进一步优化,提供一种可选实施方案。如图2所示,本实施例提供的基于区块链的数据验证方法可以包括:
S201,响应于数据拥有方发起的包括待验证数据块的标识信息和有效性校验值的数据验证事务请求,获取数据存储方对数据验证事务请求的应答签名值。
S202,基于第一点群和第二点群之间的双线性映射关系,根据有效性校验值、标识信息、辅助签名值、数据拥有方的公钥和应答签名值中的第一签名值,确定第三点群中的第一点值。
本实施例中,第三点群中的第一点值是指第二点群中的点和第一点群中的点基于第一点群和第二点群的双线性映射关系,得到的第三点群中的点的数值。
例如,可以是根据有效性校验值、标识信息、辅助签名值以及应答签名值中的第一签名值等,基于设定计算公式,确定第一点群中的一个点;将数据拥有方的公钥作为第二点群中的一个点;之后基于第一点群和第二点群之间的双线性映射关系,可确定第三点群中的第一点值。
还可以是,根据租赁智能合约中的处理逻辑,基于第一点群和第二点群之间的双线性映射关系,根据有效性校验值、标识信息、辅助签名值、数据拥有方的公钥、以及应答签名值中的第一签名值,确定第三点群中的第一点值。
具体可以通过如下方式确定:
第一步,根据有效性校验值、标识信息和辅助签名值中的第一辅助值,确定第一数值。
一种可实施方式,可以将有效性校验值、标识信息和辅助签名值中的第一辅助值相加后的结果作为第一数值。或者,还可以将有效性校验值、标识信息和辅助签名值中的第一辅助值相乘后的结果作为第一数值。
又一种可实施方式,还可以对标识信息和辅助签名值中的第一辅助值进行哈希运算,得到哈希点值;根据哈希点值和有效性校验值,确定第一数值。具体的,可以采用独特哈希函数,对标识信息和辅助签名值中的第一辅助值进行哈希运算,得到哈希点值;将哈希点值和有效性校验值相乘后的结果作为第一数值。其中,独特哈希函数可以将一段内容编码成一个点。
进一步的,在待验证数据块的数量为多个的情况下,每一待验证数据块具有一个标识信息,且对应一个有效性校验值。进而具体可以是,对于每一待验证数据块,对该待验证数据块的标识信息和辅助签名值中的第一辅助值进行哈希运算,得到哈希点值,并将哈希点值和该待验证数据块关联的有效性校验值相乘,作为该待验证数据块对应的第一数值。之后,将各个待验证数据块对应的第一数值相加,得到最终的第一数值。
可以理解的是,采用哈希编码,将标识信息第一辅助值转换为一个点值,降低了计算的复杂度,为后续的基于第一点群和第二点群的映射关系确定第三点群中的第一点值奠定了基础。
第二步,根据辅助签名值中的第二辅助值和应答签名值中第一签名值,确定第二数值。
一种可实施方式,可以将辅助签名值中的第二辅助值和应答签名值中第一签名值相加的结果,作为第二数值。
又一种可实施方式,可以将辅助签名值中的第二辅助值和应答签名值中第一签名值相乘的结果,作为第二数值。
第三步,根据第一数值和第二数值,确定第三数值。
示例性的,可以将第一数值和第二数值相乘后的结果作为第三数值;
示例性的,可以将第一数值和第二数值相加后的结果作为第三数值;其中,第三数值属于第一点群。
第四步,基于第一点群和第二点群之间的双线性映射关系,根据第三数值和数据拥有方的公钥,确定第三点群中的第一点值。
本实施例中,可以基于第一点群和第二点群之间的双线性映射关系,即映射函数,将第三数值代入映射函数中第一点群位置处,将数据拥有方的公钥代入映射函数中中第二点群位置处,得到第三点群的第一点值。
S203,基于第一点群和第二点群之间的双线性映射关系,根据应答签名值中的第二签名值和第二点群中的基点,确定第三点群中的第二点值。
具体的,基于第一点群的第二点群之间的双线性映射关系,即映射函数,将应答签名值中的第二签名值代入映射函数中第一点群位置处,将第二点群中的基点代入至映射函数中第二点群位置处,得到第三点群中的第二点值。
S204,根据第一点值和第二点值,验证数据存储方中是否存储有待验证数据块。
本实施例中,若第一点值和第二点值相等,则说明数据存储方中存储有待验证数据块。若第一点值和第二点值不相等,则说明数据存储方中没有存储有待验证数据块,或者数据存储方中没有完整存储有待验证数据块。
本公开实施例的技术方案,通过响应于数据拥有方发起的包括待验证数据块的标识信息和有效性校验值的数据验证事务请求,获取数据存储方对数据验证事务请求的应答签名值,之后基于第一点群和第二点群之间的双线性映射关系,根据有效性校验值、标识信息、辅助签名值、数据拥有方的公钥和应答签名值中的第一签名值,确定第三点群中的第一点值,并基于第一点群和第二点群之间的双线性映射关系,根据应答签名值中的第二签名值和第二点群中的基点,确定第三点群中的第二点值,进而根据第一点值和第二点值,验证数据存储方中是否存储有待验证数据块。上述技术方案,基于双线性映射关系,在不需要提供数据的情况下,为验证数据存储方是否真正存储了数据拥有方的数据提供了一种新的解决方案。
在上述任一实施例的基础上,作为本公开的一种可选方式,在验证数据存储方中是否存储有待验证数据块的情况下,还可根据验证结果,确定数据存储方是否对数据拥有方的文件数据进行存储。
示例性的,若验证结果为数据存储方对数据拥有的待验证数据块进行了存储,则确定数据存储方对数据拥有方的文件数据进行了存储,即数据存储方对数据拥有方所分发的所有数据块均进行了存储。
示例性的,若验证结果为数据存储方没有对数据拥有的待验证数据块进行存储,则确定数据存储方没有对数据拥有方的文件数据进行存储。
可以理解的是,本实施例在验证数据存储方是否存储数据拥有方的文件数据的场景下,无需验证数据拥有方分发给数据存储方的所有数据块,只需对一部分数据块即待验证数据块进行验证即可,提高了验证效率,为验证数据存储方是否真正存储了数据拥有方的文件数据提供了一种解决方案。
图3是根据本公开实施例提供的又一种基于区块链的数据验证方法的流程图。本公开实施例适用于基于区块链技术对数据进行验证的情况,尤其适用于如何验证数据存储方是否存储了数据拥有方数据的情况。整套基于区块链的数据验证方法由数据拥有方、数据存储方、以及区块链网络中的节点相互配合来执行。
本实施例中基于区块链的数据验证方法可以由数据拥有方执行,可选的,数据拥有方可以是区块链网络中的节点,也可以不是区块链网络中的节点。该方法可以由基于区块链的数据验证装置来执行,该装置可以采用软件和/或硬件的方式实现,并可集成于数据拥有方的计算设备中。如图3所示,本实施例提供的基于区块链的数据验证方法可以包括:
S301,从已向数据存储方分发的目标文件的数据块中选择待验证数据块。
本实施例中,目标文件是指已经向数据存储方分发的要存储的文件数据。进一步的,在向数据存储方分发之前,将目标文件拆分为至少两个数据块。
具体的,数据拥有方在具有数据验证需求时,可从已向数据存储方分发的目标文件的至少两个数据块中随机选择一个或一些数据块,作为待验证数据块。
S302,生成待验证数据块的有效性校验值。
可选的,有效性校验值为随机值,随机值小于第一点群的阶数。
具体的,对于每一待验证数据块,随机生成一个数,作为该待验证数据块的有效性校验值,或者通过执行某一智能合约后生成一个数值,作为该待验证数据块的有效性校验值。
S303,向区块链网络发起包括待验证数据块的标识信息和有效性校验值的数据验证事务请求。
具体的,数据拥有方可基于租赁智能合约向区块链网络发起包括待验证数据块的标识信息和有效性校验值的数据验证事务请求。
进一步的,区块链网络中的节点获取数据拥有方的数据验证事务请求,并响应。具体可以是区块链网络中的节点基于第一点群和第二点群之间的双线性映射关系,根据标识信息、有效性校验值、本地公钥和数据存储方对数据验证事务请求的应答签名值,验证数据存储方中是否存储有待验证数据块;其中,本地公钥即为数据拥有方的公钥;进一步的,应答签名值属于第一点群,本地公钥属于第二点群。
本公开实施例技术方案,通过从已向数据存储方分发的目标文件的数据块中选择待验证数据块,之后生成待验证数据块的有效性校验值,进而向区块链网络发起包括待验证数据块的标识信息和有效性校验值的数据验证事务请求。上述技术方案,数据拥有方在具有验证数据是否存储于数据存储方的需求时,不需要提供待验证数据块本身,仅需要向区块链网络提供待验证数据块的有效性校验值和标识信息即可借助区块链网络实现此验证,保证了数据的私密性。
图4是根据本公开实施例提供的又一种基于区块链的数据验证方法的流程图。本实施例在上述实施例的基础上,提供一种可选实施方案。如图4所示,本实施例提供的基于区块链的数据验证方法可以包括:
S401,根据辅助签名值、数据块的数据信息、本地私钥和第一点群的基点,生成数据块的数据签名值。
其中,所谓辅助签名值是指数据拥有方对数据块进行签名时所使用的辅助值;可选的,辅助签名值可以包括第一辅助值和第二辅助值;进一步的,第一辅助值和第二辅助值可以是不同的随机值。更进一步的,第一辅助值和第二辅助值也小于第一点群的阶数。
S401中的数据块即为数据拥有方对目标文件所拆分的每一数据块。数据块的数据信息包括但不限于数据块的标识信息和数据内容。数据内容即为数据块所包含的内容。
可选的,所谓数据签名值即为数据拥有方对数据块的签名;进一步的,每一数据块对应一个数据签名值。此外,数据签名值属于第一点群。
一种可实施方式,对于每一数据块,可以将辅助签名值、该数据块的数据信息、本地私钥和第一点群的基点相乘后的结果作为该数据块的数据签名值。
又一种可实施方式,还可以根据辅助签名值中的第一辅助值,以及数据块的数据信息中的标识信息,生成第三数值;根据数据信息中的数据内容、辅助签名值中的第二辅助值、以及第一点群的基点,生成第四数值;根据本地私钥、第三数值和第四数值,生成数据块的数据签名值。
具体的,对于每一数据块,可以将辅助签名值中的第一辅助值、以及该数据块的数据信息中的标识信息相加后的结果作为第三数值。或者,还可以将辅助签名值中的第一辅助值、以及该数据块的数据信息中的标识信息相乘后的结果作为第三数值。
进一步的,还可以对辅助签名值中的第一辅助值,以及该数据块的数据信息中的标识信息进行哈希运算,将得到的结果作为第三数值。具体的,可以采用独特哈希函数,对辅助签名值中的第一辅助值,以及该数据块的数据信息中的标识信息进行哈希运算,将得到的结果作为第三数值。
同时可以将数据信息中的数据内容、辅助签名值中的第二辅助值、以及第一点群的基点相加后的结果作为第四数值。或者,还可以对数据信息中的数据内容进行处理,得到一个数值;将所得到的数值、辅助签名值中的第二辅助值、以及第一点群的基点相乘后的结果作为第四数值。
在确定第三数值和第四数值之后,可以先计算第三数值和第四数值的和,将得到的和与本地私钥相乘,再将相乘后的结果作为该数据块的数据签名值。
可以理解的是,本实施例引入第三数值和第四数值,为数据块的数据签名值提供了一种可选方式。
可选的,数据拥有方在确定数据块的数据签名值之后,可以将数据块的数据签名值存储于数据拥有方本地或者租赁智能合约中等。
S402,将数据块及数据块的数据签名值分发至数据存储方。
需要说明的是,本实施例在向数据存储方发送数据块的同时,将数据签名值也一并发送至数据存储方,用于供数据存储方在响应数据拥有方的数据验证事务请求时,计算应答签名值时使用。
S403,从已向数据存储方分发的目标文件的数据块中选择待验证数据块。
S404,生成待验证数据块的有效性校验值。
S405,向区块链网络发起包括待验证数据块的标识信息和有效性校验值的数据验证事务请求。
本公开实施例的技术方案,通过根据辅助签名值、数据块的数据信息、本地私钥、以及第一点群的基点,生成数据块的数据签名值,并将数据块及数据块的数据签名至分发至数据存储方;进而具有验证数据是否存储于数据存储方的需求时,从已向数据存储方分发的目标文件的数据块中选择待验证数据块,并生成待验证数据块的有效性校验值,向区块链网络发起包括待验证数据块的标识信息和有效性校验值的数据验证事务请求。上述技术方案,通过结合辅助签名值、数据块的数据信息、本地私钥、以及第一点群的基点等来生成数据块的数据签名值,为后续无需提供待验证数据块本身,即可验证数据存储方是否真正存储有数据拥有方的数据奠定了基础。
在上述实施例的基础上,还包括:向区块链网络发送包括本地公钥和辅助签名值的数据存储事务请求,以使区块链网络将本地公钥和辅助签名值进行关联存储。
其中,所谓本地公钥即为数据拥有方的公钥,具体可以为数据拥有方根据本地私钥生成的密钥。
一种可实施方式,数据拥有方在确定每一数据块的数据签名值之后,可以向区块链网络发送包括本地公钥和辅助签名值的数据存储事务请求。相应的,区块链网络将本地公钥和辅助签名值关联存储于租赁智能合约中。
又一种可实施方式,数据拥有方在确定每一数据块的数据签名值,且将数据块及数据块的数据签名值分发至一个或多个数据存储方之后,向区块链网络发送包括本地公钥、辅助签名值、数据块的数据签名值、以及数据存储方的标识信息等的数据存储事务请求。相应的,区块链网络将本地公钥、辅助签名值、数据块的数据签名值、以及数据存储方的标识信息等进行关联存储。
可以理解的是,本实施例中将本地公钥和辅助签名值关联存储于区块链网络,为后续区块链网络响应数据拥有方的数据验证事务请求奠定了基础。
图5是根据本公开实施例提供的再一种基于区块链的数据验证方法的流程图。本公开实施例适用于基于区块链技术对数据进行验证的情况,尤其适用于如何验证数据存储方是否存储了数据拥有方数据的情况。整套基于区块链的数据验证方法由数据拥有方、数据存储方、以及区块链网络中的节点相互配合来执行。
本实施例中基于区块链的数据验证方法可以由数据存储方执行,可选的,数据存储方可以是区块链网络中的节点,也可以不是区块链网络中的节点。该方法可以由基于区块链的数据验证装置来执行,该装置可以采用软件和/或硬件的方式实现,并可集成于数据存储方的计算设备中。如图5所示,本实施例提供的基于区块链的数据验证方法可以包括:
S501,获取数据拥有方发起的包括待验证数据块的标识信息和有效性校验值的数据验证事务请求。
在本实施例中,若数据存储方不是区块链网络中的节点,则数据存储方可以从与其交互的区块链网络中的节点获取数据拥有方发起的包括待验证数据块的标识信息和有效性校验值的数据验证事务请求。
若数据存储方是区块链网络中的节点,则数据存储方可从区块链网络中获取数据拥有方发起的包括待验证数据块的标识信息和有效性校验值的数据验证事务请求。
S502,根据标识信息,从本地存储的文件数据中获取待验证数据块的数据内容和数据签名值。
具体可以是,以待验证数据块的标识信息为索引,从本地存储的文件数据中进行查找,以确定待验证数据块;获取待验证数据块的内容,同时可以基于预先存储的数据块与数据签名值之间的关联关系,获取待验证数据块的数据签名值。
S503,根据数据内容、数据签名值和有效性校验值,生成应答签名值。
本实施例中,所谓应答签名值是指数据存储方对数据验证事务请求应答的签名值。可选的,一个数据验证事务请求对应一个应答签名值;进一步的,应答签名值可以包括第一签名值和第二签名值。
一种可实施方式,可以将数据内容、数据签名值和有效性校验值一并输入签名值计算模型中,由签名值计算模型输出应答签名值。
又一种可实施方式,可以基于设定公式或设定规则,根据数据内容、数据签名值和有效性校验值,生成应答签名值。
例如,可以根据有效性校验值和数据内容,生成应答签名值中的第一签名值,根据数据签名值和有效性校验值,生成应答签名值中的第二签名值。
具体可以是,对于每个待验证数据块,可以对该待验证数据块的数据内容进行处理,得到一个数值;计算该待验证数据块的有效性校验值和基于数据内容所得到的数值之间的乘积;之后将各个待验证数据块对应的乘积相加后的结果,作为应答签名值中的第一签名值。同时,对于每个待验证数据块,计算该待验证数据块的数据签名值和有效性校验值的乘积,之后将各个待验证数据块对应的乘积相加后的结果作为应答签名值中的第二签名值。
可以理解的是,本实施例所提供的应答签名值的计算方式,能够涵盖数据块的数据内容和数据签名值等,为后续区块链网络无需数据存储方提供数据本身,即可验证数据存储方是否真正存储了数据拥有方的数据奠定了基础。
S504,向区块链网络发送应答签名值。
本实施例中,数据存储方向区块链网络发送应答签名值;相应的,区块链网络接收应答签名值,并基于第一点群和第二点群之间的双线性映射关系,根据标识信息、有效性校验值、应答签名值和数据拥有方的公钥等,验证数据存储方中是否存储有待验证数据块;其中,应答签名值属于第一点群,数据拥有方的公钥属于第二点群。
本公开实施例的技术方案,在获取到数据拥有方发起的包括待验证数据块的标识信息和有效性校验值的数据验证事务请求之后,根据标识信息,从本地存储的文件数据中获取待验证数据块的数据内容和数据签名值,进而根据数据内容、数据签名值和有效性校验值,生成应答签名值,并向区块链网络发送应答签名值。上述技术方案,在获取到数据验证请求且不需要数据拥有方提供数据本身的情况下,生成应答签名值,为区块链网络验证数据存储方是否真正存储数据拥有方的数据奠定了基础。
示例性的,在上述实施例的基础上,根据标识信息,从本地存储的文件数据中获取待验证数据块的数据内容和数据签名值还可以是:确定待验证数据块所属文件数据的开始位置;根据标识信息、数据偏移量和开始位置,确定待验证数据块的起始位置;根据起始位置,从本地存储的文件数据中获取待验证数据块的数据内容和数据签名值。
其中,待验证数据块所属文件数据的开始位置是指数据拥有方的文件数据在数据存储方的存储空间中的开始位置。数据偏移量是指每个数据块存储时所占用的字节长度。所谓待验证数据块的起始位置是指待验证数据块在数据存储方的存储空间中的起始位置(包括开始位置和结束位置)。
具体的,可以根据数据拥有方的标识信息确定其所属文件数据,进而根据所属文件数据的标识信息,从本地存储的文件数据中,确定所属文件数据的开始位置。
在确定待验证数据块所属文件数据的开始位置后,可以将待验证数据块的标识信息减去1后,再乘以数据偏移量,将相乘后的结果与开始位置相加,并将相加后的结果,作为待验证数据块的开始位置。同时,将待验证数据块的标识信息乘以数据偏移量,将相乘后的结果与开始位置相加,并将相加后的结果作为待验证数据块的结束位置。
在确定待验证数据块的起始位置后,根据起始位置,从数据存储方的存储空间中获取待验证数据块的数据内容和数据签名值。
需要说明的是,本实施例通过结合待验证数据块的标识信息、数据偏移量、以及待验证数据块所属文件数据的开始位置等,可快速定位待验证数据的起始位置,为快速且精准获取到待验证数据块的数据内容和数据签名值提供了数据支撑。
图6是根据本公开实施例提供的一种基于区块链的数据验证的实现过程示意图,在上述实施例的基础上,提供一种优选实施方案。如图6所示,本实施例提供的基于区块链的数据验证实现过程如下:
数据拥有方在对目标文件进行存储时,首先将目标文件拆分为N个数据块,其中N为大于1自然数,并为所有数据块生成一个统一的辅助签名值。之后根据辅助签名值、本地私钥、数据块的数据信息和第一点群的基点,为每一数据块生成唯一的一个数据签名值,之后将数据块及数据块的数据签名值分发至一个或多个数据存储方进行存储,即存储文件。
同时数据拥有方向区块链网络发送包括本地公钥和辅助签名值的数据存储事务请求,以使区块链网络将本地公钥和辅助签名值进行关联存储。
数据拥有方在具有验证数据是否真正存储于数据存储方时,从已向数据存储方分发的目标文件的数据块中选择待验证数据块,并生成待验证数据块的有效性校验值;向区块链网络发起包括待验证数据块的标识信息和有效性校验值的数据验证事务请求,即发起挑战。
数据存储方获取数据拥有方发起的包括待验证数据块的标识信息和有效性校验值的数据验证事务请求,之后根据标识信息,从本地存储的文件数据中获取待验证数据块的数据内容和数据签名值,进而根据数据内容、数据签名值和有效性校验值,生成应答签名值,并向区块链网络发送应答签名值,即应对挑战。
区块链节点响应于数据拥有方发起的包括待验证数据块的标识信息和有效性校验值的数据验证事务请求,获取数据存储方对数据验证事务请求的应答签名值;之后调用租赁智能合约,基于第一点群和第二点群之间的双线性映射关系,根据标识信息、有效性校验值、应答签名值、数据拥有方的公钥、第二点群中的基点、以及辅助签名值等,验证数据存储方中是否存储有待验证数据块,即验证挑战。
所谓挑战即为数据拥有方为判断数据存储方是否真正存储了其数据的一种方式,可以以多种形式呈现,比如可以以事务请求形式呈现,如挑战可以是数据验证事务请求。
图7是根据本公开实施例提供的一种基于区块链的数据验证装置的结构示意图。本公开实施例适用于基于区块链技术对数据进行验证的情况,尤其适用于数据拥有方已向数据存储方分发文件的至少两个数据块的情况下,如何验证数据存储方是否存储了数据拥有方数据的情况。整套基于区块链的数据验证方法由数据拥有方、数据存储方、以及区块链网络中的节点相互配合来执行。其中,所谓数据拥有方即为借助数据存储方来存储其所拥有的数据的一方;数据存储方即为具有丰富存储资源的一方,可专门用于存储数据;进一步的,区块链网络中的节点能够与数据拥有方和数据存储方交互。
本实施例中基于区块链的数据验证装置可以采用软件和/或硬件的方式实现,并可集成于承载基于区块链的数据验证功能的区块链节点的计算设备中。如图7所示,本实施例提供的基于区块链的数据验证装置700可以包括:
信息获取模块701,用于响应于数据拥有方发起的包括待验证数据块的标识信息和有效性校验值的数据验证事务请求,获取数据存储方对数据验证事务请求的应答签名值;
数据验证模块702,用于基于第一点群和第二点群之间的双线性映射关系,根据标识信息、有效性校验值、应答签名值和数据拥有方的公钥,验证数据存储方中是否存储有待验证数据块;
其中,应答签名值属于第一点群,数据拥有方的公钥属于第二点群。
本公开实施例的技术方案,通过响应于数据拥有方发起的包括待验证数据块的标识信息和有效性校验值的数据验证事务请求,获取数据存储方对数据验证事务请求的应答签名值,之后基于第一点群和第二点群之间的双线性映射关系,根据标识信息、有效性校验值、应答签名值和数据拥有方的公钥,验证数据存储方中是否存储有待验证数据块。上述技术方案,引入双线性映射关系,在不需要提供数据的情况下,有效的验证了数据存储方是否真正存储了数据拥有方的数据。
进一步地,数据验证模块702包括数据验证子模块,该子模块用于:
基于第一点群和第二点群之间的双线性映射关系,根据所述标识信息、有效性校验值、应答签名值、辅助签名值、数据拥有方的公钥和第二点群中的基点,验证所述数据存储方中是否存储有待验证数据块。
进一步地,数据验证子模块包括:
第一点值确定单元,用于基于第一点群和第二点群之间的双线性映射关系,根据有效性校验值、标识信息、辅助签名值、数据拥有方的公钥和应答签名值中的第一签名值,确定第三点群中的第一点值;
第二点值确定单元,用于基于第一点群和第二点群之间的双线性映射关系,根据应答签名值中的第二签名值和第二点群中的基点,确定第三点群中的第二点值;
数据验证单元,用于根据第一点值和第二点值,验证数据存储方中是否存储有待验证数据块。
进一步地,第一点值确定单元包括:
第一数值确定子单元,用于根据有效性校验值、标识信息和辅助签名值中的第一辅助值,确定第一数值;
第二数值确定子单元,用于根据辅助签名值中的第二辅助值和应答签名值中第一签名值,确定第二数值;
第三数值确定子单元,用于根据第一数值和第二数值,确定第三数值;其中,第三数值属于第一点群;
第一点值确定子单元,用于基于第一点群和第二点群之间的双线性映射关系,根据第三数值和数据拥有方的公钥,确定第三点群中的第一点值。
进一步地,第一数值确定子单元具体用于:
对标识信息和辅助签名值中的第一辅助值进行哈希运算,得到哈希点值;
根据哈希点值和有效性校验值,确定第一数值。
进一步地,有效性校验值为随机值,随机值小于第一点群的阶数。
进一步地,该装置还包括数据存储确定模块,该模块用于:
根据验证结果,确定数据存储方是否对数据拥有方的文件数据进行存储。
图8是根据本公开实施例提供的又一种基于区块链的数据验证装置的结构示意图。本公开实施例适用于基于区块链技术对数据进行验证的情况,尤其适用于如何验证数据存储方是否存储了数据拥有方数据的情况。整套基于区块链的数据验证方法由数据拥有方、数据存储方、以及区块链网络中的节点相互配合来执行。
本实施例中基于区块链的数据验证装置可以采用软件和/或硬件的方式实现,并可集成于数据拥有方的计算设备中。如图8所示,本实施例提供的基于区块链的数据验证装置800可以包括:
数据块选择模块801,用于从已向数据存储方分发的目标文件的数据块中选择待验证数据块;
校验值生成模块802,用于生成待验证数据块的有效性校验值;
请求发送模块803,用于向区块链网络发起包括待验证数据块的标识信息和有效性校验值的数据验证事务请求。
本公开实施例技术方案,通过从已向数据存储方分发的目标文件的数据块中选择待验证数据块,之后生成待验证数据块的有效性校验值,进而向区块链网络发起包括待验证数据块的标识信息和有效性校验值的数据验证事务请求。上述技术方案,数据拥有方在具有验证数据是否存储于数据存储方的需求时,不需要提供待验证数据块本身,仅需要向区块链网络提供待验证数据块的有效性校验值和标识信息即可借助区块链网络实现此验证,保证了数据的私密性。
进一步地,数据验证事务请求用于指示区块链网络基于第一点群和第二点群之间的双线性映射关系,根据标识信息、有效性校验值、本地公钥和数据存储方对数据验证事务请求的应答签名值,验证数据存储方中是否存储有待验证数据块;
其中,应答签名值属于第一点群,以及本地公钥属于第二点群。
进一步地,有效性校验值为随机值,随机值小于第一点群的阶数。
进一步地,该装置还包括:
数据签名值确定模块,用于根据辅助签名值、数据块的数据信息、本地私钥和第一点群的基点,生成数据块的数据签名值;其中,数据签名值属于第一点群。
进一步地,数据签名值确定模块包括:
第三数值生成单元,用于根据辅助签名值中的第一辅助值,以及数据块的数据信息中的标识信息,生成第三数值;
第四数值生成单元,用于根据数据信息中的数据内容、辅助签名值中的第二辅助值和第一点群的基点,生成第四数值;
数据签名值确定单元,用于根据本地私钥、第三数值和第四数值,生成数据块的数据签名值。
进一步地,该装置还包括:
分发模块,用于将数据块及数据块的数据签名值分发至数据存储方。
图9是根据本公开实施例提供的再一种基于区块链的数据验证装置的结构示意图。本公开实施例适用于基于区块链技术对数据进行验证的情况,尤其适用于如何验证数据存储方是否存储了数据拥有方数据的情况。整套基于区块链的数据验证方法由数据拥有方、数据存储方、以及区块链网络中的节点相互配合来执行。
本实施例中基于区块链的数据验证装置可以采用软件和/或硬件的方式实现,并可集成于数据存储方的计算设备中。如图9所示,本实施例提供的基于区块链的数据验证装置900可以包括:
请求获取模块901,用于获取数据拥有方发起的包括待验证数据块的标识信息和有效性校验值的数据验证事务请求;
数据获取模块902,用于根据标识信息,从本地存储的文件数据中获取待验证数据块的数据内容和数据签名值;
签名值生成模块903,用于根据数据内容、数据签名值和有效性校验值,生成应答签名值;
签名值发送模块904,用于向区块链网络发送应答签名值。
本公开实施例的技术方案,通过获取数据拥有方发起的包括待验证数据块的标识信息和有效性校验值的数据验证事务请求,之后根据标识信息,从本地存储的文件数据中获取待验证数据块的数据内容和数据签名值,进而根据数据内容、数据签名值和有效性校验值,生成应答签名值,并向区块链网络发送应答签名值。上述技术方案,在获取到数据验证请求时且不需要数据拥有方提供数据本身的情况下,生成应答签名值,为区块链网络验证数据存储方是否真正存储数据拥有方的数据奠定了基础。
进一步地,应答签名值用于指示区块链网络基于第一点群和第二点群之间的双线性映射关系,根据标识信息、有效性校验值、应答签名值和数据拥有方的公钥,验证数据存储方中是否存储有待验证数据块;
其中,应答签名值属于第一点群,数据拥有方的公钥属于第二点群。
进一步地,数据获取模块902具体用于:
确定待验证数据块所属文件数据的开始位置;
根据标识信息、数据偏移量和开始位置,确定待验证数据块的起始位置;
根据起始位置,从本地存储的文件数据中获取待验证数据块的数据内容和数据签名值。
进一步地,签名值生成模块903具体用于:
根据有效性校验值和数据内容,生成应答签名值中的第一签名值;
根据数据签名值和有效性校验值,生成应答签名值中的第二签名值。
本公开的技术方案中,所涉及的数据存储方、数据拥有方和区块链网络中的数据的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图10示出了可以用来实施本公开的实施例的示例电子设备1000的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图10所示,电子设备1000包括计算单元1001,其可以根据存储在只读存储器(ROM)1002中的计算机程序或者从存储单元1008加载到随机访问存储器(RAM)1003中的计算机程序,来执行各种适当的动作和处理。在RAM 1003中,还可存储电子设备1000操作所需的各种程序和数据。计算单元1001、ROM 1002以及RAM 1003通过总线1004彼此相连。输入/输出(I/O)接口1005也连接至总线1004。
电子设备1000中的多个部件连接至I/O接口1005,包括:输入单元1006,例如键盘、鼠标等;输出单元1007,例如各种类型的显示器、扬声器等;存储单元1008,例如磁盘、光盘等;以及通信单元1009,例如网卡、调制解调器、无线通信收发机等。通信单元1009允许电子设备1000通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元1001可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1001的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1001执行上文所描述的各个方法和处理,例如基于区块链的数据验证方法。例如,在一些实施例中,基于区块链的数据验证方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1008。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1002和/或通信单元1009而被载入和/或安装到电子设备1000上。当计算机程序加载到RAM 1003并由计算单元1001执行时,可以执行上文描述的基于区块链的数据验证方法的一个或多个步骤。备选地,在其他实施例中,计算单元1001可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行基于区块链的数据验证方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据验证装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,既有硬件层面的技术也有软件层面的技术。人工智能硬件技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理等技术;人工智能软件技术主要包括计算机视觉技术、语音识别技术、自然语言处理技术及机器学习/深度学习技术、大数据处理技术、知识图谱技术等几大方向。
云计算(cloud computing),指的是通过网络接入弹性可扩展的共享物理或虚拟资源池,资源可以包括服务器、操作系统、网络、软件、应用和存储设备等,并可以按需、自服务的方式对资源进行部署和管理的技术体系。通过云计算技术,可以为人工智能、区块链等技术应用、模型训练提供高效强大的数据处理能力。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (23)
1.一种基于区块链的数据验证方法,包括:
响应于数据拥有方发起的包括待验证数据块的标识信息和有效性校验值的数据验证事务请求,获取数据存储方对所述数据验证事务请求的应答签名值;
基于第一点群和第二点群之间的双线性映射关系,根据所述标识信息、所述有效性校验值、所述应答签名值和所述数据拥有方的公钥,验证所述数据存储方中是否存储有所述待验证数据块;
其中,所述应答签名值属于第一点群,所述数据拥有方的公钥属于第二点群。
2.根据权利要求1所述的方法,其中,所述第一点群和第二点群之间的双线性映射关系,根据所述标识信息、所述有效性校验值、所述应答签名值和所述数据拥有方的公钥,验证所述数据存储方中是否存储有所述待验证数据块,包括:
基于第一点群和第二点群之间的双线性映射关系,根据所述标识信息、所述有效性校验值、所述应答签名值、辅助签名值、所述数据拥有方的公钥和所述第二点群中的基点,验证所述数据存储方中是否存储有所述待验证数据块。
3.根据权利要求2所述的方法,其中,所述基于第一点群和第二点群之间的双线性映射关系,根据所述标识信息、所述有效性校验值、所述应答签名值、辅助签名值、所述数据拥有方的公钥和所述第二点群中的基点,验证所述数据存储方中是否存储有所述待验证数据块,包括:
基于第一点群和第二点群之间的双线性映射关系,根据所述有效性校验值、所述标识信息、所述辅助签名值、所述数据拥有方的公钥和所述应答签名值中的第一签名值,确定第三点群中的第一点值;
基于第一点群和第二点群之间的双线性映射关系,根据所述应答签名值中的第二签名值和所述第二点群中的基点,确定所述第三点群中的第二点值;
根据所述第一点值和所述第二点值,验证所述数据存储方中是否存储有所述待验证数据块。
4.根据权利要求3所述的方法,其中,所述基于第一点群和第二点群之间的双线性映射关系,根据所述有效性校验值、所述标识信息、所述辅助签名值、所述数据拥有方的公钥和所述应答签名值中的第一签名值,确定第三点群中的第一点值,包括:
根据所述有效性校验值、所述标识信息和所述辅助签名值中的第一辅助值,确定第一数值;
根据所述辅助签名值中的第二辅助值和所述应答签名值中第一签名值,确定第二数值;
根据所述第一数值和所述第二数值,确定第三数值;其中,所述第三数值属于所述第一点群;
基于第一点群和第二点群之间的双线性映射关系,根据所述第三数值和所述数据拥有方的公钥,确定第三点群中的第一点值。
5.根据权利要求4所述的方法,其中,所述根据所述有效性校验值、所述标识信息和所述辅助签名值中的第一辅助值,确定第一数值,包括:
对所述标识信息和所述辅助签名值中的第一辅助值进行哈希运算,得到哈希点值;
根据所述哈希点值和所述有效性校验值,确定第一数值。
6.根据权利要求1所述的方法,其中,所述有效性校验值为随机值,所述随机值小于所述第一点群的阶数。
7.根据权利要求1-6任一所述的方法,还包括:
根据验证结果,确定所述数据存储方是否对所述数据拥有方的文件数据进行存储。
8.一种基于区块链的数据验证方法,包括:
从已向数据存储方分发的目标文件的数据块中选择待验证数据块;
生成所述待验证数据块的有效性校验值;
向区块链网络发起包括所述待验证数据块的标识信息和所述有效性校验值的数据验证事务请求。
9.根据权利要求8所述的方法,其中,所述数据验证事务请求用于指示区块链网络基于第一点群和第二点群之间的双线性映射关系,根据所述标识信息、所述有效性校验值、本地公钥和数据存储方对所述数据验证事务请求的应答签名值,验证所述数据存储方中是否存储有所述待验证数据块;
其中,所述应答签名值属于第一点群,以及所述本地公钥属于第二点群。
10.根据权利要求9所述的方法,其中,所述有效性校验值为随机值,所述随机值小于第一点群的阶数。
11.根据权利要求8所述的方法,还包括:
根据辅助签名值、数据块的数据信息、本地私钥和第一点群的基点,生成数据块的数据签名值;其中,所述数据签名值属于第一点群。
12.根据权利要求11所述的方法,其中,所述根据辅助签名值、数据块的数据信息、本地私钥和第一点群的基点,生成数据块的数据签名值,包括:
根据所述辅助签名值中的第一辅助值,以及数据块的数据信息中的标识信息,生成第三数值;
根据所述数据信息中的数据内容、所述辅助签名值中的第二辅助值和第一点群的基点,生成第四数值;
根据所述本地私钥、所述第三数值和所述第四数值,生成数据块的数据签名值。
13.根据权利要求11所述的方法,还包括:
将数据块及数据块的数据签名值分发至数据存储方。
14.一种区块链的数据验证方法,包括:
获取数据拥有方发起的包括待验证数据块的标识信息和有效性校验值的数据验证事务请求;
根据所述标识信息,从本地存储的文件数据中获取待验证数据块的数据内容和数据签名值;
根据所述数据内容、所述数据签名值和所述有效性校验值,生成应答签名值;
向区块链网络发送所述应答签名值。
15.根据权利要求14所述的方法,其中,所述应答签名值用于指示区块链网络基于第一点群和第二点群之间的双线性映射关系,根据所述标识信息、所述有效性校验值、所述应答签名值和所述数据拥有方的公钥,验证所述数据存储方中是否存储有所述待验证数据块;
其中,所述应答签名值属于第一点群,所述数据拥有方的公钥属于第二点群。
16.根据权利要求14所述的方法,其中,所述根据所述标识信息,从本地存储的文件数据中获取待验证数据块的数据内容和数据签名值,包括:
确定所述待验证数据块所属文件数据的开始位置;
根据所述标识信息、数据偏移量和所述开始位置,确定所述待验证数据块的起始位置;
根据所述起始位置,从本地存储的文件数据中获取待验证数据块的数据内容和数据签名值。
17.根据权利要求14所述的方法,其中,所述根据所述数据内容、所述数据签名值和所述有效性校验值,生成应答签名值,包括:
根据所述有效性校验值和所述数据内容,生成应答签名值中的第一签名值;
根据所述数据签名值和所述有效性校验值,生成所述应答签名值中的第二签名值。
18.一种基于区块链的数据验证装置,包括:
信息获取模块,用于响应于数据拥有方发起的包括待验证数据块的标识信息和有效性校验值的数据验证事务请求,获取数据存储方对所述数据验证事务请求的应答签名值;
数据验证模块,用于基于第一点群和第二点群之间的双线性映射关系,根据所述标识信息、所述有效性校验值、所述应答签名值和所述数据拥有方的公钥,验证所述数据存储方中是否存储有所述待验证数据块;
其中,所述应答签名值属于第一点群,所述数据拥有方的公钥属于第二点群。
19.一种基于区块链的数据验证装置,包括:
数据块选择模块,用于从已向数据存储方分发的目标文件的数据块中选择待验证数据块;
校验值生成模块,用于生成所述待验证数据块的有效性校验值;
请求发送模块,用于向区块链网络发起包括所述待验证数据块的标识信息和所述有效性校验值的数据验证事务请求。
20.一种区块链的数据验证装置,包括:
请求获取模块,用于获取数据拥有方发起的包括待验证数据块的标识信息和有效性校验值的数据验证事务请求;
数据获取模块,用于根据所述标识信息,从本地存储的文件数据中获取待验证数据块的数据内容和数据签名值;
签名值生成模块,用于根据所述数据内容、所述数据签名值和所述有效性校验值,生成应答签名值;
签名值发送模块,用于向区块链网络发送所述应答签名值。
21.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的基于区块链的数据验证方法,或者执行权利要求8-13中任一项所述的基于区块链的数据验证方法,或者执行权利要求14-17中任一项所述的基于区块链的数据验证方法。
22.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使计算机执行根据权利要求1-7中任一项所述的基于区块链的数据验证方法,或者执行权利要求8-13中任一项所述的基于区块链的数据验证方法,或者执行权利要求14-17中任一项所述的基于区块链的数据验证方法。
23.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-7中任一项所述的基于区块链的数据验证方法,或者执行权利要求8-13中任一项所述的基于区块链的数据验证方法,或者执行权利要求14-17中任一项所述的基于区块链的数据验证方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111509762.0A CN113935069B (zh) | 2021-12-10 | 2021-12-10 | 一种基于区块链的数据验证方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111509762.0A CN113935069B (zh) | 2021-12-10 | 2021-12-10 | 一种基于区块链的数据验证方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113935069A true CN113935069A (zh) | 2022-01-14 |
CN113935069B CN113935069B (zh) | 2022-04-05 |
Family
ID=79288907
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111509762.0A Active CN113935069B (zh) | 2021-12-10 | 2021-12-10 | 一种基于区块链的数据验证方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113935069B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114362969A (zh) * | 2022-03-17 | 2022-04-15 | 北京百度网讯科技有限公司 | 一种基于区块链的数据验证方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180137507A1 (en) * | 2016-11-14 | 2018-05-17 | International Business Machines Corporation | Performing verification on the blockchain for non-blockchain transactions |
CN108961052A (zh) * | 2018-06-25 | 2018-12-07 | 百度在线网络技术(北京)有限公司 | 区块链数据的验证方法、存储方法、装置、设备和介质 |
CN109685507A (zh) * | 2018-12-26 | 2019-04-26 | 百度在线网络技术(北京)有限公司 | 事务请求有效性识别和发起方法、装置、设备和介质 |
CN110781509A (zh) * | 2019-10-28 | 2020-02-11 | 腾讯科技(深圳)有限公司 | 数据验证方法、装置、存储介质和计算机设备 |
CN111339572A (zh) * | 2020-03-04 | 2020-06-26 | 鹏城实验室 | 云数据完整性的验证方法、系统、终端设备及存储介质 |
-
2021
- 2021-12-10 CN CN202111509762.0A patent/CN113935069B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180137507A1 (en) * | 2016-11-14 | 2018-05-17 | International Business Machines Corporation | Performing verification on the blockchain for non-blockchain transactions |
CN108961052A (zh) * | 2018-06-25 | 2018-12-07 | 百度在线网络技术(北京)有限公司 | 区块链数据的验证方法、存储方法、装置、设备和介质 |
CN109685507A (zh) * | 2018-12-26 | 2019-04-26 | 百度在线网络技术(北京)有限公司 | 事务请求有效性识别和发起方法、装置、设备和介质 |
CN110781509A (zh) * | 2019-10-28 | 2020-02-11 | 腾讯科技(深圳)有限公司 | 数据验证方法、装置、存储介质和计算机设备 |
CN111339572A (zh) * | 2020-03-04 | 2020-06-26 | 鹏城实验室 | 云数据完整性的验证方法、系统、终端设备及存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114362969A (zh) * | 2022-03-17 | 2022-04-15 | 北京百度网讯科技有限公司 | 一种基于区块链的数据验证方法、装置、设备及存储介质 |
CN114362969B (zh) * | 2022-03-17 | 2022-06-10 | 北京百度网讯科技有限公司 | 一种基于区块链的数据验证方法、装置、设备及存储介质 |
US11755567B1 (en) | 2022-03-17 | 2023-09-12 | Beijing Baidu Netcom Science Technology Co., Ltd. | Blockchain-based data verification method and apparatus, device, and storage medium |
Also Published As
Publication number | Publication date |
---|---|
CN113935069B (zh) | 2022-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112597754B (zh) | 文本纠错方法、装置、电子设备和可读存储介质 | |
KR20230006033A (ko) | 연합 계산 처리 방법, 장치, 전자 기기 및 저장 매체 | |
CN113656179B (zh) | 云计算资源的调度方法及装置、电子设备和存储介质 | |
CN113766487A (zh) | 云手机信息获取方法、装置、设备和介质 | |
CN113935069B (zh) | 一种基于区块链的数据验证方法、装置、设备及存储介质 | |
CN113037489B (zh) | 数据处理方法、装置、设备和存储介质 | |
CN113220367A (zh) | 小程序的运行方法、装置、电子设备及存储介质 | |
CN113344074A (zh) | 模型训练方法、装置、设备及存储介质 | |
CN115344315A (zh) | 小程序页面的皮肤切换方法、装置和电子设备 | |
CN114338051B (zh) | 区块链获取随机数的方法、装置、设备和介质 | |
CN114362969B (zh) | 一种基于区块链的数据验证方法、装置、设备及存储介质 | |
CN113032817B (zh) | 基于区块链的数据对齐方法、装置、设备和介质 | |
EP4167096A1 (en) | Task allocation method and apparatus, electronic device, and computer readable medium | |
CN113691403A (zh) | 拓扑节点配置方法、相关装置及计算机程序产品 | |
CN103051607B (zh) | 访问方法、设备及系统 | |
CN113778645A (zh) | 基于边缘计算的任务调度方法、装置、设备及存储介质 | |
CN112861189A (zh) | 签名的生成方法和验证方法、装置、设备和介质 | |
CN112926822A (zh) | 一种资源分配方法和装置 | |
CN112817463A (zh) | 输入法获取音频数据的方法、设备和存储介质 | |
CN114362968B (zh) | 区块链获取随机数的方法、装置、设备和介质 | |
CN115130149B (zh) | 区块链处理方法、装置、设备及存储介质 | |
CN113992729B (zh) | 云手机控制方法、相关装置及计算机程序产品 | |
CN114205639B (zh) | 视频的处理方法、装置、电子设备及存储介质 | |
CN116112441A (zh) | 服务请求的限流方法、装置、电子设备和存储介质 | |
CN115080205B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |