CN109344631B - 区块链的数据修改及区块验证方法、装置、设备和介质 - Google Patents
区块链的数据修改及区块验证方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN109344631B CN109344631B CN201811088679.9A CN201811088679A CN109344631B CN 109344631 B CN109344631 B CN 109344631B CN 201811088679 A CN201811088679 A CN 201811088679A CN 109344631 B CN109344631 B CN 109344631B
- Authority
- CN
- China
- Prior art keywords
- modification
- block
- data
- stamp
- modified
- 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
Images
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
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Bioethics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明实施例公开了一种区块链的数据修改及区块验证方法、装置、设备和介质,该方法包括:获取区块数据修改消息;根据所述区块数据修改消息对目标修改区块中的区块数据进行修改;为所述目标修改区块设置修改戳,其中,所述修改戳用于代替区块标识的验证功能,在所述修改戳被验证通过时,确定为所述目标修改区块被验证通过。本发明实施例的技术方案能够实现对区块链数据的修改,为修改区块链数据提供了一种有效的解决方案。
Description
技术领域
本发明实施例涉及区块链数据处理技术,尤其涉及区块链的数据修改及区块验证方法、装置、设备和介质。
背景技术
区块链为一种去中心化技术,通过多个节点共同存储区块数据,而提高网络的信任度。
现有区块链技术通过全部节点一起存储区块链,来提高事务数据的修改难度,从而防止恶意篡改。但是在特定场景下,区块链中仍然存在数据修改的需求,而现有技术没有提供有效的解决方案。
发明内容
本发明实施例提供了一种区块链的数据修改及区块验证方法、装置、设备和介质,以实现区块数据的修改。
第一方面,本发明实施例提供了一种区块链的数据修改方法,该方法包括:
获取区块数据修改消息;
根据所述区块数据修改消息对目标修改区块中的区块数据进行修改;
为所述目标修改区块设置修改戳,其中,所述修改戳用于代替区块标识的验证功能,在所述修改戳被验证通过时,确定为所述目标修改区块被验证通过。
第二方面,本发明实施例还提供了一种区块链的修改区块验证方法,该方法包括:
向区块链节点发起区块获取请求;
如果识别到区块链节点反馈的区块为修改区块,则获取所述修改区块的修改戳;
对所述修改戳进行验证;
如果验证通过,则确定为所述修改区块验证通过。
第三方面,本发明实施例还提供了一种区块链的数据修改装置,该装置包括:
修改消息获取模块,用于获取区块数据修改消息;
数据修改模块,用于根据所述区块数据修改消息对目标修改区块中的区块数据进行修改;
修改戳设置模块,用于为所述目标修改区块设置修改戳,其中,所述修改戳用于代替区块标识的验证功能,在所述修改戳被验证通过时,确定为所述目标修改区块被验证通过。
第四方面,本发明实施例还提供了一种区块链的修改区块验证装置,该装置包括:
获取请求发起模块,用于向区块链节点发起区块获取请求;
修改戳获取模块,用于如果识别到区块链节点反馈的区块为修改区块,则获取所述修改区块的修改戳;
修改戳验证模块,用于对所述修改戳进行验证;
通过确定模块,用于如果验证通过,则确定为所述修改区块验证通过。
第五方面,本发明实施例还提供了一种电子设备,该设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任意实施例所述的区块链的数据修改方法或区块链的修改区块验证方法。
第六方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所述的区块链的数据修改方法或区块链的修改区块验证方法。
本发明实施例通过获取区块数据修改消息,对目标修改区块中的数据进行修改后为目标修改区块设置修改戳,用于后续对修改区块的验证。解决了现有区块链技术修改事务数据难度大的问题,能够实现对区块链数据的修改,为修改区块链数据提供了一种简单有效的解决方案。
附图说明
图1是本发明实施例一提供的一种区块链的数据修改方法的流程图;
图2是本发明实施例二提供的一种区块链的数据修改方法的流程图;
图3是本发明实施例三提供的一种区块链的数据修改方法的流程图;
图4是本发明实施例四提供的一种区块链的修改区块验证方法的流程图;
图5是本发明实施例五提供的一种区块链的修改区块验证方法的流程图;
图6是本发明实施例六提供的一种区块链的数据修改装置的结构框图;
图7是本发明实施例七提供的一种区块链的修改区块验证装置的结构框图;
图8是本发明实施例八提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种区块链的数据修改方法的流程图,本实施例可适用于对区块链中的数据进行修改的情况,尤其是可对事务数据进行修改。所适用的区块链可以是公有链、私有链或者联盟链。本发明实施例的方案应用于区块链节点,该方法可以由区块链的数据修改装置或电子设备来执行,该装置可采用硬件和/或软件的方式实现,并可集成于承载区块链节点的电子设备中,具体包括如下步骤:
S101,获取区块数据修改消息。
其中,区块数据的修改消息可以是对区块数据进行修改的控制指令,也可以是发起的修改区块数据的事务请求。区块数据修改消息中可以包括修改发起者信息、修改时间、修改的数据信息以及修改戳等内容中的一个或多个。
可选的,在本发明实施例中,获取区块数据修改消息的方式有很多,本实施例对此不进行限定。可以是本机节点接收其他节点发送的区块数据修改消息,其中,其他节点可以是具有超级权限且公信力较强的中心节点;也可以是区块链中任意的一个节点。获取区块数据修改消息也可以是本机节点(即本机节点为发送区块数据修改消息的节点)直接获取其自身生成的区块数据修改消息。
为了提高区块链数据的安全性,防止对区块链数据的恶意修改,可以在获取区块数据修改消息后,先对该区块数据修改消息进行验证,验证成功后接受区块数据修改消息,执行S102对区块数据进行修改。可选的,对区块链数据进行验证的方式有很多,本发明实施例对此不进行限定。例如,若区块数据修改消息中包含修改戳,则可以是通过对修改戳进行修改权限的验证;若中心节点发送区块数据修改消息,则可采用中心节点分发的超级权限公钥对区块数据修改命令进行中心节点身份验证;若任一节点发送区块数据修改消息,则基于共识机制或权限服务器对区块数据修改消息进行修改权限验证等。
可选的,本发明实施例中的区块数据修改消息携带在事务请求的智能合约中。例如,若执行智能合约中的某一代码段用来实现事务请求(即对区块中事务数据的修改),则区块生成节点通过对智能合约中的该代码段的事务请求进行处理,生成事务数据,存储在区块中,以使后续新生成的其他节点都有权利回溯查看什么时候、以什么方式、对哪些节点数据进行了修改。若区块数据修改消息不是携带在事务请求的智能合约中,则可以以广播的形式将区块数据修改的控制指令发送给每一个区块节点,以使其根据该控制指令执行对区块数据的修改。
S102、根据区块数据修改消息对目标修改区块中的区块数据进行修改。
其中,目标修改区块可以是区块链中要进行修改的事务数据所在的区块。在根据区块数据修改消息对目标修改区块中的区块数据进行修改前,可以先根据区块数据修改消息确定目标修改区块,具体的,可以是若区块数据修改消息中包含目标修改区块的区块标识,则可以从该区块数据修改消息中,直接提取目标修改区块的区块标识,将区块链中具有该区块标识的区块作为目标修改区块;若区块数据修改消息中不包含目标修改区块的区块标识,由于要进行区块数据的修改,所以其中必定包含本次要修改的原始事务数据,因此可以从区块数据修改消息中,提取本次要修改的原始事务数据(可以是具体的事务数据,也可以是该目标事务数据对应的事务数据标识),查找存储该原始事务数据的区块,作为目标修改区块。
可选的,由于要对区块链的事务数据进行修改,因此,获取的区块数据修改消息中至少要包括:区块链中本次要修改的原始事务数据和用来替换该原始事务数据的修改事务数据,或者是删除原始事务数据内容的指令等。
示例性的,在本发明实施例中,根据区块数据修改消息对目标修改区块中的区块数据进行修改的过程可以是:在目标修改区块中以要修改的原始事务数据内容或事务数据标识进行查找,找到要修改的原始事务数据后对其进行修改,例如,可以是将新的修改事务数据替换原始事务数据;也可以是根据新的修改事务数据对原始事务数据中的某些参数进行修改;还可以是直接将原始事务数据删除等等。
S103,为目标修改区块设置修改戳,其中,修改戳用于代替区块标识的验证功能,在修改戳被验证通过时,确定为目标修改区块被验证通过。
对目标修改区块中的数据进行修改后,用于验证目标修改区块的区块标识发生了变化,即无法用原来的区块标识进行修改后的目标修改区块的验证,由于目标修改区块的新区块标识在区块链的后续区块中没有进行修改,所以也不能用目标修改区块的新区块标识进行验证。因此,为了保证后续对目标修改区块的验证,需要为该目标修改区块设置修改戳,由修改戳来替换区块标识对目标修改区块进行验证。例如,后续如果发起对目标修改区块的事务数据请求、同步请求或验证请求,目标修改区块中的事务数据经过修改,所以该目标修改区块中的原区块标识和新区块标识都无法用于对该目标修改区块的验证,此时可以通过验证修改戳代替验证区块标识。若修改戳验证通过,则目标修改区块验证通过,无需再进行区块标识的验证。可选的,修改戳中可以包括:修改者、修改数据、修改时间等等中的一个或多个为经加密的原始数据,也可以是对修改者、修改数据、修改时间等等中的一个或多个原始数据进行签名后的加密数据。
可选的,为目标修改区块设置的修改戳可以是区块数据修改消息中包含的,可以直接从区块数据修改消息中获取;也可以是根据区块数据修改消息中的内容按照一定的算法生成的。可选的,确定修改戳可以是在获取区块数据修改消息后即确定,也可以是在为目标修改区块设置修改戳时再确定。
可选的,为目标修改区块设置修改戳包括:在目标修改区块的区块头或事务头中,添加修改戳。具体的,一个区块包括区块头和区块体,在目标修改区块中设置修改戳时,可以是将修改戳添加到区块的区块头中,也可以是添加到区块的区块体中,若添加到区块体时,可以选择添加到区块体中的事务数据的事务头中。其中,事务头可以是事务数据中前面的几个字节的数据。将修改戳添加到区块头可以通过区块头快速确定该区块是否为修改过的区块;将修改戳添加到事务头虽然需要对区块体中的每个事务数据的事务头进行查看,但是可以准确得到区块中哪个事务数据是被修改过的事务数据,因此可以根据实际需求来确定修改戳的设置位置。
本实施例提供了一种区块链的数据修改方法,通过获取区块数据修改消息,对目标修改区块中的数据进行修改后为目标修改区块设置修改戳,用于后续对修改区块的验证。解决了现有区块链技术修改事务数据难度大的问题,能够实现对区块链数据的修改,为修改区块链数据提供了一种简单有效的解决方案。
进一步的,每一个区块的区块头中都存储有该区块的区块标识,由于目标修改区块中的事务数据发生了修改,其区块标识也必定发生了变化,因此上述方法还包括:根据修改后的区块数据对所述目标修改区块的区块标识进行重新计算,并更新所述目标修改区块的区块头中的区块标识。
其中,修改后的区块数据可以包括:区块中的未修改的事务数据和修改的事务数据,或者是区块中修改和未修改的事务数据以及修改戳。具体的,在根据修改后的区块数据对所述目标修改区块的区块标识进行重新计算时,可以是对未修改的事务数据和修改的事务数据按照哈希算法得到各事务数据的事务数据标识,然后再对各事务数据标识按照默克尔树算法生成默克尔树的根,对区块头中已存的默克尔树的根进行更新,最后根据更新后的区块头中的数据,重新确定目标修改区块的区块标识;也可以是将修改戳和事务数据一起按照规定的算法生成区块标识,例如,可以是将修改戳也作为一个事务数据,计算默克尔树的根,进而对区块头中的数据进行更新后重新确定区块标识;也可以是根据事务数据更新区块头中的默克尔树的根后,将修改戳也添加到区块头中,根据区块头中修改戳及其他数据重新确定目标修改区块的区块标识等等。在重新计算了目标修改区块的区块标识后,可以根据新计算得到的区块标识对该目标修改区块的区块头中原有区块标识进行更新。
实施例二
图2为本发明实施例二提供的区块链的数据修改方法的流程图,本实施例以前述实施例为基础,具体给出根据区块数据修改消息确定修改戳以及对修改权限进行验证的具体情况介绍。如图2所示,该方法包括:
S201,获取区块数据修改消息。
S202,根据区块数据修改消息,确定修改戳。
可选的,根据修改消息确定修改戳的方式有很多,本发明实施例对此不进行限定。可以至少包括以下几种:
(1)从区块数据修改消息中,获取修改戳,其中,修改戳为采用身份权限私钥对修改后的区块数据进行签名而获得。
示例性的,针对第(1)种修改戳确定方法,区块数据修改消息中包含了修改戳,此时可以直接从获取的数据修改消息中获取修改戳,简化了确定修改戳的步骤,提高了区块链的数据修改效率。可选的,区块数据修改消息中的包含的修改戳可以是区块数据修改消息发起节点(如中心节点)预先采用身份权限私钥对修改后的区块数据进行签名而获得的,例如,区块数据修改消息发起节点先对区块中的数据进行修改,然后采用身份权限私钥对修改后的区块数据进行加密后得到对应的修改戳。其中,修改后的区块数据可以包括:修改后的区块头、区块体、修改前的区块标识或修改前的事务数据的事务头等中的一个或多个。
可选的,区块数据修改消息中的包含的修改戳也可以是区块数据修改消息发起节点预先采用规定的加密算法(如哈希算法)对修改后的区块数据进行加密后获得的;还可以是对修改消息的修改属性(如发起者、修改数据信息和修改时间的至少一个)通过身份权限私钥或规定的加密算法进行加密后得到后。修改数据信息例如包括:修改事务数据后的区块,重新计算的区块标识。
(2)根据区块数据修改消息的修改属性确定修改戳,其中,修改属性包括发起者、修改数据信息和修改时间的至少一个。
示例性的,当区块数据修改消息中不包含修改戳时,可以根据区块数据修改消息中的其他内容按照约定的方法生成修改戳。本实施例确定修改戳的第(2)种方法就是根据区块数据修改消息中的属性信息来确定修改戳,具体的,根据区块数据修改消息的修改属性确定修改戳时,可以是将修改消息的修改属性中发起者、修改数据信息和修改时间的至少一个直接作为修改戳;也可以是将修改属性中发起者、修改数据信息和修改时间的至少一个进行签名处理的得到修改戳,其中,签名处理可以包括:采用身份权限私钥对修改属性信息进行加密,也可以是采用规定的算法(如哈希算法)对修改属性信息进行加密。本方法将修改属性作为验证修改区块合法性的依据,基于修改发起者的身份及相关信息进行修改区块合法性的验证,准确性更高。
(3)如果区块数据修改消息携带在修改事务请求中,则对修改事务请求进行处理,形成修改事务数据,添加到当前区块中;根据修改事务数据的事务标识,确定修改戳。
示例性的,本实施例确定修改戳的第(3)种方法适用于区块数据修改消息携带在修改事务请求中,本机节点接收到携带区块数据修改消息的事务请求时,可以对该事务请求进行处理,形成修改事务数据,添加到当前区块中,以使后续新生成的其他节点都有权利回溯查看什么时候、以什么方式、对哪些节点数据进行了修改。并根据处理后形成的事务数据的事务标识,确定修改戳。例如,可以是直接将处理后的事务数据的事务标识作为修改戳,也可以是处理后的事务数据的事务标识进行签名后得到修改戳等等。根据修改后的事务数据确定修改戳,可以很好的避免修改戳的作假以及对修改后的数据的恶意篡改等。
S203,根据区块数据修改消息,对修改权限进行验证,如果验证通过则执行修改操作。
为了提高区块链数据修改的安全性,防止出现恶意发布区块数据修改消息对区块链的数据进行修改的情况,在接收到区块数据修改消息后,需要对改区块数据修改消息的修改权限进行验证,只有验证成功,才可执行S203根据区块数据修改消息对目标修改区块中的区块数据进行修改。否则忽略本次获取的区块数据修改消息。
可选的,根据区块数据修改消息,对修改权限进行验证的方法有很多,本实施例对此不进行限定。可以至少包括以下几种:
(1)如果区块数据修改消息为中心节点发起的,则采用中心节点的身份权限公钥对所述区块数据修改消息中的修改戳进行解密;根据修改后的区块数据进行签名,并与解密后的修改戳进行比对;如果比对一致,则修改权限验证通过。
示例性的,针对第(1)种修改权限验证方法,适用于中心节点发起区块数据修改消息,且区块数据修改消息中包含修改戳,或者是已从区块数据修改消息中确定了修改戳的情况。修改戳是中心节点依据其身份权限私钥进行加密后得到的,因此,本机节点可以采用所述中心节点的身份权限公钥对区块数据修改消息中的修改戳进行解密,然后本机节点先根据数据修改消息对区块内的数据进行修改,根据修改后的区块数据进行签名后与之前解密后的修改戳进行比对,若一致,则说明修改权限验证通过,可以接收本次对区块链数据的修改。
可选的,修改后的区块数据可以包括:修改后的区块头、区块体、修改前的区块标识或修改前的事务数据的事务头等中的一个或多个。对修改后的区块数据进行签名可以是采用身份权限私钥对修改后的区块数据进行加密,也可以是采用规定的算法(如哈希算法)对修改后的区块数据进行加密。
(2)请求权限服务器,根据区块数据修改消息的修改属性进行修改权限的验证。
其中,请求权限服务器可以是一个中心化的可以提供修改权限验证功能的服务器,其可以是区块链中的某一个节点;也可以是区块链系统以外的一个独立的服务器节点,请求权限服务器中可以存储有验证修改权限的权限表和/或权限规则等等。
示例性的,本实施例进行修改权限验证的第(2)种方法可以是借助于请求权限服务器,来对区块数据修改消息的修改属性进行修改权限的验证,例如,可以是验证修改属性的修改者是否是权限表中授权的修改者;也可以是依据请求权限服务器中的权限规则验证修改数据信息或修改时间是否有效,如,判断修改属性信息中的修改时间和当前时刻的时间差,若小于预设阈值,则说明修改时间有效。
(3)基于本地共识机制,根据区块数据修改消息的修改属性进行修改权限的验证。
其中,本地共识机制可以是在部署区块链时,就已对权限表和权限规则达成共识,写进了共识算法中,例如,预先达成共识,权限表中的中心节点有哪些;权限规则可以是中心节点在对事务数据进行修改才有权限或中心节点在对应的时间段内有权限等等。
示例性的,本实施例进行修改权限验证的第(3)种方法可以是基于本地共识机制,查找权限表或权限规则来对区块数据修改消息的修改属性进行修改权限验证,使得本机节点在本地就可以完成对修改权限的验证,无需借助其他节点,提高了修改权限验证的效率。
S204,根据区块数据修改消息对目标修改区块中的区块数据进行修改。
S205,为目标修改区块设置修改戳,其中,修改戳用于代替区块标识的验证功能,在修改戳被验证通过时,确定为目标修改区块被验证通过。
需要说明的是,S202确定修改戳的步骤可以是在S201获取区块数据修改消息后即确定;也可以是在S205为目标修改区块设置修改戳前再确定,本发明实施例对此不进行限定。若在对修改权限进行验证之前确定了修改戳或区块数据修改消息中已包含修改戳,则可以采用第(1)种方法通过修改戳来验证修改权限。否则,可以采用第(2)种方法或第(3)种方法通过请求权先服务器或本地共识机制来验证修改权限。
需要说明的是,本实施所述的确定修改戳的方法和对修改权限进行验证的方法不限于上述所介绍的方法,也可以采用其他方式来确定修改戳或对修改权限进行验证。
本实施例提供了一种区块链的数据修改方法,获取了区块数据修改消息后要对其进行权限验证,验证成功后才可对目标修改区块中的数据进行修改,且可以通过多种方式确定为目标修改区块设置的修改戳,便于后续对修改区块的验证。能够根据实际情况灵活的确定修改戳以及对数据修改权限进行验证,在实现对区块链数据修改的同时提高了区块链数据修改的安全性。
实施例三
图3为本发明实施例三提供的一种区块链的数据修改方法的流程图,该方法在上述各实施例的基础上进一步的优化,提供了一优选实例,具体的,如图3所示,该方法包括:
S301,获取区块数据修改消息。
S302,根据区块数据修改消息,识别待修改的目标事务数据是否业务关联数据,若否,执行S303,若是,执行S307。
其中,业务关联数据可以是与后续事务数据具有关联关系的数据,至少包括:账户元素转移数据,例如,涉及账号之间的虚拟物品的转移。非业务关联数据则是与后续事务数据没有关联关系的单独数据,至少包括纯文本数据,例如,用户说的一句话。
示例性的,可以在获取区块数据修改消息时,先识别待修改的目标事务数据是否是业务关联数据,若是,执行S306,拒绝执行所述区块数据修改消息,以防止后续与业务关联数据有关的事务数据存在矛盾,导致交易数据混乱的情况出现;若否,执行S303,继续执行后续的数据修改操作。因为非业务关联数据的修改,不影响后续事务数据的存在,因此,可以对非关联业务数据进行修改操作。
S303,根据区块数据修改消息,对修改权限进行验证,如果验证通过则执行修改操作。
S304,根据区块数据修改消息对目标修改区块中的区块数据进行修改。
S305,为目标修改区块设置修改戳,其中,修改戳用于代替区块标识的验证功能,在修改戳被验证通过时,确定为目标修改区块被验证通过。
S306,在本地记录修改前区块标识和修改后区块标识的对应关系,以及记录修改前事务标识和修改后事务标识的对应关系。
示例性的,本机节点在对目标修改区块中的区块数据修改完成后,可以在本地记录下本次修改前区块标识和修改后的区块标识的对应关系,以及记录修改的事务数据修改前的事务标识和修改后的事务标识之间的对应关系。这样设置的好处在于,便于本机节点对本地存储数据的维护,清楚的记录下区块链中数据的每一次变化,以便后续需要时快速准确的查找到区块链中修改的区块和修改的数据。
可选的,在本实施例中,S306的执行顺序,本申请不进行限定,可以是在S305为目标修改区块设置修改戳后记录,也可以是在S304对目标修改区块中的区块数据修改后记录。
S307,拒绝执行区块数据修改消息。
本实施例提供了一种区块链的数据修改方法,在待修改的目标事务数据不是业务关联数据时才进行后续数据修改工作,对目标修改区块中的数据进行修改设置修改戳,且在本地记录修改前后区块标识的对应关系以及事务标识的对应关系。能够在实现对区块链数据修改的同时,避免了因事务数据的修改造成后续事务数据出现混乱的问题,且通过在本地记录修改前后标识的对应关系,便于后续快速查找到修改区块以及修改的事务数据,进一步完善了修改区块链数据的方案。
实施例四
图4为本发明实施例四提供的一种区块链的修改区块验证方法的流程图,本实施例可适用于对区块链中的修改区块进行验证的情况,尤其是可对区块链中具有修改戳的修改区块进行验证。所适用的区块链可以是公有链、私有链或者联盟链。本发明实施例的方案应用于区块链节点,该方法可以由区块链的修改区块验证装置或电子设备来执行,该装置可采用硬件和/或软件的方式实现,并可集成于承载区块链节点的电子设备中,具体包括如下步骤:
S401、向区块链节点发起区块获取请求。
其中,区块获取请求可以是本机节点可以在需要进行数据查询、验证或同步时,向区块链系统中的各节点发起的区块获取请求。区块获取请求可以包括:请求者、请求时间、要获取的区块标识、要获取的事务数据的事务标识等等。可选的,向区块链系统发送区块获取请求的本机节点可以是区块链中的存储事务数据的普通节点,也可以是不存储事务数据的轻量级节点。
可选的,本发明实施例中,向区块链节点发起区块获取请求包括:向区块链节点发起区块链同步下载请求;或根据待查询区块标识或待查询事务标识,在本地查询对应的修改后区块标识或修改后事务标识,根据所述修改后区块标识或修改后事务标识发起区块获取请求。
具体的,向区块链节点发起获取请求至少包括以下两种情况:(1)当本机节点想要同步下载事务数据时,可以向区块链节点发起区块链同步下载请求。(2)当本机节点想要对其存储的事务数据或区块,进行验证或查询时,由于本地在对事务数据修改后,会记录修改前区块标识和修改后区块标识的对应关系,以及记录修改前事务标识和修改后事务标识的对应关系,因此,可以在本地记录的对应关系中根据要查询的区块标识或事务标识,来判断该事务数据或区块是否被修改过,若没有修改过,可以直接根据该事务标识或区块标识发起区块获取请求;若修改过,可以在本地记录的对应关系中查找该事务标识对应的修改后事务标识,或查找该区块标识对应的修改后的区块标识。根据修改后的事务标识或修改后的区块标识发起区块获取请求。
S402,如果识别到区块链节点反馈的区块为修改区块,则获取修改区块的修改戳。
示例性的,区块链系统中的节点(除本机节点以外的其他节点)接收到本机节点发起的区块获取请求后,会对该区块获取请求处理,向本机节点反馈其所需的区块。本机节点在接收到区块链节点反馈的区块后,先识别该区块是否为修改区块,若不是,则获取该区块的区块标识进行验证,若是,则获取修改区块的修改戳来代替区块标识,以便后续通过修改戳来对该区块进行验证。
可选的,本机节点识别区块链节点反馈的区块为修改区块的方式有很多,本发明实施例对此不进行限定。可以是根据区块链节点反馈的区块的区块标识进行验证;如果验证失败,则在反馈的区块中查询修改戳;如果存在所述修改戳,则确定为修改区块。具体的,可以是将接收到的反馈区块的区块标识按照区块标识验证算法进行验证,如果验证失败,再查看反馈区块中是否存在修改戳,若存在,则确定接收到的反馈区块为修改区块。也可以是根据区块链节点反馈的区块的区块标识在本地记录的修改前区块标识和修改后区块标识的对应关系,查看反馈区块的区块标识是否存在其对应的修改前区块标识或修改后区块标识,若存在,则确定接收到反馈区块为修改区块等等。
可选的,在确定了接收到的反馈区块为修改区块后,从该修改区块中获取该区块的修改戳时,可以从所述修改区块的区块头或事务头中,查找获取所述修改戳。具体的,若修改戳设置在修改区块的区块头中,则可以从所述区块的区块头中查找修改戳,若修改戳设置在修改区块的事务头中,则可以从所述区块的区块体中查找修改戳。
S403,对修改戳进行验证。
获取了区块的修改戳后,由该修改戳代替区块标识的验证功能,来对该修改区块进行验证。可选的,对修改戳进行验证时,若修改戳中的内容为未加密的明文,则可以是直接从修改戳获取相关信息进行验证,例如,从修改戳中获取当时修改区块数据的修改发起者,通过验证该发起者在当时是否具有修改发起权限,来判断该修改戳是否合法。若修改戳中的内容为加密后的数据,则可以获取该修改戳后,采用与加密时相反的算法进行解密后,通过比对解密后的数据来判断修改戳是否合法。
S404,如果验证通过,则确定为修改区块验证通过。
示例性的,如果修改戳合法,则验证通过,进而说明对修改区块的验证通过,可以对该修改区块进行后续操作,若修改戳不合法,则验证不通过,进而需要将该修改区块遗弃或忽略等。
本实施例提供了一种区块链的修改区块验证方法,通过识别区块链节点根据区块获取请求反馈的区块是否为修改区块,若为修改区块则获取该区块的修改戳进行验证,能够在对区块链的数据进行修改后使用修改戳代替区块标识进行验证,为区块数据修改后的验证提供了一种新方案。
实施例五
图5为本发明实施例五提供的区块链的修改区块验证方法的流程图,本实施例以前述实施例为基础,具体给出对所述修改戳进行验证的具体情况介绍。如图5所示,该方法包括:
S501,区块链节点发起区块获取请求。
S502,如果识别到区块链节点反馈的区块为修改区块,则获取修改区块的修改戳。
S503,根据修改戳对修改权限进行验证。
可选的,根据修改戳对修改权限进行验证的方法有很多,本申请对此不进行限定。可以至少包括以下几种:
(1)采用中心节点的身份权限公钥对修改戳进行解密;根据反馈区块的区块数据进行签名,并与解密后的修改戳进行比对;如果比对一致,则修改权限验证通过。
示例性的,该方法适用于修改戳是先对修改后的区块数据进行签名,然后再采用中心节点的身份权限私钥加密后得到的情况,此时对修改戳进行验证,可以采用与生成修改戳相反的过程进行验证,具体的,可以是先采用中心节点的身份权限公钥对修改戳进行解密,然后对反馈区块的区块数据进行签名,具体的签名方式与生成修改戳时对修改区块中的数据进行签名的方式一致,可以是通过身份权限的私钥进行加密,也可以是采用其他加密算法(如哈希算法)进行加密。最后,将签名后的数据与解密后的修改戳进行比对,若一致,则修改权限验证通过。
(2)根据修改戳确定修改属性,修改属性包括发起者、修改数据信息和修改时间的至少一个;请求权限服务器,对修改属性的修改权限进行验证。
示例性的,该方法适用于修改戳是根据区块数据修改信息的修改属性确定的情况,此时在验证修改戳时,可以是先根据修改戳确定修改属性,具体的,可以采用与生成修改戳相反的过程,根据修改戳先确定修改属性,例如,如果修改戳是采用身份权限私钥(或规定的加密算法)对修改消息的修改属性加密后得到的,则根据修改戳确定修改属性时,可以是采用身份权限公钥(或规定的加密算法)对修改戳进行解密得到修改属性;然后请求权限服务器对该修改属性进行验证,具体的,权限服务器可以是依据其中存储的权限表和权限规则来判断修改属性是否验证成功,例如,验证修改属性中的发起者,是否是权限表中的授权发起者;验证该发起者在当时的修改时间是否具有修改权限。
(3)根据修改戳确定修改属性,修改属性包括发起者、修改数据信息和修改时间的至少一个;基于本地共识机制,对修改属性的修改权限进行验证。
示例性的,该方法与上述第(2)种方法类似,都是适用于修改戳是根据区块数据修改消息的修改属性确定的情况,因此与第(2)种方法类似,也是要先通过修改戳确定修改属性,不同的是,本方法在对修改属性进行验证时,不是向权限服务器发请求,借助中心化的权限服务器进行验证。本方法可以是基于部署区块链时达成的共识机制对修改属性的修改权限进行验证,此时区块中的每个节点都可以基于本地共识机制对修改属性的修改权限进行验证,无需再通过请求权限服务器进行验证。更加的方便,且提高了修改属性的修改权限的验证效率。
可选的,在第(2)种方法和第(3)种方法中,如果修改戳为修改事务标识,则根据修改事务标识在区块链中查询修改事务数据;根据修改事务数据确定修改属性。具体的,修改事务数据中记录有修改者、修改时间、修改数据信息等修改属性。当修改戳为修改事务标识时,可以通过修改事务标识在区块链中查找到该事务标识对应的事务数据,然后从该事务数据中获取修改该事务数据时记录的修改属性。
或者,还可以理解的是,如果修改属性包括修改后区块的新区块标识,也可以通过验证修改戳中的区块标识与修改区块的新区块标识是否一致,来进行验证。当然,修改数据信息还可以包括修改前的旧区块标识,一并参与验证。本领域技术人员可以理解,修改戳的可验形式还可以有其他方式。
S504,根据验证结果确定修改戳的验证结果。
示例性的,若根据修改戳对修改权限验证通过,则说明修改戳验证合法,可以继续执行如下操作,若根据修改戳对修改权限验证不通过,则说明修改戳验证不合法,进而确定修改区块验证不合法。
S505,如果验证通过,则确定为修改区块验证通过。
本实施例提供了一种区块链的修改区块验证方法,可以根据修改戳内容以及形成方式的不同,灵活的改变根据修改戳对修改区块则进行验证的方式,能够在实现区块链的数据修改后,灵活的对修改后的区块链数据进行验证,且不影响区块链系统的安全性和正常的工作。
实施例六
图6为本发明实施例六提供的一种区块链的数据修改装置的结构框图,该装置可执行本发明任意实施例所提供的区块链的数据修改方法,具备执行方法相应的功能模块和有益效果。如图6所示,该装置包括:
修改消息获取模块601,用于获取区块数据修改消息;
数据修改模块602,用于根据所述区块数据修改消息对目标修改区块中的区块数据进行修改;
修改戳设置模块603,用于为所述目标修改区块设置修改戳,其中,所述修改戳用于代替区块标识的验证功能,在所述修改戳被验证通过时,确定为所述目标修改区块被验证通过。
本实施例提供了一种区块链的数据修改装置,通过获取区块数据修改消息,对目标修改区块中的数据进行修改后为目标修改区块设置修改戳,用于后续对修改区块的验证。解决了现有区块链技术修改事务数据难度大的问题,能够实现对区块链数据的修改,为修改区块链数据提供了一种简单有效的解决方案。
进一步的,上述装置还包括:
区块标识计算模块,用于根据修改后的区块数据对所述目标修改区块的区块标识进行重新计算,并更新所述目标修改区块的区块头中的区块标识。
进一步的,修改戳设置模块603具体用于,在所述目标修改区块的区块头或事务头中,添加所述修改戳。
进一步的,上述装置还包括:
修改戳获取模块,用于从所述区块数据修改消息中,获取所述修改戳,其中,所述修改戳为采用身份权限私钥对修改后的区块数据进行签名而获得。
进一步的,上述装置还包括:
修改戳确定模块,用于根据所述区块数据修改消息的修改属性确定所述修改戳,其中,所述修改属性包括发起者、修改数据信息和修改时间的至少一个。
进一步的,上述修改戳确定模块,还可以用于如果所述区块数据修改消息携带在修改事务请求中,则对所述修改事务请求进行处理,形成修改事务数据,添加到当前区块中;
根据所述修改事务数据的事务标识,确定所述修改戳。
进一步的,上述装置还包括:
权限验证模块,用于根据所述区块数据修改消息,对修改权限进行验证,如果验证通过则执行修改操作。
进一步的,上述权限验证模块具体用于:
如果所述区块数据修改消息为中心节点发起的,则采用所述中心节点的身份权限公钥对所述区块数据修改消息中的修改戳进行解密;
根据修改后的区块数据进行签名,并与解密后的修改戳进行比对;
如果比对一致,则修改权限验证通过。
进一步的,上述权限验证模块具体用于,请求权限服务器,根据所述区块数据修改消息的修改属性进行修改权限的验证。
进一步的,上述权限验证模块具体用于,基于本地共识机制,根据所述区块数据修改消息的修改属性进行修改权限的验证。
进一步的,上述装置还包括:
数据类型识别模块,用于根据所述区块数据修改消息,识别待修改的目标事务数据是否业务关联数据;
若是,则拒绝执行所述区块数据修改消息;
若否,则执行后续的数据修改操作。
其中,业务关联数据至少包括:账户元素转移数据;非业务关联数据至少包括:纯文本数据。
进一步的,上述装置还包括:
记录模块,用于在本地记录修改前区块标识和修改后区块标识的对应关系,以及记录修改前事务标识和修改后事务标识的对应关系。
实施例七
图7为本发明实施例七提供的一种区块链的修改区块验证装置的结构框图,该装置可执行本发明任意实施例所提供的区块链的修改区块验证方法,具备执行方法相应的功能模块和有益效果。如图7所示,该装置包括:
获取请求发起模块701,用于向区块链节点发起区块获取请求;
修改戳获取模块702,用于如果识别到区块链节点反馈的区块为修改区块,则获取所述修改区块的修改戳;
修改戳验证模块703,用于对所述修改戳进行验证;
通过确定模块704,用于如果验证通过,则确定为所述修改区块验证通过。
本实施例提供了一种区块链的修改区块验证装置,通过识别区块链节点根据区块获取请求反馈的区块是否为修改区块,若为修改区块则获取该区块的修改戳进行验证,能够在对区块链的数据进行修改后使用修改戳代替区块标识进行验证,为区块数据修改后的验证提供了一种新方案。
进一步的,上述获取请求发起模块701具体用于,向区块链节点发起区块链同步下载请求;或
根据待查询区块标识或待查询事务标识,在本地查询对应的修改后区块标识或修改后事务标识,根据所述修改后区块标识或修改后事务标识发起区块获取请求。
进一步的,上述修改戳获取模块702在识别到区块链节点反馈的区块为修改区块时,具体用于:
根据区块链节点反馈的区块的区块标识进行验证;
如果验证失败,则在反馈的区块中查询修改戳;
如果存在所述修改戳,则确定为修改区块。
进一步的,上述修改戳获取模块702在获取所述修改区块的修改戳时,具体用于,从所述修改区块的区块头或事务头中,查找获取所述修改戳。
进一步的,上述修改戳验证模块903包括:
权限验证单元,用于根据所述修改戳对修改权限进行验证;
验证结果确定单元,用于根据验证结果确定所述修改戳的验证结果。
进一步的,上述权限验证单元具体用于:
采用所述中心节点的身份权限公钥对所述修改戳进行解密;
根据反馈区块的区块数据进行签名,并与解密后的修改戳进行比对;
如果比对一致,则修改权限验证通过。
进一步的,上述权限验证单元包括:
修改属性确定子单元,用于根据所述修改戳确定修改属性,所述修改属性包括发起者、修改数据信息和修改时间的至少一个;
修改权限验证子单元,用于请求权限服务器,对所述修改属性的修改权限进行验证。
进一步的,上述权限验证单元包括:
修改属性确定子单元,用于根据所述修改戳确定修改属性,所述修改属性包括发起者、修改数据信息和修改时间的至少一个;
修改权限验证子单元,用于基于本地共识机制,对所述修改属性的修改权限进行验证。
进一步的,上述修改属性确定子单元具体用于:
如果所述修改戳为修改事务标识,则根据所述修改事务标识在区块链中查询修改事务数据;
根据所述修改事务数据确定所述修改属性。
实施例八
图8本发明实施例八提供的一种电子设备的结构示意图。图8示出了适于用来实现本发明实施方式的示例性电子设备80的框图。图8显示的电子设备80仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。如图8所示,该电子设备80以通用计算设备的形式表现,典型的是区块链节点。该电子设备80的组件可以包括但不限于:一个或者多个处理器或者处理单元801,系统存储器802,连接不同系统组件(包括系统存储器802和处理单元801)的总线803。
总线803表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
电子设备80典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备80访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器802可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)804和/或高速缓存存储器805。电子设备80可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统806可以用于读写不可移动的、非易失性磁介质(图8未显示,通常称为“硬盘驱动器”)。尽管图8中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线803相连。系统存储器802可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块807的程序/实用工具808,可以存储在例如系统存储器802中,这样的程序模块807包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块807通常执行本发明所描述的实施例中的功能和/或方法。
电子设备80也可以与一个或多个外部设备806(例如键盘、指向设备、显示器810等)通信,还可与一个或者多个使得用户能与该设备交互的设备通信,和/或与使得该电子设备80能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口811进行。并且,电子设备80还可以通过网络适配器812与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图8所示,网络适配器812通过总线803与电子设备80的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备80使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元801通过运行存储在系统存储器802中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的区块链的数据修改方法或者是区块链的修改区块验证方法。
实施例九
本发明实施例九还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时可实现上述实施例所述的区块链的数据修改方法或者是区块链的修改区块验证方法。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于:电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
上述实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员应该明白,上述的本发明实施例的各模块或各操作可以用通用的计算装置来实现,它们可以集中在单个计算装置上,或者分布在多个计算装置所组成的网络上,可选地,他们可以用计算机装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或操作制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件的结合。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间的相同或相似的部分互相参见即可。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (24)
1.一种区块链的数据修改方法,其特征在于,包括:
获取区块数据修改消息;
根据所述区块数据修改消息对目标修改区块中的区块数据进行修改;
为所述目标修改区块设置修改戳,其中,所述修改戳用于代替区块标识的验证功能,在所述修改戳被验证通过时,确定为所述目标修改区块被验证通过;
其中,为所述目标修改区块设置修改戳包括:
在所述目标修改区块的区块头或事务头中,添加所述修改戳。
2.根据权利要求1所述的方法,其特征在于,还包括:
根据修改后的区块数据对所述目标修改区块的区块标识进行重新计算,并更新所述目标修改区块的区块头中的区块标识。
3.根据权利要求1所述的方法,其特征在于,为所述目标修改区块设置修改戳之前,还包括:
从所述区块数据修改消息中,获取所述修改戳,其中,所述修改戳为采用身份权限私钥对修改后的区块数据进行签名而获得。
4.根据权利要求1所述的方法,其特征在于,获取区块数据修改消息之后,还包括:
根据所述区块数据修改消息的修改属性确定所述修改戳,其中,所述修改属性包括发起者、修改数据信息和修改时间的至少一个。
5.根据权利要求1所述的方法,其特征在于,获取区块数据修改消息之后,还包括:
如果所述区块数据修改消息携带在修改事务请求中,则对所述修改事务请求进行处理,形成修改事务数据,添加到当前区块中;
根据所述修改事务数据的事务标识,确定所述修改戳。
6.根据权利要求1-5任一所述的方法,其特征在于,获取区块数据修改消息之后,还包括:
根据所述区块数据修改消息,对修改权限进行验证,如果验证通过则执行修改操作。
7.根据权利要求6所述的方法,其特征在于,根据所述区块数据修改消息,对修改权限进行验证包括:
如果所述区块数据修改消息为中心节点发起的,则采用所述中心节点的身份权限公钥对所述区块数据修改消息中的修改戳进行解密;
根据修改后的区块数据进行签名,并与解密后的修改戳进行比对;
如果比对一致,则修改权限验证通过。
8.根据权利要求6所述的方法,其特征在于,根据所述区块数据修改消息,对修改权限进行验证包括:
请求权限服务器,根据所述区块数据修改消息的修改属性进行修改权限的验证。
9.根据权利要求6所述的方法,其特征在于,根据所述区块数据修改消息,对修改权限进行验证包括:
基于本地共识机制,根据所述区块数据修改消息的修改属性进行修改权限的验证。
10.根据权利要求1所述的方法,其特征在于,获取区块数据修改消息之后,还包括:
根据所述区块数据修改消息,识别待修改的目标事务数据是否业务关联数据;
若是,则拒绝执行所述区块数据修改消息;
若否,则执行后续的数据修改操作。
11.根据权利要求10所述的方法,其特征在于,业务关联数据至少包括:账户元素转移数据;非业务关联数据至少包括:纯文本数据。
12.根据权利要求1所述的方法,其特征在于,还包括:
在本地记录修改前区块标识和修改后区块标识的对应关系,以及记录修改前事务标识和修改后事务标识的对应关系。
13.一种区块链的修改区块验证方法,其特征在于,包括:
向区块链节点发起区块获取请求;
如果识别到区块链节点反馈的区块为修改区块,则获取所述修改区块的修改戳;
对所述修改戳进行验证;
如果验证通过,则确定为所述修改区块验证通过;
其中,获取所述修改区块的修改戳包括:
从所述修改区块的区块头或事务头中,查找获取所述修改戳。
14.根据权利要求13所述的方法,其特征在于,向区块链节点发起区块获取请求包括:
向区块链节点发起区块链同步下载请求;或
根据待查询区块标识或待查询事务标识,在本地查询对应的修改后区块标识或修改后事务标识,根据所述修改后区块标识或修改后事务标识发起区块获取请求。
15.根据权利要求13所述的方法,其特征在于,识别到区块链节点反馈的区块为修改区块包括:
根据区块链节点反馈的区块的区块标识进行验证;
如果验证失败,则在反馈的区块中查询修改戳;
如果存在所述修改戳,则确定为修改区块。
16.根据权利要求13所述的方法,其特征在于,对所述修改戳进行验证包括:
根据所述修改戳对修改权限进行验证;
根据验证结果确定所述修改戳的验证结果。
17.根据权利要求16所述的方法,其特征在于,根据所述修改戳对修改权限进行验证包括:
采用中心节点的身份权限公钥对所述修改戳进行解密;
根据反馈区块的区块数据进行签名,并与解密后的修改戳进行比对;
如果比对一致,则修改权限验证通过。
18.根据权利要求16所述的方法,其特征在于,根据所述修改戳对修改权限进行验证包括:
根据所述修改戳确定修改属性,所述修改属性包括发起者、修改数据信息和修改时间的至少一个;
请求权限服务器,对所述修改属性的修改权限进行验证。
19.根据权利要求16所述的方法,其特征在于,根据所述修改戳对修改权限进行验证包括:
根据所述修改戳确定修改属性,所述修改属性包括发起者、修改数据信息和修改时间的至少一个;
基于本地共识机制,对所述修改属性的修改权限进行验证。
20.根据权利要求18或19所述的方法,其特征在于,根据所述修改戳确定修改属性包括:
如果所述修改戳为修改事务标识,则根据所述修改事务标识在区块链中查询修改事务数据;
根据所述修改事务数据确定所述修改属性。
21.一种区块链的数据修改装置,其特征在于,包括:
修改消息获取模块,用于获取区块数据修改消息;
数据修改模块,用于根据所述区块数据修改消息对目标修改区块中的区块数据进行修改;
修改戳设置模块,用于为所述目标修改区块设置修改戳,其中,所述修改戳用于代替区块标识的验证功能,在所述修改戳被验证通过时,确定为所述目标修改区块被验证通过;
其中,所述修改戳设置模块具体用于,在所述目标修改区块的区块头或事务头中,添加所述修改戳。
22.一种区块链的修改区块验证装置,其特征在于,包括:
获取请求发起模块,用于向区块链节点发起区块获取请求;
修改戳获取模块,用于如果识别到区块链节点反馈的区块为修改区块,则获取所述修改区块的修改戳;
修改戳验证模块,用于对所述修改戳进行验证;
通过确定模块,用于如果验证通过,则确定为所述修改区块验证通过;
其中,所述修改戳获取模块在获取所述修改区块的修改戳时,具体用于,从所述修改区块的区块头或事务头中,查找获取所述修改戳。
23.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-12中任一所述的区块链的数据修改方法,或实现如权利要求13-20中任一所述的区块链的修改区块验证方法。
24.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-12中任一所述的区块链的数据修改方法,或实现如权利要求13-20中任一所述的区块链的修改区块验证方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811088679.9A CN109344631B (zh) | 2018-09-18 | 2018-09-18 | 区块链的数据修改及区块验证方法、装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811088679.9A CN109344631B (zh) | 2018-09-18 | 2018-09-18 | 区块链的数据修改及区块验证方法、装置、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109344631A CN109344631A (zh) | 2019-02-15 |
CN109344631B true CN109344631B (zh) | 2020-11-06 |
Family
ID=65305874
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811088679.9A Active CN109344631B (zh) | 2018-09-18 | 2018-09-18 | 区块链的数据修改及区块验证方法、装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109344631B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110008665B (zh) * | 2019-03-05 | 2024-02-06 | 深圳前海微众银行股份有限公司 | 一种区块链的权限控制方法及装置 |
CN110086780B (zh) * | 2019-03-26 | 2021-11-02 | 北京百度网讯科技有限公司 | 基于以太坊的被篡改交易的处理方法、装置及存储介质 |
CN110245955A (zh) * | 2019-05-27 | 2019-09-17 | 众安信息技术服务有限公司 | 一种基于智能合约的区块链账户属性管理方法及系统 |
CN111339191B (zh) * | 2020-02-20 | 2023-05-26 | 百度在线网络技术(北京)有限公司 | 一种区块链的数据存储方法、装置、设备和介质 |
CN113312362B (zh) * | 2020-02-26 | 2024-07-19 | 百度在线网络技术(北京)有限公司 | 区块链的数据修改方法、装置、设备和存储介质 |
CN111783049A (zh) * | 2020-06-30 | 2020-10-16 | 北京海益同展信息科技有限公司 | 一种基于区块链的用户信息处理方法及系统 |
CN113378213B (zh) * | 2021-04-20 | 2022-06-21 | 华南农业大学 | 一种可记录可追朔的区块链安全删改方法 |
CN115226103A (zh) * | 2021-04-21 | 2022-10-21 | 华为技术有限公司 | 一种通信方法及装置 |
CN113836503A (zh) * | 2021-08-10 | 2021-12-24 | 中标慧安信息技术股份有限公司 | 基于区块链的物联网数据修改状态记录方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106650344A (zh) * | 2016-12-07 | 2017-05-10 | 清华大学 | 一种基于区块链的有第三方认证的数据存储方法 |
CN107391291A (zh) * | 2017-03-24 | 2017-11-24 | 北京瑞卓喜投科技发展有限公司 | 修改区块链即有区块体数据的区块链勘误方法及系统 |
CN107463597A (zh) * | 2017-03-24 | 2017-12-12 | 北京瑞卓喜投科技发展有限公司 | 针对修改区块体数据的区块链的被动验证方法及系统 |
CN107967557A (zh) * | 2017-11-17 | 2018-04-27 | 西安电子科技大学 | 基于区块链的可修改信誉评价系统及方法、电子支付系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9967088B2 (en) * | 2016-05-23 | 2018-05-08 | Accenture Global Solutions Limited | Rewritable blockchain |
-
2018
- 2018-09-18 CN CN201811088679.9A patent/CN109344631B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106650344A (zh) * | 2016-12-07 | 2017-05-10 | 清华大学 | 一种基于区块链的有第三方认证的数据存储方法 |
CN107391291A (zh) * | 2017-03-24 | 2017-11-24 | 北京瑞卓喜投科技发展有限公司 | 修改区块链即有区块体数据的区块链勘误方法及系统 |
CN107463597A (zh) * | 2017-03-24 | 2017-12-12 | 北京瑞卓喜投科技发展有限公司 | 针对修改区块体数据的区块链的被动验证方法及系统 |
CN107967557A (zh) * | 2017-11-17 | 2018-04-27 | 西安电子科技大学 | 基于区块链的可修改信誉评价系统及方法、电子支付系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109344631A (zh) | 2019-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109344631B (zh) | 区块链的数据修改及区块验证方法、装置、设备和介质 | |
CN108810006B (zh) | 资源访问方法、装置、设备及存储介质 | |
US10439804B2 (en) | Data encrypting system with encryption service module and supporting infrastructure for transparently providing encryption services to encryption service consumer processes across encryption service state changes | |
US10235539B2 (en) | Server device, recording medium, and concealed search system | |
CN109241192B (zh) | 区块链的数据修改及区块验证方法、装置、设备和介质 | |
CN109981297B (zh) | 区块链处理方法、装置、设备及存储介质 | |
CN107948152B (zh) | 信息存储方法、获取方法、装置及设备 | |
CN111800268A (zh) | 用于区块链背书的零知识证明 | |
US8621036B1 (en) | Secure file access using a file access server | |
US12052259B2 (en) | Blockchain folding | |
US20100005318A1 (en) | Process for securing data in a storage unit | |
US9288054B2 (en) | Method and apparatus for authenticating and managing application using trusted platform module | |
CN101443774A (zh) | 优化的完整性验证过程 | |
US20240061790A1 (en) | Locally-stored remote block data integrity | |
CN109213901B (zh) | 一种区块链的数据同步方法、装置、设备及介质 | |
KR102137122B1 (ko) | 보안 체크 방법, 장치, 단말기 및 서버 | |
CN107040520B (zh) | 一种云计算数据共享系统及方法 | |
CN110740038B (zh) | 区块链及其通信方法、网关、通信系统和存储介质 | |
US7234060B1 (en) | Generation and use of digital signatures | |
CN113610526A (zh) | 一种数据信任方法、装置、电子设备及存储介质 | |
CN109614774B (zh) | 一种基于sgx的程序控制流混淆方法及系统 | |
CN113591121A (zh) | 一种资源访问权限的配置方法、装置、设备和存储介质 | |
CN112733180A (zh) | 数据查询方法、装置和电子设备 | |
CN108881261A (zh) | 一种容器环境下基于区块链技术的服务认证方法及系统 | |
CN109918451B (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 |