CN109889505A - 数据持有性验证方法及终端设备 - Google Patents

数据持有性验证方法及终端设备 Download PDF

Info

Publication number
CN109889505A
CN109889505A CN201910063626.XA CN201910063626A CN109889505A CN 109889505 A CN109889505 A CN 109889505A CN 201910063626 A CN201910063626 A CN 201910063626A CN 109889505 A CN109889505 A CN 109889505A
Authority
CN
China
Prior art keywords
data
merkel
hash
root
storing data
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
Application number
CN201910063626.XA
Other languages
English (en)
Other versions
CN109889505B (zh
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.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen 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 Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN201910063626.XA priority Critical patent/CN109889505B/zh
Publication of CN109889505A publication Critical patent/CN109889505A/zh
Priority to PCT/CN2019/118146 priority patent/WO2020151330A1/zh
Application granted granted Critical
Publication of CN109889505B publication Critical patent/CN109889505B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明适用于计算机应用技术领域,提供了一种数据持有性验证方法、终端设备及计算机可读存储介质,包括:通过对数据所有者终端的原始数据进行分块,并将数据分块存储至对应的存储节点中,在确定了待验证的存储数据之后,根据存储节点发送的存储数据和计算根默克尔哈希的计算路径,计算根默克尔哈希,将计算结果与预先存储的根默克尔哈希进行对比,以确定存储节点所存储的存储数据的正确性,保证了点对点存储过程中存储节点保存数据的持有性和完整性。

Description

数据持有性验证方法及终端设备
技术领域
本发明属于计算机应用技术领域,尤其涉及一种数据持有性验证方法、终端设备及计算机可读存储介质。
背景技术
云用户利用云服务器提供的存储服务将本地数据存储在云端,不仅可以节省本地的存储空间和计算资源,还可以实现与其他用户的资源共享。在复杂的云计算环境下,受到人为因素的影响,云服务器可能非故意的删除数据或者修改数据。在对等网络(Peer toPeer,P2P)分布式云存储系统中,由于无法保证节点的可信性,有些节点可能声称存储了其并没有存储的数据,以换取更多的经济收益。因此数据所有者,或其委托的检查者,需要定期对声称存储了该数据的存储节发起数据持有性检查,以判断存储节点是否完好地保存了用户的数据。
现有技术中通过对存储节点所存储的数据与原始数据进行对比,来确定存储节点中的数据是否被修改或者删除,但是当数据量较大的情况下,现有的验证方式计算的次数和消耗时间较多,验证效率较低。
发明内容
有鉴于此,本发明实施例提供了一种数据持有性验证方法、终端设备及计算机可读存储介质,以解决当数据量较大的情况下,现有的验证方式计算的次数和消耗时间较多,验证效率较低的问题。
本发明实施例的第一方面提供了一种数据持有性验证方法,包括:
发送数据验证通知至存储待检验的数据分块的存储节点;所述数据验证通知包括所述待检验的数据分块的数据标识;
接收所述存储节点根据所述数据标识发送的证明数据;所述证明数据包括所述存储节点中与所述数据标识对应的存储数据,以及根据所述存储数据计算根默克尔哈希的计算路径;
根据所述存储数据和所述计算路径,计算根默克尔哈希,并将计算结果与预设的默克尔树中的根默克尔哈希进行比较;
若根据所述存储数据和所述计算路径计算得到的根默克尔哈希,与所述默克尔树中的根默克尔哈希一致,则判定所述存储节点中的所述存储数据为所述分块数据。
本发明实施例的第二方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
发送数据验证通知至存储待检验的数据分块的存储节点;所述数据验证通知包括所述待检验的数据分块的数据标识;
接收所述存储节点根据所述数据标识发送的证明数据;所述证明数据包括所述存储节点中与所述数据标识对应的存储数据,以及根据所述存储数据计算根默克尔哈希的计算路径;
根据所述存储数据和所述计算路径,计算根默克尔哈希,并将计算结果与预设的默克尔树中的根默克尔哈希进行比较;
若根据所述存储数据和所述计算路径计算得到的根默克尔哈希,与所述默克尔树中的根默克尔哈希一致,则判定所述存储节点中的所述存储数据为所述分块数据。
本发明实施例的第三方面提供了一种终端设备,包括:
发送单元,用于发送数据验证通知至存储待检验的数据分块的存储节点;所述数据验证通知包括所述待检验的数据分块的数据标识;
接收单元,用于接收所述存储节点根据所述数据标识发送的证明数据;所述证明数据包括所述存储节点中与所述数据标识对应的存储数据,以及根据所述存储数据计算根默克尔哈希的计算路径;
计算单元,用于根据所述存储数据和所述计算路径,计算根默克尔哈希,并将计算结果与预设的默克尔树中的根默克尔哈希进行比较;
判定单元,用于若根据所述存储数据和所述计算路径计算得到的根默克尔哈希,与所述默克尔树中的根默克尔哈希一致,则判定所述存储节点中的所述存储数据为所述分块数据。
本发明实施例的第四方面提供了一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面的方法。
本发明实施例与现有技术相比存在的有益效果是:
本发明实施例通过对数据所有者终端的原始数据进行分块,并将数据分块存储至对应的存储节点中,在确定了待验证的存储数据之后,根据存储节点发送的存储数据和计算根默克尔哈希的计算路径,计算根默克尔哈希,将计算结果与预先存储的根默克尔哈希进行对比,以确定存储节点所存储的存储数据的正确性,保证了点对点存储过程中存储节点保存数据的持有性和完整性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的数据持有性验证方法的流程图;
图2是本发明实施例二提供的数据持有性验证方法的流程图;
图3是本发明实施例三提供的终端设备的示意图;
图4是本发明实施例四提供的终端设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
参见图1,图1是本发明实施例一提供的数据持有性验证方法的流程图。本实施例中数据持有性验证方法的执行主体为终端。终端包括但不限于智能手机、平板电脑、可穿戴设备等移动终端,还可以是台式电脑等。如图所示的数据持有性验证方法可以包括以下步骤:
S101:发送数据验证通知至存储待检验的数据分块的存储节点;所述数据验证通知包括所述待检验的数据分块的数据标识。
随着网格计算、物联网以及云计算等技术的快速兴起,数据正在以前所未有的速度进行增长和累积,面对如此大规模的数据,如何进行海量数据的存储和处理给存储系统带来新的挑战。在分布式存储系统发展的基础上,云存储以其低成本、高效率、良好扩展性和高可靠性等特点,迅速成为海量数据存储研究关注的热点。
云存储是继云计算之后兴起的一种互联网技术,它通过虚拟化技术把实实在在存在的大量的物理存储设备连接到一起,它们为了实现存储服务而协同运行,最终实现向用户提供存储服务的目的。当云计算系统因需处理海量数据而具备了雄厚的存储能力之后,它就俨然已经转换成了云存储系统。用户利用云存储系统可以在任意时间的地点在云上存取数据,方便而又快捷。
传统的单云存储仅仅依赖于一个云存储服务提供商,为了避免厂商锁定问题和提高可用性,多云存储的概念问世并吸引了越来越多的目光和关注。多云存储是同时使用多个云服务,用户的数据被按照一定的分布策略冗余的存储在多个云上。由于不同的云存储服务提供商都有其各自的特点和优势,所有多云存储可以利用不同的云服务基础设施来满足用户需求的多样性。多云存储不仅可以避免厂商锁定问题,还可以减少由于云存储组件失效引起的服务中断或数据丢失问题。所以,与传统的单云存储对比起来多云存储可以提高数据的可用性和容错性。
数据分块是把一份完整的数据按一定的条件划分成不同的几份,由不同的服务器来存储划分之后的内容,每份内容就叫做一个片。对于外界来说,显然不希望知道数据是从哪里来,分了多少片,因为对于应用来说,需要看到的是完整的一份数据,而不希望自己的业务逻辑中掺杂了去哪里取这份数据这样与业务无关的问题。所以在分块的同时,使得数据在物理上分开存储和处理,在逻辑上还是完整的一份。本实施例中,一个完整的源文件通过分块处理之后,可能由多个数据分块组成,并且,这些数据分块被存储在不同的存储节点中,以降低源存储节点的负载。但是存储节点可能因为想提高存储效益而删除或者修改存储在本地的数据分块,而导致数据发生错误,不能正常的进行数据处理,这种情况下,我们通过对存储节点中的数据分块进行抽查,来验证存储节点中数据分块是否正确。
在对数据分块进行验证时,由数据所有者终端先发送数据验证通知到存储待检验的数据分块的存储节点。在本实施例中,存储节点可以有很多个,用来存储数据所有者终端的数据,数据所有者终端的数据被划分成很多数据分块,由存储节点存储。在进行数据分块验证时,先确定待验证的数据分块以及存储该数据分块的存储节点,再向该存储节点发送数据验证通知。本实施例中的数据验证通知包括待检验的数据分块的数据标识。其中,数据标识可以是数据分块的编号等,此处不做限定。
S102:接收所述存储节点根据所述数据标识发送的证明数据;所述证明数据包括所述存储节点中与所述数据标识对应的存储数据,以及根据所述存储数据计算根默克尔哈希的计算路径。
在将数据验证通知发送至存储待检验的数据分块的存储节点之后,存储节点接收到数据验证通知,并根据数据验证通知中的数据标识确定对应的存储数据,以及根据存储数据计算根默克尔哈希的计算路径,将这两个数据作为证明数据发送至数据所有者终端。
在本实施例中,预设有默克尔树,通过默克尔树来存储每个数据分块的根默克尔哈希,以及每个数据分块计算根默克尔哈希的计算路径。其中,默克尔树的叶子是数据块,例如,文件或者文件的集合的哈希值,非叶节点是其对应子节点串联字符串的哈希。哈希是一个把任意长度的数据映射成固定长度数据的函数。例如,对于数据完整性校验,最简单的方法是对整个数据做哈希运算得到固定长度的哈希值,然后把得到的哈希值公布在网上,这样用户下载到数据之后,对数据再次进行哈希运算,比较运算结果和网上公布的哈希值进行比较,如果两个哈希值相等,说明下载的数据没有损坏。可以这样做是因为输入数据的稍微改变就会引起哈希运算结果的面目全非,而且根据哈希值反推原始输入数据的特征是困难的。如果从一个稳定的服务器进行下载,采用单一哈希是可取的。但如果数据源不稳定,一旦数据损坏,就需要重新下载,这种下载的效率是很低的。
在点对点网络中作数据传输的时候,会同时从多个机器上下载数据,而且很多机器可以认为是不稳定或者不可信的。为了校验数据的完整性,更好的办法是把大的文件分割成小的数据块,例如,把分割成2K为单位的数据块。这样的好处是,如果小块数据在传输过程中损坏了,那么只要重新下载这一快数据就行了,不用重新下载整个文件。BT下载的时候,在下载到真正数据之前,我们会先下载一个哈希列表。把每个小块数据的哈希值拼到一起,然后对这个长字符串在作一次哈希运算,这样就得到哈希列表的根哈希。下载数据的时候,首先从可信的数据源得到正确的根哈希,就可以用它来校验哈希列表了,然后通过校验后的哈希列表校验数据块。
S103:根据所述存储数据和所述计算路径,计算根默克尔哈希,并将计算结果与预设的默克尔树中的根默克尔哈希进行比较。
在本实施例中的默克尔树中预先存储有每个数据分块的根默克尔哈希,在获取到存储节点发送的存储数据和计算路径之后,根据存储数据和计算路径计算根默克尔哈希,并将计算结果与预设的默克尔树中的根默克尔哈希进行比较。
在实际应用中,在默克尔树最底层,和哈希列表一样,我们把数据分成小的数据块,有相应地哈希和它对应。但是往上走,并不是直接去运算根哈希,而是把相邻的两个哈希合并成一个字符串,然后运算这个字符串的哈希,这样根据每两个哈希得到了一个子哈希。进一步的,如果最底层的哈希总数是单数,那到最后必然出现一个单身哈希,这种情况就直接对它进行哈希运算,所以也能得到它的子哈希。于是往上推,依然是一样的方式,可以得到数目更少的新一级哈希,最终必然形成一棵倒挂的树,到了树根的这个位置,这一代就剩下一个根哈希了,即为默克尔根。在P2P网络下载网络之前,先从可信的源获得文件的默克尔根。一旦获得了树根,就可以从其他从不可信的源获取默克尔树。通过可信的树根来检查接受到的默克尔树。如果默克尔树是损坏的或者虚假的,就从其他源获得另一个默克尔树,直到获得一个与可信树根匹配的默克尔树。
可选的,本实施例中的默克尔树可以直接下载并立即验证默克尔树的一个分支。因为可以将文件切分成小的数据块,这样如果有一块数据损坏,仅仅重新下载这个数据块就行了。如果文件非常大,那么默克尔树和哈希表都很到,但是默克尔树可以一次下载一个分支,然后立即验证这个分支,如果分支验证通过,就可以下载数据了,而哈希表只有下载整个哈希表才能验证。
S104:若根据所述存储数据和所述计算路径计算得到的根默克尔哈希,与所述默克尔树中的根默克尔哈希一致,则判定所述存储节点中的所述存储数据为所述分块数据。
在将计算结果与预设的默克尔树中的根默克尔哈希进行比较时,若根据存储数据和计算路径计算得到的根默克尔哈希,与默克尔树中的根默克尔哈希一致,则判定存储节点中的存储数据为分块数据。
进一步的,若根据存储数据和计算路径计算得到的根默克尔哈希,与预设的默克尔树中的根默克尔哈希不同,则判定存储节点中的存储数据与分块数据不一致,并生成验证失败记录;发送验证失败记录和存储数据对应的分块数据至存储节点,并用分块数据替换存储节点中验证失败的存储数据。
上述方案,通过发送数据验证通知至存储待检验的数据分块的存储节点,接收存储节点根据数据标识发送的证明数据;证明数据包括存储节点中与数据标识对应的存储数据,以及根据存储数据计算根默克尔哈希的计算路径;根据存储数据和计算路径计算根默克尔哈希,并将计算结果与预设的默克尔树中的根默克尔哈希进行比较;若根据存储数据和计算路径计算得到的根默克尔哈希,与默克尔树中的根默克尔哈希一致,则判定存储节点中的存储数据为分块数据。根据数据分块对应的存储数据以及数据分块在预存的默克尔树中的计算路径,判断数据分块在目标节点中是否存储正确,保证了点对点存储过程中存储节点保存数据的持有性和正确性。
参见图2,图2是本发明实施例二提供的数据持有性验证方法的流程图。本实施例中数据持有性验证方法的执行主体为终端。终端包括但不限于智能手机、平板电脑、可穿戴设备等移动终端,还可以是台式电脑等。如图所示的数据持有性验证方法可以包括以下步骤:
S201:对数据所有者终端的原始数据进行分块,得到至少两个数据分块,并将每个所述数据分块发送至网络中对应的存储节点进行存储。
本实施例中的原始数据用于表示未分块之前的一个大文件,由于这个文件较大,而带来了较大的数据处理、存储以及传输压力,因此我们通过分块的方式,将其存储在不同的存储节点中。
对于传统的分布式系统,无非是在不同的区域搭建一些服务器,然后再在这些服务器上存储数据。它解决了一些集中式存储的问题,但是也存在着比如服务器成为瓶颈、由于带宽而带来的访问不便等问题。因此,P2P分布式存储应运而生。P2P分布式存储就是让客户也成为服务器,当在存储数据的同时,也提供空间让别人来存储。这就很好的解决了由于服务器很少而产生的瓶颈,也能在速度上加以改进。但是同样它也带来了很多的问题,例如数据稳定性、一致性、安全性、隐私性以及防攻击性都会受到或多或少的影响。本实施例主要针对的是数据的完整性问题,因为在很多情况下,我们将数据量较大的数据存储至P2P节点中,节点并不能保证数据的安全性、私密性和完整性,而完整性相比于私密性是更加重要的数据属性,如果完整性收到威胁,则我们的数据处理系统将没有一个完整、安全的数据操作基础,在P2P节点很容易遭到攻击或者发生存储、处理故障的情况下,需要及时的检测当前存储源数据的P2P节点中数据的完整性。通过给P2P节点中的数据加盐度值的方式,验证当前节点所存储的数据是否与源数据相同,是否完整的保存有原始的全部数据。在本方案中源数据用于表示最初始的数据,即数据存储的标准数据,这些数据存储在本地的服务器中,用于通过这些数据与存储在P2P节点中的数据进行对比,检验P2P节点中数据的正确性。
本实施例中将原始数据进行分块之后得到至少两个数据分块,将数据分块发送至网络中对应的存储节点进行存储。其中,发送数据分块的方式可以通过有线传输或者无线传输的方式,其发送的时间可以是在数据分块生成完毕之后发送,也可以是在生成数据分块的同时进行发送,在分块数据的生成过程结束之后,发送分块数据的过程也跟随着结束。
进一步的,我们可以获取原始数据的数据信息,例如数据大小、数据类型等,根据数据大小和数据类型确定数据分块的大小,并且,每个数据分块的大小可以是不一样的,可以根据原始数据的大小和数据类型确定,此处不做限定。同时,我们还可以确定网络中每个存储节点的运行情况,例如内存占用率、存储空间占用率、网络带宽占用率等信息,通过这些信息来衡量一个存储节点的存储情况,并根据每个存储节点的存储情况对该存储节点布置对等的存储任务,保证每个存储节点的正常运行,以及数据存储的高效性和可靠性。
S2011:确定至少一个数据验证终端;所述数据验证终端用于代替数据所有者终端对存储节点中的存储数据进行验证。
在对数据进行验证时,可以是由数据所有者终端亲自进行数据验证,也可以是数据所有者终端来确定至少一个数据验证终端,通过该数据验证终端,来代替数据所有者终端对存储节点中的存储数据进行验证。
具体的,数据验证终端可以是网络中的其他存储节点,也可以是管理存储节点的、权限较高的节点,这一类的节点具有较高的权限,可以像数据所有者终端一样获取存储节点中的存储数据、向存储节点发送数据处理指令等。在确定数据验证终端时,数据所有者终端可以是先确定一个数据验证终端的名单,通过在该名单中选择至少一个数据验证终端,来验证存储数据的正确性。
S2012:发送待验证的存储数据的数据标识至所述数据验证终端,并委托所述数据验证终端对所述数据标识对应的存储数据进行验证。
在确定了至少一个数据验证终端来验证存储数据的正确性时,可以发送待验证的存储数据的数据标识至该数据验证终端,以通知该数据验证终端来验证该数据标识所对应的存储数据,达到委托数据验证终端来验证数据的目的。
进一步的,为了保证第三方数据验证终端验证数据的公平性,数据所有者终端可以确定至少两个数据验证终端来进行数据验证,并同时向确定出来的至少两个数据验证终端发送待验证的存储数据的数据标识,在所有数据验证终端对数据验证结束之后,接收所有数据验证终端发送的验证结果,通过比对多个数据验证结果,来保证第三方数据验证的公平性和客观性。
S202:对每个所述数据分块进行哈希运算,得到根默克尔哈希。
我们通过对数据分块进行哈希运算,得到根默克尔哈希。哈希是一个把任意长度的数据映射成固定长度数据的函数。例如,对于数据完整性校验,最简单的方法是对整个数据做哈希运算得到固定长度的哈希值,然后把得到的哈希值公布在网上,这样用户下载到数据之后,对数据再次进行哈希运算,比较运算结果和网上公布的哈希值进行比较,如果两个计算哈希值相等,说明下载的数据没有损坏。可以这样做是因为输入数据的稍微改变就会引起哈希运算结果的面目全非,而且根据哈希值反推原始输入数据的特征是困难的。
由于哈希运算的应用的多样性,它们经常是专为某一应用而设计的。例如,加密散列函数假设存在一个要找到具有相同散列值的原始输入的敌人。一个设计优秀的加密散列函数是一个“单向”操作:对于给定的散列值,没有实用的方法可以计算出一个原始输入,也就是说很难伪造。为加密散列为目的设计的函数,如消息摘要算法(Message-DigestAlgorithm,MD5),被广泛的用作检验散列函数。这样软件下载的时候,就会对照验证代码之后才下载正确的文件部分。此代码有可能因为环境因素的变化,如机器配置或者IP地址的改变而有变动,以保证源文件的安全性。
S203:根据每个所述数据分块及其根默克尔哈希构建默克尔树,并存储所述默克尔树。
在得到根默克尔哈希之后,我们根据每个数据分块及其根默克尔哈希构建默克尔树。其中,默克尔树中所有叶子节点都是认证数据的哈希值,每个非叶子节点的散列标签或标签值是根据它下面所有子节点进行组合,然后对组合进行哈希计算得出。默克尔树是哈希列表和哈希链的泛化。通常在证明一个叶节点是给定默克尔树的一部分时,需要处理的数据量与节点的数量的对数成正比。然而使用哈希表后,需要处理的数据量正比于节点的数量。通过比对本地存储的根节点哈希值来判断数据在位置上是否完整,数据块标签则用来确保数据块在数值上是正确的。为了支持动态数据操作,在计算标签时不应包含文件的索引信息,任何针对单个数据块的操作不会影响到其他的数据块。执行更新操作时,它会检查默克尔树确保更新后的数据块在其正确的位置。
由于默克尔哈希的特性,数据存储节点通过缓存少量的中间哈希,即可极大的减少数据证明所需的计算开销。以一个数据分块大小(D)为8M字节,分块大小(B)为64字节的数据例,计算一次数据证明需要执行:(D/B)*2-1-Log(D/B)=262126次哈希计算;若存储节点在第一数据证明计算后,缓存了默克尔树的第3层的8个哈希值,即从数据分块至根默克尔哈希的计算路径,则之后的数据证明只需要执行:(D/8/B)*2-1-Log(D/8/B)+4=32757次哈希计算,约为原来的1/8,因此,本实施例的验证方式可以减少数据计算量并提高数据验证效率。
为了保持数据一致,分布系统间数据需要同步,如果对机器上所有数据都进行比对的话,数据传输量就会很大,从而造成“网络拥挤”。为了解决这个问题,可以在每台机器上构造一棵默克尔树,这样,在两台机器间进行数据比对时,从默克尔树的根节点开始进行比对,如果根节点一样,则表示两个副本目前是一致的,不再需要任何处理;如果不一样,则沿着哈希值不同的节点路径查询,很快就能定位到数据不一致的叶节点,只用把不一致的数据同步即可,这样大大节省了比对时间以及数据的传输量。
进一步的,步骤S203可以具体包括S2031~S2034:
S2031:接收所述存储节点发送的存储数据变化请求;所述存储数据变化请求中包括待改动的存储数据和改动之后的存储数据。
在将数据分块计算得到的根默克尔哈希构建默克尔树之后,在实际应用中仍然会出现数据分块发生变化的情况,这种情况会连带造成默克尔树中的根默克尔哈希也会发狠该变化,因此,在数据发生变化的时候,存储节点发送存储数据变化请求至数据所有者终端,其中,存储数据变化请求中包括待改动的存储数据和改动之后的存储数据,以使数据所有者终端可以确定发生变化的存储数据,并能相应的修改默克尔树。
S2032:根据所述存储数据变化请求,对所述待改动的存储数据和改动之后的存储数据进行验证。
在数据所有者终端接收到存储数据变化请求之后,此为存储节点对数据所有者的数据进行的改动,因此需要经过数据所有者终端的确认和通过。数据所有者终端在接收到数据变化请求之后,根据数据变化请求先确定待改动的存储数据,以及改动之后的存储数据。在确定了之后,对待改动的存储数据和改动之后的存储数据进行验证。
具体的,在验证改动数据的过程中,可以先获取发送存储数据变化请求的存储节点的权限,权限可以包括该存储节点可以处理的数据类型、数据标识以及对应的处理方式,根据存储节点的权限、待改动的存储数据和改动之后的存储数据,将其进行对比,确定待改动的存储数据和改动之后的存储数据是否符合该存储节点的权限。
S2033:若验证通过,则根据所述改动之后的存储数据重新计算根默克尔哈希。
若待改动的存储数据和改动之后的存储数据符合该存储节点的权限,则说明验证通过,根据改动之后的存储数据重新计算根默克尔哈希,以根据重新计算出来的根默克尔哈希对默克尔树进行对应的修改。
进一步的,若验证没有通过,则表示改动之后的存储数据不符合该存储节点的数据处理权限,或者被改动的存储数据不是该存储节点的处理权限对象中的数据,对于这种情况,我们可以不对默克尔树进行修改,并向该存储节点发送修改违规通知,以告知该存储节点的数据改动行为违规。
S2034:根据所述改动之后的存储数据以及重新计算得到根默克尔哈希更新所述默克尔树。
在重新计算得到根默克尔哈希之后,根据改动之后的存储数据的数据标识确定该数据标识对应的根默克尔哈希在默克尔树中的位置,再将改动之后的存储数据和重新计算得到的根默克尔哈希对默克尔树进行修改。
S204:发送数据验证通知至存储待检验的数据分块的存储节点;所述数据验证通知包括所述待检验的数据分块的数据标识。
在本实施例中S204与图1对应的实施例中S101的实现方式完全相同,具体可参考图1对应的实施例中的S101的相关描述,在此不再赘述。
S205:接收所述存储节点根据所述数据标识发送的证明数据;所述证明数据包括所述存储节点中与所述数据标识对应的存储数据,以及根据所述存储数据计算根默克尔哈希的计算路径。
在本实施例中S205与图1对应的实施例中S102的实现方式完全相同,具体可参考图1对应的实施例中的S102的相关描述,在此不再赘述。
S206:根据所述存储数据和所述计算路径,计算根默克尔哈希,并将计算结果与预设的默克尔树中的根默克尔哈希进行比较。
在数据所有者对存储节点所持有的数据持有性进行检查时,数据所有者选择一个随机数P,P>=0且P<D/B;要求存储节点提供数据分块P的原始数据和从数据分块P至根默克尔哈希的计算路径。假设P的数据标识为001,则存储节点需要提供数据分块为Datablock001的原始数据,以及默克尔哈希计算路径:hash0-0,hash1。数据所有者根据存储节点提供的证明数据,计算根默克尔哈希,并与之前根据原始数据计算的根默克尔哈希进行比较,以确定存储节点是真正保存了该数据。
在根据数据分块的地址和数据分块确定目标节点中的数据是否完整的过程中,可以快速比较大量数据,当两个默克尔树根相同时,则意味着所代表的数据必然相同。也可以通过快速定位修改,例如上例中,如果某个数据分块中数据被修改,会影响到hash0-0,hash0和默克尔树根。因此,沿着默克尔树根到hash0,hash0到hash0-0的路径,可以快速定位到发生改变的数据分块。默克尔树可以单独拿出一个分支来,作为一个小树,对部分数据进行校验,这个很多使用场合就带来了哈希列表所不能比拟的方便和高效。正是源于这些优点,默克尔树常用于分布式系统或分布式存储中。
S207:若根据所述存储数据和所述计算路径计算得到的根默克尔哈希,与所述默克尔树中的根默克尔哈希一致,则判定所述存储节点中的所述存储数据为所述分块数据。
在计算根默克尔哈希之后,将计算结果与预设的默克尔树中的根默克尔哈希进行比较。若根据存储数据和计算路径计算得到的根默克尔哈希,与默克尔树中的根默克尔哈希一致,则判定存储节点中的存储数据为分块数据。
进一步的,步骤S207还可包括步骤S2071~S2072:
S2071:若根据所述存储数据和所述计算路径计算得到的根默克尔哈希,与预设的默克尔树中的根默克尔哈希不同,则判定所述存储节点中的所述存储数据与所述分块数据不一致,并生成验证失败记录。
在计算根默克尔哈希之后,将计算结果与预设的默克尔树中的根默克尔哈希进行比较。若根据存储数据和计算路径计算得到的根默克尔哈希,与预设的默克尔树中的根默克尔哈希不同,则判定存储节点中的存储数据与分块数据不一致,并生成验证失败记录。其中,验证失败记录可以包括存储数据标识、验证失败原因等,此处不做限定。
S2072:发送所述验证失败记录和所述存储数据对应的分块数据至所述存储节点,并用所述分块数据替换所述存储节点中验证失败的存储数据。
当验证失败之后,我们可以判定当前存储节点所存储的存储数据可能与数据所有者终端的原始数据存储出入,这种情况下,我们先确定该存储数据对应的分块数据,再将分块数据发送至存储节点,以通过正确的分块数据替换存储节点中验证失败的存储数据,保证存储节点中的存储数据的正确性和完整性。
上述方案,通过对数据所有者终端的原始数据进行分块,并将数据分块存储至对应的存储节点中,在确定了待验证的存储数据之后,根据存储节点发送的存储数据和计算根默克尔哈希的计算路径,计算根默克尔哈希,将计算结果与预先存储的根默克尔哈希进行对比,以确定存储节点所存储的存储数据的正确性,保证了点对点存储过程中存储节点保存数据的持有性和完整性。
参见图3,图3是本发明实施例三提供的一种终端设备的示意图。终端设备包括的各单元用于执行图1~图2对应的实施例中的各步骤。具体请参阅图1~图2各自对应的实施例中的相关描述。为了便于说明,仅示出了与本实施例相关的部分。本实施例的终端设备300包括:
发送单元301,用于发送数据验证通知至存储待检验的数据分块的存储节点;所述数据验证通知包括所述待检验的数据分块的数据标识;
接收单元302,用于接收所述存储节点根据所述数据标识发送的证明数据;所述证明数据包括所述存储节点中与所述数据标识对应的存储数据,以及根据所述存储数据计算根默克尔哈希的计算路径;
计算单元303,用于根据所述存储数据和所述计算路径,计算根默克尔哈希,并将计算结果与预设的默克尔树中的根默克尔哈希进行比较;
判定单元304,用于若根据所述存储数据和所述计算路径计算得到的根默克尔哈希,与所述默克尔树中的根默克尔哈希一致,则判定所述存储节点中的所述存储数据为所述分块数据。
进一步的,所述终端设备还可以包括:
分块单元,用于对数据所有者终端的原始数据进行分块,得到至少两个数据分块,并将每个所述数据分块发送至网络中对应的存储节点进行存储;
哈希计算单元,用于对每个所述数据分块进行哈希运算,得到根默克尔哈希;
建树单元,用于根据每个所述数据分块及其根默克尔哈希构建默克尔树,并存储所述默克尔树。
进一步的,所述终端设备还可以包括:
验证单元,用于若根据所述存储数据和所述计算路径计算得到的根默克尔哈希,与预设的默克尔树中的根默克尔哈希不同,则判定所述存储节点中的所述存储数据与所述分块数据不一致,并生成验证失败记录;
记录发送单元,用于发送所述验证失败记录和所述存储数据对应的分块数据至所述存储节点,并用所述分块数据替换所述存储节点中验证失败的存储数据。
进一步的,所述建树单元可以包括:
请求接收单元,用于接收所述存储节点发送的存储数据变化请求;所述存储数据变化请求中包括待改动的存储数据和改动之后的存储数据;
数据验证单元,用于根据所述存储数据变化请求,对所述待改动的存储数据和改动之后的存储数据进行验证;
验证通过单元,用于若验证通过,则根据所述改动之后的存储数据重新计算根默克尔哈希;
数据修改单元,用于根据所述改动之后的存储数据以及重新计算得到根默克尔哈希更新所述默克尔树。
进一步的,所述终端设备还可以包括:
终端确定单元,用于确定至少一个数据验证终端;所述数据验证终端用于代替数据所有者终端对存储节点中的存储数据进行验证;
验证委托单元,用于发送待验证的存储数据的数据标识至所述数据验证终端,并委托所述数据验证终端对所述数据标识对应的存储数据进行验证。
上述方案,通过发送数据验证通知至存储待检验的数据分块的存储节点,接收存储节点根据数据标识发送的证明数据;证明数据包括存储节点中与数据标识对应的存储数据,以及根据存储数据计算根默克尔哈希的计算路径;根据存储数据和计算路径计算根默克尔哈希,并将计算结果与预设的默克尔树中的根默克尔哈希进行比较;若根据存储数据和计算路径计算得到的根默克尔哈希,与默克尔树中的根默克尔哈希一致,则判定存储节点中的存储数据为分块数据。根据数据分块对应的存储数据以及数据分块在预存的默克尔树中的计算路径,判断数据分块在目标节点中是否存储正确,保证了点对点存储过程中存储节点保存数据的持有性和正确性。
图4是本发明实施例四提供的终端设备的示意图。如图4所示,该实施例的终端设备4包括:处理器40、存储器41以及存储在所述存储器41中并可在所述处理器40上运行的计算机程序42。所述处理器40执行所述计算机程序42时实现上述各个数据持有性验证方法实施例中的步骤,例如图1所示的步骤101至104。或者,所述处理器40执行所述计算机程序42时实现上述各装置实施例中各模块/单元的功能,例如图3所示单元301至304的功能。
示例性的,所述计算机程序42可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器41中,并由所述处理器40执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序42在所述终端设备4中的执行过程。
所述终端设备4可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器40、存储器41。本领域技术人员可以理解,图4仅仅是终端设备4的示例,并不构成对终端设备4的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器40可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器41可以是所述终端设备4的内部存储单元,例如终端设备4的硬盘或内存。所述存储器41也可以是所述终端设备4的外部存储设备,例如所述终端设备4上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card,FC)等。进一步地,所述存储器41还可以既包括所述终端设备4的内部存储单元也包括外部存储设备。所述存储器41用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器41还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

