CN107463597B - 针对修改区块体数据的区块链的被动验证方法及系统 - Google Patents
针对修改区块体数据的区块链的被动验证方法及系统 Download PDFInfo
- Publication number
- CN107463597B CN107463597B CN201710425460.2A CN201710425460A CN107463597B CN 107463597 B CN107463597 B CN 107463597B CN 201710425460 A CN201710425460 A CN 201710425460A CN 107463597 B CN107463597 B CN 107463597B
- Authority
- CN
- China
- Prior art keywords
- block
- data
- hash value
- chain
- error correction
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Document Processing Apparatus (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种针对修改区块体数据的区块链的被动验证方法及系统,属于区块链技术领域,方法包括:将当前区块的区块头数据和区块体数据经不可逆算法生成固定长度的字符串作为第一散列值,并与所述当前区块的子区块的区块头中存储的第二散列值进行比较;如果所述第一散列值与所述第二散列值不同,则在所述链外勘误表中查找,是否包含以所述当前区块的区块体数据中的部分数据作为所述第一数据所形成的勘误记录;如果包含,则确定所述当前区块到其子区块之间的一致性验证通过。本发明实施例的方案,旨在对已生成的区块链中的区块体数据进行修改来实现数据勘误的情况下,对区块链进行一致性验证。
Description
技术领域
本发明实施例属于区块链技术领域,尤其涉及一种针对修改区块体数据的区块链的被动验证方法及系统。
背景技术
随着互联网的不断发展,区块链技术应运而生,它是一种互联网数据库技术,具有去中心化、公开透明的特点。具体地,区块链技术的本质是去中心化且寓于分布式结构的数据存储、传输和证明的方法,用数据区块取代目前互联网对中心服务器的依赖,使得所有数据的变更或者交易项目都被同时记录在多个账本节点之上。由于没有中央控制点的分布式对等网络,并且使用分布式集体运作的方法,可以说,区块链是网络上的“公开大账本”。它存在许多节点,每个节点都可以观察到整个账本,并且共同参与维护,其收益则是获得记账的权利,并且可以复制一份完整的数据库,单个节点无法修改数据库,从而保证了账本数据的安全可靠。
当下,采用区块链技术进行数据的组织和管理已经被广泛的应用到了各种商业领域。
发明人在实现本发明的过程中,发现现有技术存在如下缺陷:
现有的区块链是沿着区块链的延展方向,依次生成新的区块,且区块之间满足一致性验证,这也是为了防止区块中的数据被恶意篡改。但是,在一些情况下,当区块链上的某个区块中的区块体数据确实存在错误,或者出于监管或政策部门的特殊需求,需要被修改更正,但如果强行对该数据进行修改,势必会导致区块链的一致性验证不通过,从而出现修改区块数据与区块链一致性验证之间的矛盾。
发明内容
本发明实施例提供一种针对修改区块体数据的区块链的被动验证方法及系统,该方案适用于在现有区块链的延展过程中,通过设置链外勘误表,对已生成的区块链中的区块体数据进行修改来实现数据勘误的情况,并对存在区块体数据有修改的区块链进行一致性验证。
为达到上述目的,本发明实施例提供了一种针对修改区块体数据的区块链的被动验证方法,与所述区块链关联存储有一链外勘误表,所述链外勘误表中包括多条由关联存储的第一数据在所述区块链中的位置信息和第二数据构成的勘误记录,其中所述第一数据为所述区块链中的区块的区块体数据中被勘误的部分数据,且所述区块链中的所述第一数据已经被修改为所述第二数据,所述验证方法包括:依据区块之间的链接关系,依次对所述区块链中的各区块进行如下操作:将当前区块的区块头数据和区块体数据经不可逆算法生成固定长度的字符串作为第一散列值,并与所述当前区块的子区块的区块头中存储的第二散列值进行比较;如果所述第一散列值与所述第二散列值不同,则在所述链外勘误表中,查找是否包含以所述当前区块的区块体数据中的部分数据作为所述第一数据所形成的勘误记录;如果所述链外勘误表中包含以所述当前区块的区块体数据中的部分数据作为所述第一数据所形成的勘误记录,则确定所述当前区块到其子区块之间的一致性验证通过。
本发明实施例提供了一种针对修改区块体数据的区块链的被动验证系统,与所述区块链关联存储有一链外勘误表,所述链外勘误表中包括多条由关联存储的第一数据在所述区块链中的位置信息和第二数据构成的勘误记录,其中所述第一数据为所述区块链中的区块的区块体数据中被勘误的部分数据,且所述区块链中的所述第一数据已经被修改为所述第二数据,所述验证系统包括:散列值比较模块、记录查找模块和验证确定模块,所述验证系统依据区块之间的链接关系,依次对所述区块链中的各区块进行如下操作,其中:所述散列值比较模块,用于将当前区块的区块头数据和区块体数据经不可逆算法生成固定长度的字符串作为第一散列值,并与所述当前区块的子区块的区块头中存储的第二散列值进行比较;所述记录查找模块,用于如果所述第一散列值与所述第二散列值不同,则在所述链外勘误表中,查找是否包含以所述当前区块的区块体数据中的部分数据作为所述第一数据所形成的勘误记录;所述验证确定模块,用于如果所述链外勘误表中包含以所述当前区块的区块体数据中的部分数据作为所述第一数据所形成的勘误记录,则确定所述当前区块到其子区块之间的一致性验证通过。
本发明实施例的针对修改区块体数据的区块链的被动验证方法及系统,在对区块链中的各区块进行验证操作时,先对当前区块中的所有数据经不可逆算法得到第一散列值,并与当前区块的子区块的区块头中存储的第二散列值进行比较;如果第一散列值与第二散列值不同,则进一步在链外勘误表中查找,是否包含以当前区块的区块体数据中的部分数据作为第一数据所形成的勘误记录;如果包含,则强行确定当前区块到其子区块之间的一致性验证通过,从而实现对已进行了区块体数据有修改的区块所构成的区块链的一致性验证。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
图1为本发明实施例提供的区块链的形态图一;
图2为本发明实施例提供的区块链的形态图二;
图3为本发明实施例提供的区块链的形态图三;
图4为本发明实施例提供的针对修改区块体数据的区块链的被动验证方法流程图一;
图5a为本发明实施例提供的区块链的形态图四;
图5b为本发明实施例提供的区块链的形态图五;
图6为本发明实施例提供的针对修改区块体数据的区块链的被动验证方法流程图二;
图7为本发明实施例提供的针对修改区块体数据的区块链的被动验证系统示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
首先需要说明的是,本发明实施例将提供一种针对修改区块体数据的区块链的被动验证方法,以针对区块链中的区块体数据被修改了的情况下,实现对区块链中区块进行一致性验证。所谓被动验证是指,在对区块体数据已被修改的区块链进行一致性验证的过程中,先是按照传统的方法依据区块之间的链接关系顺序对各区块内的数据进行一致性验证,当某一个区块验证不通过时,再根据链外勘误表中的勘误记录对该区块中的区块体数据进行验证。具体通过依据区块之间的链接关系,依次对区块链中的各区块进行如下操作:将当前区块的区块头数据和区块体数据经不可逆算法生成固定长度的字符串作为第一散列值,并与当前区块的子区块的区块头中存储的第二散列值进行比较;如果第一散列值与第二散列值不同,则在链外勘误表中,查找是否包含以当前区块的区块体数据中的部分数据作为第一数据所形成的勘误记录;如果链外勘误表中包含以当前区块的区块体数据中的部分数据作为第一数据所形成的勘误记录,则确定当前区块到其子区块之间的一致性验证通过。这里所述的区块体数据可理解为作为实际交易数据的信息,区块头数据中包含由当前区块的父区块的所有数据经不可逆算法生成的固定长度的字符串即散列值,以及与当前区块相关的控制信息,区块体数据和区块头数据构成一个区块的完整数据。
其次需要说明的是,本发明实施例中的区块链中各区块的区块体数据记载的交易信息不局限于商业中的“账本”或“金融交易”的信息,也可以广义的理解为是需要通过区块链这种数据组织形式管理的多样化的对象数据,如针对企业进行管理的企业管理数据,针对项目进行进展跟踪的项目进程管理数据等。本发明实施例中,对区块链本身的形态及延展方向不做限定,只是在区块链正常延展的过程中,针对通过设置链外勘误表的方式,对区块链中区块的区块体数据进行更正勘误,同时对原区块链中的相应的区块体数据部分进行修改的情况下,利用链外勘误表对区块链进行一致性验证。例如,区块链的延展形态可以为如图1所示的传统的单链条的区块链,也可以是如图2所示的整体上呈树形结构的区块链(该区块链中每个区块只有一个父区块,并有一个或多个子区块),还可以是如图3所示的具有有向无环图型结构的区块链(该区块链中存在至少一个区块具有一个或多个父区块)。
以下将对本发明实施例的针对修改区块体数据的区块链的被动验证方法进行详细阐述。
实施例一
图4为本发明实施例提供的针对修改区块体数据的区块链的被动验证方法流程图一,本方法的执行主体可以为具有数据处理功能的系统,包括终端和/或服务器。如图4所示,该针对修改区块链即有区块体数据的区块链验证方法包括依据区块之间的链接关系,依次对区块链中的各区块进行如下步骤的操作:
S410,将当前区块的区块头数据和区块体数据经不可逆算法生成固定长度的字符串作为第一散列值,并与当前区块的子区块的区块头中存储的第二散列值进行比较;
在区块链延展生成新区块的过程中,是将前一区块的所有数据,包括区块头数据和区块体数据,经不可逆算法生成固定长度的字符串作为散列值,添加到后一区块的区块头中。如果要保证前一区块到后一区块的逻辑链接关系正确,必要条件是前一区块的区块体数据不被篡改。这也是验证区块链一致性的基本逻辑。
本步骤中的第一散列值,为对当前区块的区块头数据和区块体数据经上述不可逆算法生成的固定长度的字符串;第二散列值,为在区块延展过程中,生成当前区块的子区块时,对当前区块的区块头数据和区块体数据经同样的不可逆算法生成的固定长度的字符串,并且存在该子区块的区块头中。如果当前区块的数据(特别是区块体数据)没有被篡改,那么原则上第一散列值和第二散列值应该是相等的。如果不相同,则表征区块体数据被篡改(本实施例中默认区块头数据是不会被修改的)。
这里需要说明的是,针对图2和图3所示的区块链的形态图中,可能存在一个区块具有多个父区块的情况,相应的,该区块的区块头中会同时存储有多个第二散列值,且这些第二散列值分别对应于一个父区块,因此,本步骤中的,第一散列值与第二散列值相等的情况也包含:第一散列值与多个并存的第二散列值中的一个第二散列值相等的情况。
S420,如果第一散列值与第二散列值不同,则在链外勘误表中,查找是否包含以当前区块的区块体数据中的部分数据作为第一数据所形成的勘误记录;
前面提及,本发明技术方案适用于,通过设置链外勘误表,对区块链中的区块体数据进行修改而实现数据勘误的情况下,对区块链进行一致性验证的情形。如表1所示,为本发明实施例提供的链外勘误表一的样例。其中,在链外勘误表一中,每个勘误记录中均关联存储有第一数据在所述区块链中的位置信息(如包括第一数据在区块链中所在区块的区块编号和数据ID)和第二数据构成的勘误记录,其中第一数据为区块链中的区块的区块体数据中被勘误的部分数据,且区块链中的第一数据已经被修改为第二数据。例如,图5a和图5b所示,其依次对应为将区块Block2中的数据ID为tx01的第一数据olddata修改为第二数据newdata的修改前后的区块链形态图。另外,在链外勘误表一中还可以包括勘误记录生成的时间等信息,在此均省略不显示。
表1链外勘误表一
数据ID | 第二数据 | 所在区块编号 | …… |
tx01 | newdata | Block2 | …… |
…… | …… | …… | …… |
基于链外勘误表的存在,当第一散列值与第二散列值不同时,可能包含两种情况,即被修改的数据记录在了链外勘误表中,属于合法的勘误修改,或者,被修改的数据未被记录在链外勘误表中,属于非法篡改。因此,当第一散列值与第二散列值不同时,可先在链外勘误表中查找,确定链外勘误表中是否包含以当前区块的区块体数据中的部分数据作为第一数据所形成的勘误记录。
S430,如果链外勘误表中包含以当前区块的区块体数据中的部分数据作为第一数据所形成的勘误记录,则确定当前区块到其子区块之间的一致性验证通过。
当链外勘误表中包含以当前区块的区块体数据中的部分数据作为第一数据所形成的勘误记录时,可以初步判定造成第一散列值与第二散列值不同的原因,很可能是当前区块中的区块体数据被合法勘误,因此可以直接判定当前区块到其子区块之间的一致性验证通过。
本发明实施例的针对修改区块体数据的区块链的被动验证方法,在对区块链中的各区块进行验证操作时,先对当前区块中的所有数据经不可逆算法得到第一散列值,并与当前区块的子区块的区块头中存储的第二散列值进行比较;如果第一散列值与第二散列值不同,则进一步在链外勘误表中,查找是否包含以当前区块的区块体数据中的部分数据作为第一数据所形成的勘误记录;如果包含,则强行确定当前区块到其子区块之间的一致性验证通过,从而实现对已进行了区块体数据有修改的区块所构成的区块链的一致性验证。
实施例二
图6为本发明实施例提供的针对修改区块体数据的区块链的被动验证方法流程图二,该方法实施例可视为对图4所示方法步骤的进一步细化方案,如图6所示,该针对修改区块链即有区块体数据的区块链验证方法包括依据区块之间的链接关系,依次对区块链中的各区块进行如下步骤的操作:
S610,将当前区块的区块头数据和区块体数据经不可逆算法生成固定长度的字符串作为第一散列值,并与当前区块的子区块的区块头中存储的第二散列值进行比较;
S620,如果第一散列值与第二散列值不同,则在链外勘误表中,查找是否包含以当前区块的区块体数据中的部分数据作为第一数据所形成的勘误记录;
步骤S610~S620与步骤S410~S420的内容对应相同。
S630,如果链外勘误表中包含以当前区块的区块体数据中的部分数据作为第一数据所形成的勘误记录,则将第一散列值与该勘误记录中的第三散列值进行比较,
S640,如果第一散列值与第三散列值相同,则确定当前区块到其子区块之间的一致性验证为通过。
步骤S630~S640可视为S430的递进优选方案。
在实际应用场景中,当链外勘误表中包含以当前区块的区块体数据中的部分数据作为第一数据所形成的勘误记录时,虽然可以初步判定造成第一散列值与第二散列值不同的原因,很可能是当前区块中的区块体数据被合法勘误,但是也不能排除在合法勘误的同时,当前区块的区块体数据中也存在一些数据被恶意篡改的情况,因此以链外勘误表中包含以当前区块的区块体数据中的部分数据作为第一数据所形成的勘误记录,来直接判定当前区块到其子区块之间的一致性验证通过的方式虽然快速且可信度也比较高,但仍不是最佳方案。
本实施例中,对链外勘误表中各勘误记录的内容进行了扩充,如表2所示,在表1的基础上,增加哈希值,即第三散列值,该第三散列值为第一数据所在区块被勘误后(区块中的第一数据已被修改为了第二数据),将该区块的区块头数据和区块体数据经不可逆算法生成的固定长度的字符串。
表2链外勘误表二
数据ID | 第二数据 | 所在区块编号 | 哈希值 | …… |
tx01 | newdata | Block2 | 32位字符串 | …… |
…… | …… | …… | …… | …… |
同样,在链外勘误表二中,每个勘误记录中还可以包括勘误记录生成的时间等信息,在此均省略不显示。
基于表2的存在,在执行步骤S620之后,确定链外勘误表中包含以当前区块的区块体数据中的部分数据作为第一数据所形成的勘误记录后,可将上述第一散列值与该勘误记录中的第三散列值进行比较,如果第一散列值与第三散列值相同,则表征当前区块的区块体数据被合法修改,可确定当前区块到其子区块之间的一致性验证为通过。
当然,在实际应用场景中,针对区块链中被勘误过的区块,链外勘误表中会存储有该区块对应的至少一条勘误记录(多条勘误记录可能是针对区块链中同一位置的第一数据,也可能是针对区块链中不同位置的第一数据,或这两种情况同时存在),那么,在执行将第一散列值与该勘误记录中的第三散列值进行比较时,可将第一散列值与该勘误记录中最近生成的勘误记录中的第三散列值进行比较。如果第一散列值与该第三散列值相同,则表征当前区块的区块体数据被合法修改,可确定当前区块到其子区块之间的一致性验证为通过。
本发明实施例的针对修改区块体数据的区块链的被动验证方法,在图4所示实施例的基础上,每个勘误记录中增加了,该勘误记录对应的区块在数据勘误后的所有区块的数据经不可逆算法得到的固定长度的字符串,即第三散列值,并利用该第三散列值对数据勘误后的区块进行真实性及合法性的校验,提高了区块链一致性验证的准确性。
实施例三
图7为本发明实施例提供的针对修改区块体数据的区块链的被动验证系统示意图一,可用于执行如图4所示的方法步骤。其中,与区块链关联存储有一链外勘误表,该链外勘误表中包括多条由关联存储的第一数据在所述区块链中的位置信息和第二数据构成的勘误记录,其中第一数据为区块链中的区块的区块体数据中被勘误的部分数据,且区块链中的第一数据已经被修改为第二数据。如图7所示,该针对修改区块链即有区块体数据的区块链验证系统包括:散列值比较模块710、记录查找模块720和验证确定模块730,所述验证系统依据区块之间的链接关系,依次对区块链中的各区块进行如下操作,其中:
散列值比较模块710,用于将当前区块的区块头数据和区块体数据经不可逆算法生成固定长度的字符串作为第一散列值,并与当前区块的子区块的区块头中存储的第二散列值进行比较;记录查找模块720,用于如果第一散列值与第二散列值不同,则在链外勘误表中,查找是否包含以当前区块的区块体数据中的部分数据作为第一数据所形成的勘误记录;验证确定模块730,用于如果链外勘误表中包含以当前区块的区块体数据中的部分数据作为第一数据所形成的勘误记录,则确定当前区块到其子区块之间的一致性验证通过。
进一步地,勘误记录中还可包括第一数据所在区块对应的第三散列值,该第三散列值为第一数据所在区块被勘误后,将该区块的区块头数据和区块体数据经不可逆算法生成的固定长度的字符串,
相应的,验证确定模块730还用于,在确定链外勘误表中包含以当前区块的区块体数据中的部分数据作为第一数据所形成的勘误记录后,将第一散列值与该勘误记录中的第三散列值进行比较,如果第一散列值与第三散列值相同,则确定当前区块到其子区块之间的一致性验证为通过。
优选的,针对区块链中被勘误过的区块,链外勘误表中存储有该区块对应的至少一条勘误记录,
相应的,验证确定模块730还用于,将第一散列值与该勘误记录中最近生成的勘误记录中的第三散列值进行比较。
进一步地,勘误记录中还可包括:本次勘误记录生成的时间信息;第一数据在区块链中的位置信息可包括:第一数据所在的区块的编号,以及该第一数据在区块的区块体数据中的数据ID。
本实施例中的验证系统还可执行如图6所示的方法步骤。
本发明实施例的针对修改区块体数据的区块链的被动验证系统,在对区块链中的各区块进行验证操作时,先对当前区块中的所有数据经不可逆算法得到第一散列值,并与当前区块的子区块的区块头中存储的第二散列值进行比较;如果第一散列值与第二散列值不同,则进一步在链外勘误表中,查找是否包含以当前区块的区块体数据中的部分数据作为第一数据所形成的勘误记录;如果包含,则强行确定当前区块到其子区块之间的一致性验证通过,从而实现对已进行了区块体数据有修改的区块所构成的区块链的一致性验证。
进一步地,每个勘误记录中还增加了,该勘误记录对应的区块在数据勘误后的所有区块的数据经不可逆算法得到的固定长度的字符串,即第三散列值,本实施例系统利用该第三散列值对数据勘误后的区块进行真实性及合法性的校验,提高了区块链一致性验证的准确性。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (8)
1.一种针对修改区块体数据的区块链的被动验证方法,其特征在于,与所述区块链关联存储有一链外勘误表,所述链外勘误表中包括多条由关联存储的第一数据在所述区块链中的位置信息和第二数据构成的勘误记录,其中所述第一数据为所述区块链中的区块的区块体数据中被勘误的部分数据,且所述区块链中的所述第一数据已经被修改为所述第二数据,
所述验证方法包括:
依据区块之间的链接关系,依次对所述区块链中的各区块进行如下操作:
将当前区块的区块头数据和区块体数据经不可逆算法生成固定长度的字符串作为第一散列值,并与所述当前区块的子区块的区块头中存储的第二散列值进行比较,所述第二散列值为在区块延展过程中,生成当前区块的子区块时,对当前区块的区块头数据和区块体数据经与所述第一散列值同样的不可逆算法生成的固定长度的字符串;
如果所述第一散列值与所述第二散列值不同,则在所述链外勘误表中,查找是否包含以所述当前区块的区块体数据中的部分数据作为所述第一数据所形成的勘误记录;
如果所述链外勘误表中包含以所述当前区块的区块体数据中的部分数据作为所述第一数据所形成的勘误记录,则确定所述当前区块到其子区块之间的一致性验证通过。
2.根据权利要求1所述的验证方法,其特征在于,所述勘误记录中还包括所述第一数据所在区块对应的第三散列值,所述第三散列值为所述第一数据所在区块被勘误后,将该区块的区块头数据和区块体数据经不可逆算法生成的固定长度的字符串,
所述验证方法还包括:
在确定所述链外勘误表中包含以所述当前区块的区块体数据中的部分数据作为所述第一数据所形成的勘误记录后,将所述第一散列值与该勘误记录中的所述第三散列值进行比较,如果所述第一散列值与所述第三散列值相同,则确定所述当前区块到其子区块之间的一致性验证为通过。
3.根据权利要求2所述的验证方法,其特征在于,针对所述区块链中被勘误过的区块,所述链外勘误表中存储有该区块对应的至少一条勘误记录,
所述将所述第一散列值与该勘误记录中的所述第三散列值进行比较包括:
将所述第一散列值与该勘误记录中最近生成的勘误记录中的所述第三散列值进行比较。
4.根据权利要求1-3中任一项所述的验证方法,其特征在于,所述勘误记录中还包括:本次勘误记录生成的时间信息;所述第一数据在所述区块链中的位置信息包括:所述第一数据所在的区块的编号,以及该第一数据在所述区块的区块体数据中的数据ID。
5.一种针对修改区块体数据的区块链的被动验证系统,其特征在于,与所述区块链关联存储有一链外勘误表,所述链外勘误表中包括多条由关联存储的第一数据在所述区块链中的位置信息和第二数据构成的勘误记录,其中所述第一数据为所述区块链中的区块的区块体数据中被勘误的部分数据,且所述区块链中的所述第一数据已经被修改为所述第二数据,
所述验证系统包括:散列值比较模块、记录查找模块和验证确定模块,所述验证系统依据区块之间的链接关系,依次对所述区块链中的各区块进行如下操作,其中:
所述散列值比较模块,用于将当前区块的区块头数据和区块体数据经不可逆算法生成固定长度的字符串作为第一散列值,并与所述当前区块的子区块的区块头中存储的第二散列值进行比较,所述第二散列值为在区块延展过程中,生成当前区块的子区块时,对当前区块的区块头数据和区块体数据经与所述第一散列值同样的不可逆算法生成的固定长度的字符串;
所述记录查找模块,用于如果所述第一散列值与所述第二散列值不同,则在所述链外勘误表中,查找是否包含以所述当前区块的区块体数据中的部分数据作为所述第一数据所形成的勘误记录;
所述验证确定模块,用于如果所述链外勘误表中包含以所述当前区块的区块体数据中的部分数据作为所述第一数据所形成的勘误记录,则确定所述当前区块到其子区块之间的一致性验证通过。
6.根据权利要求5所述的验证系统,其特征在于,所述勘误记录中还包括所述第一数据所在区块对应的第三散列值,所述第三散列值为所述第一数据所在区块被勘误后,将该区块的区块头数据和区块体数据经不可逆算法生成的固定长度的字符串,
所述验证确定模块还用于,
在确定所述链外勘误表中包含以所述当前区块的区块体数据中的部分数据作为所述第一数据所形成的勘误记录后,将所述第一散列值与该勘误记录中的所述第三散列值进行比较,如果所述第一散列值与所述第三散列值相同,则确定所述当前区块到其子区块之间的一致性验证为通过。
7.根据权利要求6所述的验证系统,其特征在于,针对所述区块链中被勘误过的区块,所述链外勘误表中存储有该区块对应的至少一条勘误记录,
所述验证确定模块还用于,
将所述第一散列值与该勘误记录中最近生成的勘误记录中的所述第三散列值进行比较。
8.根据权利要求5-7中任一项所述的验证系统,其特征在于,所述勘误记录中还包括:本次勘误记录生成的时间信息;所述第一数据在所述区块链中的位置信息包括:所述第一数据所在的区块的编号,以及该第一数据在所述区块的区块体数据中的数据ID。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710181138 | 2017-03-24 | ||
CN201710181138X | 2017-03-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107463597A CN107463597A (zh) | 2017-12-12 |
CN107463597B true CN107463597B (zh) | 2020-08-21 |
Family
ID=60546364
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710425460.2A Expired - Fee Related CN107463597B (zh) | 2017-03-24 | 2017-06-08 | 针对修改区块体数据的区块链的被动验证方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107463597B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108512649B (zh) * | 2018-02-09 | 2021-09-10 | 北京欧链科技有限公司 | 区块链的反向哈希链接的处理方法及装置 |
CN109271559B (zh) * | 2018-08-21 | 2024-07-09 | 平安科技(深圳)有限公司 | 对区块链中的数据进行修改的方法、装置及电子设备 |
CN109254999B (zh) * | 2018-09-18 | 2023-03-07 | 百度在线网络技术(北京)有限公司 | 一种区块链的数据处理方法、装置、设备及介质 |
CN109344631B (zh) * | 2018-09-18 | 2020-11-06 | 百度在线网络技术(北京)有限公司 | 区块链的数据修改及区块验证方法、装置、设备和介质 |
CN109345243B (zh) * | 2018-09-18 | 2022-08-05 | 百度在线网络技术(北京)有限公司 | 一种区块链的数据处理和验证方法、装置、设备及介质 |
CN109241192B (zh) * | 2018-09-18 | 2021-06-15 | 百度在线网络技术(北京)有限公司 | 区块链的数据修改及区块验证方法、装置、设备和介质 |
CN109409855B (zh) * | 2018-10-29 | 2022-03-22 | 合肥学院 | 一种元区块及其生成、识别、过滤方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103020026A (zh) * | 2012-11-15 | 2013-04-03 | 无锡永中软件有限公司 | 协同文档处理系统及方法 |
CN106446026A (zh) * | 2016-08-30 | 2017-02-22 | 广联达科技股份有限公司 | 文件管理方法及文件管理系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130086133A1 (en) * | 2011-09-29 | 2013-04-04 | General Electric Company | Method and apparatus for file revision tracking |
-
2017
- 2017-06-08 CN CN201710425460.2A patent/CN107463597B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103020026A (zh) * | 2012-11-15 | 2013-04-03 | 无锡永中软件有限公司 | 协同文档处理系统及方法 |
CN106446026A (zh) * | 2016-08-30 | 2017-02-22 | 广联达科技股份有限公司 | 文件管理方法及文件管理系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107463597A (zh) | 2017-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107463597B (zh) | 针对修改区块体数据的区块链的被动验证方法及系统 | |
CN107391291B (zh) | 修改区块链即有区块体数据的区块链勘误方法及系统 | |
CN107391292B (zh) | 针对保持区块体数据实现勘误的区块链验证方法及系统 | |
US20190327094A1 (en) | Information authentication method and system | |
CN107391557B (zh) | 针对设置链外勘误表的区块链串行查询方法及系统 | |
CN112805694A (zh) | 用于改进的实施区块链的智能合约的系统和方法 | |
CN107423163B (zh) | 整体串行增加区块的区块链的勘误方法及系统 | |
US20210109917A1 (en) | System and Method for Processing a Database Query | |
CN112287034B (zh) | 一种数据同步方法、设备以及计算机可读存储介质 | |
US11888985B2 (en) | Blockchain system, registration terminal, approval terminal, smart contract registration method, and smart contract registration program | |
Verma et al. | Introduction of formal methods in blockchain consensus mechanism and its associated protocols | |
CN107451002B (zh) | 针对修改区块体数据的区块链的主动验证方法及系统 | |
CN107463596B (zh) | 针对设置链外勘误表的区块链并行查询方法及系统 | |
CN112287033B (zh) | 一种数据同步方法、设备以及计算机可读存储介质 | |
US20220114156A1 (en) | Trusted ledger management systems and methods | |
CN107451177B (zh) | 针对增加区块的单个勘误的区块链的查询方法及系统 | |
CN108470039A (zh) | 区块链中的数据处理方法和装置 | |
CN107451007B (zh) | 针对增加区块进行勘误的区块链的验证方法及系统 | |
CN115599794A (zh) | 跨区块链的联合溯源方法及系统 | |
US11973878B2 (en) | Non-fungible token custody chain for multi-component hardware devices | |
CN107451011B (zh) | 并行增加区块的区块链的勘误方法及系统 | |
CN112115098A (zh) | 一种基于HyperLedger和IPFS的溯源系统 | |
Jiang et al. | Assuring the model evolution of protocol software specifications by regression testing process improvement | |
CN107451178B (zh) | 保持区块链即有区块体数据的区块链勘误方法及系统 | |
CN107451179B (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20200821 |