掌桥专利:专业的专利平台
掌桥专利
首页

一种时空证明方法、装置、设备及存储介质

文献发布时间:2023-06-19 19:28:50


一种时空证明方法、装置、设备及存储介质

技术领域

本申请实施例涉及金融科技技术领域,尤其涉及一种时空证明方法、装置、设备及存储介质。

背景技术

在数据存储场景中,要求存储服务商提供可靠的文件存储能力,即存储服务商能够完整地存储文件(从空间的角度),并且存储了特定时长(从时间的角度)。存储服务商还需要针对上述存储服务提供“时空证明”,来证明自己按预期对文件进行了存储。

为了证明存储服务商完整地存储了文件,相关技术采用随机化挑战的方式解决,即验证者不定期地要求存储服务商提供文件的某些文件块的证明。存储服务商对文件块进行编码获得文件块的摘要,并将文件块的摘要发送给验证者进行校验。为了证明存储服务商对文件存储了特定时长,验证者不断地对存储服务商进行挑战,如果存储服务商都能够应对挑战,则认为这段时间内,服务商如实存储了数据。

然而,上述时空证明方案存在交互过度的问题,即验证者需要持续不断地对存储服务商发起交互式挑战,从而导致资源消耗过多。

发明内容

本申请实施例提供了一种时空证明方法、装置、设备及存储介质,用于降低时空证明的资源消耗。

一方面,本申请实施例提供了一种时空证明方法,应用于验证设备,包括:

在目标周期内生成可验证文件以及所述可验证文件的预存储周期数;

按照目标形式将所述可验证文件和相应的属性信息上传至存储设备,所述目标形式为客户端上传常规文件和相应的属性信息至所述存储设备的形式;

在所述预存储周期数到达时,通过区块链将所述可验证文件的目标验证信息发送至所述存储设备,以使所述存储设备基于所述目标验证信息生成所述可验证文件的存在证明,并将所述存在证明上传至所述区块链;

将所述可验证文件的辅助验证信息上传至所述区块链,以使所述区块链基于所述辅助验证信息对所述存在证明进行验证,获得验证结果;

监测到所述验证结果为验证通过时,确定所述存储设备存储所述可验证文件达到所述预存储周期数。

一方面,本申请实施例提供了一种时空证明方法,应用于存储设备,包括:

接收验证设备按照目标形式上传的在目标周期内生成的可验证文件和相应的属性信息,所述目标形式为客户端上传常规文件和相应的属性信息至所述存储设备的形式;

监测到所述验证设备上传所述可验证文件的目标验证信息至区块链时,从所述区块链获取所述目标验证信息,所述目标验证信息是所述验证设备在确定所述可验证文件的预存储周期数到达时上传的;

基于所述目标验证信息生成所述可验证文件的存在证明,并将所述存在证明上传至所述区块链,以使所述区块链基于所述验证设备上传的辅助验证信息对所述存在证明进行验证,获得验证结果;以及在验证通过时,确定所述存储设备存储所述可验证文件达到所述预存储周期数。

一方面,本申请实施例提供了一种时空证明方法,应用于区块链,包括:

在可验证文件的预存储周期数到达时,接收验证设备上传的所述可验证文件的目标验证信息,所述可验证文件和相应的属性信息是所述验证设备在目标周期内生成的,并按照目标形式保存在存储设备中,所述目标形式为客户端上传常规文件和相应的属性信息至所述存储设备的形式;

将所述目标验证信息发送至所述存储设备,以使所述存储设备基于所述目标验证信息生成所述可验证文件的存在证明;

接收所述存储设备上传的所述存在证明以及所述验证设备上传的辅助验证信息;

基于所述辅助验证信息对所述存在证明进行验证,获得验证结果;以及在验证通过时,确定所述存储设备存储所述可验证文件达到所述预存储周期数。

一方面,本申请实施例提供了一种时空证明装置,应用于验证设备,包括:

生成模块,用于在目标周期内生成可验证文件以及所述可验证文件的预存储周期数;

第一发送模块,用于按照目标形式将所述可验证文件和相应的属性信息上传至存储设备,所述目标形式为客户端上传常规文件和相应的属性信息至所述存储设备的形式;

