CN114331443B - 一种删除区块链数据的方法及装置 - Google Patents
一种删除区块链数据的方法及装置 Download PDFInfo
- Publication number
- CN114331443B CN114331443B CN202210231190.2A CN202210231190A CN114331443B CN 114331443 B CN114331443 B CN 114331443B CN 202210231190 A CN202210231190 A CN 202210231190A CN 114331443 B CN114331443 B CN 114331443B
- Authority
- CN
- China
- Prior art keywords
- transaction
- block
- target
- substitute
- signature
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种删除区块链数据的方法及装置。所述方法根据目标交易生成删除请求交易,其中,所述目标交易为待删除交易;当删除请求交易所在的区块被共识验证后,生成替代交易;根据替代交易和目标区块生成替代区块和删除执行交易;当删除执行交易所在的区块被共识验证后,根据删除执行交易删除目标交易、以及将目标区块替换成替代区块。所述方法实现基于共识对一个已经上链的交易进行彻底删除,不影响其他无关交易,维护了区块之间的指向关系,从而保证区块链的不可篡改特性。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及一种删除区块链数据的方法及装置。
背景技术
区块链是由区块链网络中所有节点共同参与维护的去中心化分布式数据库系统,由一系列基于密码学方法产生的数据块组成,每个数据块即为区块链中的一个区块。根据产生时间的先后顺序,区块被有序的连接在一起,形成一个数据链条,被形象的称为区块链。区块链具有不可篡改、不可伪造和完全可追溯的安全特性。每个区块包括区块头和区块体,区块头中记录了区块的关键信息,包括前一个区块的区块哈希值、默克尔(Merkle)根值、区块签名以及其他信息;区块体由一个个打包好的交易组成;其中,交易是存储在区块链中的实际数据。区块的区块哈希值与区块体中的交易密切相关。如果区块体中的交易发生了变化,对应的区块哈希值也会发生变化。其中,区块链的不可篡改性的基础是在一个区块中附带前一个区块的区块哈希值,同时,使用共识算法来对区块进行合法性校验。
在实际应用过程中,存在着需要删除区块链上的交易数据的需求。例如某一个区块链中的存在违反法律规定的交易数据,则监管人员需要将其进行删除,以保证对应区块链的合法性,避免造成不良的影响。
目前,通过生成一个新的交易用于标记待删除的交易的数据被删除,但这只是从逻辑上对待删除的交易进行了删除,具体的数据还存在于区块链中,不能将待删除的交易彻底地删除。另外一种方法通过生成一个新的交易用于将待删除的交易标记为删除,并将待删除的交易进行删除。这种方法能将待删除的交易进行彻底删除,但是区块中的数据也随之改变,区块的区块哈希值也随之发生变化,无法根据区块本身对区块进行合法性校验,破坏了区块链的不可篡改特性。
由此可见,目前亟需一种可以将区块链数据进行彻底删除,还能保证区块链的不可篡改特性的方法及装置。
发明内容
为了实现对区块链数据进行彻底删除,同时保证区块链的不可篡改的特性,本申请通过以下方面提供了一种删除区块链数据的方法及装置。
本申请的第一方面提供了一种删除区块链数据的方法,包括:根据目标交易生成删除请求交易,其中,目标交易为待删除交易,删除请求交易包括目标交易的交易哈希值、目标区块的区块哈希值、以及超过预设比例节点对目标交易的交易哈希值的签名,目标区块是目标交易所在的区块;
当删除请求交易所在的区块通过共识验证时,根据删除请求交易生成替代交易,其中,替代交易包括目标交易的交易哈希值、作废交易列表、以及超过预设比例节点对替代交易的签名;
根据替代交易和目标区块生成替代区块和删除执行交易;其中,替代区块包括目标区块的区块哈希值、替代交易、以及超过预设比例节点对替代区块的签名;删除执行交易包括替代交易、以及超过预设比例节点对替代区块的签名;
当删除执行交易所在的区块通过共识验证时,根据删除执行交易删除目标交易、以及将目标区块替换成替代区块。
可选的,作废交易列表包括目标区块到删除请求交易所在的区块之间的待作废交易,其中,待作废交易是指与目标交易访问相同状态数据的交易;
在根据删除执行交易删除目标交易、以及将目标区块替换成替代区块之后,所述方法还包括:根据作废交易列表更新所有节点的本地世界状态。
可选的,根据作废交易列表更新所有节点的本地世界状态,包括:
从创世区块开始遍历,直至当前区块,执行除了目标交易和作废交易列表之外的所有交易。
可选的,超过预设比例节点对替代交易的签名通过以下方式获取:
向所有节点发送对替代交易的第一共识验证请求;
接收节点反馈的与第一共识验证请求对应的第一共识结果;第一共识结果中包含对替代交易的签名;
其中,节点通过以下方式判断是否反馈第一共识结果:
根据删除请求交易验证作废交易列表是否正确,以及验证删除请求交易中对目标交易的交易哈希值的签名数量是否超过预设数量;
若验证通过,则反馈第一共识结果。
可选的,根据替代交易和目标区块,生成替代区块,包括:
获取目标区块的区块体和区块头;
将目标区块的区块体中的目标交易替换成替代交易,得到替代区块的区块体;
复制目标区块的区块头中除了区块签名之外的数据,得到替代区块的区块头;
将目标区块的区块哈希值写入至替代区块的区块头中;
获取超过预设比例节点对替代区块的签名,并写入至替代区块的区块头中;
生成替代区块。
可选的,获取超过预设比例节点对替代区块的签名,包括:
向所有节点发送对替代区块的第二共识验证请求;
接收节点反馈的与第二共识验证请求对应的第二共识结果;第二共识结果中包含对替代区块的签名;
其中,节点通过以下方式判断是否反馈第二共识结果:
根据替代交易中的目标交易的交易哈希值验证替代区块中的默克尔根值是否正确、以及验证替代交易中对替代交易的签名的数量是否超过预设数量;
若验证通过,则反馈第二共识结果。
可选的,替代区块的区块高度等于目标区块的区块高度。
本申请第二方面提供了一种删除区块链数据的装置,所述装置设置在区块链网络和用户终端之间,用于实现本申请第一方面所述的删除区块链数据的方法,所述装置包括:删除请求生成模块、替代交易生成模块、删除准备模块以及删除执行模块;其中,
删除请求生成模块被配置为:根据目标交易生成删除请求交易,其中,目标交易为待删除交易,删除请求交易包括目标交易的交易哈希值、目标区块的区块哈希值、以及超过预设比例节点对目标交易的交易哈希值的签名,目标区块是目标交易所在的区块;
替代交易生成模块被配置为:当删除请求交易所在的区块通过共识验证时,根据删除请求交易生成替代交易,其中,替代交易包括目标交易的交易哈希值、作废交易列表、以及超过预设比例节点对替代交易的签名;
删除准备模块被配置为:根据替代交易和目标区块生成替代区块和删除执行交易;其中,替代区块包括目标区块的区块哈希值、替代交易、以及超过预设比例节点对替代区块的签名;删除执行交易包括替代交易、以及超过预设比例节点对替代区块的签名;
删除执行模块被配置为:当删除执行交易所在的区块通过共识验证时,根据删除执行交易删除目标交易、以及将目标区块替换成替代区块。
可选的,作废交易列表包括目标区块到删除请求交易所在的区块之间的待作废交易,其中,待作废交易是指与目标交易访问相同状态数据的交易;
删除执行模块还被配置为:当删除执行交易所在的区块通过共识验证时,根据作废交易列表更新所有节点的本地世界状态。
可选的,删除准备模块还被配置为:
获取目标区块的区块体和区块头;
将目标区块的区块体中的目标交易替换成替代交易,得到替代区块的区块体;
复制目标区块的区块头中除了区块签名之外的数据,得到替代区块的区块头;
将目标区块的区块哈希值写入至替代区块的区块头中;
获取超过预设比例节点对替代区块的签名,并写入至替代区块的区块头中;
生成替代区块。
本申请提供了一种删除区块链数据的方法及装置。所述方法根据目标交易生成删除请求交易,其中,所述目标交易为待删除交易;当删除请求交易所在的区块被共识验证后,生成替代交易;根据替代交易和目标区块生成替代区块和删除执行交易;当删除执行交易所在的区块被共识验证后,根据删除执行交易删除目标交易、以及将目标区块替换成替代区块。所述方法实现基于共识对一个已经上链的交易进行彻底删除,不影响其他无关交易,维护了区块之间的指向关系,从而保证区块链的不可篡改特性。
附图说明
图1为一个已上链区块的数据结构示意图;
图2为区块头中默克尔根值的计算过程示意图;
图3为本申请实施例提供的一种删除区块链数据的方法的工作流程示意图;
图4为应用本申请实施例提供的一种删除区块链数据的方法的数据转换过程的示意图;
图5为本申请实施例提供的一种删除区块链数据的装置的结构示意图。
具体实施方式
为便于对申请的技术方案进行说明,以下首先在对本申请所涉及到的一些概念进行说明。首先,区块链技术领域中的世界状态可以看成是所有节点从同一个创世状态开始,依次运行达成共识的区块内的交易,使得本地数据状态按照相同的操作序列不断变化,实现所有节点在执行完相同编号区块内的交易后,完全一致的数据状态。世界状态的具体表现形式是键值对集合,每一个状态数据是一个键值对<key, value>。其次,区块链技术中的交易本质上是对世界状态的增删改查,也就是对键值对<key, value>的增删改查。一个交易可以对一个键值对进行增删改查,也可以对多个键值对进行增删改查。
图1示例性给出了一个已上链区块的数据结构示意图。参见图1,一个区块包含区块头和区块体,所述区块头中包含前一个区块的区块哈希值、默克尔根值、区块签名以及其它信息,区块体中包含交易列表,每个交易包含世界状态修改记录列表和对应的交易签名,世界状态修改记录包括针对状态数据修改前的键值对<key,value1>和修改后的键值对信息<key,value2>。区块哈希值是根据区块头中的除了区块签名之外的字段的数据进行哈希计算得到的。而区块头中的默克尔根值由区块体中各个交易的交易哈希值计算得来。
图2示例性地给出了区块头中默克尔根值的计算过程示意图。参见图2,一个区块中包括四笔交易,首先,计算得到交易1的交易哈希值H1;其中,计算H1时只使用其中的交易数据,不包括交易签名;依次计算得到交易2的交易哈希值H2,交易3的交易哈希值H3,交易4的交易哈希值H4;然后对H1和H2的和进行哈希计算,得到哈希值N0,对H3和H4的和进行哈希计算,得到哈希值N1;最后对N0和N1的和进行哈希计算,得到该区块的默克尔根值。从图2中可以看出,当区块中的一个交易数据发生改变,对应的交易哈希和对应的默克尔根值都会发生变化,进一步的,区块哈希值也会发生变化。在区块链中,通过交易哈希值和区块哈希值的唯一性保证区块链的不可篡改性。
为了实现对区块链数据进行彻底删除,同时保证区块链的不可篡改的特性,本申请通过以下实施例提供了一种删除区块链数据的方法及装置。
参见图3,是本申请第一实施例提供的一种删除区块链数据的方法的工作流程示意图。所述方法可以应用在区块链网络和用户终端之间的装置上。区块链网络中的节点根据用户终端发送的删除请求,使用所述装置实现本实施例提供的方法,以对区块链数据进行彻底删除,同时保证区块链的不可篡改的特性。如图1所示,本实施例提供的所述方法包括步骤101-104。
步骤101,根据目标交易生成删除请求交易。其中,目标交易为待删除交易,删除请求交易包括目标交易的交易哈希值、目标区块的区块哈希值、以及超过预设比例节点对目标交易的交易哈希值的签名,目标区块是目标交易所在的区块。
参见图4,示例性地给出了一个应用本实施例提供的所述方法的数据转换过程的示意图。如图4所示,区块A是目标区块,交易a是目标交易,即待删除的交易。交易a具体包括:新增状态数据<key,value>、将状态数据<key1,value1>修改为<key1,value2>、删除状态数据<key2,value2>。交易c是删除请求交易,用于声明要删除交易a;其中交易c中包含三个关键信息:交易a的交易哈希值、区块A的区块哈希值以及超过预设比例节点对交易a的交易哈希值的签名。在本实施例中,预设比例设为2/3,即超过2/3的节点对需要共识的交易或者区块反馈了签名,表示该交易或者区块通过了共识验证。获取超过2/3节点对交易a的交易哈希值的签名表示区块链网路上的大多数节点都认可了要删除交易a的请求。进一步的,对交易a的交易哈希值的签名需要运维节点单独跟其它节点去申请。当节点同意删除交易a,则反馈对交易a的交易哈希值的签名给运维节点。运维节点生成交易c,并将交易c发送到当前区块链网络中。
在一种实现方式中,可以是区块链运维节点根据具体情况产生删除交易a的需求,进一步根据交易a生成交易c。在另外一种实现方式中,也可以是区块链中的任一个节点接收到用户终端发送的删除交易a的需求,进一步根据交易a生成交易c,也可以是用户终端根据交易a生成交易c。
需要说明的是,交易c中还包括对交易c的签名;对交易c的签名通过当前区块链网络中的一般交易签名生成规则获取。
步骤102,当删除请求交易所在的区块通过共识验证时,根据删除请求交易生成替代交易。其中,替代交易包括目标交易的交易哈希值、作废交易列表、以及超过预设比例节点对替代交易的签名。
在图4中,交易aa是替代交易。交易c在区块C中被共识确认,运维节点根据交易c生成替代交易aa。交易aa包括交易a的交易哈希值、作废交易列表、以及超过预设比例节点对交易aa的签名。
进一步,作废交易列表包括目标区块到删除请求交易所在的区块之间的待作废交易,其中,所述待作废交易是指与所述目标交易访问(增删改查)相同状态数据的交易。如图4所示,作废交易列表包括从区块A到区块C之间(包括区块A和区块C)所有与交易a访问了同一个状态数据的交易,即与键值对<key,value>、<key1,value1>、<key1,value2>以及<key2,value2>相关的交易。示例性的,区块B在区块A至区块C之间,其中,区块B中的交易b、区块C中的交易c1与交易a访问了同一个状态数据,交易b和交易c1就是所述的待作废交易,写入作废交易列表。作废交易列表中数据也是键值对的形式,如图4中所示,作废交易列表包括<hB,交易b的交易哈希值>和<hC,交易c1的交易哈希值>;其中hB、hC分别是区块B和区块C的区块高度。
需要说明的是,如果区块A到区块C之间,只有交易a,没有发生与交易a访问同一个状态数据的交易,则作废交易列表为空。
区块高度,指的是区块的编号,换句话说,就是一个区块与创世区块之间的块数。创世区块,顾名思义,就是一条区块链上的第一个区块。需要注意的是,创世区块的区块高度是0,而不是1。查询某个区块信息的时候,除了通过它的区块哈希值,还可以通过它的区块高度进行查询。
进一步的,通过步骤201和202获取超过预设比例节点对替代交易的签名。
步骤201,向所有节点发送对所述替代交易的第一共识验证请求;其中,第一共识验证请求是申请对交易aa的签名。
步骤202,接收节点反馈的与第一共识验证请求对应的第一共识结果;其中,第一共识结果中包含对替代交易的签名。其中,节点通过以下方式判断是否反馈所述第一共识结果:根据删除请求交易验证作废交易列表是否正确,以及验证删除请求交易中对目标交易的交易哈希值的签名数量是否超过预设数量。若验证通过,则反馈所述第一共识结果。其中预设数量是区块链网络中节点的数量乘以预设比例。
在一种实现方式中,运维节点通过链下的方式向各个节点申请对交易aa的签名。节点根据交易c来检查交易aa中的作废交易列表是否正确,以及节点会检查交易c中对交易a的交易哈希值的签名是否满足超过大部分节点的数量要求,如果检查通过,则节点反馈签名给运维节点。
步骤103,根据替代交易和目标区块生成替代区块和删除执行交易。其中,替代区块包括目标区块的区块哈希值、替代交易、以及超过预设比例节点对替代区块的签名;删除执行交易包括替代交易、以及超过预设比例节点对替代区块的签名。
进一步的,根据替代交易和目标区块生成替代区块,包括步骤301-305。
步骤301,获取目标区块的区块体和区块头。
步骤302,将目标区块的区块体中的删除交易替换成替代交易,得到替代区块的区块体。
步骤303,复制目标区块的区块头中除了区块签名之外的数据,得到替代区块的区块头。
步骤304,将目标区块的区块哈希值写入至替代区块的区块头中。
步骤305,获取超过预设比例节点对替代区块的签名,并写入至替代区块的区块头中。
步骤306,生成替代区块。
在一种实现方式中,先读取区块A的区块体和区块头,将区块A的区块体中的交易a替换成交易aa,得到区块A1的区块体;再复制区块A的区块头中除了区块签名之外的所有数据, 得到区块A1的区块头,并将区块A的区块哈希值显式写入到区块A1的区块头中;向所有节点去申请对区块A1的签名,获取超过2/3节点对区块A1的签名,并写入至区块A1的区块头中,生成区块A1。最终生成的区块A1的数据结构如图4所示。从图4中可以看出,区块A1是一个新的区块,与区块A的区别在于,将交易a替换成交易aa,在区块A1的区块头中显式记录区块A的区块哈希值和超过2/3节点对区块A1的签名。其中超过2/3节点对区块A1的签名表示区块A1在当前区块链网络中得到了共识。
进一步的,获取超过预设比例节点对替代区块的签名,包括步骤401和步骤402。
步骤401,向所有节点发送对替代区块的第二共识验证请求。
步骤402,接收节点反馈的与第二共识验证请求对应的第二共识结果;第二共识结果中包含对替代区块的签名。其中,节点通过以下方式判断是否反馈第二共识结果:根据替代交易中的目标交易的交易哈希值进行计算以验证替代区块中的默克尔根值是否正确、以及验证替代交易中对替代交易的签名的数量是否超过预设数量;若验证通过,则反馈第二共识结果。其中预设数量是区块链网络中节点的数量乘以预设比例。
在一种实现方式中,运维节点通过链下的方式向各个节点申请对替代区块A1的签名。在对替代区块A1进行共识验证时,首先要验证区块A1的区块头中的默克尔根值是否正确。因为交易aa中包含交易a的交易哈希值,计算区块A1的默克尔根值时仍使用交易a的哈希值进行计算;同时检验交易aa中的签名信息确保交易aa的合法性。如果验证通过,各个节点反馈对区块A1的签名给运维节点。
运维节点收到超过预设比例节点反馈的签名后,生成替代区块A1和删除执行交易d。如图4所示,删除执行交易d包括两个关键信息:替代交易以及超过预设比例节点对替代区块的签名。运维节点将交易d发送到当前区块链网络中。需要说明的是,交易d中还包括对交易d的签名;对交易d的签名申是过当前区块链网络中的一般交易签名生成规则获取。
步骤104,当删除执行交易所在的区块通过共识验证时,根据删除执行交易删除目标交易、以及将目标区块替换成替代区块。
如图4所示,交易d在区块D中被共识确认。所有节点根据交易d来执行交易a的删除以及将区块A替换成区块A1,从而达到将交易a彻底删除的目标。进一步的,删除当前区块链上的区块A,并利用区块A1在区块A原有的位置上进行上链,以替换区块A。其中,区块A1的区块高度等于区块A的区块高度。
因为区块链的不可篡改性的基础是一个区块中附带前一个区块的区块哈希值,因此,在替代区块的区块头中显式写入目标区块的区块哈希值,维护了区块链的指向关系,从而保存了区块链的不可篡改特性。
在对已上链的替代区块进行合法性检查时,检查规则如下:在检查默克尔根值时,用替代交易中包含的目标交易的交易哈希值进行计算,同时需要校验替代交易中包含的签名的合法性以及替代区块中包含的超过2/3节点对替代区块的签名的合法性,其它检查规则保持不变。
需要说明的是,区块A、区块B、区块C和区块D是按照时间先后顺序生成的,在区块链上,它们之间的位置关系是,区块A→区块B→区块C→区块D,即区块高度hA<hB<hC<hD。
进一步的,当删除执行交易所在的区块通过共识验证时,根据交易aa中的作废交易列表更新所有节点的本地世界状态。更新的方法是:从创始区块开始遍历,直至当前区块,执行除了目标交易和作废交易列表之外的所有交易,使得所有节点的世界状态保持一致,并且彻底删除交易a以及与交易a相关的交易。
如此,本实施例提供的删除区块链数据的方法通过对删除请求交易和删除执行交易的共识来实现对已上链的目标交易进行删除;其中,删除请求交易的目的是声明将要被删除的目标交易;当删除请求交易被成功共识后,生成替代交易和替代区块,并将替代交易和替代区块的关键信息放在删除执行交易中;通过共识删除执行交易完成对已上链的目标交易的彻底删除处理、以及将目标区块替换成替代区块。本实施例提供的方法实现基于共识对一个已上链的交易进行彻底删除,不影响其他无关交易,并维护了区块之间的指向关系,从而保证区块链的不可篡改的特性。
以下结合实际应用场景对本实施例提供的所述删除区块链数据的方法进行说明,以便于本领域技术人员更好的理解本实施例所公开的内容。
在版权链中,用户通过交易将版权信息上传到区块链网络上,通过区块链技术来保证版权信息的不可篡改性。但是在一些场景,例如版权链的监管方发现目标版权实则为抄袭作品,则需要通过共识将目标版权进行删除。
根据本实施例提供的方法,目标交易中声明在区块链中将目标版权写入世界状态,则区块链的监管方(对应运维节点)通过生成删除请求交易声明目标交易的相关信息(目标交易的交易哈希值、目标交易所在的区块的区块哈希值以及超过2/3节点对目标交易的交易哈希值的签名)。删除请求交易被共识后,监管方通过删除请求交易生成目标交易的替代交易,其中替代交易中包括目标交易的交易哈希值、作废交易列表以及超过2/3节点对替代交易的签名。
针对作废交易列表,如果版权链中只有目标版权上链,没有针对目标版权的交易,作废交易列表为空。如果版权链中还有关于目标版权的相关交易,则作废交易列表包括所有涉及到目标版权的交易。
针对超过2/3节点对替代交易的签名,监管方可以通过链下的方式向各个节点管理员申请对替代交易的签名。节点会根据已经被共识上链的删除请求交易来检查替代交易中的作废交易列表是否正确、以及检查删除请求交易中对目标交易的交易哈希值的签名的节点数量是否超过2/3节点数量。如果检查通过,则节点返回对替代交易的签名给监管方。监管方获取到足够多对替代交易的签名之后,生成替代交易。需要说明的是,本实施例中用监管方对应的运维节点来说明目标交易的删除过程,在其它实施例中,可以是当前区块链网络中的任一节点来执行对目标交易的删除过程。
生成替代交易之后,监管方进一步生成目标区块(目标交易所在的区块)的替代区块。替代区块的生成规则为:将目标交易替换成替代交易,并在替代区块的区块头中显式记录目标区块的区块哈希值,同时监管方使用替代交易向所有节点申请对替代区块的签名。节点通过检查替代交易的签名来确保替代交易的合法性,并根据一样的生成规则来检查替代区块的合法性。如果替代区块合法,则节点返回对替代区块的签名给监管方。监管方获取到最够数量的对替代区块的签名之后,生成替代区块,并且生成删除执行交易(包括目标交易以及超过2/3节点对替代区块的签名)。
删除执行交易在版权链中被共识后,所有节点根据删除执行交易删除目标交易并且将目标区块替换成替代区块,并且根据替代交易中的作废交易列表来更新节点本地的世界状态,从而达到将目标版权信息彻底删除的目的。
在身份链中也存在类似的需要删除特定交易数据的需求。例如,身份链中,用户在上传完个人信息之后又希望将个人信息进行彻底删除,以避免自己的身份信息被泄漏。
与前述删除区块链数据的方法的实施例相对应,本申请还提供了一种删除区块链数据的装置500的实施例。该装置500设置在区块链网络和用户终端之间,用户终端和区块链网络中的节点通过所述装置500执行所述删除区块链数据的方法,实现对已上链交易的彻底删除,并保证区块链的不可篡改特性。所述装置500可以由硬件实现,也可以由硬件执行相应的软件实现。所述装置包括:删除请求生成模块501、替代交易生成模块502、删除准备模块503以及删除执行模块504。
删除请求生成模块501被配置为:根据目标交易生成删除请求交易,其中,目标交易为待删除交易,删除请求交易包括目标交易的交易哈希值、目标区块的区块哈希值、以及超过预设比例节点对目标交易的交易哈希值的签名,目标区块是目标交易所在的区块。
替代交易生成模块502被配置为:当删除请求交易所在的区块通过共识验证时,根据删除请求交易生成替代交易,其中,替代交易包括目标交易的交易哈希值、作废交易列表、以及超过预设比例节点对替代交易的签名。需要说明的是,删除请求交易所在的区块通过共识验证这一过程是在区块链网络中的一般共识验证过程,可以不通过本实施例提供的所述装置500执行。
删除准备模块503被配置为:根据替代交易和目标区块生成替代区块和删除执行交易;其中,替代区块包括目标区块的区块哈希值、替代交易、以及超过预设比例节点对替代区块的签名;删除执行交易包括替代交易、以及超过预设比例节点对替代区块的签名。
删除执行模块504被配置为:当删除执行交易所在的区块通过共识验证时,根据删除执行交易删除目标交易、以及将目标区块替换成替代区块。需要说明的是,删除执行交易所在的区块通过共识验证这一过程是在区块链网络中的一般共识验证过程,可以不通过本实施例提供的所述装置500执行。
在一种实现方式中,作废交易列表包括目标区块到删除请求交易所在的区块之间的待作废交易;其中,待作废交易是指与目标交易访问相同状态数据的交易。删除执行模块504还被配置为:当所述删除执行交易所在的区块通过共识验证时,根据所述作废交易列表更新所有节点的本地世界状态。
在一种实现方式中,删除准备模块503还被配置为:获取目标区块的区块体和区块头;将目标区块的区块体中的删除交易替换成替代交易,得到替代区块的区块体;复制目标区块的区块头中除了区块签名之外的数据,得到替代区块的区块头;将目标区块的区块哈希值写入至替代区块的区块头中,获取超过预设比例节点对替代区块的签名,并写入至替代区块的区块头中;生成替代区块。
上述装置500中在应用前述方法时的作用效果可参见前述方法实施例中的说明,在此不再赘述。
以上结合具体实施方式和范例性实例对本申请进行了详细说明,不过这些说明并不能理解为对本申请的限制。本领域技术人员理解,在不偏离本申请精神和范围的情况下,可以对本申请技术方案及其实施方式进行多种等价替换、修饰或改进,这些均落入本申请的范围内。本申请的保护范围以所附权利要求为准。
Claims (9)
1.一种删除区块链数据的方法,其特征在于,包括:
根据目标交易生成删除请求交易,其中,所述目标交易为待删除交易,所述删除请求交易包括所述目标交易的交易哈希值、目标区块的区块哈希值、以及超过预设比例节点对所述目标交易的交易哈希值的签名,所述目标区块是所述目标交易所在的区块;
当所述删除请求交易所在的区块通过共识验证时,根据所述删除请求交易生成替代交易,其中,所述替代交易包括所述目标交易的交易哈希值、作废交易列表、以及超过预设比例节点对所述替代交易的签名;
根据所述替代交易和所述目标区块生成替代区块和删除执行交易;其中,所述替代区块包括所述目标区块的区块哈希值、所述替代交易、以及超过预设比例节点对所述替代区块的签名;所述删除执行交易包括所述替代交易、以及超过预设比例节点对所述替代区块的签名;
当所述删除执行交易所在的区块通过共识验证时,根据所述删除执行交易删除所述目标交易、以及将所述目标区块替换成所述替代区块;
其中,所述超过预设比例节点对所述替代交易的签名通过以下方式获取:
向所有节点发送对所述替代交易的第一共识验证请求;
接收节点反馈的与所述第一共识验证请求对应的第一共识结果;所述第一共识结果中包含对所述替代交易的签名;
其中,节点通过以下方式判断是否反馈所述第一共识结果:
根据所述删除请求交易验证所述作废交易列表是否正确,以及验证所述删除请求交易中对所述目标交易的交易哈希值的签名数量是否超过预设数量;
若验证通过,则反馈所述第一共识结果。
2.根据权利要求1所述的方法,其特征在于,所述作废交易列表包括所述目标区块到所述删除请求交易所在的区块之间的待作废交易,其中,所述待作废交易是指与所述目标交易访问相同状态数据的交易;
在根据所述删除执行交易删除所述目标交易、以及将所述目标区块替换成所述替代区块之后,所述方法还包括:根据所述作废交易列表更新所有节点的本地世界状态。
3.根据权利要求2所述的方法,其特征在于,所述根据所述作废交易列表更新所有节点的本地世界状态,包括:
从创世区块开始遍历,直至当前区块,执行除了所述目标交易和所述作废交易列表之外的所有交易。
4.根据权利要求1所述的方法,其特征在于,所述根据所述替代交易和所述目标区块,生成替代区块,包括:
获取所述目标区块的区块体和区块头;
将所述目标区块的区块体中的所述目标交易替换成所述替代交易,得到所述替代区块的区块体;
复制所述目标区块的区块头中除了区块签名之外的数据,得到所述替代区块的区块头;
将所述目标区块的区块哈希值写入至所述替代区块的区块头中;
获取超过预设比例节点对所述替代区块的签名,并写入至所述替代区块的区块头中;
生成所述替代区块。
5.根据权利要求4所述的方法,其特征在于,所述获取超过预设比例节点对所述替代区块的签名,包括:
向所有节点发送对所述替代区块的第二共识验证请求;
接收节点反馈的与所述第二共识验证请求对应的第二共识结果;所述第二共识结果中包含对所述替代区块的签名;
其中,节点通过以下方式判断是否反馈所述第二共识结果:
根据所述替代交易中的所述目标交易的交易哈希值验证所述替代区块中的默克尔根值是否正确、以及验证所述替代交易中对所述替代交易的签名的数量是否超过预设数量;
若验证通过,则反馈所述第二共识结果。
6.根据权利要求1所述的方法,其特征在于,所述替代区块的区块高度等于所述目标区块的区块高度。
7.一种删除区块链数据的装置,其特征在于,所述装置设置在区块链网络和用户终端之间,用于实现权利要求1-6任一所述的删除区块链数据的方法,所述装置包括:删除请求生成模块、替代交易生成模块、删除准备模块以及删除执行模块,其中,
所述删除请求生成模块被配置为:根据目标交易生成删除请求交易,其中,所述目标交易为待删除交易,所述删除请求交易包括所述目标交易的交易哈希值、目标区块的区块哈希值、以及超过预设比例节点对所述目标交易的交易哈希值的签名,所述目标区块是所述目标交易所在的区块;
所述替代交易生成模块被配置为:当所述删除请求交易所在的区块通过共识验证时,根据所述删除请求交易生成替代交易,其中,所述替代交易包括所述目标交易的交易哈希值、作废交易列表、以及超过预设比例节点对所述替代交易的签名;
所述删除准备模块被配置为:根据所述替代交易和所述目标区块生成替代区块和删除执行交易;其中,所述替代区块包括所述目标区块的区块哈希值、所述替代交易、以及超过预设比例节点对所述替代区块的签名;所述删除执行交易包括所述替代交易、以及超过预设比例节点对所述替代区块的签名;
所述删除执行模块被配置为:当所述删除执行交易所在的区块通过共识验证时,根据所述删除执行交易删除所述目标交易、以及将所述目标区块替换成所述替代区块。
8.根据权利要求7所述的装置,其特征在于,所述作废交易列表包括所述目标区块到所述删除请求交易所在的区块之间的待作废交易,其中,所述待作废交易是指与所述目标交易访问相同状态数据的交易;
所述删除执行模块还被配置为:当所述删除执行交易所在的区块通过共识验证时,根据所述作废交易列表更新所有节点的本地世界状态。
9.根据权利要求7所述的装置,其特征在于,所述删除准备模块还被配置为:
获取所述目标区块的区块体和区块头;
将所述目标区块的区块体中的所述目标交易替换成所述替代交易,得到所述替代区块的区块体;
复制所述目标区块的区块头中除了区块签名之外的数据,得到所述替代区块的区块头;
将所述目标区块的区块哈希值写入至所述替代区块的区块头中;
获取超过预设比例节点对所述替代区块的签名,并写入至所述替代区块的区块头中;
生成所述替代区块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210231190.2A CN114331443B (zh) | 2022-03-10 | 2022-03-10 | 一种删除区块链数据的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210231190.2A CN114331443B (zh) | 2022-03-10 | 2022-03-10 | 一种删除区块链数据的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114331443A CN114331443A (zh) | 2022-04-12 |
CN114331443B true CN114331443B (zh) | 2022-06-21 |
Family
ID=81033223
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210231190.2A Active CN114331443B (zh) | 2022-03-10 | 2022-03-10 | 一种删除区块链数据的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114331443B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109391645A (zh) * | 2017-08-03 | 2019-02-26 | 中国移动通信有限公司研究院 | 区块链轻量化处理方法、区块链节点及存储介质 |
CN110727644A (zh) * | 2019-09-29 | 2020-01-24 | 南京金宁汇科技有限公司 | 一种区块链数据裁剪的方法、系统及存储介质 |
CN110933108A (zh) * | 2019-09-26 | 2020-03-27 | 腾讯科技(深圳)有限公司 | 基于区块链网络的数据处理方法、装置、电子设备及存储介质 |
CN112132574A (zh) * | 2019-06-25 | 2020-12-25 | 华为技术有限公司 | 区块链数据校验方法、数据处理方法、装置及设备 |
CN113421160A (zh) * | 2021-06-21 | 2021-09-21 | 华中科技大学 | 一种基于区块链的交易追踪溯源方法 |
-
2022
- 2022-03-10 CN CN202210231190.2A patent/CN114331443B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109391645A (zh) * | 2017-08-03 | 2019-02-26 | 中国移动通信有限公司研究院 | 区块链轻量化处理方法、区块链节点及存储介质 |
CN112132574A (zh) * | 2019-06-25 | 2020-12-25 | 华为技术有限公司 | 区块链数据校验方法、数据处理方法、装置及设备 |
CN110933108A (zh) * | 2019-09-26 | 2020-03-27 | 腾讯科技(深圳)有限公司 | 基于区块链网络的数据处理方法、装置、电子设备及存储介质 |
CN110727644A (zh) * | 2019-09-29 | 2020-01-24 | 南京金宁汇科技有限公司 | 一种区块链数据裁剪的方法、系统及存储介质 |
CN113421160A (zh) * | 2021-06-21 | 2021-09-21 | 华中科技大学 | 一种基于区块链的交易追踪溯源方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114331443A (zh) | 2022-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3776208B1 (en) | Runtime self-correction for blockchain ledgers | |
US11526487B2 (en) | Database world state integrity validation | |
US10904009B2 (en) | Blockchain implementing delta storage | |
CN115210741B (zh) | 部分有序的区块链 | |
US11251938B2 (en) | Blockchain verification using non-consecutive blocks | |
EP3709568A1 (en) | Deleting user data from a blockchain | |
AU2021210206B2 (en) | Index structure for blockchain ledger | |
EP3726774A1 (en) | Transparent blockchain sidechains to support blockchain processing heterogeneity | |
US11489663B2 (en) | Correlation-based hash tree verification | |
WO2019194267A1 (ja) | ブロックチェーンシステム、登録端末、承認端末、スマートコントラクト登録方法、および、スマートコントラクト登録プログラム | |
US20210406876A1 (en) | Permissioned eventing in a decentralized database | |
CN111444204B (zh) | 一种同步处理方法、装置、设备及介质 | |
Peterson et al. | Design and Implementation of Verifiable Audit Trails for a Versioning File System. | |
US11379316B2 (en) | Snapshot restoration | |
US20220303121A1 (en) | Blockchain data segregation | |
Zhang et al. | Do you know where your data’s been?–tamper-evident database provenance | |
CN114331443B (zh) | 一种删除区块链数据的方法及装置 | |
WO2023099357A1 (en) | Compressible blockchains | |
US20230091686A1 (en) | Digital asset platform with hsm verification | |
US20220399988A1 (en) | Linking blockchain operations | |
US11048693B2 (en) | Resolution of ordering inversions | |
US20240007312A1 (en) | Secure multi distributed ledger system | |
US20210318870A1 (en) | Computation and prediction of linked access | |
Huang et al. | A Data Integrity Verification Scheme Based on Blockchain and Blind Homomorphic Tags | |
Chapman et al. | Do You Know Where Your Data’s Been?–Tamper-Evident Database Provenance |
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 |