CN107391292B - 针对保持区块体数据实现勘误的区块链验证方法及*** - Google Patents
针对保持区块体数据实现勘误的区块链验证方法及*** Download PDFInfo
- Publication number
- CN107391292B CN107391292B CN201710425476.3A CN201710425476A CN107391292B CN 107391292 B CN107391292 B CN 107391292B CN 201710425476 A CN201710425476 A CN 201710425476A CN 107391292 B CN107391292 B CN 107391292B
- Authority
- CN
- China
- Prior art keywords
- data
- block
- hash value
- error correction
- chain
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种针对保持区块体数据实现勘误的区块链验证方法及***,属于区块链技术领域,方法包括:将当前区块的区块头数据和区块体数据经不可逆算法生成固定长度的字符串作为第二散列值,并与当前区块的子区块中的第三散列值进行比较;如果相同,则查找是否包含以当前区块的区块体数据中的部分数据作为第一数据所形成的勘误记录;如果包含,则以勘误记录中的第二数据替换掉相应的第一数据后,生成第四散列值;如果第四散列值与勘误记录中的第一散列值相同,则确定当前区块到其子区块之间的一致性验证通过。本发明实施例的方案,旨在对已生成的区块链中的区块体数据不进行修改而实现数据勘误的情况下,对区块链进行一致性验证。
Description
技术领域
本发明实施例属于区块链技术领域,尤其涉及一种针对保持区块体数据实现勘误的区块链验证方法及***。
背景技术
随着互联网的不断发展,区块链技术应运而生,它是一种互联网数据库技术,具有去中心化、公开透明的特点。具体地,区块链技术的本质是去中心化且寓于分布式结构的数据存储、传输和证明的方法,用数据区块取代目前互联网对中心服务器的依赖,使得所有数据的变更或者交易项目都被同时记录在多个账本节点之上。由于没有中央控制点的分布式对等网络,并且使用分布式集体运作的方法,可以说,区块链是网络上的“公开大账本”。它存在许多节点,每个节点都可以观察到整个账本,并且共同参与维护,其收益则是获得记账的权利,并且可以复制一份完整的数据库,单个节点无法修改数据库,从而保证了账本数据的安全可靠。
当下,采用区块链技术进行数据的组织和管理已经被广泛的应用到了各种商业领域。
发明人在实现本发明的过程中,发现现有技术存在如下缺陷:
现有的区块链是沿着区块链的延展方向,依次生成新的区块,且区块之间满足一致性验证,这也是为了防止区块中的数据被恶意篡改。但是,在一些情况下,当区块链上的某个区块中的区块体数据确实存在错误,或者出于监管或政策部门的特殊需求,需要被修改更正,但如果强行对该数据进行修改,势必会导致区块链的一致性验证不通过,从而出现修改区块数据与区块链一致性验证之间的矛盾。
发明内容
本发明实施例提供一种针对保持区块体数据实现勘误的区块链验证方法及***,该方案适用于在现有区块链的延展过程中,通过设置链外勘误表,对已生成的区块链中的区块体数据不进行修改来实现数据勘误的情况下,提供一种对该区块链进行一致性验证的方法。
为达到上述目的,本发明实施例提供了一种针对保持区块体数据实现勘误的区块链验证方法,与所述区块链关联存储有一链外勘误表,所述链外勘误表中包括多条由关联存储的第一数据在所述区块链中的位置信息和第二数据构成的勘误记录,其中所述第一数据为所述区块链中的区块的区块体数据中被勘误的部分数据,所述勘误记录中还包括第一散列值,所述第一散列值为所述第一数据替换为所述第二数据后,将所述第二数据所在区块的区块头数据和区块体数据经不可逆算法生成的固定长度的字符串,所述验证方法包括:依据区块之间的链接关系,依次对所述区块链中的各区块进行如下操作:将当前区块的区块头数据和区块体数据经不可逆算法生成固定长度的字符串作为第二散列值,并与所述当前区块的子区块的区块头中存储的第三散列值进行比较;如果所述第二散列值与所述第三散列值相同,则在所述链外勘误表中,查找是否包含以所述当前区块的区块体数据中的部分数据作为所述第一数据所形成的勘误记录;如果所述链外勘误表中包含以所述当前区块的区块体数据中的部分数据作为所述第一数据所形成的勘误记录,则以所述勘误记录中的所述第二数据替换掉相应的所述第一数据后,将所述第二数据所在区块的区块头数据和区块体数据经不可逆算法生成的固定长度的字符串,记为第四散列值;如果所述第四散列值与所述勘误记录中的所述第一散列值相同,则确定所述当前区块到其子区块之间的一致性验证通过。
本发明实施例提供了一种针对保持区块体数据实现勘误的区块链验证***,与所述区块链关联存储有一链外勘误表,所述链外勘误表中包括多条由关联存储的第一数据在所述区块链中的位置信息和第二数据构成的勘误记录,其中所述第一数据为所述区块链中的区块的区块体数据中被勘误的部分数据,所述勘误记录中还包括第一散列值,所述第一散列值为所述第一数据替换为所述第二数据后,将所述第二数据所在区块的区块头数据和区块体数据经不可逆算法生成的固定长度的字符串,所述验证***包括:散列值比较模块、记录查找模块、散列值计算模块和验证确定模块,所述验证***依据区块之间的链接关系,依次对所述区块链中的各区块进行如下操作,其中:所述散列值比较模块,用于将当前区块的区块头数据和区块体数据经不可逆算法生成固定长度的字符串作为第二散列值,并与所述当前区块的子区块的区块头中存储的第三散列值进行比较;所述记录查找模块,用于如果所述第二散列值与所述第三散列值相同,则在所述链外勘误表中,查找是否包含以所述当前区块的区块体数据中的部分数据作为所述第一数据所形成的勘误记录;所述散列值计算模块,用于如果所述链外勘误表中包含以所述当前区块的区块体数据中的部分数据作为所述第一数据所形成的勘误记录,则以所述勘误记录中的所述第二数据替换掉相应的所述第一数据后,将所述第二数据所在区块的区块头数据和区块体数据经不可逆算法生成的固定长度的字符串,记为第四散列值;所述验证确定模块,用于如果所述第四散列值与所述勘误记录中的所述第一散列值相同,则确定所述当前区块到其子区块之间的一致性验证通过。
本发明实施例的针对保持区块体数据实现勘误的区块链验证方法及***,在对区块链中的各区块进行验证操作时,先对当前区块中的所有数据经不可逆算法得到第二散列值,并与当前区块的子区块的区块头中存储的第三散列值进行比较;如果第二散列值与第三散列值相同,则进一步在链外勘误表中查找,是否包含以当前区块的区块体数据中的部分数据作为第一数据所形成的勘误记录;如果包含,则以勘误记录中的第二数据替换掉相应的第一数据后,将第二数据所在区块的区块头数据和区块体数据经不可逆算法生成的固定长度的字符串,记为第四散列值,如果第四散列值与勘误记录中的第一散列值相同,则确定当前区块到其子区块之间的一致性验证通过,从而对已生成的区块链中的区块体数据不进行修改来实现数据勘误的情况下,提供一种对该区块链进行一致性验证的方法。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
图1为本发明实施例提供的区块链的形态图一;
图2为本发明实施例提供的区块链的形态图二;
图3为本发明实施例提供的区块链的形态图三;
图4为本发明实施例提供的针对保持区块体数据实现勘误的区块链验证方法流程图一;
图5为本发明实施例提供的区块链的形态图四;
图6为本发明实施例提供的针对保持区块体数据实现勘误的区块链验证方法流程图二;
图7为本发明实施例提供的针对保持区块体数据实现勘误的区块链验证***示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
首先需要说明的是,本发明实施例将提供一种针对保持区块体数据实现勘误的区块链验证方法,以针对区块链中的区块体数据不被修改而被勘误的情况下,实现对区块链中区块进行一致性验证。具体通过依据区块之间的链接关系,依次对区块链中的各区块进行如下操作:将当前区块的区块头数据和区块体数据经不可逆算法生成固定长度的字符串作为第二散列值,并与当前区块的子区块的区块头中存储的第三散列值进行比较;如果第二散列值与第三散列值相同,则在链外勘误表中,查找是否包含以当前区块的区块体数据中的部分数据作为第一数据所形成的勘误记录;如果链外勘误表中包含以当前区块的区块体数据中的部分数据作为第一数据所形成的勘误记录,则以勘误记录中的第二数据替换掉相应的第一数据后,将第二数据所在区块的区块头数据和区块体数据经不可逆算法生成的固定长度的字符串,记为第四散列值;如果第四散列值与勘误记录中的第一散列值相同,则确定当前区块到其子区块之间的一致性验证通过。这里所述的区块体数据可理解为作为实际交易数据的信息,区块头数据中包含由当前区块的父区块的所有数据经不可逆算法生成的固定长度的字符串即散列值,以及与当前区块相关的控制信息,区块体数据和区块头数据构成一个区块的完整数据。
其次需要说明的是,本发明实施例中的区块链中各区块的区块体数据记载的交易信息不局限于商业中的“账本”或“金融交易”的信息,也可以广义的理解为是需要通过区块链这种数据组织形式管理的多样化的对象数据,如针对企业进行管理的企业管理数据,针对项目进行进展跟踪的项目进程管理数据等。本发明实施例中,对区块链本身的形态及延展方向不做限定,只是在区块链正常延展的过程中,针对通过设置链外勘误表的方式,对区块链中区块的区块体数据进行更正勘误,同时对原区块链中的相应的区块体数据部分不进行修改的情况下,利用链外勘误表对区块链进行一致性验证。例如,区块链的延展形态可以为如图1所示的传统的单链条的区块链,也可以是如图2所示的整体上呈树形结构的区块链(该区块链中每个区块只有一个父区块,并有一个或多个子区块),还可以是如图3所示的具有有向无环图型结构的区块链(该区块链中存在至少一个区块具有一个或多个父区块)。
以下将对本发明实施例的针对保持区块体数据实现勘误的区块链验证方法进行详细阐述。
实施例一
图4为本发明实施例提供的针对保持区块体数据实现勘误的区块链验证方法流程图一,本方法的执行主体可以为具有数据处理功能的***,包括终端和/或服务器。如图4所示,该针对保持区块体数据实现勘误的区块链验证方法包括依据区块之间的链接关系,依次对区块链中的各区块进行如下步骤的操作:
S410,将当前区块的区块头数据和区块体数据经不可逆算法生成固定长度的字符串作为第二散列值,并与当前区块的子区块的区块头中存储的第三散列值进行比较;
在区块链延展生成新区块的过程中,是将前一区块的所有数据,包括区块头数据和区块体数据,经不可逆算法生成固定长度的字符串作为散列值,添加到后一区块的区块头中。如果要保证前一区块到后一区块的逻辑链接关系正确,必要条件是前一区块的区块体数据不被篡改。这也是验证区块链一致性的基本逻辑。
本步骤中的第二散列值,为对当前区块的区块头数据和区块体数据经上述不可逆算法生成的固定长度的字符串;第三散列值,为在区块延展过程中,生成当前区块的子区块时,对当前区块的区块头数据和区块体数据经同样的不可逆算法生成的固定长度的字符串,并且存在该子区块的区块头中。如果当前区块的数据(特别是区块体数据)没有被篡改,那么原则上第二散列值和第三散列值应该是相等的。如果不相同,则表征区块体数据被篡改(本实施例中默认区块头数据是不会被修改的)。
这里需要说明的是,针对图2和图3所示的区块链的形态图中,可能存在一个区块具有多个父区块的情况,相应的,该区块的区块头中会同时存储有多个第三散列值,且这些第三散列值分别对应于一个父区块,因此,本步骤中的,第二散列值与第三散列值相等的情况也包含:第二散列值与多个并存的第三散列值中的一个第三散列值相等的情况。
S420,如果第二散列值与第三散列值相同,则在链外勘误表中查找,是否包含以当前区块的区块体数据中的部分数据作为第一数据所形成的勘误记录;
前面提及,本发明技术方案适用于,通过设置链外勘误表,对区块链中的区块体数据不进行修改而实现数据勘误的情况下,对区块链进行一致性验证的情形。如表1所示,为本发明实施例提供的链外勘误表一的样例。其中,在链外勘误表一中,每个勘误记录中均关联存储有第一数据在所述区块链中的位置信息(如包括第一数据在区块链中所在区块的区块编号和数据ID)和第二数据构成的勘误记录,其中第一数据为区块链中的区块的区块体数据中被勘误的部分数据,第二数据为将第一数据勘误后的结果数据。图5示出了区块链中区块体数据的存在形式,其中,被勘误的位于区块Block2中的数据ID为tx01的第一数据olddata在链外勘误表一中被修改为第二数据newdata。另外,在链外勘误表一中的每条勘误记录中还包括一个第一散列值,该第一散列值为该勘误记录中所针对勘误的第一数据替换为第二数据后,将第二数据所在区块头数据和区块体数据经不可逆算法生成的固定长度的字符串。每条勘误记录中还可包括勘误记录的生成时间等信息,在此均省略不显示。
表1链外勘误表一
数据ID | 第二数据 | 所在区块编号 | …… |
tx01 | newdata | Block2 | …… |
…… | …… | …… | …… |
基于链外勘误表的存在,当第二散列值与第一散列值相同时,只是满足了一致性验证初步要求,只有再进一步验证链外勘误表中的勘误记录后才能得出最终一致性验证的结果。因此,当第二散列值与第三散列值相同后,可再在链外勘误表中,查找是否包含以当前区块的区块体数据中的部分数据作为第一数据所形成的勘误记录。
S430,如果链外勘误表中包含以当前区块的区块体数据中的部分数据作为第一数据所形成的勘误记录,则以勘误记录中的第二数据替换掉相应的第一数据后,将第二数据所在区块的区块头数据和区块体数据经不可逆算法生成的固定长度的字符串,记为第四散列值。
当链外勘误表中包含以当前区块的区块体数据中的部分数据作为第一数据所形成的勘误记录,说明当前区块的区块体数据被勘误过。为了验证勘误后的数据是否被恶意篡改,可以勘误记录中的第二数据替换掉相应的位于区块链的区块中的第一数据,然后以该第二数据当前所在区块的区块头数据和区块体数据经不可逆算法生成的固定长度的字符串,记为第四散列值。
S440,如果第四散列值与勘误记录中的第一散列值相同,则确定当前区块到其子区块之间的一致性验证通过。
如果第四散列值与勘误记录中的第一散列值相同,则说明勘误记录未被恶意篡改,此时可以确定当前区块到其子区块之间的一致性验证通过。
在实际应用场景中,不法分子在恶意篡改勘误记录中的第二数据时,可能为了掩盖篡改行为将勘误记录中的第一散列值也一并适应修改,因此需要确保第一散列值的不可篡改性。
本发明实施例的针对保持区块体数据实现勘误的区块链验证方法,在对区块链中的各区块进行验证操作时,先对当前区块中的所有数据经不可逆算法得到第二散列值,并与当前区块的子区块的区块头中存储的第三散列值进行比较;如果第二散列值与第三散列值相同,则进一步在链外勘误表中查找,是否包含以当前区块的区块体数据中的部分数据作为第一数据所形成的勘误记录;如果包含,则以勘误记录中的第二数据替换掉相应的第一数据后,将第二数据所在区块的区块头数据和区块体数据经不可逆算法生成的固定长度的字符串,记为第四散列值,如果第四散列值与勘误记录中的第一散列值相同,则确定当前区块到其子区块之间的一致性验证通过,从而对已生成的区块链中的区块体数据不进行修改来实现数据勘误的情况下,提供一种对该区块链进行一致性验证的方法。
实施例二
图6为本发明实施例提供的针对保持区块体数据实现勘误的区块链验证方法流程图二,该方法实施例可视为对图4所示方法步骤的进一步细化方案,如图6所示,该针对保持区块体数据实现勘误的区块链验证方法包括依据区块之间的链接关系,依次对区块链中的各区块进行如下步骤的操作:
S610,将当前区块的区块头数据和区块体数据经不可逆算法生成固定长度的字符串作为第二散列值,并与当前区块的子区块的区块头中存储的第三散列值进行比较;
如果第二散列值与第三散列值相同,则执行步骤S620,否则执行S660;
S620,在链外勘误表中,查找是否包含以当前区块的区块体数据中的部分数据作为第一数据所形成的勘误记录;
在步骤S620之后,如果在链外勘误表中,查找到包含以当前区块的区块体数据中的部分数据作为第一数据所形成的勘误记录,则执行步骤S630,否则执行S650;
S630,以勘误记录中的第二数据替换掉相应的第一数据后,将第二数据所在区块的区块头数据和区块体数据经不可逆算法生成的固定长度的字符串,记为第四散列值;
步骤S640,比较第四散列值与勘误记录中的第一散列值是否相同;如果相同则执行S650,如果不同,则执行S660。
S650,确定当前区块到其子区块之间的一致性验证通过;
S660,确定当前区块到其子区块之间的一致性验证未通过。
本发明实施例的针对保持区块体数据实现勘误的区块链验证方法,在图4所示实施例的基础上,对当前区块到其子区块的一致性验证是否通过的情况进行了进一步的补充和完善,提高了区块链一致性验证的准确性。
实施例三
图7为本发明实施例提供的针对保持区块体数据实现勘误的区块链验证***示意图,可用于执行如图4所示的方法步骤。其中,与区块链关联存储有一链外勘误表,该链外勘误表中包括多条由关联存储的第一数据在区块链中的位置信息和第二数据构成的勘误记录,其中第一数据为区块链中的区块的区块体数据中被勘误的部分数据,该勘误记录中还包括第一散列值,第一散列值为第一数据替换为第二数据后,将第二数据所在区块的区块头数据和区块体数据经不可逆算法生成的固定长度的字符串,
所述验证***包括:散列值比较模块710、记录查找模块720、散列值计算模块730和验证确定模块740,所述验证***依据区块之间的链接关系,依次对区块链中的各区块进行如下操作,其中:
散列值比较模块710,用于将当前区块的区块头数据和区块体数据经不可逆算法生成固定长度的字符串作为第二散列值,并与当前区块的子区块的区块头中存储的第三散列值进行比较;记录查找模块720,用于如果第二散列值与第三散列值相同,则在链外勘误表中,查找是否包含以当前区块的区块体数据中的部分数据作为第一数据所形成的勘误记录;散列值计算模块730,用于如果链外勘误表中包含以当前区块的区块体数据中的部分数据作为第一数据所形成的勘误记录,则以勘误记录中的第二数据替换掉相应的第一数据后,将第二数据所在区块的区块头数据和区块体数据经不可逆算法生成的固定长度的字符串,记为第四散列值;验证确定模块740,用于如果第四散列值与勘误记录中的第一散列值相同,则确定当前区块到其子区块之间的一致性验证通过。
进一步地,上述验证确定模块740还可用于,如果第二散列值与第三散列值相同,且链外勘误表中不包含以当前区块的区块体数据中的部分数据作为第一数据所形成的勘误记录,则确定当前区块到其子区块之间的一致性验证通过。
进一步地,上述验证确定模块740还可用于,如果第二散列值与第三散列值不同,则确定当前区块到其子区块之间的一致性验证未通过。
进一步地,上述验证确定模块740还可用于,如果第四散列值与勘误记录中的第一散列值不同,则确定当前区块到其子区块之间的一致性验证未通过。
进一步地,勘误记录中还可包括:本次勘误记录生成的时间信息;第一数据在区块链中的位置信息可包括:第一数据所在的区块的编号,以及该第一数据在区块的区块体数据中的数据ID。
细化后的***可用于执行如图6所示的方法步骤。
本发明实施例的针对保持区块体数据实现勘误的区块链验证***,在对区块链中的各区块进行验证操作时,先对当前区块中的所有数据经不可逆算法得到第二散列值,并与当前区块的子区块的区块头中存储的第三散列值进行比较;如果第二散列值与第三散列值相同,则进一步在链外勘误表中查找,是否包含以当前区块的区块体数据中的部分数据作为第一数据所形成的勘误记录;如果包含,则以勘误记录中的第二数据替换掉相应的第一数据后,将第二数据所在区块的区块头数据和区块体数据经不可逆算法生成的固定长度的字符串,记为第四散列值,如果第四散列值与勘误记录中的第一散列值相同,则确定当前区块到其子区块之间的一致性验证通过,从而对已生成的区块链中的区块体数据不进行修改来实现数据勘误的情况下,提供一种对该区块链进行一致性验证的方法。
进一步地,本实施例中的细化内容中,还对当前区块到其子区块的一致性验证是否通过的情况进行了进一步的补充和完善,提高了区块链一致性验证的准确性。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种针对保持区块体数据实现勘误的区块链验证方法,其特征在于,与所述区块链关联存储有一链外勘误表,所述链外勘误表中包括多条由关联存储的第一数据在所述区块链中的位置信息和第二数据构成的勘误记录,其中所述第一数据为所述区块链中的区块的区块体数据中被勘误的部分数据,所述勘误记录中还包括第一散列值,所述第一散列值为所述第一数据替换为所述第二数据后,将所述第二数据所在区块的区块头数据和区块体数据经不可逆算法生成的固定长度的字符串,
所述验证方法包括:
依据区块之间的链接关系,依次对所述区块链中的各区块进行如下操作:
将当前区块的区块头数据和区块体数据经不可逆算法生成固定长度的字符串作为第二散列值,并与所述当前区块的子区块的区块头中存储的第三散列值进行比较,所述第三散列值为在区块延展过程中,生成当前区块的子区块时,对当前区块的区块头数据和区块体数据经与所述第二散列值同样的不可逆算法生成的固定长度的字符串;
如果所述第二散列值与所述第三散列值相同,则在所述链外勘误表中,查找是否包含以所述当前区块的区块体数据中的部分数据作为所述第一数据所形成的勘误记录;
如果所述链外勘误表中包含以所述当前区块的区块体数据中的部分数据作为所述第一数据所形成的勘误记录,则以所述勘误记录中的所述第二数据替换掉相应的所述第一数据后,将所述第二数据所在区块的区块头数据和区块体数据经与所述第一散列值相同的不可逆算法生成的固定长度的字符串,记为第四散列值;
如果所述第四散列值与所述勘误记录中的所述第一散列值相同,则确定所述当前区块到其子区块之间的一致性验证通过。
2.根据权利要求1所述的验证方法,其特征在于,所述如果所述第二散列值与所述第三散列值相同,则在所述链外勘误表中,查找是否包含以所述当前区块的区块体数据中的部分数据作为所述第一数据所形成的勘误记录之后还包括:
如果所述链外勘误表中不包含以所述当前区块的区块体数据中的部分数据作为所述第一数据所形成的勘误记录,则确定所述当前区块到其子区块之间的一致性验证通过。
3.根据权利要求1所述的验证方法,其特征在于,所述方法还包括:
如果所述第二散列值与所述第三散列值不同,则确定所述当前区块到其子区块之间的一致性验证未通过。
4.根据权利要求1所述的验证方法,其特征在于,所述方法还包括:
如果所述第四散列值与所述勘误记录中的所述第一散列值不同,则确定所述当前区块到其子区块之间的一致性验证未通过。
5.根据权利要求1-4中任一项所述的验证方法,其特征在于,所述勘误记录中还包括:本次勘误记录生成的时间信息;所述第一数据在所述区块链中的位置信息包括:所述第一数据所在的区块的编号,以及该第一数据在所述区块的区块体数据中的数据ID。
6.一种针对保持区块体数据实现勘误的区块链验证***,其特征在于,与所述区块链关联存储有一链外勘误表,所述链外勘误表中包括多条由关联存储的第一数据在所述区块链中的位置信息和第二数据构成的勘误记录,其中所述第一数据为所述区块链中的区块的区块体数据中被勘误的部分数据,所述勘误记录中还包括第一散列值,所述第一散列值为所述第一数据替换为所述第二数据后,将所述第二数据所在区块的区块头数据和区块体数据经不可逆算法生成的固定长度的字符串,
所述验证***包括:散列值比较模块、记录查找模块、散列值计算模块和验证确定模块,所述验证***依据区块之间的链接关系,依次对所述区块链中的各区块进行如下操作,其中:
所述散列值比较模块,用于将当前区块的区块头数据和区块体数据经不可逆算法生成固定长度的字符串作为第二散列值,并与所述当前区块的子区块的区块头中存储的第三散列值进行比较,所述第三散列值为在区块延展过程中,生成当前区块的子区块时,对当前区块的区块头数据和区块体数据经与所述第二散列值同样的不可逆算法生成的固定长度的字符串;
所述记录查找模块,用于如果所述第二散列值与所述第三散列值相同,则在所述链外勘误表中,查找是否包含以所述当前区块的区块体数据中的部分数据作为所述第一数据所形成的勘误记录;
所述散列值计算模块,用于如果所述链外勘误表中包含以所述当前区块的区块体数据中的部分数据作为所述第一数据所形成的勘误记录,则以所述勘误记录中的所述第二数据替换掉相应的所述第一数据后,将所述第二数据所在区块的区块头数据和区块体数据经与所述第一散列值相同的不可逆算法生成的固定长度的字符串,记为第四散列值;
所述验证确定模块,用于如果所述第四散列值与所述勘误记录中的所述第一散列值相同,则确定所述当前区块到其子区块之间的一致性验证通过。
7.根据权利要求6所述的验证***,其特征在于,所述验证确定模块还用于,
如果所述第二散列值与所述第三散列值相同,且所述链外勘误表中不包含以所述当前区块的区块体数据中的部分数据作为所述第一数据所形成的勘误记录,则确定所述当前区块到其子区块之间的一致性验证通过。
8.根据权利要求6所述的验证***,其特征在于,所述验证确定模块还用于,
如果所述第二散列值与所述第三散列值不同,则确定所述当前区块到其子区块之间的一致性验证未通过。
9.根据权利要求6所述的验证***,其特征在于,所述验证确定模块还用于,
如果所述第四散列值与所述勘误记录中的所述第一散列值不同,则确定所述当前区块到其子区块之间的一致性验证未通过。
10.根据权利要求6-9中任一项所述的验证***,其特征在于,所述勘误记录中还包括:本次勘误记录生成的时间信息;所述第一数据在所述区块链中的位置信息包括:所述第一数据所在的区块的编号,以及该第一数据在所述区块的区块体数据中的数据ID。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2017101810796 | 2017-03-24 | ||
CN201710181079 | 2017-03-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107391292A CN107391292A (zh) | 2017-11-24 |
CN107391292B true CN107391292B (zh) | 2020-09-15 |
Family
ID=60333193
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710425476.3A Expired - Fee Related CN107391292B (zh) | 2017-03-24 | 2017-06-08 | 针对保持区块体数据实现勘误的区块链验证方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107391292B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108009445B (zh) * | 2017-11-30 | 2021-05-11 | 成都蓝海贝信息技术有限公司 | 一种半中心化的可信数据管理*** |
US10754989B2 (en) * | 2018-03-27 | 2020-08-25 | International Business Machines Corporation | Runtime self-correction for blockchain ledgers |
CN109144959A (zh) * | 2018-08-03 | 2019-01-04 | 佛山市甜慕链客科技有限公司 | 一种用于存储数据的可靠性的方法及*** |
CN110011800B (zh) * | 2018-11-07 | 2020-04-14 | 阿里巴巴集团控股有限公司 | 一种区块链数据读取方法及装置 |
CN112003701B (zh) * | 2020-04-16 | 2021-03-19 | 成都质数斯达克科技有限公司 | 一种区块自检及同步方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1614582A (zh) * | 2003-11-08 | 2005-05-11 | 鸿富锦精密工业(深圳)有限公司 | 自动生成勘误表***及方法 |
CN102426601B (zh) * | 2011-11-09 | 2013-11-06 | 华为技术有限公司 | 数据删除方法和装置 |
CN103020026B (zh) * | 2012-11-15 | 2016-05-25 | 无锡永中软件有限公司 | 协同文档处理***及方法 |
US20160283920A1 (en) * | 2015-03-28 | 2016-09-29 | Justin Fisher | Authentication and verification of digital data utilizing blockchain technology |
-
2017
- 2017-06-08 CN CN201710425476.3A patent/CN107391292B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN107391292A (zh) | 2017-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107391292B (zh) | 针对保持区块体数据实现勘误的区块链验证方法及*** | |
CN107463597B (zh) | 针对修改区块体数据的区块链的被动验证方法及*** | |
CN107391291B (zh) | 修改区块链即有区块体数据的区块链勘误方法及*** | |
US11356245B2 (en) | Data storage, data check, and data linkage method and apparatus | |
Nikitin et al. | {CHAINIAC}: Proactive {Software-Update} transparency via collectively signed skipchains and verified builds | |
US20190327094A1 (en) | Information authentication method and system | |
CN107391557B (zh) | 针对设置链外勘误表的区块链串行查询方法及*** | |
CN103136243B (zh) | 基于云存储的文件***去重方法及装置 | |
CN107423163B (zh) | 整体串行增加区块的区块链的勘误方法及*** | |
CN106897352B (zh) | 在拓展中进行修改的区块链的生成方法及*** | |
US20160092290A1 (en) | Processing data errors for a data processing system | |
US11888985B2 (en) | Blockchain system, registration terminal, approval terminal, smart contract registration method, and smart contract registration program | |
CN110008743B (zh) | 一种块链式账本中的数据属性标识方法、装置及设备 | |
CN107463596B (zh) | 针对设置链外勘误表的区块链并行查询方法及*** | |
CN107451002B (zh) | 针对修改区块体数据的区块链的主动验证方法及*** | |
CN108510268B (zh) | 环形区块链结构、数据处理方法和装置 | |
CN107451177B (zh) | 针对增加区块的单个勘误的区块链的查询方法及*** | |
CN107451007B (zh) | 针对增加区块进行勘误的区块链的验证方法及*** | |
CN107451011B (zh) | 并行增加区块的区块链的勘误方法及*** | |
Jiang et al. | Assuring the model evolution of protocol software specifications by regression testing process improvement | |
CN111159482A (zh) | 数据校验方法及*** | |
CN107451178B (zh) | 保持区块链即有区块体数据的区块链勘误方法及*** | |
CN107426293B (zh) | 单个串行增加区块的区块链的勘误方法及*** | |
CN107451179B (zh) | 针对增加区块的整体勘误的区块链的查询方法及*** | |
CN110059087B (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20200915 |
|
CF01 | Termination of patent right due to non-payment of annual fee |