所述第一发送模块,还用于在所述预存储周期数到达时,通过区块链将所述可验证文件的目标验证信息发送至所述存储设备,以使所述存储设备基于所述目标验证信息生成所述可验证文件的存在证明,并将所述存在证明上传至所述区块链;

所述第一发送模块,还用于将所述可验证文件的辅助验证信息上传至所述区块链,以使所述区块链基于所述辅助验证信息对所述存在证明进行验证,获得验证结果;

第一接收模块,用于监测到所述验证结果为验证通过时,确定所述存储设备存储所述可验证文件达到所述预存储周期数。

一方面,本申请实施例提供了一种时空证明装置,应用于存储设备,包括:

第二接收模块,用于接收验证设备按照目标形式上传的在目标周期内生成的可验证文件和相应的属性信息,所述目标形式为客户端上传常规文件和相应的属性信息至所述存储设备的形式;

所述第二接收模块,还用于监测到所述验证设备上传所述可验证文件的目标验证信息至区块链时,从所述区块链获取所述目标验证信息,所述目标验证信息是所述验证设备在确定所述可验证文件的预存储周期数到达时上传的;

处理模块,用于基于所述目标验证信息生成所述可验证文件的存在证明,并将所述存在证明上传至所述区块链,以使所述区块链基于所述验证设备上传的辅助验证信息对所述存在证明进行验证,获得验证结果;以及在验证通过时,确定所述存储设备存储所述可验证文件达到所述预存储周期数。

一方面,本申请实施例提供了一种时空证明装置,应用于区块链,包括:

第三接收模块,用于在可验证文件的预存储周期数到达时,接收验证设备上传的所述可验证文件的目标验证信息,所述可验证文件和相应的属性信息是所述验证设备在目标周期内生成的,并按照目标形式保存在存储设备中,所述目标形式为客户端上传常规文件和相应的属性信息至所述存储设备的形式;

第三发送模块,用于将所述目标验证信息发送至所述存储设备,以使所述存储设备基于所述目标验证信息生成所述可验证文件的存在证明;

所述第三接收模块,还用于接收所述存储设备上传的所述存在证明以及所述验证设备上传的辅助验证信息;

验证模块,用于基于所述辅助验证信息对所述存在证明进行验证,获得验证结果;以及在验证通过时,确定所述存储设备存储所述可验证文件达到所述预存储周期数。

一方面,本申请实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述时空证明方法的步骤。

一方面,本申请实施例提供了一种计算机可读存储介质,其存储有可由计算机设备执行的计算机程序,当所述程序在计算机设备上运行时,使得所述计算机设备执行上述时空证明方法的步骤。

本申请实施例中,验证设备为可验证文件随机设置一个预存储周期数,并在预存储周期数到达时才触发存储设备提供可验证文件的时空证明,进而侧面证明存储设备存储客户端上传的常规文件达到预存储周期数,而不需要频繁地向存储设备发起交互式挑战,从而极大地降低了时空证明的资源消耗。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的一种系统架构的结构示意图;

图2为本申请实施例提供的一种时空证明方法的流程示意图;

图3为本申请实施例提供的一种伪随机数的示意图;

图4A为本申请实施例提供的一种可验证文件上传方法的流程示意图;

图4B为本申请实施例提供的一种可验证文件验证方法的流程示意图;

图5为本申请实施例提供的一种时空证明装置的结构示意图;

图6为本申请实施例提供的一种时空证明装置的结构示意图;

图7为本申请实施例提供的一种时空证明装置的结构示意图;

图8为本申请实施例提供的一种计算机设备的结构示意图。

具体实施方式

为了使本发明的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

为了方便理解,下面对本发明实施例中涉及的名词进行解释。

客户端:用于上传文件到存储设备。

第三方管理者:(Third Party Administrator,简称TPA),一种审计用的特殊客户端,可以是中心化的,也可以是去中心化的网络。存储设备无法识别出一个客户端是否是TPA。在本申请中,可以将TPA作为验证设备。

存储设备:用于保存文件,可以是中心化存储机构,也可以是去中心化存储机构。

区块链:用于仲裁分布式网络的运行效果。区块链是去中心化条件下的时间戳服务器,它每生产出一个区块,相当于时钟的一个tick。

Epoch:表示周期,每c(系统参数)个区块构成一个epoch。