Claims (10)

1.一种数据持有性验证方法,其特征在于,包括:
发送数据验证通知至存储待检验的数据分块的存储节点;所述数据验证通知包括所述待检验的数据分块的数据标识;
接收所述存储节点根据所述数据标识发送的证明数据;所述证明数据包括所述存储节点中与所述数据标识对应的存储数据,以及根据所述存储数据计算根默克尔哈希的计算路径;
根据所述存储数据和所述计算路径,计算根默克尔哈希,并将计算结果与预设的默克尔树中的根默克尔哈希进行比较;
若根据所述存储数据和所述计算路径计算得到的根默克尔哈希,与所述预设的默克尔树中的根默克尔哈希一致,则判定所述存储节点中的所述存储数据为所述分块数据。
2.如权利要求1所述的数据持有性验证方法,其特征在于,所述发送数据验证通知至存储待检验的数据分块的存储节点之前,还包括:
对数据所有者终端的原始数据进行分块,得到至少两个数据分块,并将每个所述数据分块发送至网络中对应的存储节点进行存储;
对每个所述数据分块进行哈希运算,得到根默克尔哈希;
根据每个所述数据分块及其根默克尔哈希构建默克尔树,并存储所述默克尔树。
3.如权利要求1所述的数据持有性验证方法,其特征在于,所述根据所述存储数据和所述计算路径,计算根默克尔哈希,并将计算结果与预设的默克尔树中的根默克尔哈希进行比较之后,还包括:
若根据所述存储数据和所述计算路径计算得到的根默克尔哈希,与预设的默克尔树中的根默克尔哈希不同,则判定所述存储节点中的所述存储数据与所述分块数据不一致,并生成验证失败记录;
发送所述验证失败记录和所述存储数据对应的分块数据至所述存储节点,并用所述分块数据替换所述存储节点中验证失败的存储数据。
4.如权利要求2所述的数据持有性验证方法,其特征在于,所述根据每个所述数据分块及其根默克尔哈希构建默克尔树,并存储所述默克尔树,包括:
接收所述存储节点发送的存储数据变化请求;所述存储数据变化请求中包括待改动的存储数据和改动之后的存储数据;
根据所述存储数据变化请求,对所述待改动的存储数据和改动之后的存储数据进行验证;
若验证通过,则根据所述改动之后的存储数据重新计算根默克尔哈希;
根据所述改动之后的存储数据以及重新计算得到根默克尔哈希更新所述默克尔树。
5.如权利要求1-4任一项所述的数据持有性验证方法,其特征在于,所述发送数据验证通知至存储待检验的数据分块的存储节点之前,还包括:
确定至少一个数据验证终端;所述数据验证终端用于代替数据所有者终端对存储节点中的存储数据进行验证;
发送待验证的存储数据的数据标识至所述数据验证终端,并委托所述数据验证终端对所述数据标识对应的存储数据进行验证。
6.一种终端设备,其特征在于,包括存储器以及处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时,实现如下步骤:
发送数据验证通知至存储待检验的数据分块的存储节点;所述数据验证通知包括所述待检验的数据分块的数据标识;
接收所述存储节点根据所述数据标识发送的证明数据;所述证明数据包括所述存储节点中与所述数据标识对应的存储数据,以及根据所述存储数据计算根默克尔哈希的计算路径;
根据所述存储数据和所述计算路径,计算根默克尔哈希,并将计算结果与预设的默克尔树中的根默克尔哈希进行比较;
若根据所述存储数据和所述计算路径计算得到的根默克尔哈希,与所述默克尔树中的根默克尔哈希一致,则判定所述存储节点中的所述存储数据为所述分块数据。
7.如权利要求6所述的终端设备,其特征在于,所述发送数据验证通知至存储待检验的数据分块的存储节点之前,还包括:
对数据所有者终端的原始数据进行分块,得到至少两个数据分块,并将每个所述数据分块发送至网络中对应的存储节点进行存储;
对每个所述数据分块进行哈希运算,得到根默克尔哈希;
根据每个所述数据分块及其根默克尔哈希构建默克尔树,并存储所述默克尔树。
8.如权利要求6所述的终端设备,其特征在于,所述根据所述存储数据和所述计算路径,计算根默克尔哈希,并将计算结果与预设的默克尔树中的根默克尔哈希进行比较之后,还包括:
若根据所述存储数据和所述计算路径计算得到的根默克尔哈希,与预设的默克尔树中的根默克尔哈希不同,则判定所述存储节点中的所述存储数据与所述分块数据不一致,并生成验证失败记录;
发送所述验证失败记录和所述存储数据对应的分块数据至所述存储节点,并用所述分块数据替换所述存储节点中验证失败的存储数据。
9.一种终端设备,其特征在于,包括:
发送单元,用于发送数据验证通知至存储待检验的数据分块的存储节点;所述数据验证通知包括所述待检验的数据分块的数据标识;
接收单元,用于接收所述存储节点根据所述数据标识发送的证明数据;所述证明数据包括所述存储节点中与所述数据标识对应的存储数据,以及根据所述存储数据计算根默克尔哈希的计算路径;
计算单元,用于根据所述存储数据和所述计算路径,计算根默克尔哈希,并将计算结果与预设的默克尔树中的根默克尔哈希进行比较;
判定单元,用于若根据所述存储数据和所述计算路径计算得到的根默克尔哈希,与所述默克尔树中的根默克尔哈希一致,则判定所述存储节点中的所述存储数据为所述分块数据。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述方法的步骤。
CN201910063626.XA 2019-01-23 2019-01-23 数据持有性验证方法及终端设备 Active CN109889505B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910063626.XA CN109889505B (zh) 2019-01-23 2019-01-23 数据持有性验证方法及终端设备
PCT/CN2019/118146 WO2020151330A1 (zh) 2019-01-23 2019-11-13 数据持有性验证方法及终端设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910063626.XA CN109889505B (zh) 2019-01-23 2019-01-23 数据持有性验证方法及终端设备

