CN112948847B - 基于区块链的数据共享系统及数据正确性验证方法 - Google Patents
基于区块链的数据共享系统及数据正确性验证方法 Download PDFInfo
- Publication number
- CN112948847B CN112948847B CN202110146107.7A CN202110146107A CN112948847B CN 112948847 B CN112948847 B CN 112948847B CN 202110146107 A CN202110146107 A CN 202110146107A CN 112948847 B CN112948847 B CN 112948847B
- Authority
- CN
- China
- Prior art keywords
- file
- file record
- data
- record block
- hash value
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000012795 verification Methods 0.000 title claims abstract description 37
- 238000004891 communication Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000013524 data verification Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本发明实施例提供了一种基于区块链的数据共享系统及数据正确性验证方法,基于区块链的数据共享系统包括:存储服务器、区块链和客户端;存储服务器,用于存储数据以及存储数据形成的文件记录链;其中,文件记录链表示数据的历史操作记录,文件记录链按文件记录块接收顺序构成,文件记录块表示对数据进行读操作或写操作或创建操作;区块链,用于基于检查点信息验证所述数据正确性;其中,所述检查点信息是指接收到的各文件记录链上最后一块文件记录块对应的总哈希值;客户端,用于生成文件内容以及构建文件记录块;其中,所述文件内容为数据的集合。本实施例提供的数据共享系统能够在遇到恶意的攻击者时仍保障良好的安全性以及高效性。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种基于区块链的数据共享系统及数据正确性验证方法。
背景技术
当前互联网的快速发展以及互联网数据规模的不断增大,越来越多的企业或者个人会选择将自己的数据上传到云服务提供商(例如亚马逊、百度、腾讯等)从而进行数据的存储以及共享。当数据的规模越来越大,参与的节点越来越多时,系统的安全问题也就变得日益严重,当这个系统中存在恶意的攻击者时,无法很好的保障这套数据共享系统的安全性以及高效性。
现有解决技术主要通过密码学的手段进行安全与隐私保障。例如,用户上传数据以前,对数据进行加密以及数字签名,这样,数据在服务器中会以密文的形式进行存储,只有拥有解密密钥的用户才能够获得其中的明文信息。除此以外,数据的上传者还可以通过设置访问控制表(ACL:Access Control List)的方式使得只有拥有相应权限的用户才能对数据进行读写。然而,这类技术的缺陷在于:整个系统安全运作的前提在于中心节点,也就是存储服务器的管理者是可信的。如果中心节点被恶意的攻击者控制,即使攻击者无法窃取密钥来获得明文数据,他仍然可以通过破坏系统中读写操作的线性一致性来发动攻击。例如,用户A修改服务器中某个文件内容之后,用户B申请读这个文件,由于服务器可以记录该文件修改的所有历史信息,服务器可以将用户A修改之前的文件状态发送给B,这种攻击方式叫做回滚攻击(rollback attack);还有,服务器可以故意拖延用户A对文件写操作的执行,这样用户B就无法获得用户A最新更新的文件结果,这种攻击方式叫做延时攻击(time-stretch attack),然而上述这些攻击方式很难被用户检测到。为了防止存储服务器的上述恶意行为,近几年也有人提出了基于区块链的安全验证方法。即每当用户对数据进行读写操作时,客户端都会将该操作的哈希值存储到链上,一旦存储服务器发起回滚攻击或者延时攻击,区块链中的每一个节点都可以通过验证链上的历史记录检测到,这样也就保证了所有读写操作的线性一致性,也就是每一个写操作对数据修改的结果都会反映到之后的读操作之中。然而,上述方式的缺点在于,在区块链系统中,每一个操作都对应着链上的一笔交易,区块链上的每一笔交易不仅耗时很长,还需要支付一定的费用,这样就会导致整个系统的运行效率级低,从而无法使用。
发明内容
针对现有技术中存在的问题,本发明实施例提供一种基于区块链的数据共享系统及数据正确性验证方法。
第一方面,本发明实施例提供一种基于区块链的数据共享系统,包括:存储服务器、区块链和客户端;
所述存储服务器,用于存储数据以及存储数据形成的文件记录链;其中,所述文件记录链表示所述数据的历史操作记录,所述文件记录链按文件记录块接收顺序构成,所述文件记录块表示对所述数据进行读操作或写操作或创建操作;
所述区块链,用于基于检查点信息验证所述数据正确性;其中,所述检查点信息是指接收到的各文件记录链上最后一块文件记录块对应的总哈希值;
所述客户端,用于生成文件内容以及构建文件记录块;其中,所述文件内容为数据的集合。
进一步地,所述文件记录块包括文件操作类型部分、第一哈希值部分、第二哈希值部分、第一数据签名部分和第二数据签名部分;
所述文件操作类型部分为创建操作或读操作或写操作;
所述第一哈希值部分为所述文件内容的哈希值;
所述第二哈希值部分为在所述文件记录链上所述文件记录块上一块文件记录块对应的哈希值;
所述第一数据签名部分为所述客户端数据签名;
所述第二数据签名部分为所述存储服务器数据签名。
第二方面,本发明实施例提供了一种基于区块链的数据共享系统的数据正确性验证方法,包括:
设置时间周期;
接收所述时间周期内在所述存储服务器生成的所有文件记录块,并计算所述所有文件记录块的哈希值;
基于所述区块链下载所述时间周期内的检查点信息;
根据所述所有文件记录块的哈希值和所述时间周期内的检查点信息所指的总哈希值进行数据正确性验证。
进一步地,还包括:
若所述所有文件记录块的哈希值和所述时间周期内的检查点信息所指的总哈希值相同,则所述时间周期内所有文件记录块中的数据内容正确;
若所述所有文件记录块的哈希值和所述时间周期内的检查点信息所指的总哈希值不相同,则所述时间周期内所有文件记录块中的数据内容存在不正确数据内容。
进一步地,还包括:
若所述时间周期内所有文件记录块中的数据内容存在不正确数据内容,则公布正确的文件记录块;
基于所述正确的文件记录块确定在所述时间周期内遇到恶意攻击。
第三方面,本发明实施例提供了一种基于区块链的数据共享系统的构建文件记录块方法,包括:当申请创建文件时,生成文件内容;
基于所述文件内容构建文件记录块;所述文件记录块中所述文件操作类型部分为创建操作,第二哈希值部分为空,对所述第一数据签名部分进行数据签名;
将所述文件内容和所述文件记录块发送至存储服务器进行第一数据签名部分合法性验证;
接收合法性验证后的所述文件记录块,并保存所述文件记录块。
进一步地,还包括:
所述文件记录块存储有访问权限信息;
接收基于所述访问权限信息进行合法性验证后的所述文件记录块,并保存所述文件记录块。
进一步地,还包括:
当申请读文件或写文件时,向所述存储服务器发送请求;
接收与所述请求对应的所述文件记录链上最后一块文件记录块以及文件内容;
计算所述文件内容的哈希值;
基于所述文件内容的哈希值和与所述请求对应的所述文件记录链上最后一块文件记录块中第一哈希值进行对比;
若哈希值相同,则构建第二文件记录块;所述第二文件记录块中所述文件操作类型部分为读操作或写操作;所述第二文件记录块中第二哈希值部分与所述最后一块文件记录块中的第一哈希值相同,对所述第二文件记录块中第一数据签名部分进行数据签名;
将与第二文件记录块对应的文件内容和所述第二文件记录块发送至存储服务器进行第一数据签名部分合法性验证;
接收合法性验证后的所述第二文件记录块,并保存所述第二文件记录块。
进一步地,还包括:
若所述文件操作类型为读操作,则所述第二文件记录块中第一哈希值部分与所述最后一块文件记录块中的第一哈希值相同。
进一步地,还包括:
若所述文件操作类型为写操作,则所述第二文件记录块中第一哈希值部分与进行写操作后的文件内容对应的哈希值相同。
由上述技术方案可知,本发明实施例提供的基于区块链的数据共享系统及数据正确性验证方法,系统由存储服务器、区块链和客户端组成,其中,所述存储服务器,用于存储数据以及存储数据形成的文件记录链;其中,所述文件记录链表示所述数据的历史操作记录,所述文件记录链按文件记录块接收顺序构成,所述文件记录块表示对所述数据进行读操作或写操作或创建操作;所述区块链,用于基于检查点信息验证所述数据正确性;其中,所述检查点信息是指接收到的各文件记录链上最后一块文件记录块对应的总哈希值;所述客户端,用于生成文件内容以及构建文件记录块;其中,所述文件内容为数据的集合,本实施例提供的数据共享系统能够在遇到恶意的攻击者时仍保障良好的安全性以及高效性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的基于区块链的数据共享系统的示意图;
图2为本发明一实施例提供的文件记录块的结构示意图;
图3为本发明一实施例提供的基于区块链的数据共享系统的数据正确性验证方法的流程示意图;
图4为本发明一实施例提供的基于区块链的数据共享系统的构建文件记录块方法的流程示意图;
图5为本发明一实施例提供的电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。下面将通过具体的实施例对本发明提供的基于区块链的数据共享系统、数据正确性验证方法及构建文件记录块方法进行详细解释和说明。
图1为本发明一实施例提供的基于区块链的数据共享系统示意图;如图1所示,该系统包括:
存储服务器、区块链和客户端;
所述存储服务器,用于存储数据以及存储数据形成的文件记录链;其中,所述文件记录链表示所述数据的历史操作记录,所述文件记录链按文件记录块接收顺序构成,所述文件记录块表示对所述数据进行读操作或写操作或创建操作;
所述区块链,用于基于检查点信息验证所述数据正确性;其中,所述检查点信息是指接收到的各文件记录链上最后一块文件记录块对应的总哈希值;
所述客户端,用于生成文件内容以及构建文件记录块;其中,所述文件内容为数据的集合。
在本实施例中,需要说明的是,基于区块链的数据共享系统包括用于验证数据正确性的区块链;能够存储数据并且能与多个客户端进行数据传输的存储服务器;以及多个共享同一个数据服务器中数据内容的客户端;所述基于区块链的数据共享系统架构如图1所示,为了便于理解,图1中数据以文件的形式进行存储,文件可以理解为数据的集合,两者的表述没有矛盾,可以互相替代。
在本实施例中,利用区块链“不可伪造”,“公开透明”,“集体维护”的特性,解决了基于单点信任的数据分享系统中存在的数据安全性的问题。
由上面技术方案可知,本发明实施例提供的基于区块链的数据共享系统由存储服务器、区块链和客户端组成,其中,所述存储服务器,用于存储数据以及存储数据形成的文件记录链;其中,所述文件记录链表示所述数据的历史操作记录,所述文件记录链按文件记录块接收顺序构成,所述文件记录块表示对所述数据进行读操作或写操作或创建操作;所述区块链,用于基于检查点信息验证所述数据正确性;其中,所述检查点信息是指接收到的各文件记录链上最后一块文件记录块对应的总哈希值;所述客户端,用于生成文件内容以及构建文件记录块;其中,所述文件内容为数据的集合,本实施例提供的数据共享系统能够在遇到恶意的攻击者时仍保障良好的安全性以及高效性。
在上述实施例的基础上,在本实施例中,所述文件记录块包括文件操作类型部分、第一哈希值部分、第二哈希值部分、第一数据签名部分和第二数据签名部分;
所述文件操作类型部分为创建操作或读操作或写操作;
所述第一哈希值部分为所述文件内容的哈希值;
所述第二哈希值部分为在所述文件记录链上所述文件记录块上一块文件记录块对应的哈希值;
所述第一数据签名部分为所述客户端数据签名;
所述第二数据签名部分为所述存储服务器数据签名。
在本实施例中,需要说明的是,参见图2,在存储服务器上,每一个文件的历史记录都形成了一条哈希链,该链被称为文件记录链,简称为文件链;链上的每一个块都记录着客户端对该文件的一次操作,该块被称为文件记录块,简称为文件块。文件记录块的结构包括下面五个部分:文件操作类型(包括读、写、创建)即文件操作类型部分、文件内容的哈希值,即第一哈希值部分、上一个块的哈希值,即第二哈希值部分、发起操作的客户端的数字签名,即第一数据签名部分、存储服务器的数字签名,即第二数据签名部分。
由上面技术方案可知,本发明实施例提供的基于区块链的数据共享系统,通过文件记录链以及文件记录块的设计,使得所述文件记录链不仅保存了所有文件的历史记录信息,并且通过数字签名、哈希算法等密码学技术为数据正确性的验证提供了基础。
图3为本发明一实施例提供的基于区块链的数据共享系统的数据正确性验证方法的流程示意图;如图3所示,该方法包括:
步骤301:设置时间周期。
在本步骤中,可以理解的是,系统会设置一个时间周期。
步骤302:接收所述时间周期内在所述存储服务器生成的所有文件记录块,并计算所述所有文件记录块的哈希值。
在本步骤中,可以理解是,存储服务器将该周期内产生的所有文件记录块发送给所有客户端,并计算所述所有文件记录块的哈希值。
步骤303:基于所述区块链下载所述时间周期内的检查点信息。
在本步骤中,可以理解的是,所有客户端从区块链上下载该周期的检查点信息;其中,需要说明的是所述检查点信息为服务器集合所有文件记录链上的最新文件记录块对应的总哈希值。
步骤304:根据所述所有文件记录块的哈希值和所述时间周期内的检查点信息所指的总哈希值进行数据正确性验证。
在本步骤中,需要说明的是,验证内容主要包括以下两个方面:一是检查客户端在该周期内产生的文件记录块是否存在于服务器的文件记录链上;二是计算所有最新块的总哈希值是否与区块链上存储的检查点相同,如果所有客户端验证完成以后都没有发现问题,就可以确保该周期内所有文件记录的正确性;如果有客户端验证时发现错误,客户端就可以将正确的文件块信息公布出来,由此可以证明该周期内服务器存储的文件记录中存在错误。
由上面技术方案可知,本发明实施例提供的基于区块链的数据共享系统的数据正确性验证方法,系统会设置一个时间周期,每个周期结束之后,所有客户端会共同通过区块链对该周期内所有文件的修改记录进行验证,用于检测服务器是否有如回滚攻击或者时延攻击等类似的恶意行为,从而提升了整个系统的安全性。
在上述实施例的基础上,在本实施例中,还包括:
若所述所有文件记录块的哈希值和所述时间周期内的检查点信息所指的总哈希值相同,则所述时间周期内所有文件记录块中的数据内容正确;
若所述所有文件记录块的哈希值和所述时间周期内的检查点信息所指的总哈希值不相同,则所述时间周期内所有文件记录块中的数据内容存在不正确数据内容。
在上述实施例的基础上,在本实施例中,还包括:
若所述时间周期内所有文件记录块中的数据内容存在不正确数据内容,则公布正确的文件记录块;
基于所述正确的文件记录块确定在所述时间周期内遇到恶意攻击。
为了更好更好地理解本发明,下面结合实施例进一步阐述本发明的内容,但本发明不仅仅局限于下面实施例。
系统会设置一个时间周期,每个周期结束之后,所有客户端会共同通过区块链对该周期内所有文件的修改记录进行验证,用于检测服务器是否有专利背景中提到的回滚攻击或者时延攻击等类似的恶意行为,该过程的主要步骤如下:
步骤一、服务器集合所有文件记录链上的最新文件记录块,计算其总哈希值,将该值称为该周期的检查点信息,服务器将检查点信息上传到区块链上。
步骤二、除了将检查点信息上链之外,服务器还要将该周期内产生的所有文件记录块发送给所有客户端。
步骤三、所有客户端从区块链上下载该周期的检查点信息,然后进行验证,验证内容主要包括以下两个方面:一是检查客户端在该周期内产生的文件记录块是否存在于服务器的文件记录链上;二是计算所有最新块的总哈希值是否与区块链上存储的检查点相同,如果所有客户端验证完成以后都没有发现问题,就可以确保该周期内所有文件记录的正确性;如果有客户端验证时发现错误,客户端就可以将正确的文件块信息公布出来,由此可以证明该周期内服务器存储的文件记录中存在错误。
由上面技术方案可知,本发明实施例提供的基于区块链的数据共享系统的数据正确性验证方法,一方面通过检查点信息在客户端,服务器以及区块链之中的交换,让服务器和所有客户端都参与到了数据验证过程之中,将系统的信任风险从中心的数据存储服务器分散到了所有的客户端之上,提升了整个系统的安全性;另一方面,不需要将所有的数据读写操作记录在区块链上,只需要使用区块链进行周期性数据正确性验证,每周期向链上提交一次检查点信息,从而大大提升了系统的运行效率。
图4为本发明一实施例提供的基于区块链的数据共享系统的构建文件记录块方法的流程示意图;如图4所示,该方法包括:
步骤401:当申请创建文件时,生成文件内容;
在本步骤中,可以理解的是,客户端申请创建文件,客户端生成文件名称以及文件内容。
步骤402:基于所述文件内容构建文件记录块;所述文件记录块中所述文件操作类型部分为创建操作,第二哈希值部分为空,对所述第一数据签名部分进行数据签名;
在本步骤中,可以理解的是,客户端构建文件记录块;其中,文件操作类型为创建,由于创建类型的文件记录块一定位于文件记录链的头部,所以上一个块的哈希值为空(即第二哈希值部分为空),客户端对文件记录块的内容进行签名。完成创建后客户端将文件内容以及产生的文件记录块一同发送给服务器
步骤403:将所述文件内容和所述文件记录块发送至存储服务器进行第一数据签名部分合法性验证;
在本步骤中,可以理解的是,客户端对文件记录块的内容进行签名完成创建后,客户端将文件内容以及产生的文件记录块一同发送给存储服务器进行第一数据签名部分合法性验证,如存储服务器收到文件内容和所述文件记录块后,首先验证用户的身份,也就是文件记录块上签名的合法性;验证成功后,服务器也会对该块的内容进行签名,并将签名过后的文件记录块发送给客户端;发送完成后,服务器将文件内容存储到数据仓库中,并创建该文件对应的一条文件记录链,将该文件记录块作为链上的首块。
步骤404:接收合法性验证后的所述文件记录块,并保存所述文件记录块。
在本步骤中,可以理解的是,客户端收到文件记录块,验证服务器签名的合法性之后将其保存,用于之后的数据验证。
在上述实施例的基础上,在本实施例中,还包括:
所述文件记录块存储有访问权限信息;
接收基于所述访问权限信息进行合法性验证后的所述文件记录块,并保存所述文件记录块。
在本实施例中,可以理解的是,创建类型的文件块中还存储着该文件的访问权限信息,即哪一些用户有读写文件内容的权限,最后客户端对基于所述访问权限信息进行合法性验证后的所述文件记录块的内容进行签名。
在上述实施例的基础上,在本实施例中,还包括:
当申请读文件或写文件时,向所述存储服务器发送请求;
接收与所述请求对应的所述文件记录链上最后一块文件记录块以及文件内容;
计算所述文件内容的哈希值;
基于所述文件内容的哈希值和与所述请求对应的所述文件记录链上最后一块文件记录块中第一哈希值进行对比;
若哈希值相同,则构建第二文件记录块;所述第二文件记录块中所述文件操作类型部分为读操作或写操作;所述第二文件记录块中第二哈希值部分与所述最后一块文件记录块中的第一哈希值相同,对所述第二文件记录块中第一数据签名部分进行数据签名;
将与第二文件记录块对应的文件内容和所述第二文件记录块发送至存储服务器进行第一数据签名部分合法性验证;
接收合法性验证后的所述第二文件记录块,并保存所述第二文件记录块。
为了更好更好地理解本发明实施例,举例来说:
客户端申请读、写文件的过程包括以下几步:
步骤一、客户端向服务器提交读写某文件的请求。
步骤二、服务器验证该客户端是否有读写该文件的权限,如果有,服务器将文件内容以及该文件对应的文件记录链上最新的文件记录块发送给客户端。
步骤三、客户端收到后,对文件内容进行验证。验证时,首先验证该文件块的数字签名是否正确,然后计算文件内容的哈希值,将计算结果与文件记录块上存储的文件哈希值进行比对,验证两者是否一致。
步骤四、验证通过后,客户端构建新的文件记录块。首先计算上一块的哈希值写入新块中,如果是读操作,文件内容的哈希值与上一块相同,最后对文件块进行签名发送给服务器;如果是写操作,文件内容的哈希值需要进行更新,同样完成签名之后,将新的文件记录块与文件内容一同发送给服务器。
步骤五、服务器收到后,同样要对签名以及文件内容进行验证,验证通过后,对该文件块的内容进行签名并发送给客户端。同时,将文件块添加到对应的文件记录链的尾部,完成此次操作。
步骤六、客户端收到文件块后,验证服务器签名的合法性之后将其保存,用于之后的数据验证。
在上述实施例的基础上,在本实施例中,还包括:
若所述文件操作类型为读操作,则所述第二文件记录块中第一哈希值部分与所述最后一块文件记录块中的第一哈希值相同。
在上述实施例的基础上,在本实施例中,还包括:
若所述文件操作类型为写操作,则所述第二文件记录块中第一哈希值部分与进行写操作后的文件内容对应的哈希值相同。
基于相同的发明构思,本发明实施例提供一种电子设备,参见图5,电子设备具体包括如下内容:处理器501、通信接口503、存储器502和通信总线504;
其中,处理器501、通信接口503、存储器502通过通信总线504完成相互间的通信;通信接口503用于实现各建模软件及智能制造装备模块库等相关设备之间的信息传输;处理器501用于调用存储器502中的计算机程序,处理器执行计算机程序时实现上述各方法实施例所提供的方法,例如,处理器执行计算机程序时实现下述步骤:设置时间周期;接收所述时间周期内在所述存储服务器生成的所有文件记录块,并计算所述所有文件记录块的哈希值;基于所述区块链下载所述时间周期内的检查点信息;根据所述所有文件记录块的哈希值和所述时间周期内的检查点信息所指的总哈希值进行数据正确性验证。
基于相同的发明构思,本发明又一实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法实施例提供的方法,例如,设置时间周期;接收所述时间周期内在所述存储服务器生成的所有文件记录块,并计算所述所有文件记录块的哈希值;基于所述区块链下载所述时间周期内的检查点信息;根据所述所有文件记录块的哈希值和所述时间周期内的检查点信息所指的总哈希值进行数据正确性验证。
以上所描述的系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分的方法。
此外,在本发明中,诸如“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
此外,在本发明中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
此外,在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (9)
1.一种基于区块链的数据共享系统,其特征在于,包括:存储服务器、区块链和客户端;
所述存储服务器,用于存储数据以及存储数据形成的文件记录链;其中,所述文件记录链表示所述数据的历史操作记录,所述文件记录链按文件记录块接收顺序构成,所述文件记录块表示对所述数据进行读操作或写操作或创建操作;
所述区块链,用于基于检查点信息验证所述数据正确性;其中,所述检查点信息是指接收到的各文件记录链上最后一块文件记录块对应的总哈希值;
所述客户端,用于生成文件内容以及构建文件记录块;其中,所述文件内容为数据的集合;
其中,所述文件记录块包括文件操作类型部分、第一哈希值部分、第二哈希值部分、第一数据签名部分和第二数据签名部分;
所述文件操作类型部分为创建操作或读操作或写操作;
所述第一哈希值部分为所述文件内容的哈希值;
所述第二哈希值部分为在所述文件记录链上所述文件记录块上一块文件记录块对应的哈希值;
所述第一数据签名部分为所述客户端数据签名;
所述第二数据签名部分为所述存储服务器数据签名。
2.一种根据权利要求1所述的基于区块链的数据共享系统的数据正确性验证方法,其特征在于,包括:
设置时间周期;
接收所述时间周期内在所述存储服务器生成的所有文件记录块,并计算所述所有文件记录块的哈希值;
基于所述区块链下载所述时间周期内的检查点信息;
根据所述所有文件记录块的哈希值和所述时间周期内的检查点信息所指的总哈希值进行数据正确性验证。
3.根据权利要求2所述的数据正确性验证方法,其特征在于,还包括:
若所述所有文件记录块的哈希值和所述时间周期内的检查点信息所指的总哈希值相同,则所述时间周期内所有文件记录块中的数据内容正确;
若所述所有文件记录块的哈希值和所述时间周期内的检查点信息所指的总哈希值不相同,则所述时间周期内所有文件记录块中的数据内容存在不正确数据内容。
4.根据权利要求3所述的数据正确性验证方法,其特征在于,还包括:
若所述时间周期内所有文件记录块中的数据内容存在不正确数据内容,则公布正确的文件记录块;
基于所述正确的文件记录块确定在所述时间周期内遇到恶意攻击。
5.一种根据权利要求1所述的基于区块链的数据共享系统的构建文件记录块方法,其特征在于,包括:
当申请创建文件时,生成文件内容;
基于所述文件内容构建文件记录块;所述文件记录块中所述文件操作类型部分为创建操作,第二哈希值部分为空,对所述第一数据签名部分进行数据签名;
将所述文件内容和所述文件记录块发送至存储服务器进行第一数据签名部分合法性验证;
接收合法性验证后的所述文件记录块,并保存所述文件记录块。
6.根据权利要求5所述的构建文件记录块方法,其特征在于,还包括:
所述文件记录块存储有访问权限信息;
接收基于所述访问权限信息进行合法性验证后的所述文件记录块,并保存所述文件记录块。
7.根据权利要求5所述的构建文件记录块方法,其特征在于,还包括:
当申请读文件或写文件时,向所述存储服务器发送请求;
接收与所述请求对应的所述文件记录链上最后一块文件记录块以及文件内容;
计算所述文件内容的哈希值;
基于所述文件内容的哈希值和与所述请求对应的所述文件记录链上最后一块文件记录块中第一哈希值进行对比;
若哈希值相同,则构建第二文件记录块;所述第二文件记录块中所述文件操作类型部分为读操作或写操作;所述第二文件记录块中第二哈希值部分与所述最后一块文件记录块中的第一哈希值相同,对所述第二文件记录块中第一数据签名部分进行数据签名;
将与第二文件记录块对应的文件内容和所述第二文件记录块发送至存储服务器进行第一数据签名部分合法性验证;
接收合法性验证后的所述第二文件记录块,并保存所述第二文件记录块。
8.根据权利要求7所述的构建文件记录块方法,其特征在于,还包括:
若所述文件操作类型为读操作,则所述第二文件记录块中第一哈希值部分与所述最后一块文件记录块中的第一哈希值相同。
9.根据权利要求7所述的构建文件记录块方法,其特征在于,还包括:
若所述文件操作类型为写操作,则所述第二文件记录块中第一哈希值部分与进行写操作后的文件内容对应的哈希值相同。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110146107.7A CN112948847B (zh) | 2021-02-02 | 2021-02-02 | 基于区块链的数据共享系统及数据正确性验证方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110146107.7A CN112948847B (zh) | 2021-02-02 | 2021-02-02 | 基于区块链的数据共享系统及数据正确性验证方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112948847A CN112948847A (zh) | 2021-06-11 |
CN112948847B true CN112948847B (zh) | 2024-05-10 |
Family
ID=76241894
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110146107.7A Active CN112948847B (zh) | 2021-02-02 | 2021-02-02 | 基于区块链的数据共享系统及数据正确性验证方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112948847B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113836503A (zh) * | 2021-08-10 | 2021-12-24 | 中标慧安信息技术股份有限公司 | 基于区块链的物联网数据修改状态记录方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106295401A (zh) * | 2016-08-13 | 2017-01-04 | 深圳市樊溪电子有限公司 | 一种用于区块链的只读安全文件存储系统及其方法 |
CN107077557A (zh) * | 2016-12-29 | 2017-08-18 | 深圳前海达闼云端智能科技有限公司 | 软件应用程序发布和验证的方法及装置 |
CN110061838A (zh) * | 2019-04-28 | 2019-07-26 | 广州大学 | 一种dns资源记录的去中心化存储系统及其实现、信息检索方法 |
-
2021
- 2021-02-02 CN CN202110146107.7A patent/CN112948847B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106295401A (zh) * | 2016-08-13 | 2017-01-04 | 深圳市樊溪电子有限公司 | 一种用于区块链的只读安全文件存储系统及其方法 |
CN107077557A (zh) * | 2016-12-29 | 2017-08-18 | 深圳前海达闼云端智能科技有限公司 | 软件应用程序发布和验证的方法及装置 |
CN110061838A (zh) * | 2019-04-28 | 2019-07-26 | 广州大学 | 一种dns资源记录的去中心化存储系统及其实现、信息检索方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112948847A (zh) | 2021-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10630463B2 (en) | Meta block chain | |
Nikitin et al. | {CHAINIAC}: Proactive {Software-Update} transparency via collectively signed skipchains and verified builds | |
US10790976B1 (en) | System and method of blockchain wallet recovery | |
US10846416B2 (en) | Method for managing document on basis of blockchain by using UTXO-based protocol, and document management server using same | |
CN109190410B (zh) | 一种云存储环境下的基于区块链的日志行为审计方法 | |
US11570003B2 (en) | Quantumproof blockchain | |
KR102627490B1 (ko) | 스크립트 기반 블록체인 상호작용 | |
US10554753B2 (en) | System and method for service level agreement based data storage and verification | |
US10581613B2 (en) | Cryptographically verifiable data structure having multi-hop forward and backwards links and associated systems and methods | |
US20170331635A1 (en) | System and method for file time-stamping using a blockchain network | |
US11303626B2 (en) | Secure token passing via hash chains | |
KR101937220B1 (ko) | 키 관리가 필요없는 블록체인을 기반한 전자서명 또는 메시지 인증 코드를 생성 및 검증 방법 | |
CN110647503A (zh) | 一种分布式存储方法及装置 | |
KR20230147761A (ko) | 블록체인 기반 데이터의 인증된 수정 | |
CN112948847B (zh) | 基于区块链的数据共享系统及数据正确性验证方法 | |
CN107451002B (zh) | 针对修改区块体数据的区块链的主动验证方法及系统 | |
CN111143381B (zh) | 用于更新多层块链式结构中的信任点的方法及装置 | |
CN116150814A (zh) | 智能合约可信性证明方法、装置、设备及存储介质 | |
CN111159286B (zh) | 用于生成多层块链式结构的方法及装置 | |
Li et al. | Improved Efficient Privacy‐Preserving Certificateless Provable Data Possession Scheme for Cloud Storage | |
Gancher et al. | Externally verifiable oblivious ram | |
CN113423108B (zh) | 一种远程证明方法、系统、计算机设备及数据处理终端 | |
US20240289793A1 (en) | Systems and methods for transaction validation in layer 2 | |
Li | Implementation and evaluation of publicly verifiable proofs of data replication and retrievability for cloud storage | |
Yang et al. | HB+‐MHT: Lightweight and Efficient Data Integrity Verification Scheme for Cloud Virtual Machines |
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 |