随机数信标:每个epoch开始,验证设备或存储设备会确定性的生成一个随机数信标。这个随机数信标可以被用于生成伪随机数。

可验证文件:验证设备使用每个epoch指定的随机数信标,将生成一个可验证文件,其中,可验证文件的部分属性(文件编号、文件尺寸、预存储周期数),是由随机数信标确定性生成的;但是文件内容则是完全随机的,并被加密。除非在验证阶段,存储设备无法区分出可验证文件和客户端上传的常规文件。

双线性映射函数:这是一个映射函数(记为E),作用于群G的映射上:G×G->G

E(P

VRF体制:包含GenVRF和VerifyVRF两个函数。将种子和私钥输入GenVRF函数,生成随机数。将种子和公钥输入VerifyVRF函数,验证随机数是否是通过GenVRF函数生成的。

参考图1,其为本申请实施例适用的一种系统架构图,该系统架构至少包括客户端101、验证设备102、存储设备103和区块链104,客户端101、验证设备102、存储设备103均可以是一个或多个,本申请对客户端101、验证设备102、存储设备103的数量不做具体限定。

客户端101利用存储设备103保存常规文件,其中,客户端101可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能家电、智能语音交互设备、智能车载设备等,但并不局限于此。存储设备103可以是中心化存储机构,也可以是去中心化存储机构。

在可验证文件的预存储周期数到达时,验证设备102向存储设备103发起针对可验证文件的交互式挑战,并联合区块链104对存储设备103返回的存在证明进行验证,以确定存储设备103是否存储可验证文件达到预存储周期数,进而确定存储设备103是否存储客户端101上传的常规文件达到预存储周期数。

验证设备102可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。区块链104用于是去中心化条件下的时间戳服务器,为验证设备102和存储设备103提供基准时间。

客户端101与存储设备103和区块链104可以通过有线或无线通信方式进行直接或间接地连接;验证设备102与存储设备103和区块链104可以通过有线或无线通信方式进行直接或间接地连接;存储设备103与区块链104通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。

基于图1所示的系统架构图,本申请实施例提供了一种时空证明方法的流程,如图2所示,该方法的流程由验证设备、存储设备和区块链交互执行,包括以下步骤:

步骤S201,验证设备在目标周期内生成可验证文件以及可验证文件的预存储周期数。

具体地,目标周期通过区块链上的多个区块进行表征。比如,预先设置c个区块为一个周期,c为预设的正整数。在实际应用中,当区块链的出块速度较小时,可以将c设置为一个较小的值;当区块链的出块速度较大时,可以将c设置为一个较大的值。

在目标周期内的任意时间均可以生成可验证文件,可验证文件的数量可以是一个或多个。可验证文件的预存储周期数指可验证文件的生命周期,预存储周期数是随机生成的。

在一些实施例中,在进入目标周期时,验证设备基于目标周期内的第一个新区块的区块高度,确实目标周期的周期编号。然后基于周期编号、新区块的区块高度、新区块的时间戳以及区块链的编号,确定随机数信标。

具体地,验证设备监听区块链上的每个新区块,并获取新区块的区块高度。在确定新区块的区块高度满足以下公式(1)和公式(2)时,确定进入一个新周期:

B mod c==0………………(1)

epoch(B)=B/c>E

其中,B表示新区块的区块高度,c表示每个周期对应的区块数量,E

将当前周期的周期编号E

beacon=H(epoch(B)||B||Timestamp||ChainId)…………………(3)

其中,beacon表示随机数信标,Timestamp表示新区块的时间戳,ChainId表示区块链的编号,H表示哈希函数,该哈希函数可以为任意数据生成32字节的哈希值,通常可选择sha256、sha3等。

验证设备保存目标周期的周期编号和随机数信标。另外,验证设备在内部构建周期编号E

需要说明的是,存储设备同样采用上述方式更新本地保存的周期编号和随机数信标,此处不再赘述。

本申请实施例中,采用区块链作为去中心化条件下的时间戳服务器,提高了对文件存储时长进行证明时的公平性和可信度。

在一些实施例中,验证设备获取目标周期对应的随机数信标,并基于随机数信标和验证方私钥,生成可验证随机数。然后以可验证随机数为随机数种子生成伪随机数,并基于伪随机数确定可验证文件的文件尺寸。随机生成满足文件尺寸的文件内容,并对文件内容进行加密,获得可验证文件。

具体地,预先设置一个群G,通常选择椭圆曲线作为群G,例如secp256k1椭圆曲线,取g∈G作为生成密钥对的生成元,任取u∈G作为时空证明用的生成元。验证设备基于群G生成一个非对称密钥,其中,验证方私钥为a,验证方公钥为Pk=g

验证设备采用可验证随机函数,基于随机数信标和验证方私钥,生成可验证随机数,具体如以下公式(4)所示:

R=GenVRF(beacon,a)…………………(4)

其中,R为可验证随机数,a为验证方私钥,GenVRF为可验证随机函数,beacon为随机数信标。

验证设备以可验证随机数为随机数种子,采用伪随机的方式生成伪随机数,然后从伪随机数中获取可验证文件的文件编号、可验证文件的文件尺寸、预存储周期数。

举例来说,设定伪随机数如图3所示,包括38个字节,将前32个字节的内容作为可验证文件的文件编号fid1,将中间4个字节的内容作为可验证文件的文件尺寸fsize,将最后2个字节的内容作为可验证文件的预存储周期数lifetime。验证设备以当前本地时间作为随机数种子,以伪随机的方式,每次生成一个随机字节,直到生成了fsize个字节。然后采用验证方公钥对fsize个字节进行加密,获得可验证文件F1。

本申请实施例中,采用随机的方式生成可验证文件,使得存储设备无法区分保存的可验证文件和常规文件,故可以通过对可验证文件进行时空证明,实现对常规文件的时空证明,从而提高时空证明的效率,降低时空证明的资源消耗。

步骤S202,验证设备按照目标形式将可验证文件和相应的属性信息上传至存储设备。

具体地,目标形式为客户端上传常规文件和相应的属性信息至存储设备的形式,使得存储设备无法区分保存的可验证文件和常规文件。可验证文件F1的属性信息包括可验证文件的文件编号fid1,以及生成可验证文件时监测到的区块链的第一区块高度Ts1。验证设备将三元组{fid1,F1,Ts1}发送至存储设备。存储设备将三元组{fid1,F1,Ts1}保存在本地,并以fid1构建索引,使得基于fid1可以查找到三元组{fid1,F1,Ts1}。

在一些实施例中,验证设备基于可验证文件和文件编号,生成可验证文件的第一验证标记,然后将文件编号、第一验证标记和第一区块高度上传至区块链。

具体地,基于可验证文件和文件编号,生成可验证文件的第一验证标记,如以下公式(5)所示:

T(fid1)=H(fid1)

其中,T(fid1)表示第一验证标记,H表示哈希函数,fid1表示可验证文件的文件编号,a表示验证方私钥,F1表示可验证文件,u表示时空证明用的生成元。

验证设备将三元组{fid1、T(fid1)、Ts1}上传至区块链。区块链以fid1构建索引,使得基于fid1可以查找到三元组{fid1、T(fid1)、Ts1}。

在实际应用中,客户端也会上传常规文件F2、常规文件的文件编号fid2、生成常规文件时监测到的区块链的第二区块高度Ts2至存储设备;以及上传常规文件的文件编号fid2、常规文件的第二验证标记T(fid2)和第二区块高度Ts2至区块链,具体过程如下:

客户端采用客户方公钥对保存文件进行非对称加密,获得常规文件F2。然后采用通用唯一识别码(Universally Unique Identifier,简称UUID)等方式随机生成常规文件的文件编号fid2。监测生成常规文件时区块链的第二区块高度Ts2。然后将三元组{fid2,F2,Ts2}上传至存储设备,存储设备将三元组{fid2,F2,Ts2}保存在本地,并以fid2构建索引,使得基于fid2可以查找到三元组{fid2,F2,Ts2}。

客户端采用以下公式(6)计算获得常规文件的第二验证标记T(fid2):

T(fid2)=H(fid1)

其中,T(fid2)表示第二验证标记,H表示哈希函数,fid2表示常规文件的文件编号,d表示客户方私钥,F2表示常规文件,u表示时空证明用的生成元。

客户端将三元组{fid2、T(fid2)、Ts2}上传至区块链。区块链以fid2构建索引,使得基于fid2可以查找到三元组{fid2、T(fid2)、Ts2}。

步骤S203,在预存储周期数到达时,验证设备将可验证文件的目标验证信息上传至区块链。

具体地,当E

步骤S204,存储设备从区块链获取可验证文件的目标验证信息。

具体地,存储设备监听到验证设备将可验证文件的目标验证信息上传至区块链时,从区块链获取可验证文件的目标验证信息。

步骤S205,存储设备基于目标验证信息生成可验证文件的存在证明。

在一些实施例中,可验证文件的目标验证信息包括:可验证随机数和验证方生成元。验证设备随机选择随机数据s,然后基于随机数s和时空证明的生成元u确定验证方生成元,具体如以下公式(7)所示:

v=u

其中,v表示验证方生成元。

验证设备以可验证随机数为随机数种子生成伪随机数,并基于伪随机数,确定可验证文件的文件编号和预存储周期数。然后基于可验证文件的文件编号,从区块链中获取第一区块高度,第一区块高度是验证设备生成可验证文件时监测到的区块链的区块高度。基于第一区块高度,确定目标周期的周期编号。若当前周期编号与目标周期的周期编号的差值大于预存储周期数,则基于可验证文件和验证方生成元,生成存在证明。

具体地,以可验证随机数为随机数种子,采用伪随机的方式生成伪随机数,然后从伪随机数中获取可验证文件的文件编号fid1、可验证文件的文件尺寸fsize、预存储周期数lifetime。基于可验证文件的文件编号fid1,从区块链中获取三元组{fid1、T(fid1)、Ts1}。

基于第一区块高度Ts1,确定目标周期的周期编号,具体如以下公式(8)所示:

x=Ts1/c…………………(8)

其中,x表示目标周期的周期编号,c表示每个周期对应的区块数量。

若当前周期编号E

P=v

其中,P表示存在证明,F1表示可验证文件,v表示验证方生成元。

在一些实施例中,目标验证信息还包括:可验证随机数的签名和验证方公钥。验证设备以可验证随机数为随机数种子生成伪随机数之前,先采用验证方公钥对可验证随机数的签名进行验证,且验证结果为验证通过。

验证设备基于可验证文件和验证方生成元,生成存在证明之前,基于目标周期的周期编号,获取目标周期对应的随机数信标。然后采用验证方公钥和随机数信标,对可验证随机数进行验证,且验证结果为验证通过。

具体实施中,验证设备基于目标周期的周期编号x查找获得相应的随机数信标beacon,然后采用验证方公钥Pk和随机数信标beacon,调用VerifyVRF对可验证随机数R进行验证。在验证通过时,判断当前周期编号E

步骤S206,存储设备将存在证明上传至区块链。

具体地,存储设备将存在证明P和可验证文件的文件编号fid1上传到区块链。

步骤S207,验证设备将辅助验证信息上传至区块链。

具体地,验证设备监听到证据{fid1,P}上链时,向区块链提交辅助验证信息,其中,辅助验证信息包括可验证文件的文件编号fid1和随机数s。

步骤S208,区块链基于辅助验证信息对存在证明进行验证,获得验证结果。

具体地,基于辅助验证信息和可验证文件的第一验证标记T(fid1)对存在证明P进行验证,获得验证结果。

在一些实施例中,预先设置一个双线性映射函数E,然后将可验证文件的文件编号fid1、随机数s、第一验证标记T(fid1)和存在证明P代入双线性映射函数,获得验证结果,具体如以下公式(10)所示:

其中,T(fid1)

步骤S209,验证设备监测到验证结果为验证通过时,确定存储设备存储可验证文件达到预存储周期数。

若上述公式(10)所示的双线性映射函数的两边相等,则确定验证结果为验证通过,则确定存储设备存储可验证文件达到预存储周期数。若上述公式(10)所示的双线性映射函数的两边不相等,则确定验证结果为验证不通过,则确定存储设备存储可验证文件没有达到预存储周期数。

由于存储设备无法区分验证设备上传的可验证文件以及客户端上传的常规文件,因此,存储设备针对可验证文件和常规文件均需要无差别的保存。那么,当存储设备能够提供存储可验证文件达到预存储周期数的时空证明时,也就证明了存储设备存储客户端上传的常规文件达到预存储周期数。验证设备为可验证文件随机设置一个预存储周期数,并在预存储周期数到达时才触发存储设备提供可验证文件的时空证明,进而侧面证明存储设备存储客户端上传的常规文件达到预存储周期数,而不需要频繁地向存储设备发起交互式挑战,从而极大地降低了时空证明的资源消耗。

为了更好地解释本申请实施例,下面结合具体实施场景介绍本申请实施例提供的一种时空证明方法,该方法的流程可以由客户端、验证设备、存储设备和区块链交互执行。

第一阶段:可验证文件和常规文件的上传阶段,如图4A所示,包括以下步骤:

步骤S401,在进入目标周期时,验证设备基于目标周期内的第一个新区块的区块高度,确实目标周期的周期编号x。

步骤S402,验证设备基于周期编号x、新区块的区块高度B、新区块的时间戳Timestamp以及区块链的编号ChainId,确定随机数信标beacon。

步骤S403,验证设备基于随机数信标beacon和验证方私钥a,生成可验证随机数R。

步骤S404,验证设备以可验证随机数R为随机数种子生成伪随机数。

步骤S405,验证设备基于伪随机数确定可验证文件的文件尺寸fsize、文件编号fid1、预存储周期数lifetime。

步骤S406,验证设备随机生成满足文件尺寸fsize的文件内容,并对文件内容进行加密,获得可验证文件F1。

步骤S407,验证设备将三元组{fid1,F1,Ts1}发送至存储设备。

其中,Ts1表示生成可验证文件F1时监测到的区块链的第一区块高度Ts1。

步骤S408,验证设备基于可验证文件F1和文件编号fid1,生成可验证文件的第一验证标记T(fid1)。

步骤S409,验证设备将三元组{fid1、T(fid1)、Ts1}上传至区块链。

步骤S410,客户端将三元组{fid2,F2,Ts2}上传至存储设备。

客户端采用客户方公钥对保存文件进行非对称加密,获得常规文件F2。然后随机生成常规文件的文件编号fid2。监测生成常规文件时区块链的第二区块高度Ts2。

步骤S411,客户端将三元组{fid2、T(fid2)、Ts2}上传至区块链。

其中,基于常规文件F2和文件编号fid2,生成常规文件F2的第二验证标记T(fid2)。

第二阶段:可验证文件的证明和验证阶段,如图4B所示,包括以下步骤:

步骤S412,在预存储周期数到达时,验证设备将可验证文件F1的目标验证信息上传至区块链。

步骤S413,存储设备从区块链获取可验证文件F1的目标验证信息。

具体地,可验证文件的目标验证信息包括:可验证随机数R、验证方生成元v、可验证随机数的签名S和验证方公钥Pk。

其中,基于随机数s和时空证明的生成元u确定验证方生成元v。

步骤S414,存储设备采用验证方公钥Pk对可验证随机数的签名S进行验证。

步骤S415,在验证通过时,存储设备以可验证随机数R为随机数种子生成伪随机数。

步骤S416,存储设备基于伪随机数确定可验证文件的文件编号fid1和预存储周期数lifetime。

步骤S417,存储设备基于文件编号fid1,从区块链中获取三元组{fid1、T(fid1)、Ts1}。

步骤S418,存储设备基于第一区块高度Ts1,确定目标周期的周期编号x。

步骤S419,存储设备基于周期编号x,获取目标周期对应的随机数信标beacon。

步骤S420,存储设备采用验证方公钥Pk和随机数信标beacon,对可验证随机数R进行验证。

步骤S421,在验证通过时,存储设备判断当前周期编号E

步骤S422,若是,存储设备基于可验证文件F1和验证方生成元v,生成存在证明P。

步骤S423,存储设备将存在证明P和可验证文件的文件编号fid1上传到区块链。

步骤S424,存储设备向区块链提交文件编号fid1和随机数s。

步骤S425,区块链将文件编号fid1、随机数s、第一验证标记T(fid1)和存在证明P代入双线性映射函数,获得验证结果。

步骤S426,验证设备监测到验证结果为验证通过时,确定存储设备存储可验证文件达到预存储周期数lifetime。

本申请实施例中,验证设备为可验证文件随机设置一个预存储周期数,并在预存储周期数到达时才触发存储设备提供可验证文件的时空证明,进而侧面证明存储设备存储客户端上传的常规文件达到预存储周期数,而不需要频繁地向存储设备发起交互式挑战,从而极大地降低了时空证明的资源消耗。

基于相同的技术构思,本申请实施例提供了一种时空证明装置的结构示意图,应用于验证设备,如图5所示,该装置500包括:

生成模块501,用于在目标周期内生成可验证文件以及所述可验证文件的预存储周期数;

第一发送模块502,用于按照目标形式将所述可验证文件和相应的属性信息上传至存储设备,所述目标形式为客户端上传常规文件和相应的属性信息至所述存储设备的形式;

所述第一发送模块502,还用于在所述预存储周期数到达时,通过区块链将所述可验证文件的目标验证信息发送至所述存储设备,以使所述存储设备基于所述目标验证信息生成所述可验证文件的存在证明,并将所述存在证明上传至所述区块链;

所述第一发送模块502,还用于将所述可验证文件的辅助验证信息上传至所述区块链,以使所述区块链基于所述辅助验证信息对所述存在证明进行验证,获得验证结果;

第一接收模块503,用于监测到所述验证结果为验证通过时,确定所述存储设备存储所述可验证文件达到所述预存储周期数。

可选地,所述生成模块501还用于:

基于所述可验证文件和所述文件编号,生成所述可验证文件的第一验证标记;

所述第一发送模块502,还用于:

将所述文件编号、所述第一验证标记和所述第一区块高度上传至所述区块链。

可选地,所述生成模块501具体用于:

获取所述目标周期对应的随机数信标,并基于所述随机数信标和验证方私钥,生成可验证随机数,所述目标周期通过所述区块链上的多个区块进行表征;

以所述可验证随机数为随机数种子生成伪随机数,并基于所述伪随机数,确定所述可验证文件的文件尺寸;

随机生成满足所述文件尺寸的文件内容,并对所述文件内容进行加密,获得所述可验证文件。

可选地,所述生成模块501还用于:

生成可验证文件之前,在进入所述目标周期时,基于所述目标周期内的第一个新区块的区块高度,确实所述目标周期的周期编号;

基于所述周期编号、所述新区块的区块高度、所述新区块的时间戳以及所述区块链的编号,确定所述随机数信标。

可选地,所述可验证文件的文件编号以及所述预存储周期数是通过所述伪随机数获得的。

基于相同的技术构思,本申请实施例提供了一种时空证明装置的结构示意图,应用于存储设备,如图6所示,该装置600包括:

第二接收模块601,用于接收验证设备按照目标形式上传的在目标周期内生成的可验证文件和相应的属性信息,所述目标形式为客户端上传常规文件和相应的属性信息至所述存储设备的形式;

所述第二接收模块601,还用于监测到所述验证设备上传所述可验证文件的目标验证信息至区块链时,从所述区块链获取所述目标验证信息,所述目标验证信息是所述验证设备在确定所述可验证文件的预存储周期数到达时上传的;

处理模块602,用于基于所述目标验证信息生成所述可验证文件的存在证明,并将所述存在证明上传至所述区块链,以使所述区块链基于所述验证设备上传的辅助验证信息对所述存在证明进行验证,获得验证结果;以及在验证通过时,确定所述存储设备存储所述可验证文件达到所述预存储周期数。

可选地,所述目标验证信息包括:可验证随机数和验证方生成元;

所述处理模块602具体用于:

以所述可验证随机数为随机数种子生成伪随机数,并基于所述伪随机数,确定所述可验证文件的文件编号和所述预存储周期数;

基于所述可验证文件的文件编号,从所述区块链中获取第一区块高度,所述第一区块高度是所述验证设备生成所述可验证文件时监测到的所述区块链的区块高度;

基于所述第一区块高度,确定所述目标周期的周期编号;

若当前周期编号与所述目标周期的周期编号的差值大于等于所述预存储周期数,则基于所述可验证文件和所述验证方生成元,生成所述存在证明。

可选地,所述目标验证信息还包括:可验证随机数的签名和验证方公钥;

所述处理模块602还用于:

以所述可验证随机数为随机数种子生成伪随机数之前,采用所述验证方公钥对所述可验证随机数的签名进行验证,且验证结果为验证通过。

可选地,所述处理模块602还用于:

基于所述可验证文件和所述验证方生成元,生成所述存在证明之前,基于所述目标周期的周期编号,获取所述目标周期对应的随机数信标;采用所述验证方公钥和所述随机数信标,对所述可验证随机数进行验证,且验证结果为验证通过。

基于相同的技术构思,本申请实施例提供了一种时空证明装置的结构示意图,应用于区块链,如图7所示,该装置700包括:

第三接收模块701,用于在可验证文件的预存储周期数到达时,接收验证设备上传的所述可验证文件的目标验证信息,所述可验证文件和相应的属性信息是所述验证设备在目标周期内生成的,并按照目标形式保存在存储设备中,所述目标形式为客户端上传常规文件和相应的属性信息至所述存储设备的形式;

第三发送模块702,用于将所述目标验证信息发送至所述存储设备,以使所述存储设备基于所述目标验证信息生成所述可验证文件的存在证明;

所述第三接收模块,还用于接收所述存储设备上传的所述存在证明以及所述验证设备上传的辅助验证信息;

验证模块703,用于基于所述辅助验证信息对所述存在证明进行验证,获得验证结果;以及在验证通过时,确定所述存储设备存储所述可验证文件达到所述预存储周期数。

可选地,所述验证模块703具体用于:

基于所述辅助验证信息和所述验证设备上传的所述可验证文件的第一验证标记对所述存在证明进行验证,获得验证结果,其中,所述第一验证标记是所述验证设备基于所述可验证文件和所述可验证文件的文件编号生成的。

可选地,所述验证模块703具体用于:

将所述辅助验证信息、所述第一验证标记和所述存在证明代入双线性映射函数,获得所述验证结果。

本申请实施例中,验证设备为可验证文件随机设置一个预存储周期数,并在预存储周期数到达时才触发存储设备提供可验证文件的时空证明,进而侧面证明存储设备存储客户端上传的常规文件达到预存储周期数,而不需要频繁地向存储设备发起交互式挑战,从而极大地降低了时空证明的资源消耗。

基于相同的技术构思,本申请实施例提供了一种计算机设备,该计算机设备可以是图1所示的客户端101、验证设备102、存储设备103和区块链104,如图8所示,包括至少一个处理器801,以及与至少一个处理器连接的存储器802,本申请实施例中不限定处理器801与存储器802之间的具体连接介质,图8中处理器801和存储器802之间通过总线连接为例。总线可以分为地址总线、数据总线、控制总线等。

在本申请实施例中,存储器802存储有可被至少一个处理器801执行的指令,至少一个处理器801通过执行存储器802存储的指令,可以执行上述时空证明方法的步骤。

其中,处理器801是计算机设备的控制中心,可以利用各种接口和线路连接计算机设备的各个部分,通过运行或执行存储在存储器802内的指令以及调用存储在存储器802内的数据,从而实现时空证明。可选的,处理器801可包括一个或多个处理单元,处理器801可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器801中。在一些实施例中,处理器801和存储器802可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。

处理器801可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。

存储器802作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器802可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器802是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机设备存取的任何其他介质,但不限于此。本申请实施例中的存储器802还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。

基于同一发明构思,本申请实施例提供了一种计算机可读存储介质,其存储有可由计算机设备执行的计算机程序,当程序在计算机设备上运行时,使得计算机设备执行上述时空证明方法的步骤。

本领域内的技术人员应明白,本发明的实施例可提供为方法、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机设备或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机设备或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机设备或其他可编程数据处理设备上,使得在计算机设备或其他可编程设备上执行一系列操作步骤以产生计算机设备实现的处理,从而在计算机设备或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

相关技术
  • 一种后端存储设备的管理方法、装置、设备以及存储介质
  • 一种数据存储方法及装置、一种计算设备及存储介质
  • 一种数据存储方法及装置、一种计算设备及存储介质
  • 一种浴室加热装置和用于控制浴室加热装置的方法、设备、电子设备及计算机可读存储介质
  • 零知识证明电路的优化方法、装置、设备及可读存储介质
  • 基于随机验证的时空证明成块存储方法、装置和电子设备
  • 基于随机验证的时空证明成块存储方法、装置和电子设备
技术分类

06120115921771