CN115510037B - 一种基于业务主题的区块链数据删除方法及系统 - Google Patents
一种基于业务主题的区块链数据删除方法及系统 Download PDFInfo
- Publication number
- CN115510037B CN115510037B CN202211420961.9A CN202211420961A CN115510037B CN 115510037 B CN115510037 B CN 115510037B CN 202211420961 A CN202211420961 A CN 202211420961A CN 115510037 B CN115510037 B CN 115510037B
- Authority
- CN
- China
- Prior art keywords
- data
- transaction
- block
- chameleon
- historical
- 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
- 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/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- 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/21—Design, administration or maintenance of databases
- G06F16/219—Managing data history or versioning
-
- 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
- G06Q20/3823—Payment protocols; Details thereof insuring higher security of transaction combining multiple encryption tools for a transaction
-
- 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
- G06Q20/3825—Use of electronic 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
- G06Q20/3827—Use of message hashing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Finance (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种基于业务主题的区块链数据删除方法及系统,涉及区块链技术领域,包括:从每个待处理业务主题对应的所有历史交易数据中提取交易提交者对历史交易中第一不可变数据的签名;根据签名及结尾交易的第一不可变数据生成结尾交易的第二不可变数据,并基于第二不可变数据生成当前区块;删除每个历史交易数据中的可变数据,并根据修改后的历史交易数据更新历史交易所在区块的变色龙随机数;广播当前区块与所有新变色龙随机数给所有区块链成员以便区块链成员验证当前区块并根据对应新的变色龙随机数修改各个历史交易所在区块。本申请删除了同一业务主题下的多个交易的冗余信息,且多个交易汇总为一个聚合签名,缩减了大量区块链空间。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及一种基于业务主题的区块链数据删除方法及系统。
背景技术
现实生活中,很多工作按照同一业务主题的方式展开,例如,办公自动化流程中,以用印申请流程为例,发起人提出一个具有某个唯一代号的办公自动化电子流程,后续将进行逐级审批,最后以盖章完成归还印章结束;例如,招投标业务中,招标人先提出一个具有某个唯一代号的招投标电子流程,后续再进行招投标各个环节,最后以招标人与中标人签订合同结束。该类场景均具有以下特征:(1)具备明确的主题;(2)需要经过多个中间环节;(3)具备明确的结束事件。
而同一业务主题具有多个中间环节时就易生成冗余信息(例如重复信息、中间变量、中间状态、辅助材料、协商过程等),且一个环节对应于一个签名,占用大量区块链空间;同时,当需要一次性验证同一业务主题下的所有环节时,由于签名数量较多,验证签名也需要较大的计算量和较长的计算时间。
发明内容
本申请提供的一种基于业务主题的区块链数据删除方法,旨在解决现有技术中因同一业务主题下存在多个中间环节而产生的冗余信息以及需要逐个验证所有签名时计算量大的问题。
为实现上述目的,本申请采用以下技术方案:
本申请的一种基于业务主题的区块链数据删除方法,包括以下步骤:
获取每个待处理业务主题对应的所有历史交易数据,并从每个所述历史交易数据中提取交易提交者对历史交易第一不可变数据的签名;
根据每个所述待处理业务主题对应的所有所述签名及其结尾交易的第一不可变数据生成每个结尾交易的第二不可变数据,并基于所有所述第二不可变数据生成当前区块;
删除每个历史交易数据中的可变数据,并根据修改后的历史交易数据更新每个所述历史交易所在区块的变色龙随机数;
广播所述当前区块与所有更新的变色龙随机数给所有区块链成员以便每个所述区块链成员验证所述当前区块并根据对应更新的变色龙随机数修改各个所述历史交易所在区块。
作为优选,所述获取每个待处理业务主题对应的所有历史交易数据,并从每个所述历史交易数据中提取交易提交者对历史交易第一不可变数据的签名,包括:
根据当前所有交易数据中的业务主题结束标志个数确定待处理业务主题的个数和每个所述待处理业务主题的编码,所述业务主题结束标志用于标记每个业务主题的结尾交易;
根据所述编码搜索每个待处理业务主题对应的所有历史交易,并获取每个历史交易对应的数据;
从每个历史交易数据中提取交易提交者对所述历史交易中第一不可变数据的签名。
作为优选,所述根据每个所述待处理业务主题对应的所有所述签名及其结尾交易的第一不可变数据生成每个结尾交易的第二不可变数据,并基于所有所述第二不可变数据生成当前区块,包括:
将每个所述待处理业务主题对应的所有所述签名进行聚合得到若干聚合签名,将每个聚合签名与对应业务主题的结尾交易的第一不可变数据拼接得到每个结尾交易的第二不可变数据;
基于所有的第二不可变数据和当前所有非结尾交易的第一不可变数据生成区块体中的第一梅克尔树,并根据获取的变色龙随机数和第一梅克尔树根生成区块头。
作为优选,所述基于所有的第二不可变数据和当前所有非结尾交易的第一不可变数据生成区块体中的第一梅克尔树,并根据获取的变色龙随机数和第一梅克尔树根生成区块头,包括:
将所有结尾交易的第二不可变数据和当前所有非结尾交易的第一不可变数据进行哈希计算,并根据得到的哈希值构建区块体中的第一梅克尔树;
获取变色龙随机数和变色龙陷门持有者的公钥,并计算当前所有交易可变数据的哈希值构建的第二梅克尔树的根,根据所述变色龙随机数、变色龙陷门持有者的公钥以及第二梅克尔树根计算变色龙哈希值;
基于所述第一梅克尔树根和变色龙哈希值计算区块头随机数,并根据所述第一梅克尔树根和区块头随机数构建区块头。
作为优选,所述广播所述当前区块与所有更新的变色龙随机数给所有区块链成员以便每个所述区块链成员验证所述当前区块并根据对应更新的变色龙随机数修改各个所述历史交易所在区块,包括:
广播所述当前区块与所有更新的变色龙随机数给所有区块链成员以便每个所述区块链成员执行以下步骤:
获取组成所述当前区块的所有交易的数据和每个待处理业务主题的所有历史交易数据,并根据所有的数据验证每个结尾交易对应的聚合签名以及交易提交者对每个非结尾交易可变数据和第一不可变数据各自的签名;
验证通过,计算所述当前区块的变色龙哈希值,并根据所述变色龙哈希值和所述当前区块的区块头验证区块头随机数;
验证成功,则根据对应更新的变色龙随机数修改每个待处理业务主题对应的各个历史交易所在区块。
作为优选,所述获取组成所述当前区块的所有交易的数据和每个待处理业务主题的所有历史交易数据,并根据所有的数据验证每个结尾交易对应的聚合签名以及交易提交者对每个非结尾交易可变数据和第一不可变数据各自的签名,包括:
根据业务主题结束标志判断所述当前区块中各个交易是否为待处理业务主题的结尾交易;
若否,则从对应的交易数据中分别提取交易提交者对所述交易可变数据和第一不可变数据的签名,并利用交易提交者的公钥分别验证每个签名;
若是,则提取每个结尾交易对应的聚合签名,并根据对应的待处理业务主题编码搜索所述业务主题对应的所有历史交易的第一不可变数据和交易提交者的公钥,根据对应的第一不可变数据和交易提交者的公钥验证各个聚合签名。
作为优选,所述根据对应更新的变色龙随机数修改每个待处理业务主题对应的各个历史交易所在区块,包括:
确定每个待处理业务主题对应的各个历史交易所在的区块;
计算每个所在区块包含的所有交易可变数据生成的第三梅克尔树根和删除所有待处理业务主题对应的历史交易可变数据后剩余交易的可变数据生成的第四梅克尔树根;
根据每个第三梅克尔树根及其所在区块的原始变色龙随机数以及变色龙陷门持有者公钥计算所在区块的原始变色龙哈希值,并根据第四梅克尔树根及更新的变色龙随机数以及变色龙陷门持有者公钥计算所在区块的新变色龙哈希值;
将每个原始变色龙哈希值与对应的新变色龙哈希值进行比较,若均相等,则维持删除所有待处理业务主题对应的历史交易可变数据的操作,若有不等,则撤回删除操作。
一种基于业务主题的区块链数据删除系统,包括:
提取模块,用于获取每个待处理业务主题对应的所有历史交易数据,并从每个所述历史交易数据中提取交易提交者对历史交易第一不可变数据的签名;
生成模块,用于根据每个所述待处理业务主题对应的所有所述签名及其结尾交易的第一不可变数据生成每个结尾交易的第二不可变数据,并基于所有所述第二不可变数据生成当前区块;
更新模块,用于删除每个历史交易数据中的可变数据,并根据修改后的历史交易数据更新每个所述历史交易所在区块的变色龙随机数;
广播模块,用于广播所述当前区块与所有更新的变色龙随机数给所有区块链成员以便每个所述区块链成员验证所述当前区块并根据对应更新的变色龙随机数修改各个所述历史交易所在区块。
一种电子设备,包括存储器和处理器,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现如上述中任一项所述的一种基于业务主题的区块链数据删除方法。
一种存储有计算机程序的计算机可读存储介质,所述计算机程序使计算机执行时实现如上述中任一项所述的一种基于业务主题的区块链数据删除方法。
本发明具有如下有益效果:
本申请删除了同一业务主题下的多个交易的冗余信息,且多个交易签名汇总为一个聚合签名,缩减了大量区块链空间;同时,当需要一次性验证同一业务主题下的所有交易时,由于只需要验证一个聚合签名,因此只需要较小的计算量和较短的计算时间;而且本申请将交易划分为没有任何成员可以进行缩减或改动的不可变数据和可以通过权威机构的协助进行缩减的可变数据,在提高区块链可修改性的同时,也保持了不可变数据的高可信度。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例1一种基于业务主题的区块链数据删除方法流程图;
图2是区块的典型结构图;
图3是实施例1中可删除的Merkle树初始示意图;
图4是实施例1中可删除的Merkle树删除交易1后的示意图;
图5是实施例1中可删除的Merkle树删除交易1和2后的示意图;
图6是实施例1中可删除的Merkle树删除交易1-7后的示意图;
图7是本申请实施例2一种基于业务主题的区块链数据删除系统示意图;
图8是本申请实施例3实现一种基于业务主题的区块链数据删除方法的电子设备示意图。
具体实施方式
下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的权利要求书和说明书的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序,应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式,此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其他单元。
实施例1
如图1所示,本申请提供一种基于业务主题的区块链数据删除方法,包括以下步骤:
S110、获取每个待处理业务主题对应的所有历史交易数据,并从每个所述历史交易数据中提取交易提交者对历史交易第一不可变数据的签名;
S120、根据每个所述待处理业务主题对应的所有所述签名及其结尾交易的第一不可变数据生成每个结尾交易的第二不可变数据,并基于所有所述第二不可变数据生成当前区块;
S130、删除每个历史交易数据中的可变数据,并根据修改后的历史交易数据更新每个所述历史交易所在区块的变色龙随机数;
S140、广播所述当前区块与所有更新的变色龙随机数给所有区块链成员以便每个所述区块链成员验证所述当前区块并根据对应更新的变色龙随机数修改各个所述历史交易所在区块。
在现有技术中,交易T分为交易主体部分TX和交易提交者U对TX的签名,在区块提交者对TXS验证通过后,即认可交易T的有效性,如图2所示,区块头中则包含有梅克尔树根即 Merkle根R、区块头随机数rB、版本号、前一区块(实际为前一区块的哈希)、时间戳和目标哈希等,其中,区块头随机数是根据R、版本号、前一区块哈希、时间戳和目标哈希计算得到的。
区块链系统中通过哈希函数将同一区块中的多个原始交易数据计算为特定长度的哈希值进行储存,其中,哈希函数也称散列函数,可以把一个空间的数据集尽可能均匀地映射到另外一个比原数据集更小的空间,即对于输入的任意长度字符串x 都可以输出长度固定的H(x),且无法通过H(x)反推得到 x,在区块链中,原始交易数据的哈希值是通过Merkle树的形式进行组织的,Merkle树中文译为梅克尔树或默克尔树,以二叉Merkle树为例,每条交易的哈希值就是一个叶子节点,从下往上将两个相邻叶子节点的组合哈希作为新的哈希值,新的哈希值成为树节点继续与相邻的树节点组合得到新的哈希值,在重复一定次数后会形成唯一的根节点即Merkle根,Merkle根需要保存到区块头中以便仅需通过区块头就可以对同一区块的多个交易进行有效性验证。对于Merkle树而言,并不需要知道整棵Merkle树中每个节点的值,可以通过节点的值、Merkle根的值和相关路径来快速验证该节点是否属于该Merkle树,从而验证该区块中是否包含了某条交易及该交易是否被修改。
在实施例1中,交易T被分为两部分:交易第一不可变数据TXA,其中包含时间TXT、交易提交者U的信息UINFO、业务主题的编码即BID、业务状态标志BFLAG等必备信息以及U选定的其他不可变的自选内容,交易可变数据TXC=TXB(包括为完成本业务主题所需的重复信息、中间变量、中间状态、辅助材料和协商过程等)||TXAS(交易提交者U对TXA的签名)||TXBS(交易提交者U对TXB的签名),区块提交者只有对TXAS和TXBS都验证通过,才会认可交易T的有效性。
其中,本实施例区块头中的Merkle根R是由所有TXA计算所得,区块头随机数rB是根据Merkle根R、变色龙哈希值RCH和区块头其他部分E计算得到,其中,RCH=CH(m,r,PKCH),r为变色龙随机数,m是区块中所有交易的可变数据TXC生成的Merkle根,E则是版本号、前一区块(哈希)、时间戳和目标哈希等的集合。
本实施例还提出了一种可删除的Merkle树存储机制,可删除的Merkle树图3初始化时与图2中的Merkle树相同,其中实线代表交易,此时H12=H(H1||H2),对于图3,当一个具有兄弟节点的树节点如H1被删除(原因是交易1被删除)时,则仅删除其本身H1,见图4,此时H12=H(H2);对于图4,当一个没有兄弟节点的树节点如H2被删除(原因是交易2被删除)时,则删除其本身H2及其父节点H12,见图5,此时H1-4=H(H34);假设只剩一个底层节点H8,见图6,此时H1-8=H(H5-8)=H(H(H78))=H(H(H(H8))),若全部底层节点被删除,则H1-8为空值或0。需要注意的是,在本实施例中该可删除的Merkle树中的节点都是交易可变数据对应的哈希值,而非交易所有数据对应的哈希值。
具体地,根据当前所有交易数据中的业务主题结束标志个数确定待处理业务主题的个数和每个所述待处理业务主题的编码,所述业务主题结束标志用于标记每个业务主题的结尾交易;
根据所述编码搜索每个待处理业务主题对应的所有历史交易,并获取每个历史交易对应的数据;
从每个历史交易数据中提取交易提交者对所述历史交易中第一不可变数据的签名。
每个业务主题对应多个交易,因此当交易的数据中包含的业务状态标志BFLAG=final时,表明对应的业务主题全部流程已经结束,该交易就是该业务主题的结尾交易,此时区块提交者C对该BID所涉及的区块进行修改。
当BFLAG不为final时,代表该业务主题未结束,区块提交者C不修改该BID所涉及的区块。
在某个业务主题对应的交易都完成后,会生成所有历史交易数据,如下所示:
第1次交易TX1=TXA1||TXB1||TXAS1||TXBS1,TX1所在区块为B1(含R1、rB1、r1、PKCH1、E1);
第2次交易TX2=TXA2||TXB2||TXAS2||TXBS2,TX2所在区块为B2(含R2、rB2、r2、PKCH2、E2);
……;
第n次交易即结尾交易TXn=TXAn(含BFLAG=final)||TXBn||TXASn||TXBSn,TXn所在区块为Bn(含Rn、rBn、rn、PKCHn、En)。
每个区块中包含多个交易,可能涉及到多个业务主题,故在同一区块中,业务状态标志BFLAG=final的交易可能有多个,也就需要对多个业务主题涉及的区块进行修改,此时,首先就需要根据当前即将打包生成新区块的交易数据中的BFLAG 标志确定其中结尾交易的个数,进而确定每个结尾交易对应的业务主题的编码即待处理业务主题的BID,因此当前即将打包生成新区块的交易中包含所有待处理业务主题对应的结尾交易,根据BID找到每个业务主题对应的所有历史交易数据,并从中提取出交易提交者对每个历史交易第一不可变数据的签名TXASi。
具体地,将每个所述待处理业务主题对应的所有所述签名进行聚合得到若干聚合签名,将每个聚合签名与对应业务主题的结尾交易的第一不可变数据拼接得到每个结尾交易的第二不可变数据;
基于所有的第二不可变数据和当前所有非结尾交易的第一不可变数据生成区块体中的第一梅克尔树,并根据获取的变色龙随机数和第一梅克尔树根生成区块头。
区块提交者通过聚合签名算法将每个待处理业务主题对应的交易提交者对每个历史交易第一不可变数据的签名进行聚合得到若干聚合签名TXSfinal,并将每个待处理业务主题对应的聚合签名与其结尾交易的第一不可变数据进行拼接,得到结尾交易的交易数据TXn'=TXAn||TXSfinal,也就是第二不可变数据,计算每个结尾交易的第二不可变数据的哈希值和当前所有非结尾交易的第一不可变数据的哈希值并构建第一Merkle树得到R1,再计算当前所有交易可变数据的哈希值生成的第二Merkle树根m,并获取变色龙陷门持有者公钥PKCH和变色龙随机数r,根据RCH=CH(m,r,PKCH)计算出变色龙哈希值RCH,再根据变色龙哈希值RCH、R和由已知的版本号、前一区块(哈希)、时间戳和目标哈希等构建的集合E计算出rB,从而构建出区块头以生成当前区块Bn,其中,变色龙陷门持有者一般为权威机构,且只有权威机构才能对区块链中的历史区块进行修改,本申请假设区块链中存在一个或多个变色龙陷门持有者。
接下来删除待处理业务主题每个历史交易中的可变数据TXCi,根据删除后的数据重新计算该历史交易所在区块中所有交易的可变数据的哈希值生成的Merkle根即mi',并请求新的变色龙随机数即区块修改信息ri',将所有新的变色龙随机数汇总成集合M。
具体地,根据业务主题结束标志判断所述当前区块中各个交易是否为待处理业务主题的结尾交易;
若否,则从对应的交易数据中分别提取交易提交者对所述交易可变数据和第一不可变数据的签名,并利用交易提交者的公钥分别验证每个签名;
若是,则提取每个结尾交易对应的聚合签名,并根据对应的待处理业务主题编码搜索所述业务主题对应的所有历史交易的第一不可变数据和交易提交者的公钥,根据对应的第一不可变数据和交易提交者的公钥验证各个聚合签名。
区块提交者广播区块Bn及区块修改信息M给所有区块链成员,每个区块链成员接收这些信息后先验证Bn区块包含的所有交易:根据BFLAG判断每个交易是否为结尾交易,若否,从对应的交易数据中分别提取出交易提交者对该交易可变数据和第一不可变数据的签名,并利用交易提交者的公钥分别验证签名;若是,则从每个结尾交易的数据中提取出第二不可变数据TXAn||TXSfinal,并根据对应的BID搜索该业务主题对应的所有历史交易,提取每个历史交易的第一不可变数据TXAi,将所有TXAi作为聚合签名的消息,再获取交易提交者的公钥(公钥可能位于历史交易中,也可以由区块链成员根据历史交易提交者在区块链外获取)作为验证聚合签名的公钥,根据聚合签名的验证方法对每个聚合签名进行验证,验证通过后,认可Bn区块中的所有交易。
接着验证Bn的区块体和区块头,计算Bn中所有交易不可变数据生成的Merkle根Rn’并与区块头中的Rn进行比较,若相等,则认可区块体中所有交易的不可变数据,这里的不可变数据包含结尾交易的第二不可变数据和非结尾交易的第一不可变数据,再计算Bn中所有交易的可变数据生成的Merkle根mn’,并获取变色龙随机数rn和变色龙陷门持有者的公钥PKCHn,根据RCHn=CH(mn’, rn, PKCHn)来计算变色龙哈希值RCHn’,然后从Bn区块头中提取出rBn、前一区块哈希、版本号、时间戳以及R,将这些数据与RCHn’进行哈希计算判断所得值是否小于目标哈希,若是则认可Bn区块。
具体地,确定每个待处理业务主题对应的各个历史交易所在的区块;
计算每个所在区块包含的所有交易可变数据生成的第三梅克尔树根和删除所有待处理业务主题对应的历史交易可变数据后剩余交易的可变数据生成的第四梅克尔树根;
根据每个第三梅克尔树根及其所在区块的原始变色龙随机数以及变色龙陷门持有者公钥计算所在区块的原始变色龙哈希值,并根据第四梅克尔树根及更新的变色龙随机数以及变色龙陷门持有者公钥计算所在区块的新变色龙哈希值;
将每个原始变色龙哈希值与对应的新变色龙哈希值进行比较,若均相等,则维持删除所有待处理业务主题对应的历史交易可变数据的操作,若有不等,则撤回删除操作。
每个区块链成员根据Bn区块中每个结尾交易对应的待处理业务主题编码找到其所有历史交易,并确定每个历史交易所在的区块,然后根据该区块对应更新的随机数修改该区块内容,假设某一结尾交易为TXAn,根据TXAn中的BID,搜索到BID所涉及的所有历史交易,再确定每个历史交易所在的区块并对该区块进行修改,设其中某一历史交易为TXi,其交易数据为TXi=TXAi||TXBi||TXASi||TXBSi,所在区块则为Bi(含Ri、rBi、ri、PKCHi、Ei),此处为方便理解,Bi区块中只包含一个待处理业务主题涉及的交易即TXi,计算Bi区块中所有交易可变数据生成的Merkle根mi,然后删除待处理业务主题在其中的历史交易TXi的可变数据TXBi||TXASi||TXBSi,计算修改后该区块中所有交易的可变数据生成的Merkle根mi',再从集合M中找到其更新后的变色龙随机数,同时从区块头中提取出Ri 、rBi、ri、PKCHi和Ei,分别计算RCHi=CH(mi,ri,PKCHi)和RCHi'=CH(mi',ri',PKCHi),判断是否满足RCHi=RCHi',若是则认可ri',并保留该区块的现状,即维持删除交易TXi可变数据的操作,该待处理业务主题涉及的其他历史交易和其他待处理业务主题涉及的所有历史交易所在区块均进行相同的处理,若Bi中包含待处理业务主题中的多个历史交易,则将这些历史交易的可变数据全部删除,全部满足条件后,Bn上链,流程结束;若否,则撤回删除交易TXi可变数据的操作,并放弃Bn区块的上链,流程结束。
上链成功后,某待处理业务主题对应的所有历史交易的数据如下:
第1次交易TX1'=TXA1,其中原有的TXB1||TXAS1||TXBS1被删除;
第2次交易TX2'=TXA2,其中原有的TXB2||TXAS2||TXBS2被删除;
……;
第n次交易TXn'=TXAn||TXSfinal,其中原有的TXBn||TXASn||TXBSn被删除,并在交易不可变部分新增n次交易的聚合签名TXSfinal。
此时可以发现,对某业务主题的所有交易来说,现有技术所用方法占用的区块链存储空间为n个TXAi、n个TXBi和n个签名;使用本方法后,缩减的区块链存储空间为n个TXBi和n个签名,新增的区块链存储空间仅为一个聚合签名TXSfinal,假设签名的大小为SLen,由于聚合签名的大小一般来说与普通签名相同,故聚合签名的大小也为SLen,因此本申请节省的区块链存储空间为n个TXBi和n-1个SLen。
另一方面,本申请将交易划分为不可变数据和可变数据,可变数据可以通过权威机构的协助进行缩减,而即使是权威机构也不能对不可变数据进行改动。假设某区块链成员对不可变数据进行了改动,将导致区块头发生变化,从而使得区块头无法满足目标哈希的要求,因此无法得到其他区块链成员的认可。因此本申请在提高了区块链可修改性的同时,也保持了不可变数据不可修改的特性。
实施例2
如图7所示,本申请提供一种基于业务主题的区块链数据删除系统,亦或是交易数据删除系统,其主要包括提取模块、生成模块、更新模块和广播模块:
所述提取模块,用于获取每个待处理业务主题对应的所有历史交易数据,并从每个所述历史交易数据中提取交易提交者对历史交易第一不可变数据的签名;
所述生成模块,用于根据每个所述待处理业务主题对应的所有所述签名及其结尾交易的第一不可变数据生成每个结尾交易的第二不可变数据,并基于所有所述第二不可变数据生成当前区块;
所述更新模块,用于删除每个历史交易数据中的可变数据,并根据修改后的历史交易数据更新每个所述历史交易所在区块的变色龙随机数;
所述广播模块,用于广播所述当前区块与所有更新的变色龙随机数给所有区块链成员以便每个所述区块链成员验证所述当前区块并根据对应更新的变色龙随机数修改各个所述历史交易所在区块。
实施例3
如图8所示,本申请提供一种电子设备,包括存储器801和处理器802,所述存储器801用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器802执行以实现上述的一种基于业务主题的区块链数据删除方法。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的电子设备的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。一种存储有计算机程序的计算机可读存储介质,所述计算机程序使计算机执行时实现如上述的一种基于业务主题的区块链数据删除方法。示例性的,计算机程序可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器801中,并由处理器802执行,并由输入接口805和输出接口806完成数据的I/O接口传输,以完成本发明,一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序在计算机设备中的执行过程。计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。计算机设备可包括,但不仅限于,存储器801、处理器802,本领域技术人员可以理解,本实施例仅仅是计算机设备的示例,并不构成对计算机设备的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件,例如计算机设备还可以包括输入器807、网络接入设备、总线等。处理器802可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器802、数字信号处理器802(Digital Signal Processor,DSP)、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器802可以是微处理器802或者该处理器802也可以是任何常规的处理器802等。
存储器801可以是计算机设备的内部存储单元,例如计算机设备的硬盘或内存。存储器801也可以是计算机设备的外部存储设备,例如计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等,进一步地,存储器801还可以既包括计算机设备的内部存储单元也包括外部存储设备,存储器801用于存储计算机程序以及计算机设备所需的其他程序和数据,存储器801还可以用于暂时地存储在输出器808,而前述的存储介质包括U盘、移动硬盘、只读存储器ROM803、随机存储器RAM804、碟盘或光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何在本发明揭露的技术范围内的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种基于业务主题的区块链数据删除方法,其特征在于,包括以下步骤:
获取每个待处理业务主题对应的所有历史交易数据,并从每个所述历史交易数据中提取交易提交者对历史交易第一不可变数据的签名;
根据每个所述待处理业务主题对应的所有所述签名及其结尾交易的第一不可变数据生成每个结尾交易的第二不可变数据,并基于所有所述第二不可变数据生成当前区块;
删除每个历史交易数据中的可变数据,并根据修改后的历史交易数据更新每个所述历史交易所在区块的变色龙随机数,其中,所述可变数据为每个所述历史交易数据中通过权威机构的协助可进行缩减的数据;
广播所述当前区块与所有更新的变色龙随机数给所有区块链成员以便每个所述区块链成员验证所述当前区块并根据对应更新的变色龙随机数修改各个所述历史交易所在区块。
2.根据权利要求1所述的一种基于业务主题的区块链数据删除方法,其特征在于,所述获取每个待处理业务主题对应的所有历史交易数据,并从每个所述历史交易数据中提取交易提交者对历史交易第一不可变数据的签名,包括:
根据当前所有交易数据中的业务主题结束标志个数确定待处理业务主题的个数和每个所述待处理业务主题的编码,所述业务主题结束标志用于标记每个业务主题的结尾交易;
根据所述编码搜索每个待处理业务主题对应的所有历史交易,并获取每个历史交易对应的数据;
从每个历史交易数据中提取交易提交者对所述历史交易中第一不可变数据的签名。
3.根据权利要求2所述的一种基于业务主题的区块链数据删除方法,其特征在于,所述根据每个所述待处理业务主题对应的所有所述签名及其结尾交易的第一不可变数据生成每个结尾交易的第二不可变数据,并基于所有所述第二不可变数据生成当前区块,包括:
将每个所述待处理业务主题对应的所有所述签名进行聚合得到若干聚合签名,将每个聚合签名与对应业务主题的结尾交易的第一不可变数据拼接得到每个结尾交易的第二不可变数据;
基于所有的第二不可变数据和当前所有非结尾交易的第一不可变数据生成区块体中的第一梅克尔树,并根据获取的变色龙随机数和第一梅克尔树根生成区块头。
4.根据权利要求3所述的一种基于业务主题的区块链数据删除方法,其特征在于,所述基于所有的第二不可变数据和当前所有非结尾交易的第一不可变数据生成区块体中的第一梅克尔树,并根据获取的变色龙随机数和第一梅克尔树根生成区块头,包括:
将所有结尾交易的第二不可变数据和当前所有非结尾交易的第一不可变数据进行哈希计算,并根据得到的哈希值构建区块体中的第一梅克尔树;
获取变色龙随机数和变色龙陷门持有者的公钥,并计算当前所有交易可变数据的哈希值构建的第二梅克尔树的根,根据所述变色龙随机数、变色龙陷门持有者的公钥以及第二梅克尔树根计算变色龙哈希值;
基于所述第一梅克尔树根和变色龙哈希值计算区块头随机数,并根据所述第一梅克尔树根和区块头随机数构建区块头。
5.根据权利要求3所述的一种基于业务主题的区块链数据删除方法,其特征在于,所述广播所述当前区块与所有更新的变色龙随机数给所有区块链成员以便每个所述区块链成员验证所述当前区块并根据对应更新的变色龙随机数修改各个所述历史交易所在区块,包括:
广播所述当前区块与所有更新的变色龙随机数给所有区块链成员以便每个所述区块链成员执行以下步骤:
获取组成所述当前区块的所有交易的数据和每个待处理业务主题的所有历史交易数据,并根据所有的数据验证每个结尾交易对应的聚合签名以及交易提交者对每个非结尾交易可变数据和第一不可变数据各自的签名;
验证通过,计算所述当前区块的变色龙哈希值,并根据所述变色龙哈希值和所述当前区块的区块头验证区块头随机数;
验证成功,则根据对应更新的变色龙随机数修改每个待处理业务主题对应的各个历史交易所在区块。
6.根据权利要求5所述的一种基于业务主题的区块链数据删除方法,其特征在于,所述获取组成所述当前区块的所有交易的数据和每个待处理业务主题的所有历史交易数据,并根据所有的数据验证每个结尾交易对应的聚合签名以及交易提交者对每个非结尾交易可变数据和第一不可变数据各自的签名,包括:
根据业务主题结束标志判断所述当前区块中各个交易是否为待处理业务主题的结尾交易;
若否,则从对应的交易数据中分别提取交易提交者对所述交易可变数据和第一不可变数据的签名,并利用交易提交者的公钥分别验证每个签名;
若是,则提取每个结尾交易对应的聚合签名,并根据对应的待处理业务主题编码搜索所述业务主题对应的所有历史交易的第一不可变数据和交易提交者的公钥,根据对应的第一不可变数据和交易提交者的公钥验证各个聚合签名。
7.根据权利要求5所述的一种基于业务主题的区块链数据删除方法,其特征在于,所述根据对应更新的变色龙随机数修改每个待处理业务主题对应的各个历史交易所在区块,包括:
确定每个待处理业务主题对应的各个历史交易所在的区块;
计算每个所在区块包含的所有交易可变数据生成的第三梅克尔树根和删除所有待处理业务主题对应的历史交易可变数据后剩余交易的可变数据生成的第四梅克尔树根;
根据每个第三梅克尔树根及其所在区块的原始变色龙随机数以及变色龙陷门持有者公钥计算所在区块的原始变色龙哈希值,并根据第四梅克尔树根及更新的变色龙随机数以及变色龙陷门持有者公钥计算所在区块的新变色龙哈希值;
将每个原始变色龙哈希值与对应的新变色龙哈希值进行比较,若均相等,则维持删除所有待处理业务主题对应的历史交易可变数据的操作,若有不等,则撤回删除操作。
8.一种基于业务主题的区块链数据删除系统,其特征在于,包括:
提取模块,用于获取每个待处理业务主题对应的所有历史交易数据,并从每个所述历史交易数据中提取交易提交者对历史交易第一不可变数据的签名;
生成模块,用于根据每个所述待处理业务主题对应的所有所述签名及其结尾交易的第一不可变数据生成每个结尾交易的第二不可变数据,并基于所有所述第二不可变数据生成当前区块;
更新模块,用于删除每个历史交易数据中的可变数据,并根据修改后的历史交易数据更新每个所述历史交易所在区块的变色龙随机数,其中,所述可变数据为每个所述历史交易数据中通过权威机构的协助可进行缩减的数据;
广播模块,用于广播所述当前区块与所有更新的变色龙随机数给所有区块链成员以便每个所述区块链成员验证所述当前区块并根据对应更新的变色龙随机数修改各个所述历史交易所在区块。
9.一种电子设备,其特征在于,包括存储器和处理器,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现如权利要求1~7中任一项所述的一种基于业务主题的区块链数据删除方法。
10.一种存储有计算机程序的计算机可读存储介质,其特征在于,所述计算机程序使计算机执行时实现如权利要求1~7中任一项所述的一种基于业务主题的区块链数据删除方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211420961.9A CN115510037B (zh) | 2022-11-14 | 2022-11-14 | 一种基于业务主题的区块链数据删除方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211420961.9A CN115510037B (zh) | 2022-11-14 | 2022-11-14 | 一种基于业务主题的区块链数据删除方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115510037A CN115510037A (zh) | 2022-12-23 |
CN115510037B true CN115510037B (zh) | 2023-03-28 |
Family
ID=84513821
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211420961.9A Active CN115510037B (zh) | 2022-11-14 | 2022-11-14 | 一种基于业务主题的区块链数据删除方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115510037B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1682474A (zh) * | 2002-08-02 | 2005-10-12 | Nms通讯公司 | 用于网络信号整合和带宽缩减的方法和装置 |
CN111596862A (zh) * | 2020-05-20 | 2020-08-28 | 南京如般量子科技有限公司 | 一种区块链历史交易数据自主优化方法及系统 |
CN113536389A (zh) * | 2021-06-15 | 2021-10-22 | 复旦大学 | 一种细粒度可控的去中心化可编辑区块链构造方法和系统 |
CN114328518A (zh) * | 2021-12-23 | 2022-04-12 | 上海交通大学 | 基于utxo模型的低存储消耗的方法和系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170236214A1 (en) * | 2015-01-09 | 2017-08-17 | NetSuite Inc. | System and methods for implementing a transition to multi-book accounting in a real-time financial management system |
US11429738B2 (en) * | 2019-05-29 | 2022-08-30 | International Business Machines Corporation | Blockchain endorsement with approximate hash verification |
CN114710297B (zh) * | 2022-05-25 | 2022-09-06 | 深圳天谷信息科技有限公司 | 基于聚合签名的区块链存证方法、装置、设备及存储介质 |
CN114710298B (zh) * | 2022-06-02 | 2022-09-06 | 深圳天谷信息科技有限公司 | 基于变色龙哈希的文档批量签署方法、装置、设备及介质 |
-
2022
- 2022-11-14 CN CN202211420961.9A patent/CN115510037B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1682474A (zh) * | 2002-08-02 | 2005-10-12 | Nms通讯公司 | 用于网络信号整合和带宽缩减的方法和装置 |
CN111596862A (zh) * | 2020-05-20 | 2020-08-28 | 南京如般量子科技有限公司 | 一种区块链历史交易数据自主优化方法及系统 |
CN113536389A (zh) * | 2021-06-15 | 2021-10-22 | 复旦大学 | 一种细粒度可控的去中心化可编辑区块链构造方法和系统 |
CN114328518A (zh) * | 2021-12-23 | 2022-04-12 | 上海交通大学 | 基于utxo模型的低存储消耗的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN115510037A (zh) | 2022-12-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9647684B2 (en) | Memory-based history search | |
EP3678346A1 (en) | Blockchain smart contract verification method and apparatus, and storage medium | |
CN109508326B (zh) | 用于处理数据的方法、装置和系统 | |
CN113468199A (zh) | 索引更新方法及系统 | |
CN113254767A (zh) | 大数据搜索方法、装置、计算机设备及存储介质 | |
CN114168159A (zh) | 智能合约部署方法、交易方法、装置及电子设备 | |
CN115510037B (zh) | 一种基于业务主题的区块链数据删除方法及系统 | |
CN111858467B (zh) | 基于人工智能的文件数据处理方法、装置、设备和介质 | |
CN115409507A (zh) | 区块处理方法、区块处理装置、计算机设备及存储介质 | |
CN112559482A (zh) | 一种基于分布式的二进制数据分类处理方法和系统 | |
CN111951112A (zh) | 基于区块链的智能合约执行方法、终端设备和存储介质 | |
CN111625617A (zh) | 一种数据索引方法、装置及计算机可读存储介质 | |
US11797480B2 (en) | Storage of order books with persistent data structures | |
CN111522873B (zh) | 区块生成方法、装置、计算机设备和存储介质 | |
CN112328601A (zh) | 基于区块链的数据处理方法、装置、设备和存储介质 | |
CN113342647A (zh) | 一种测试数据的生成方法及装置 | |
CN112052341A (zh) | 知识图谱剪枝方法及装置 | |
White | A theory for lightweight cryptocurrency ledgers | |
CN110888883A (zh) | 数据存储方法、装置、系统和存储介质 | |
CN116821146B (zh) | 一种基于Apache Iceberg的数据表列更新方法及系统 | |
EP4394619A1 (en) | Data processing method and apparatus based on blockchain, and device and readable storage medium | |
CN113596097B (zh) | 一种日志的传输方法及电子设备 | |
CN110427391B (zh) | 确定重复数据的方法、设备和计算机程序产品 | |
CN114238270A (zh) | 数据库操作方法、装置、计算机设备及可读存储介质 | |
CN116483324A (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 |