Publications (2)

Publication Number Publication Date
CN109889505A true CN109889505A (zh) 2019-06-14
CN109889505B CN109889505B (zh) 2022-05-27

Family

ID=66926591

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910063626.XA Active CN109889505B (zh) 2019-01-23 2019-01-23 数据持有性验证方法及终端设备

Country Status (2)

Country Link
CN (1) CN109889505B (zh)
WO (1) WO2020151330A1 (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110956284A (zh) * 2019-11-15 2020-04-03 苏州浪潮智能科技有限公司 一种产品信息的可靠性维护方法、系统、设备及存储介质
WO2020151330A1 (zh) * 2019-01-23 2020-07-30 平安科技(深圳)有限公司 数据持有性验证方法及终端设备
CN111756639A (zh) * 2020-06-19 2020-10-09 杭州芯讯科技有限公司 一种基于默克尔树和广播自请求的镜像数据传输方法
CN112115522A (zh) * 2020-09-27 2020-12-22 成都中科合迅科技有限公司 利用散列算法实现数据的可信存储的方法
CN112311548A (zh) * 2020-03-25 2021-02-02 北京沃东天骏信息技术有限公司 数据持有性验证方法、系统、装置及计算机可读存储介质
CN112685791A (zh) * 2019-10-18 2021-04-20 陈小虎 一种去中心化的私有数据的存取与验证方案
CN112883113A (zh) * 2021-02-22 2021-06-01 深圳市星网储区块链有限公司 一种基于区块链的数据价值凭证和验证的证明和记录方法及装置
CN113704182A (zh) * 2021-06-15 2021-11-26 成都统信软件技术有限公司 一种数据检查方法及计算设备
CN113901395A (zh) * 2021-12-06 2022-01-07 深圳市名竹科技有限公司 数据处理方法、装置、计算机设备和存储介质
WO2022007212A1 (zh) * 2020-07-10 2022-01-13 南京邮电大学 一种面向边缘云系统的软件微服务组合优化方法
CN114153849A (zh) * 2021-12-02 2022-03-08 深圳前海微众银行股份有限公司 一种区块链的数据生成及验证方法及装置
CN114912150A (zh) * 2022-05-13 2022-08-16 北京航星永志科技有限公司 一种数据处理和获取方法、装置及电子设备
CN115150103A (zh) * 2022-08-29 2022-10-04 人民法院信息技术服务中心 基于区块链的数字凭证离线验证方法、装置及设备
CN117081726A (zh) * 2023-09-13 2023-11-17 浪潮数字(山东)建设运营有限公司 一种文件的分块分级传输方法和装置

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115226093A (zh) * 2022-06-28 2022-10-21 山东新一代信息产业技术研究院有限公司 一种机器人ota升级包完整性验证方法及系统
CN117743441A (zh) * 2023-12-22 2024-03-22 上海掌数科技有限公司 一种基于二进制哈希的快速数据校验方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104202168A (zh) * 2014-09-19 2014-12-10 浪潮电子信息产业股份有限公司 一种基于可信第三方的云数据完整性验证方法
CN105320899A (zh) * 2014-07-22 2016-02-10 北京大学 一种面向用户的云存储数据完整性保护方法
WO2017023388A2 (en) * 2015-07-07 2017-02-09 Private Machines Inc. Secure data management system and method
CN108664221A (zh) * 2018-05-11 2018-10-16 北京奇虎科技有限公司 一种数据持有证明方法、装置及可读存储介质
CN109213900A (zh) * 2018-09-18 2019-01-15 百度在线网络技术(北京)有限公司 一种区块链的数据修改方法、装置、设备和介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8978155B2 (en) * 2008-07-25 2015-03-10 Brown University Apparatus, methods, and computer program products providing dynamic provable data possession
CN103268460B (zh) * 2013-06-20 2016-02-10 北京航空航天大学 一种云存储数据完整性验证方法
CN106845280A (zh) * 2017-03-14 2017-06-13 广东工业大学 一种Merkle哈希树云数据完整性审计方法及系统
CN108681583A (zh) * 2018-05-11 2018-10-19 北京奇虎科技有限公司 基于区块链的数据持有证明方法、装置及可读存储介质
CN109889505B (zh) * 2019-01-23 2022-05-27 平安科技(深圳)有限公司 数据持有性验证方法及终端设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105320899A (zh) * 2014-07-22 2016-02-10 北京大学 一种面向用户的云存储数据完整性保护方法
CN104202168A (zh) * 2014-09-19 2014-12-10 浪潮电子信息产业股份有限公司 一种基于可信第三方的云数据完整性验证方法
WO2017023388A2 (en) * 2015-07-07 2017-02-09 Private Machines Inc. Secure data management system and method
CN108664221A (zh) * 2018-05-11 2018-10-16 北京奇虎科技有限公司 一种数据持有证明方法、装置及可读存储介质
CN109213900A (zh) * 2018-09-18 2019-01-15 百度在线网络技术(北京)有限公司 一种区块链的数据修改方法、装置、设备和介质

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020151330A1 (zh) * 2019-01-23 2020-07-30 平安科技(深圳)有限公司 数据持有性验证方法及终端设备
CN112685791A (zh) * 2019-10-18 2021-04-20 陈小虎 一种去中心化的私有数据的存取与验证方案
CN110956284A (zh) * 2019-11-15 2020-04-03 苏州浪潮智能科技有限公司 一种产品信息的可靠性维护方法、系统、设备及存储介质
CN112311548A (zh) * 2020-03-25 2021-02-02 北京沃东天骏信息技术有限公司 数据持有性验证方法、系统、装置及计算机可读存储介质
CN111756639B (zh) * 2020-06-19 2022-05-10 杭州芯讯科技有限公司 一种基于默克尔树和广播自请求的镜像数据传输方法
CN111756639A (zh) * 2020-06-19 2020-10-09 杭州芯讯科技有限公司 一种基于默克尔树和广播自请求的镜像数据传输方法
WO2022007212A1 (zh) * 2020-07-10 2022-01-13 南京邮电大学 一种面向边缘云系统的软件微服务组合优化方法
CN112115522A (zh) * 2020-09-27 2020-12-22 成都中科合迅科技有限公司 利用散列算法实现数据的可信存储的方法
CN112115522B (zh) * 2020-09-27 2023-10-20 成都中科合迅科技有限公司 利用散列算法实现数据的可信存储的方法
CN112883113A (zh) * 2021-02-22 2021-06-01 深圳市星网储区块链有限公司 一种基于区块链的数据价值凭证和验证的证明和记录方法及装置
CN112883113B (zh) * 2021-02-22 2023-01-31 深圳市星网储技术有限公司 一种基于区块链的数据价值凭证和验证的证明和记录方法及装置
CN113704182A (zh) * 2021-06-15 2021-11-26 成都统信软件技术有限公司 一种数据检查方法及计算设备
CN114153849A (zh) * 2021-12-02 2022-03-08 深圳前海微众银行股份有限公司 一种区块链的数据生成及验证方法及装置
CN113901395B (zh) * 2021-12-06 2022-03-18 深圳市名竹科技有限公司 数据处理方法、装置、计算机设备和存储介质
CN113901395A (zh) * 2021-12-06 2022-01-07 深圳市名竹科技有限公司 数据处理方法、装置、计算机设备和存储介质
CN114912150A (zh) * 2022-05-13 2022-08-16 北京航星永志科技有限公司 一种数据处理和获取方法、装置及电子设备
CN115150103A (zh) * 2022-08-29 2022-10-04 人民法院信息技术服务中心 基于区块链的数字凭证离线验证方法、装置及设备
CN115150103B (zh) * 2022-08-29 2022-11-29 人民法院信息技术服务中心 基于区块链的数字凭证离线验证方法、装置及设备
CN117081726A (zh) * 2023-09-13 2023-11-17 浪潮数字(山东)建设运营有限公司 一种文件的分块分级传输方法和装置
CN117081726B (zh) * 2023-09-13 2024-03-19 浪潮数字(山东)建设运营有限公司 一种文件的分块分级传输方法和装置

Also Published As

Publication number Publication date
CN109889505B (zh) 2022-05-27
WO2020151330A1 (zh) 2020-07-30

Similar Documents

Publication Publication Date Title
CN109889505A (zh) 数据持有性验证方法及终端设备
Cachin et al. Trusting the cloud
Nartey et al. On blockchain and IoT integration platforms: current implementation challenges and future perspectives
CN109857710A (zh) 文件存储方法及终端设备
JP2020504927A (ja) イベントの削除を可能にする分散データベースのための方法および装置
CN107395659A (zh) 一种业务受理及共识的方法及装置
Sun et al. Using ethereum blockchain in Internet of Things: A solution for electric vehicle battery refueling
CN109831487A (zh) 分片文件验证方法及终端设备
CA3098770A1 (en) Performing map iterations in blockchain-based system
US9830333B1 (en) Deterministic data replication with conflict resolution
EP3769233B1 (en) Performing map iterations in a blockchain-based system
US20160048703A1 (en) Securing integrity and consistency of a cloud storage service with efficient client operations
CN109191287A (zh) 一种区块链智能合约的分片方法、装置及电子设备
Forti et al. Declarative continuous reasoning in the cloud-IoT continuum
Biswas et al. A novel leader election algorithm based on resources for ring networks
Ramamoorthi et al. Enhanced security in IOT environment using blockchain: A survey
CN109101360A (zh) 一种基于布隆过滤器和交叉编码的数据完整性保护方法
US10685134B1 (en) Database proxy service
CN111176567B (zh) 分布式云存储的存储供应量验证方法及装置
CN108900482A (zh) 脚本的执行方法、服务器管理系统及存储介质
CN110209347B (zh) 一种可追溯的数据存储方法
Hsu et al. Value the recent past: Approximate causal consistency for partially replicated systems
Canedo et al. File exchange in a private cloud supported by a trust model
Mhaisen et al. Data consistency in multi-cloud storage systems with passive servers and non-communicating clients
CN113157809B (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