CN110474776B - 一种可信的区块数据动态删减方法 - Google Patents

一种可信的区块数据动态删减方法 Download PDF

Info

Publication number
CN110474776B
CN110474776B CN201910653041.3A CN201910653041A CN110474776B CN 110474776 B CN110474776 B CN 110474776B CN 201910653041 A CN201910653041 A CN 201910653041A CN 110474776 B CN110474776 B CN 110474776B
Authority
CN
China
Prior art keywords
block
data
deletion
new
generated
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
Application number
CN201910653041.3A
Other languages
English (en)
Other versions
CN110474776A (zh
Inventor
李汝佳
汪晓明
娄山林
马燕涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Zhaoxi Network Technology Co ltd
Original Assignee
Shanghai Zhaoxi Network Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Zhaoxi Network Technology Co ltd filed Critical Shanghai Zhaoxi Network Technology Co ltd
Priority to CN201910653041.3A priority Critical patent/CN110474776B/zh
Publication of CN110474776A publication Critical patent/CN110474776A/zh
Application granted granted Critical
Publication of CN110474776B publication Critical patent/CN110474776B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3236Cryptographic 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 using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3297Cryptographic 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 time stamps, e.g. generation of time stamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Abstract

本发明公开了一种可信的区块数据动态删减方法,包括以下步骤:S1当区块链系统中的任一节点生成新区块时,在生成新区块的当前节点的区块链上查找删减点;S2根据删减点检索并删除预设的删减周期内的所有区块中的可删减数据,对剔除可删减数据后的各区块进行合并,得到压缩区块;S3将压缩区块嵌入至当前节点生成的新区块中,得到组合区块;S4当前节点将生成的新区块广播到其他节点,其他节点重复执行步骤S1~S3,以对各节点对应的区块链进行删减,得到组合区块;S5重复执行步骤S1~S4,按照新区块的生成周期持续对区块数据进行动态删减;本发明的删减方法具有周期性和连续性,区块链系统可以在长期运行过程中自动持续执行数据删减,释放存储空间。

Description

一种可信的区块数据动态删减方法
技术领域
本发明属于分布式系统技术领域,更具体地,涉及一种可信的区块链动态删减方法。
背景技术
随着区块链中交易的日益频繁和区块链应用的大规模普及,区块的信息量将持续增加。目前的区块链采用链式结构进行存储,矿机将父区块的哈希值进行存储和其他信息打包到当前区块中,当前区块在网络中进行蔓延、接受、验证,最终完成该区块的共识。区块链在验证时依赖于父区块,父区块又依赖于上一级的父区块,如果整个区块链中之前的数据被篡改,则会导致父区块异常,致使后续本矿机上的共识无法完成。在此种模式下,区块链上的多个节点一旦完成了共识,交易数据将无法被全局删除,即便某一节点将区块中的交易数据进行本地删除,但由于该区块已被广播至其他节点并完成共识,因此仅当前节点进行本地删除实际上并未将交易数据从区块链中删除,即无法实现交易数据在多个节点上的全局删除。随着时间的推移,交易数据会无限增长,每个交易会占用一定空间,区块链会变得无限大,对存储空间的要求越来越高。另外,区块链体积过大的问题同时造成了区块的完整数据同步困难。
虽然扩容可以解决区块容量过小而造成交易拥堵情况严重的问题,但扩容并没有办法减少信息总量。隔离见证、闪电网络等解决的其实都是“交易慢”的问题,而不是数据越来越多的问题。传统的集中化的数据系统中,持续增大的数据可以采用分割、转储等手段进行解决,以传统的交易型系统为例,由于系统中的核心设计理念是保存账户的最终状态,只需要把历史的交易过程数据移到其他专门的存储设备上,主机数据库保存账户的最新状态和最近一段时间的交易记录即可。但是区块链由于具有分布式、去中心的、链式存储和不可篡改的特性,使其无法像传统数据库那样对数据进行转储和分割。
申请公布号为CN105741095A的发明专利公开了一种区块链动态压缩存取方法,在数字货币钱包运行过程中通过内嵌压缩函数对新区块进行动态压缩;在读取新区块时通过内嵌解压函数对压缩的区块进行解压,在保证不损坏数据的前提下使得区块数据容量变小,节省存储空间;此方案通过区块的压缩来达到区块链数据容量变小的目的,虽然通过压缩使区块所占空间减小,但是实质上整个区块链中的数据量并未减少,解压之后仍然占用同样的存储空间;因此,该方案并不能从本质上解决区块链数据随着时间的推移存储过大的问题;申请公布号为CN107181797A的发明专利公开了一种区块链的区块压缩方法和系统,对新区块进行标记并将符合判断规则的标记点作为压缩标记,每产生一个压缩标记即将该压缩标记之前的未经压缩的新区块进行压缩处理,从而使产生的区块的文件大小降低;此方案同样是采用压缩的方式减小区块所占空间,不能从本质上解决区块链数据随着时间的推移存储过大的问题;申请公布号为CN107728941A的发明专利公开了一种区块链数据压缩方法及系统,根据客户端发送的压缩交易请求将相应区块压缩为数据块并转存至数据存储系统,建立压缩区块、数据块机压缩交易标识之间的映射关系并将该映射关系发布到区块链交易系统中;此方案需要在用户发送的压缩交易请求的触发下才能执行后续的压缩、转存操作,因此无法在区块链的长期运行过程中持续对区块链数据进行处理;最重要的是,将压缩后的数据块转存至数据存储系统,虽然降低区块链交易节点的存储负担,但是并没有减少整个区块链系统中的数据量,无法从本质上解决区块链数据随着时间的推移存储过大的问题。
综上所述,目前均是采用区块压缩、转存的方法来缩小区块数据所占用的存储空间,这种方法实质上并没有减少整个区块链系统中的数据量,因此无法从本质上有效解决区块链数据随着时间的推移存储过大的问题。
发明内容
针对现有技术的至少一个缺陷或改进需求,本发明提供了一种可信的区块数据动态删减方法,在保留了原有区块链特性的情况下,实现对区块链数据进行动态删减,其目的在于解决随着区块数据增大造成的区块完整数据存储空间紧张和同步困难的问题。
为实现上述目的,按照本发明的一个方面,提供了一种可信的区块数据动态删减方法,包括以下步骤:
S1:当区块链系统中的任一节点生成新区块时,在生成新区块的当前节点的区块链上查找删减点;
S2:根据所述删减点检索并删除预设的删减周期内的所有区块中的可删减数据,对删除所述可删减数据后的各区块进行合并,得到压缩区块;
S3:将所述压缩区块嵌入至当前节点生成的新区块中,得到组合区块;
S4:当前节点将生成的新区块广播到其他节点,其他节点重复执行步骤S1~S3,以对各节点对应的区块链进行删减,得到所述组合区块;
S5:重复执行步骤S1~S4,按照新区块的生成周期持续对区块数据进行动态删减。
区块链系统按照新区块的生成周期和设定的删减周期对区块数据进行持续性地自动删减,本发明的删减过程具有连续性,区块链系统可以在长期运行过程中持续执行删减过程,使整个区块数据的占比维持在固定大小数量,释放存储空间。
优选的,上述区块数据动态删减方法,其可删减数据包括已抛弃的智能合约且该智能合约的余额为零,或者已被用户标识为可删除的交易且该交易的余额为零。
优选的,上述区块数据动态删减方法,其步骤S2之前还包括:
在区块链的交易数据结构中增加可删除表示位,接收用户生成的交易数据以及根据所述可删除表示位生成的删除标识;所述删除标识用于指定所述交易数据是否可被删除。
通过在区块链的交易数据结构中增加可删除表示位,将交易数据删除的权力放于用户,用户对其生成的交易数据删除与否具有完全自主权,用户可选择发起的交易数据将来是否需要保留。
优选的,上述区块数据动态删减方法,其步骤S1中,作为所述删减点的区块编号 p=i-m;其中,m为各节点保持数据一致性的最小阈值,i为当前节点生成的新区块的编号。
优选的,上述区块数据动态删减方法,其步骤S2中,所述删减周期内的所有区块的编号范围为{(i-m-e),(i-m)},其中,e为删减周期内的区块个数。
优选的,上述区块数据动态删减方法,其步骤S3中,
当所述删减点是当前节点生成的新区块的前一个区块时,则将所述压缩区块嵌入至新区块中;
当所述删减点不是当前节点生成的新区块的前一个区块时,则将所述压缩区块与所述新区块的上一区块共同嵌入至新区块中。
将压缩区块嵌入至当前节点生成的新区块中,使删减之后的剩余交易数据依然能显示在区块链上,同时区块数据结构采用了双HASH指向,系统对区块数据的删减并没有影响区块链整体的结构性,确保未被删减的数据依然能保持可追溯性、完整性和不可篡改性。
优选的,上述区块数据动态删减方法,生成的压缩区块中各交易数据的时间戳和签名保持不变,从而保证删减后的组合区块依然具有可追溯性,并且可以被其他节点规则性的验证。
优选的,上述区块数据动态删减方法,其步骤S4中还包括:
其他节点对压缩区块中各交易数据的正确性和新区块的正确性进行验证;仅当两者均正确时认定该组合区块有效;否者其他节点拒绝接受当前节点广播的新区块。
当前节点负责对生成的新区块之前的数据进行删减,其他节点负责对当前节点删减之后的区块数据进行全局校验,通过该全局验证操作,确保各节点按照相同的删减原则对区块数据进行删减。
优选的,上述区块数据动态删减方法,还包括对删减后的区块数据进行查询的步骤:
接收外部输入的交易数据的查询命令,根据所述查询命令查找所述交易数据所属的原始区块;
当所述原始区块未被删减处理时,则直接从该原始区块中提取交易数据并输出;
当所述原始区块已被删减处理时,则查找该原始区块被删减后生成的压缩区块被嵌入的组合区块,从所述组合区块中提取交易数据并输出。
优选的,上述区块数据动态删减方法,查找该原始区块被删减后生成的压缩区块被嵌入的组合区块具体包括以下步骤:
计算该原始区块被删减后生成的压缩区块的虚拟嵌入区块,所述虚拟嵌入区块的计算方法为:M_i=n/e+1;
查找与所述虚拟嵌入区块直接关联的组合区块,所述组合区块的查找方式为:M=m +M_i;
其中,M_i表示虚拟嵌入区块的编号;n为原始区块的编号,M为组合区块的编号; e为删减周期内的区块个数;m为各节点保持数据一致性的最小阈值。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
(1)本发明提供的一种可信的区块链动态删减方法,区块链系统按照新区块的生成周期和设定的删减周期对区块数据进行持续性地自动删减,本发明的删减过程具有周期性和连续性,区块链系统可以在长期运行过程中自动、持续执行删减过程,使整个区块数据的占比维持在固定大小数量,释放存储空间。
(2)本发明提供的一种可信的区块链动态删减方法,通过在区块链的交易数据结构中增加可删除表示位,将交易数据删除的权力放于用户,用户对其生成的交易数据删除与否具有完全自主权,用户可选择发起的交易数据将来是否需要保留。
(3)本发明提供的一种可信的区块链动态删减方法,将压缩区块嵌入至当前节点生成的新区块中,使删减之后的剩余交易数据依然能显示在区块链上,同时区块数据结构采用了双HASH指向,系统对区块数据的删减并没有影响区块链整体的结构性,确保未被删减的数据依然能保持可追溯性、完整性和不可篡改性。
(4)本发明提供的一种可信的区块链动态删减方法,当前节点负责对生成的新区块之前的数据进行删减,其他节点负责对当前节点删减之后的区块数据进行全局校验,通过该全局验证操作,确保各节点按照相同的删减原则对区块数据进行删减,保证删减后的组合区块依然具有可追溯性、完整性和不可篡改性。
(5)本发明提供的一种可信的区块链动态删减方法,可在提供少数存储的空间的情况下长期提供稳定可靠的区块链服务,可以广泛应用于对存储空间要求极高的卫星通信、移动终端以及芯片级的区块链服务中。
附图说明
图1是本发明实施例提供的区块数据动态删减方法的流程图;
图2是本发明实施例提供的区块链的删减点和回溯高度关系图;
图3是本发明实施例提供的交易数据结构;
图4是本发明实施例提供的用户对可删除表示位的操作图;
图5是本发明实施例提供的对区块数据进行持续删减的过程示意图;
图6是本发明实施例提供的对删减后的区块数据进行查询的方法流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本实施例提供的一种可信的区块数据动态删减方法,适用于对具有多个节点的区块链系统中的区块数据进行周期性、持续性的共识删除,在保留原有区块链特性的基础上对区块链系统中的区块数据进行全局删除,释放存储空间,有效解决了区块链数据随着时间的推移存储过大,导致区块数据存储空间紧张和同步困难的问题。
图1是本实施例提供的区块数据动态删减方法的流程图,如图1所示,该区块数据动态删减方法包括以下步骤:
S1:当区块链系统中的任一节点生成新区块时,在生成新区块的当前节点的区块链上查找删减点;
区块链系统中产生新区块的节点一般称之为挖矿节点,挖矿节点生成新区块后,首先对其区块链上的区块数据进行删减,区块链系统的删减过程由挖矿节点控制;
由于区块链系统中包括多个节点,为了保证当前区块链在所有节点上的一致性,在进行删减之前要先寻找合适的删减点;本实施例中,删减点定位为p=i-m,其中,m为保持数据一致性的最小阈值,i为当前节点生成的新区块的编号。例如:当前节点生成的新区块编号3000,最小阈值m设为1000,则表示从编号2000的区块开始进行删除,同时默认为编号2000的区块在所有节点上已经保持了一致,即编号2000的区块被所有节点进行共识并接受。
图2为本实施例提供的区块链的删减点和回溯高度关系图;如图2所示,假如当前节点生成了新区块i+5,首先在当前节点的区块链上查找删除点,如果新区块i+5的前一区块i+4在区块链系统中的各个节点上进行共识,则优选以该前一区块i+4作为删减点;如果新区块i+5的前一区块i+4由于传输延迟或其他原因还未被区块链系统中的其他节点上进行共识,则需要查找当前节点的区块链上已被其他节点共识的最新区块,如图2中的区块i+2是已被其他节点共识的最新区块,而区块i+3、区块i+4未被其他节点共识,因此本实施例选择区块i+2作为删减点。
S2:根据步骤S1中确定的删减点检索并删除预设的删减周期内的所有区块中的可删减数据,对剔除可删减数据后的各区块进行合并,得到压缩区块;
删减周期表示一次性压缩的区块个数,删减周期越大表示删减的区块越多,同时消耗的时间也会越长;实际应用中,删减周期由最终的机器性能权衡决定,本实施例不作限制。删减周期和删减点确定之后,检索并删除删减周期内的所有区块中的可删减数据,检索范围为{(i-m-e),(i-m)},其中,e为删减周期内的区块个数。如图2所示,删减周期e定为3个区块,当删减点区块i+2确定之后,对区块i、区块i+1和区块i+2中的可删减数据进行检索并删除,对区块i、区块i+1和区块i+2中的剩余交易数据进行合并,生成一个压缩区块NBi
本实施例中,可删减数据包括已抛弃的智能合约且该智能合约的余额为零,或者已被用户标识为可删除的交易且该交易的余额为零。
本实施例将交易数据删除的权力放于用户,用户对其生成的交易数据删除与否具有完全自主权,用户可选择发起的交易数据将来是否需要保留;为了实现这一目的,本实施例在区块链的交易数据结构中增加可删除表示位,图3是本实施例提供的交易数据结构,图4为用户对可删除表示位的操作图;如图3所示,传统的交易数据结构仅包括版本、输入数量、输入、输出,本实施例在传统的交易数据结构中添加了可删除表示位,其中,数字1表示可删除,0表示不可删除,当然可采用其他的数值或符号进行表示,本实施例不作具体限制;用户在进行转账时根据可删除表示位生成删除标识,指定该交易数据是否可删除,如图4所示,将含有删除标识的交易数据发送到区块链系统中。区块链系统接收用户生成的交易数据以及该交易数据的删除标识,在检索时,可以直接根据该删除标识确定交易数据是否可被删减。
检索到可删减数据之后,对各区块中的可删减数据进行统一删除,然后将各区块中的剩余数据进行合并,得到一个新的压缩区块,本实施例将压缩区块中的交易数据定义为{t_0,t_1,t_2,…,t_n};需要指出的是,为了保证删减后的组合区块依然具有可追溯性,本实施例中删减后合并生成的压缩区块中的所有交易的时间戳和签名不变,并且可以被其他节点规则性的验证;如果发现交易时间戳被篡改,则其他节点有权拒绝接收新生成的压缩区块。
S3:将步骤S2中生成的压缩区块嵌入至当前节点生成的新区块中,得到组合区块;
如图2所示,得到压缩区块NBi之后,将该压缩区块NBi嵌入当前节点生成的新区块i+5中;需要指出的是,新区块i+5是压缩区块NBi的实际嵌入点,而区块i+3作为当前删除周期的后一个区块,是压缩区块NBi的虚拟时间嵌入点;压缩区块NBi的实际嵌入点与虚拟时间嵌入点之间相差一个各节点保持数据一致性的最小阈值m,该最小阈值m同时也是根据压缩区块NBi的虚拟时间嵌入点查找实际嵌入点的回溯高度;
本实施例采用双HASH的分支结构,即压缩区块NBi的HASH与新区块i+5的父 HASH(区块i+4)同时嵌入到最新的新区块i+5中;需要指出的是,双HASH的分支结构适用于删减点不是当前节点生成的新区块的前一个区块的情况,即当删减点不是当前节点生成的新区块的前一个区块时,则将压缩区块与新区块的上一区块共同嵌入至新区块中;而当删减点是当前节点生成的新区块的前一个区块时,则将直接压缩区块嵌入至新区块中即可;
如图2所示,由于作为删减点的区块i+2不是当前节点生成的新区块i+5的前一个区块,则将压缩区块NBi与新区块i+5的上一区块i+4共同嵌入至新区块i+5中,得到组合区块;但是如果步骤S1中确定的删减点为i+4,同样以删减周期是3个区块为例,则之间将区块i+2、区块i+3、区块i+4生成的压缩区块嵌入当前区块i+5中即可。
本实施例将压缩区块嵌入至当前节点生成的新区块中,使删减之后的剩余交易数据依然能显示在区块链上,同时区块数据结构采用了双HASH指向,系统对区块数据的删减并没有影响区块链整体的结构性,确保未被删减的数据依然能保持可追溯性、完整性和不可篡改性。
S4:当前节点将生成的新区块广播到其他节点,其他节点重复执行步骤S1~S3,以对其他节点各自对应的区块链进行删减,得到组合区块;
其他节点首先重复执行步骤S1~S3,以获取最新删减后的压缩区块{t_0,t_1,t_2,…, t_n};然后将压缩区块嵌入接收的新区块中,即得到组合区块;在此过程中,其他节点对压缩区块中各交易数据的正确性和新区块的正确性进行验证;仅当两者均正确时认定该组合区块有效;否者其他节点拒绝接受当前节点广播的新区块;其中,对交易数据的正确性进行验证包括验证交易的时间戳、交易的签名等;对新区块的正确性进行验证包括验证该区块的签名、挖矿是否正确等;
整个删减的过程由挖矿节点(当前节点)控制,挖矿节点负责对挖到的新区块之前的数据进行删减,非挖矿节点(其他节点)负责对挖矿节点删减之后的区块数据进行全局校验,通过该全局验证操作,确保各节点按照相同的删减原则对区块数据进行删减。
S5:重复执行步骤S1~S4,各节点按照新区块的生成周期持续对区块数据进行动态删减。
图5是本实施例提供的对区块数据进行持续删减的过程示意图,如图5所示,假如以2个区块为一个删减周期,某一节点生成的新区块为i+4时,对区块i和i+1进行删减后生成的压缩区块为NBi+1,该压缩区块NBi+1将被嵌入到新区块i+4中,同时新区块 i+4的父区块i+3也被嵌入新区块i+4中;随着时间的推移,当某一节点生成新区为i+6 时,对区块i+2(嵌入压缩区块NBi+1之后)和区块i+3进行删减后生成的压缩区块为 NBi+2,该压缩区块NBi+2将被嵌入到新区块i+6中,同时新区块i+6的父区块i+5也被嵌入新区块i+6中;按照此种方式,区块链系统按照新区块的生成周期和设定的删减周期对区块数据进行持续性地自动删减,释放存储空间。与一般区块系统相比,本发明的删减方案具有连续性,区块链系统可以在长期运行过程中持续执行删减过程,使整个区块数据的占比维持在固定大小数量。
为了应对用户对交易数据进行查询的需求,本实施例还提供了对删减后的区块数据进行查询的方法,如图6所示,该查询方法包括以下步骤:
S6:接收用户触发客户端生成的交易数据的查询命令,根据该查询命令查找交易数据所属的原始区块,并查询该原始区块是否被删减处理;
S7:如果该原始区块未被删减处理,则直接从该原始区块中提取交易数据,直接反馈查询结果给用户;
S8:如果该原始区块已被删减处理,则查找该原始区块被删减后生成的压缩区块被嵌入的组合区块,从该组合区块中提取交易数据,反馈查询结果给用户;
其中,查找该原始区块被删减后生成的压缩区块被嵌入的组合区块具体包括以下步骤:
(1)计算该原始区块被删减后生成的压缩区块的虚拟嵌入区块,该虚拟嵌入区块的计算方法为:M_i=n/e+1;如图2所示,压缩区块NBi的虚拟嵌入区块即为区块i+3;
(2)查找与该虚拟嵌入区块直接关联的组合区块,该组合区块的查找方式为:M=m+M_i;查询到虚拟嵌入区块i+3之后,根据各节点保持数据一致性的最小阈值m(回溯高度)即可获知压缩区块NBi的实际嵌入点位区块i+5;
其中,M_i表示虚拟嵌入区块的编号;n为原始区块的编号,M为组合区块的编号; e为删减周期内的区块个数;m为各节点保持数据一致性的最小阈值。
本发明提供的一种可信的区块链动态删减方法,区块链系统按照新区块的生成周期和设定的删减周期对区块数据进行持续性地自动删减,本发明的删减过程具有周期性和连续性,区块链系统可以在长期运行过程中自动、持续执行删减过程,使整个区块数据的占比维持在固定大小数量,释放存储空间。整个删减的过程由挖矿节点控制,挖矿节点负责对挖到的新区块之前的数据进行删减,非挖矿节点负责对挖矿节点删减之后的区块数据进行全局校验,通过该全局验证操作,确保各节点按照相同的删减原则对区块数据进行删减,保证删减后的组合区块依然具有可追溯性、完整性和不可篡改性。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种可信的区块数据动态删减方法,其特征在于,包括以下步骤:
S1:当区块链系统中的任一节点生成新区块时,根据节点保持数据一致性的最小阈值在生成新区块的当前节点的区块链上查找删减点,作为所述删减点的区块编号p = i-m;其中,m 为各节点保持数据一致性的最小阈值,i为当前节点生成的新区块的编号;
S2:根据所述删减点检索并删除预设的删减周期内的所有区块中的可删减数据,对删除所述可删减数据后的各区块进行合并,得到压缩区块;所述可删减数据包括已抛弃的智能合约且该智能合约的余额为零,或者已被用户标识为可删除的交易且该交易的余额为零;
S3:将所述压缩区块嵌入至当前节点生成的新区块中,得到组合区块;
S4:当前节点将生成的新区块广播到其他节点,其他节点重复执行步骤S1~S3,以对各节点对应的区块链进行删减,得到所述组合区块;
S5:重复执行步骤S1~S4,按照新区块的生成周期持续对区块数据进行动态删减。
2.如权利要求1所述的区块数据动态删减方法,其特征在于,步骤S2之前还包括:
在区块链的交易数据结构中增加可删除表示位,接收用户生成的交易数据以及根据所述可删除表示位生成的删除标识;所述删除标识用于指定所述交易数据是否可被删除。
3.如权利要求1所述的区块数据动态删减方法,其特征在于,步骤S2中,所述删减周期内的所有区块的编号范围为{ ( i-m -e),( i-m ) },其中,e为删减周期内的区块个数。
4.如权利要求1或3所述的区块数据动态删减方法,其特征在于,步骤S3中,
当所述删减点是当前节点生成的新区块的前一区块时,则将所述压缩区块嵌入至新区块中;
当所述删减点不是当前节点生成的新区块的前一区块时,则将所述压缩区块与所述新区块的前一区块共同嵌入至新区块中。
5.如权利要求4所述的区块数据动态删减方法,其特征在于,所述压缩区块中各交易数据的时间戳和签名保持不变。
6.如权利要求5所述的区块数据动态删减方法,其特征在于,步骤S4中还包括:
其他节点对压缩区块中各交易数据的正确性和新区块的正确性进行验证;仅当两者均正确时认定该组合区块有效;否者其他节点放弃当前节点广播的新区块。
7.如权利要求1或6所述的区块数据动态删减方法,其特征在于,还包括对删减后的区块数据进行查询的步骤:
接收外部输入的交易数据的查询命令,根据所述查询命令查找所述交易数据所属的原始区块;
当所述原始区块未被删减处理时,则直接从该原始区块中提取交易数据并输出;
当所述原始区块已被删减处理时,则查找该原始区块被删减后生成的压缩区块被嵌入的组合区块,从所述组合区块中提取交易数据并输出。
8.如权利要求7所述的区块数据动态删减方法,其特征在于,查找该原始区块被删减后生成的压缩区块被嵌入的组合区块具体包括以下步骤:
计算该原始区块被删减后生成的压缩区块的虚拟嵌入区块,所述虚拟嵌入区块的计算方法为:M_i = n/e + 1;
查找与所述虚拟嵌入区块直接关联的组合区块,所述组合区块的查找方式为:M= m +M_ i;
其中,M_i表示虚拟嵌入区块的编号;n为原始区块的编号,M为组合区块的编号;e为删减周期内的区块个数;m 为各节点保持数据一致性的最小阈值。
CN201910653041.3A 2019-07-19 2019-07-19 一种可信的区块数据动态删减方法 Active CN110474776B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910653041.3A CN110474776B (zh) 2019-07-19 2019-07-19 一种可信的区块数据动态删减方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910653041.3A CN110474776B (zh) 2019-07-19 2019-07-19 一种可信的区块数据动态删减方法

Publications (2)

Publication Number Publication Date
CN110474776A CN110474776A (zh) 2019-11-19
CN110474776B true CN110474776B (zh) 2022-06-07

Family

ID=68508773

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910653041.3A Active CN110474776B (zh) 2019-07-19 2019-07-19 一种可信的区块数据动态删减方法

Country Status (1)

Country Link
CN (1) CN110474776B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111597190A (zh) * 2020-05-15 2020-08-28 中国人民大学 一种区块链数据存储和检索方法、装置、设备及存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107423426B (zh) * 2017-08-02 2020-06-02 众安信息技术服务有限公司 一种区块链块数据的数据归档方法及电子设备
US10739997B2 (en) * 2017-11-20 2020-08-11 International Business Machines Corporation Deletion of blocks in a blockchain
CN109274377A (zh) * 2018-08-22 2019-01-25 泰康保险集团股份有限公司 区块链网络的数据处理方法、装置、介质及电子设备
CN109324757B (zh) * 2018-08-22 2021-05-21 深圳前海微众银行股份有限公司 区块链数据缩容方法、装置及存储介质
CN109492049B (zh) * 2018-09-21 2021-05-04 上海点融信息科技有限责任公司 用于区块链网络的数据处理、区块生成及同步方法
CN109493044A (zh) * 2018-11-08 2019-03-19 深圳壹账通智能科技有限公司 区块链区块删除方法、装置以及终端设备

Also Published As

Publication number Publication date
CN110474776A (zh) 2019-11-19

Similar Documents

Publication Publication Date Title
CN109391645B (zh) 区块链轻量化处理方法、区块链节点及存储介质
CN111177277B (zh) 数据存储方法、交易存储方法及装置
CN102419752B (zh) 一种工业数据库报文存储方法
CN111061769A (zh) 一种区块链系统的共识方法及相关设备
CN102906751A (zh) 一种数据存储、数据查询的方法及装置
CN102567522B (zh) 一种智能卡文件系统的管理方法及设备
CN103875229A (zh) 异步复制方法、装置与系统
CN105956123A (zh) 基于局部更新软件的数据处理方法及装置
CN112947856B (zh) 一种内存数据的管理方法、装置、计算机设备及存储介质
CN104408584A (zh) 一种交易关联性的分析方法及系统
CN108614837B (zh) 文件存储和检索的方法及装置
CN110941676B (zh) 一种配置方法、装置、设备及介质
CN109086382B (zh) 一种数据同步方法、装置、设备及存储介质
CN110399096B (zh) 分布式文件系统元数据缓存重删的方法、装置以及设备
CN108121827A (zh) 一种全量数据的同步方法及装置
CN103823807A (zh) 一种去除重复数据的方法、装置及系统
CN112732191B (zh) 基于日志结构合并树合并数据的方法、系统、设备及介质
CN102937924A (zh) 一种综合文件特征与文件系统的fat数据恢复方法
CN103064908B (zh) 一种通过内存快速去重名单的方法
CN110474776B (zh) 一种可信的区块数据动态删减方法
CN112579261A (zh) 退出跨片事务的方法和系统、主链节点和目标分片节点
CN111209257A (zh) 一种文件系统碎片化的方法及装置
CN102567377B (zh) 电子地图数据管理系统及方法
CN111340496B (zh) 一种自动优化历史交易数据的区块链系统及方法
CN102340544B (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