CN111641712B - 区块链数据更新方法、装置、设备、系统及可读存储介质 - Google Patents

区块链数据更新方法、装置、设备、系统及可读存储介质 Download PDF

Info

Publication number
CN111641712B
CN111641712B CN202010477705.8A CN202010477705A CN111641712B CN 111641712 B CN111641712 B CN 111641712B CN 202010477705 A CN202010477705 A CN 202010477705A CN 111641712 B CN111641712 B CN 111641712B
Authority
CN
China
Prior art keywords
data
target
node
hash
blockchain
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
CN202010477705.8A
Other languages
English (en)
Other versions
CN111641712A (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.)
Shenzhen Onething Technology Co Ltd
Shenzhen Xunlei Network Technology Co Ltd
Original Assignee
Shenzhen Onething Technology Co Ltd
Shenzhen Xunlei 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 Shenzhen Onething Technology Co Ltd, Shenzhen Xunlei Network Technology Co Ltd filed Critical Shenzhen Onething Technology Co Ltd
Priority to CN202010477705.8A priority Critical patent/CN111641712B/zh
Publication of CN111641712A publication Critical patent/CN111641712A/zh
Application granted granted Critical
Publication of CN111641712B publication Critical patent/CN111641712B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Technology Law (AREA)
  • Strategic Management (AREA)
  • Marketing (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Economics (AREA)
  • Development Economics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种区块链数据更新方法、装置、设备、系统及可读存储介质,该方法包括以下步骤:区块链系统中的监管节点接收数据更新请求,确定目标对象的旧数据在变色龙默克尔树中对应的目标叶节点;变色龙默克尔树中的叶节点均存储采用变色龙哈希计算得到的哈希值;计算出目标叶节点针对目标对象的新数据的哈希碰撞,获得目标随机数;利用目标随机数和新数据对目标叶节点进行更新,得到新区块;启动区块更新流程,将新区块在区块链节点之间做共识。该方法可实现区块链数据的维护性及可监管性。即,在出现不适宜公开或出现程序错误时,可采用该方法进行解决,降低各类损失。

Description

区块链数据更新方法、装置、设备、系统及可读存储介质
技术领域
本申请涉及计算机应用技术领域,特别是涉及一种区块链数据更新方法、装置、设备、系统及可读存储介质。
背景技术
区块链上数据不能被轻易篡改是区块链最大的特性之一,这样的技术方案在保证数据安全的同时,还存在被滥用的风险。
例如,如果一些不适宜(如个人隐私、商业秘密等信息)被发送到区块链上的数据随着交易被发送到了链上,或是由于之前设计的失误导致的一些异常情况出现。由于区块链的不可篡改性,将使得修改之前的错误变得异常困难,进而导致相关用户的隐私泄露或是人身财产安全受到影响。
为了解决这些问题,只能采取硬分叉甚至弃用整条区块链才能解决。硬分叉,会改变挖矿算法的难度级别,而弃用整条区块链会造成较大损失。
综上所述,如何有效地解决保留区块链数据的可编辑维护性等问题,是目前本领域技术人员急需解决的技术问题。
发明内容
本申请的目的是提供一种区块链数据更新方法、装置、设备、系统及可读存储介质,以实现对区块链数据进行修改维护的目的。
为解决上述技术问题,本申请提供如下技术方案:
一种区块链数据更新方法,应用于区块链系统中的监管节点,所述方法包括:
所述监管节点接收数据更新请求,确定目标对象的旧数据在变色龙默克尔树中对应的目标叶节点;所述变色龙默克尔树中的叶节点均存储采用变色龙哈希计算得到的哈希值;
计算出所述目标叶节点针对所述目标对象的新数据的哈希碰撞,获得目标随机数;
利用所述目标随机数和所述新数据对所述目标叶节点进行更新,得到新区块;
启动区块更新流程,将所述新区块在区块链节点之间做共识。
优选地,在接收数据更新请求之前,还包括:
基于椭圆曲线生成随机数作为陷门私钥,并根据所述陷门私钥计算得到陷门公钥;
向区块链系统中的其它节点公开所述陷门公钥,以使区块链系统中的提议节点利用所述陷门公钥构建所述变色龙默克尔树。
优选地,所述提议节点利用所述陷门公钥构建所述变色龙默克尔树,包括:
所述提议节点利用所述待存储数据的总量计算出所述变色龙默克尔树的高度,并利用所述陷门公钥构建所述高度对应的变色龙默克尔树。
优选地,计算出所述目标叶节点针对所述目标对象的新数据的哈希碰撞,获得目标随机数,包括:
结合陷门密钥计算出满足所述新数据与所述旧数据发生哈希碰撞时对应的所述目标随机数。
优选地,结合陷门密钥计算出满足所述新数据与所述旧数据发生哈希碰撞时对应的所述目标随机数,包括:
获取基于椭圆曲线生成的所述陷门私钥;
获取所述旧数据的目标哈希值;
结合所述陷门私密钥计算出所述新数据也对应所述目标哈希值时的所述目标随机数。
优选地,还包括:
接收修改论证请求,确定参考数据和嫌疑数据;
若所述参考数据与所述嫌疑数据产生哈希碰撞,则确定嫌疑数据已修改;
若所述参考数据与所述嫌疑数据未产生哈希碰撞,则确定嫌疑数据未修改。
一种区块链数据更新装置,应用于区块链系统中的监管节点,所述装置包括:
请求接收模块,用于接收数据更新请求,确定目标对象的旧数据在变色龙默克尔树中对应的目标叶节点;所述变色龙默克尔树中的叶节点均存储采用变色龙哈希计算得到的哈希值;
碰撞计算模块,用于计算出所述目标叶节点针对所述目标对象的新数据的哈希碰撞,获得目标随机数;
数据更新模块,用于利用所述目标随机数和所述新数据对所述目标叶节点进行更新,得到新区块;
共识更新模块,用于在利用目标随机数和新数据对目标叶节点进行更新之后,启动区块更新流程,将所述新区块在区块链节点之间做共识。
一种区块链数据更新设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述区块链数据更新方法的步骤。
一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述区块链数据更新方法的步骤。
一种区块链系统,包括监管节点和提议节点,其中,所述监管节点用于执行如上述的区块链数据更新方法的步骤,所述提议节点用于向所述监管节点发生数据更新请求并构建变色龙默克尔树。
应用本申请实施例所提供的方法,区块链系统中的监管节点接收数据更新请求,确定目标对象的旧数据在变色龙默克尔树中对应的目标叶节点;变色龙默克尔树中的叶节点均存储采用变色龙哈希计算得到的哈希值;计算出目标叶节点针对目标对象的新数据的哈希碰撞,获得目标随机数;利用目标随机数和新数据对目标叶节点进行更新,得到新区块;启动区块更新流程,将新区块在区块链节点之间做共识。
在本方法中,按照变色龙默克尔树结构存储区块链中的交易数据。该变色龙默克尔树的所有叶子节点均存储采用变色龙哈希计算得到的哈希值。需要说明的是,变色龙哈希(Chameleon Hash,CH)与大多数哈希函数不同,CH额外含有一个陷门密钥。对于不拥有陷门密钥的用户来说,CH的性质与普通哈希函数没有区别。但是对于陷门密钥的拥有者来说,找到一个哈希原像的碰撞将是一件容易计算的问题。基于此,当监管节点接收到数据更新请求时,可确定出待更新旧数据在变色龙默克尔树中对应的目标叶节点。然后,计算出目标叶节点针对新数据的哈希碰撞,得到目标随机数。便可利用目标随机数和新数据对目标叶节点进行更新,得到新区块,且更新后的目标叶节点的哈希值与原哈希值相同,因此不会影响非目标叶节点之外的其他节点。如此,便可完成数据的更新,实现了区块链数据的维护性及可监管性。即,在出现不适宜公开或出现程序错误时,可采用此方法进行解决,降低各类损失。
相应地,本申请实施例还提供了与上述区块链数据更新方法相对应的区块链数据更新装置、设备和可读存储介质,具有上述技术效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中一种区块链数据更新方法的实施流程图;
图2为本申请实施例中一种变色龙默克尔树示意图;
图3为本申请实施例中一种区块链数据更新装置的结构示意图;
图4为本申请实施例中一种区块链数据更新设备的结构示意图;
图5为本申请实施例中一种区块链数据更新设备的另一种结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为便于理解本申请实施例所提供的技术方案,下面对涉及的技术术语以及相关技术进行简要说明。
一、哈希函数
哈希函数(Hash Function,本文中简称为H)是一种密码学单向函数,是一种将任意长度的数据信息作为输入,映射成为某一固定长度数据作为输出的算法。哈希函数具备单向性、抗弱碰撞性和抗强碰撞性的特点,具体如下:
1、单向性:给定y=H(x)搜索x是困难的。单向性是指通过一个输入X,通过哈希算法可以很容易地计算得到输出结果Y,但是如果只拥有Y,则在有限时间内很难逆推出原输入X。
2、抗弱碰撞性:给定y=H(x),搜索x′≠x且y=H(x′)是困难的。哈希算法的抗弱碰撞性指的是,假设x通过算法H(x)得出结果y,在有限时间内找到一个不等于x的数据x′,使得x′的输出结果和x的结果同样都等于y是困难的。
3、抗强碰撞性:搜索一对(x,x′)使得x≠x′且H(x)=H(x′)是困难的。指通过任何手段都无法有效的找到一对不相等的数据x和x′,使其满足两个数据的哈希输出结果都等于一个相同的值y时,这样的哈希算法就满足强抗碰撞性。抗强碰撞性与抗弱碰撞性的主要区别在于对安全假设的不同。抗弱碰撞性要求对某一个确定的输入找到与之相关的碰撞,而抗强碰撞性则指只要存在任意一对满足输入不同而输出相同的哈希,则意味着这一项安全性质遭受攻破。
二、区块链数据不被轻易篡改的原理
通过交易的形式发送到共识节点上,提议区块链的共识节点将收到的所有交易打包成区块后发给其他的共识节点,由共识算法对区块达成一致后,将区块持久化存储到数据库中。由于区块头中包含由所有交易所构建的Merkle Tree的根,即Merkle Root,因此修改区块中的任意一笔交易都会影响区块头中Merkle Root的值,进而影响整个区块头的哈希值。由于每一个区块的区块头中还包含其所链接的上一个区块的哈希值,因此旧的区块中任何数据个改变都会引发后续所有和它有直接或间接链接关系的区块发生改变。因此,对于意图篡改区块链的攻击者而言,修改旧的区块就意味着要修改这个区块后面所有的区块,这对于攻击者来说是一件几乎不可能完成的任务。区块链也因此保证了数据不被篡改。
三、变色龙哈希
变色龙哈希(Chameleon Hash,CH)。变色龙哈希是一种特殊的哈希函数,基于ElGamal算法构建。与大多数哈希函数不同,CH额外含有一个陷门密钥。对于不拥有陷门密钥的用户来说,CH的性质与上文所描述的普通哈希函数几乎没有区别。但是对于陷门密钥的拥有者来说,找到一个哈希原像的碰撞将是一件容易计算的问题。
变色龙哈希的形式如下所示:
y=CH(x,r)
其中CH为变色龙哈希函数,x为哈希的输入,r为一个随机数作为输入的另一部分,y为变色龙哈希的输出,即哈希值。
对于任意一个现有的变色龙哈希对应关系y=CH(x,r)和任意消息x′,陷门密钥的拥有者可以很容易地找到r′,使得y=CH(x,r)=CH(x′,r′),即打破上文提到的哈希的抗弱碰撞性和抗强碰撞性性质。
实施例一:
请参考图1,图1为本申请实施例中一种区块链数据更新方法的流程图,该方法可应用于区块链系统中的监控节点,该方法包括以下步骤:
S101、监管节点接收数据更新请求,确定目标对象的旧数据在变色龙默克尔树中对应的目标叶节点。
其中,变色龙默克尔树中的叶节点均存储采用变色龙哈希计算得到的哈希值。变色龙默克尔树即为改进的变色龙认证树(Chameleon Authentication Tree,CAT),使用该数据结构替代原有区块链结构中的Merkle Tree,即,改进的变色龙默克尔树,是一种基于抗碰撞哈希(H)和可碰撞哈希(CH)结合构成的二叉树。为便于描述,在本实施例中称该新的数据结构,即变色龙默克尔树为(Modified Chameleon Merkle Tree,MCMT)。
具体的,该变色龙默克尔树的数据结构可参见图2,图中的矩形代表根节点(ROOT)或中间节点,矩形节点的计算哈希值时,可采用通用的非碰撞哈希,即普通哈希;圆形代表叶节点,叶节点的计算哈希值时采用变色龙哈希;叶节点可采用从0到N的顺序编号,其他节点(除根节点外)采用二维编号(V-a-b),其中第一位数字a代表树高度,第二位数字b代表在当前高度中的序号。
其中,监管节点可具体为私有链或联盟链场景中的监控节点,监控节点可持有变色龙哈希的陷门密钥。
其中,目标对象即为待更新的对象,该对象可具体为某种文件、资源。
在实现本申请实施例所提供的区块链数据更新方法之前,即在接收数据更新请求之前,还可以先按照变色龙默克尔树存储区块链中的交易数据。
即,陷门私钥和公钥都是监管节点预先生成的,然后公布公钥,这样提议节点在生成区块时,将利用陷门公钥构建变色龙默克尔树,只有这样构建出来的变色龙默克尔树才有可能利用陷门私钥计算出碰撞随机数。也就是说,在接收数据更新请求之前,监督节点还可执行以下步骤:
步骤一、基于椭圆曲线生成随机数作为陷门私钥,并根据陷门私钥计算得到陷门公钥;
步骤二、向区块链系统中的其它节点公开陷门公钥,以使区块链系统中的提议节点利用陷门公钥构建变色龙默克尔树。
其中,提议节点构建变色龙默克尔树,可具体包括:提议节点利用待存储数据的总量计算出变色龙默克尔树的高度,并利用陷门公钥构建高度对应的变色龙默克尔树。
区块提议者在构建区块的过程中,需要构建MCMT。首先,提议者确定待打包的交易总数N,即待存储数据的总量。并计算出MCMT树结构的高度h,h=logN,并进行构建。
然后,提议者将交易依次插入到MCMT树中。其中,提议者可为监管节点也可为其他节点。以MCMT中按照图2所示的结构,即根节点和中间节点均采用非碰撞哈希函数H,叶子节点均采用变色龙哈希函数CH,则对于中间节点,采用H进行哈希;对于叶子节点,采用CH进行哈希。
对于每条交易(即存储于区块链中的数据)后面记录的哈希为:当前交易哈希,哈希对应到MCMT上的验证路径(类似于原有Merkle Tree中的Merkle Path),以及当前叶节点计算CH所采用的随机数输入r。
整个MCMT计算得到的根节点将被记录到区块头中。
例如,图2所示的叶节点L2对应的交易中,需要存储哈希值CH(L2),CH(L3),H(V-1-0),H(V-2-1),H(ROOT),以及计算CH(L2)所采用的随机数r。
在按照上述方式将待存储数据写入区块之后,可在区块链中的各个节点之间做共识,以便传播流通。
如此,在监管节点接收到数据更新请求之后,可解析该数据更新请求确定出待更新的旧数据,用于更新的新数据,并确定出旧数据在MCMT中的位置,即具体在哪个叶节点下,将待更新旧数据所属叶节点确定为目标叶节点。
S102、计算出目标叶节点针对目标对象的新数据的哈希碰撞,获得目标随机数。
其中,目标随机数即为使得目标对象的新数据与旧数据产生哈希碰撞时,新数据所对应的随机数。目标随机数的确定过程,可具体为结合陷门密钥计算出满足新数据与旧数据发生哈希碰撞时对应的目标随机数。
优选地,为了便于计算,可采用基于椭圆曲线实现的变色龙哈希。相应地,目标随机数的确定过程可包括以下步骤:
步骤一、获取基于椭圆曲线生成的陷门私钥;
步骤二、获取旧数据的目标哈希值;
步骤三、结合陷门私钥计算出新数据也对应目标哈希值时的目标随机数。
为了便于描述,下面将上述三个步骤结合起来进行说明。
目标哈希值可从该目标叶节点存储的验证哈希中读取获得。
陷门密钥生成KeyGen(1λ):对于安全参数为λ的情况,假设G为椭圆曲线的基点,在椭圆曲线阶的范围内随机生成一个数csk作为陷门私钥,计算CPK=csk·G作为公钥公开。
哈希计算CH(x,r):输入为一个任意长度的数据x和一个椭圆曲线阶范围内的随机数r,首先用一个非碰撞的哈希函数H对x进行标准化运算,输出H(x),然后在椭圆曲线域上计算CH(x,r)=H(x)·G+r·CPK
碰撞计算COL(x,r,x′,csk):对于给定的原输入消息x和随机数r,新消息x′,以及陷门密钥csk,CH(x,r)=H(x)·G+r·CPK=H(x′)·G+r′·CPK。由于CPK=csk·G,因此可以得到:
H(x)·G+r·csk·G=H(x′)·G+r′·csk·G
(H(x)+r·csk)·G=(H(x′)+r′·csk)·G
H(x)+r·csk=H(x′)+r′·csk
r′=csk-1·(H(x)-H(x′))
计算得到的r′使得CH(x,r)=CH(x′,r′)可以满足,即找到了CH关于(x,r)的碰撞(x′,r′),其中r′即目标随机数。特别地,结合椭圆曲线离散对数问题替换了原有KR00算法中所采用的实数离散对数域,在相同安全等级条件下密钥长度和哈希长度都缩短为原方案的1/10以下,节约存储空间并提升运算效率。
S103、利用目标随机数和新数据对目标叶节点进行更新,得到新区块。
即,将目标叶节点下的旧数据替换为新数据,并将该目标叶节点存储的验证哈希中的目标叶节点哈希,由原来的CH(旧数据,随机数)替换为CH(新数据,目标随机数),如此便完成了对数据内容的更新替换。由于CH(旧数据,随机数)与CH(新数据,目标随机数)的值一致,因此对其他节点无影响,其他节点无需进行哈希计算进行改变,而仅需将变色龙节点中新计算出来的目标随机数在交易中进行更新即可完成数据更新。
以图2为例,若监管方或客户或其他节点,发现某一高度的历史区块中,位于L2位置的节点对应的交易数据中存在问题,需要替换,则首先更新L2位置的交易数据内容,然后利用陷门密钥计算出L2对应的随机数r2’,然后将r2’更新到交易中(具体可参见步骤S104)。由于L2节点找到了哈希碰撞,哈希结果保持和原来一致,因此其他节点不需要再进行改变。
对于任意高度为h的MCMT,更新一条交易数据只需要修改对应叶节点,找到其对应的哈希碰撞进行数据更替即可,因此所需要计算的哈希数量期望为1。因此,对于区块交易数据接近或固定为2的幂次的情况下,修改变动范围小,修改效率更高的场景下,可及时有效的进行数据更新。
S104、启动区块更新流程,将新区块在区块链节点之间做共识。
为了便于修改后的数据在区块链网络中进行传播流通,在利用目标随机数和新数据对目标叶节点进行更新之后,还可启动区块更新流程,将新区块在区块链节点之间做共识。在实际应用中,对于共识算法需要添加对于监管节点的白名单,即实现优先处理来自监管节点发起的更新历史区块的提议,并在共识完成后更新本地历史区块。如此,便可使得区块链网络中的错误数据或不宜公开的数据进行修改调整,满足区块链网络中对数据可维护性的需求。
应用本申请实施例所提供的方法,区块链系统中的监管节点接收数据更新请求,确定目标对象的旧数据在变色龙默克尔树中对应的目标叶节点;变色龙默克尔树中的叶节点均存储采用变色龙哈希计算得到的哈希值;计算出目标叶节点针对目标对象的新数据的哈希碰撞,获得目标随机数;利用目标随机数和新数据对目标叶节点进行更新,得到新区块;启动区块更新流程,将新区块在区块链节点之间做共识。
在本方法中,按照变色龙默克尔树结构存储区块链中的交易数据。该变色龙默克尔树的所有叶子节点均存储采用变色龙哈希计算得到的哈希值。需要说明的是,变色龙哈希(Chameleon Hash,CH)与大多数哈希函数不同,CH额外含有一个陷门密钥。对于不拥有陷门密钥的用户来说,CH的性质与普通哈希函数没有区别。但是对于陷门密钥的拥有者来说,找到一个哈希原像的碰撞将是一件容易计算的问题。基于此,当监管节点接收到数据更新请求时,可确定出待更新旧数据在变色龙默克尔树中对应的目标叶节点。然后,计算出目标叶节点针对新数据的哈希碰撞,得到目标随机数。便可利用目标随机数和新数据对目标叶节点进行更新,得到新区块,且更新后的目标叶节点的哈希值与原哈希值相同,因此不会影响非目标叶节点之外的其他节点。如此,便可完成数据的更新,实现了区块链数据的维护性及可监管性。即,在出现不适宜公开或出现程序错误时,可采用此方法进行解决,降低各类损失。
需要说明的是,基于上述实施例,本申请实施例还提供了相应的改进方案。在优选/改进实施例中涉及与上述实施例中相同步骤或相应步骤之间可相互参考,相应的有益效果也可相互参照,在本文的优选/改进实施例中不再一一赘述。
采用实施例一所描述的方法,对于其他非监管节点来说,即使监管节点能够任意修改区块历史数据,但监管的流程是会留下痕迹的,因为之前区块链的数据已经在网络中传播流通,历史数据也有可能存在于某个节点中未被更新或留有备份。因此,当监管节点滥用权力修改区块链历史数据时,其他节点可以通过拿出更改前的元数据及其对应区块作为证据,证明监管节点修改了历史数据。因为只有监管者拥有陷门密钥,因此对于其他非监管节点来说找到满足算法条件的哈希碰撞是几乎不可能的,因此监管节点无法抵赖自己的修改历史数据操作,以此反向监督监管节点不滥用修改区块链历史数据的权利。
优选地,在上述实施例一的基础上,还可对修改进行论证。具体实现过程,包括:
步骤一、接收修改论证请求,确定参考数据和嫌疑数据;
步骤二、若参考数据与嫌疑数据产生哈希碰撞,则确定嫌疑数据已修改;
步骤三、若参考数据与嫌疑数据未产生哈希碰撞,则确定嫌疑数据未修改。
为便于描述,下面将上述三个步骤结合起来进行说明。
修改论证请求可具体有非监管节点的其他节点发起,在该请求中可携带参考数据以及并指出嫌疑数据。其中,参考数据可为预先备份的区块数据,也可为区块中未更新前的区间数据。嫌疑数据即存在修改嫌疑的数据。
由于没有陷门密钥,计算出哈希碰撞几乎不可能。因此,一旦出现两个不同的数据,但这两个数据的变色龙哈希计算结果一致,则可确定嫌疑数据被修改。当然,也可直接判断参考数据与嫌疑数据是否完全一致,若完全一致即可表明嫌疑数据未被修改,否则确定嫌疑数据被修改。如此,便可对数据的修改进行监管论证。即,监管者对区块进行修改的操作可以被非监管者发现,因此从非监管者视角可以反向监督监管者对区块进行修改的操作,保证监管者不会滥用权力。
实施例二:
相应于上面的方法实施例,本申请实施例还提供了一种可应用于区块链系统中的监督节点,区块链数据更新装置,下文描述的区块链数据更新装置与上文描述的区块链数据更新方法可相互对应参照。
参见图3所示,该装置包括以下模块:
请求接收模块101,用于接收数据更新请求,确定目标对象的旧数据在变色龙默克尔树中对应的目标叶节点;变色龙默克尔树中的叶节点均存储采用变色龙哈希计算得到的哈希值;
碰撞计算模块102,用于计算出目标叶节点针对目标对象的新数据的哈希碰撞,获得目标随机数;
数据更新模块103,用于利用目标随机数和新数据对目标叶节点进行更新,得到新区块;
共识更新模块104,用于在利用目标随机数和新数据对目标叶节点进行更新之后,启动区块更新流程,将新区块在区块链节点之间做共识。
应用本申请实施例所提供的装置,区块链系统中的监管节点接收数据更新请求,确定目标对象的旧数据在变色龙默克尔树中对应的目标叶节点;变色龙默克尔树中的叶节点均存储采用变色龙哈希计算得到的哈希值;计算出目标叶节点针对目标对象的新数据的哈希碰撞,获得目标随机数;利用目标随机数和新数据对目标叶节点进行更新,得到新区块;启动区块更新流程,将新区块在区块链节点之间做共识。
在本装置中,按照变色龙默克尔树结构存储区块链中的交易数据。该变色龙默克尔树的所有叶子节点均存储采用变色龙哈希计算得到的哈希值。需要说明的是,变色龙哈希(Chameleon Hash,CH)与大多数哈希函数不同,CH额外含有一个陷门密钥。对于不拥有陷门密钥的用户来说,CH的性质与普通哈希函数没有区别。但是对于陷门密钥的拥有者来说,找到一个哈希原像的碰撞将是一件容易计算的问题。基于此,当监管节点接收到数据更新请求时,可确定出待更新旧数据在变色龙默克尔树中对应的目标叶节点。然后,计算出目标叶节点针对新数据的哈希碰撞,得到目标随机数。便可利用目标随机数和新数据对目标叶节点进行更新,得到新区块,且更新后的目标叶节点的哈希值与原哈希值相同,因此不会影响非目标叶节点之外的其他节点。如此,便可完成数据的更新,实现了区块链数据的维护性及可监管性。即,在出现不适宜公开或出现程序错误时,可采用此装置进行解决,降低各类损失。
在本申请的一种具体实施方式中,还包括:
数据存储模块,用于在接收数据更新请求之前,基于椭圆曲线生成随机数作为陷门私钥,并根据陷门私钥计算得到陷门公钥;向区块链系统中的其它节点公开陷门公钥,以使区块链系统中的提议节点利用陷门公钥构建变色龙默克尔树。其中,提议节点利用待存储数据的总量计算出变色龙默克尔树的高度,并利用陷门公钥构建高度对应的变色龙默克尔树。
在本申请的一种具体实施方式中,碰撞计算模块102,具体用于结合陷门密钥计算出满足新数据与旧数据发生哈希碰撞时对应的目标随机数。
在本申请的一种具体实施方式中,碰撞计算模块102,具体用于获取基于椭圆曲线生成的陷门私钥;获取旧数据的目标哈希值;结合陷门私密钥计算出新数据也对应目标哈希值时的目标随机数。
在本申请的一种具体实施方式中,还包括:
修改论证模块,用于接收修改论证请求,确定参考数据和嫌疑数据;若参考数据与嫌疑数据产生哈希碰撞,则确定嫌疑数据已修改;若参考数据与嫌疑数据未产生哈希碰撞,则确定嫌疑数据未修改。
实施例三:
相应于上面的方法实施例,本申请实施例还提供了一种区块链数据更新设备,下文描述的一种区块链数据更新设备与上文描述的一种区块链数据更新方法可相互对应参照。
参见图4所示,该区块链数据更新设备包括:
存储器D1,用于存储计算机程序;
处理器D2,用于执行计算机程序时实现上述方法实施例的区块链数据更新方法的步骤。
在本实施例中,区块链数据更新设备可以是PC(Personal Computer,个人电脑),也可以是智能手机、平板电脑、掌上电脑、便携计算机、网络存储设备终端设备。
该区块链数据更新设备可以是组成区块链网络的节点。
参见图5,图5为本申请实施例公开的另一种区块链数据更新设备示意图。该区块链数据更新设备可以包括存储器11、处理器12和总线13。
其中,存储器11至少包括一种类型的可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器11在一些实施例中可以是区块链数据更新设备的内部存储单元,例如该区块链数据更新设备的硬盘。存储器11在另一些实施例中也可以是区块链数据更新设备的外部存储设备,例如区块链数据更新设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器11还可以既包括区块链数据更新设备的内部存储单元也包括外部存储设备。存储器11不仅可以用于存储安装于区块链数据更新设备的应用软件及各类数据,例如区块链数据更新程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器12在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行区块链数据更新程序等。
该总线13可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
进一步地,区块链数据更新设备还可以包括网络接口,网络接口可选的可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该设备与其他电子设备之间建立通信连接。
可选地,该设备还可以包括用户接口,用户接口可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在该设备中处理的信息以及用于显示可视化的用户界面。
图5仅示出了具有组件11-13的区块链数据更新设备,本领域技术人员可以理解的是,图5示出的结构并不构成对设备的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
实施例四:
相应于上面的方法实施例,本申请实施例还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种区块链数据更新方法可相互对应参照。
一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的区块链数据更新方法的步骤。
该可读存储介质具体可以为U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
实施例五:
相应于上面的方法实施例,本申请实施例还提供了一种区块链系统,下文描述的一种区块链系统与上文描述的一种区块链数据更新方法可相互对应参照。
该系统,包括:
监管节点和提议节点,其中,监管节点用于执行如上述方法实施例所描述的区块链数据更新方法的步骤,提议节点用于向监管节点发送数据更新请求并构建变色龙默克尔树。
本领域技术人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

Claims (9)

1.一种区块链数据更新方法,其特征在于,应用于区块链系统中的监管节点,所述方法包括:
所述监管节点接收数据更新请求,确定目标对象的旧数据在变色龙默克尔树中对应的目标叶节点;所述变色龙默克尔树中的叶节点均存储采用变色龙哈希计算得到的哈希值;所述变色龙默克尔树中的中间节点和根节点均存储采用非碰撞哈希函数计算得到的哈希值;
计算出所述目标叶节点针对所述目标对象的新数据的哈希碰撞,获得目标随机数;
利用所述目标随机数和所述新数据对所述目标叶节点进行更新,得到新区块;
启动区块更新流程,将所述新区块在区块链节点之间做共识;
接收修改论证请求,确定参考数据和嫌疑数据;
若所述参考数据与所述嫌疑数据产生哈希碰撞,则确定嫌疑数据已被所述监管节点修改;
若所述参考数据与所述嫌疑数据未产生哈希碰撞,则确定嫌疑数据未修改。
2.根据权利要求1所述的区块链数据更新方法,其特征在于,在接收数据更新请求之前,还包括:
基于椭圆曲线生成随机数作为陷门私钥,并根据所述陷门私钥计算得到陷门公钥;
向区块链系统中的其它节点公开所述陷门公钥,以使区块链系统中的提议节点利用所述陷门公钥构建所述变色龙默克尔树。
3.根据权利要求2所述的区块链数据更新方法,其特征在于,所述提议节点利用所述陷门公钥构建所述变色龙默克尔树,包括:
所述提议节点利用待存储数据的总量计算出所述变色龙默克尔树的高度,并利用所述陷门公钥构建所述高度对应的变色龙默克尔树。
4.根据权利要求1所述的区块链数据更新方法,其特征在于,计算出所述目标叶节点针对所述目标对象的新数据的哈希碰撞,获得目标随机数,包括:
结合陷门密钥计算出满足所述新数据与所述旧数据发生哈希碰撞时对应的所述目标随机数。
5.根据权利要求4所述的区块链数据更新方法,其特征在于,结合陷门密钥计算出满足所述新数据与所述旧数据发生哈希碰撞时对应的所述目标随机数,包括:
获取基于椭圆曲线生成的陷门私钥;
获取所述旧数据的目标哈希值;
结合所述陷门私钥计算出所述新数据也对应所述目标哈希值时的所述目标随机数。
6.一种区块链数据更新装置,其特征在于,应用于区块链系统中的监管节点,所述装置包括:
请求接收模块,用于接收数据更新请求,确定目标对象的旧数据在变色龙默克尔树中对应的目标叶节点;所述变色龙默克尔树中的叶节点均存储采用变色龙哈希计算得到的哈希值;所述变色龙默克尔树中的中间节点和根节点均存储采用非碰撞哈希函数计算得到的哈希值;
碰撞计算模块,用于计算出所述目标叶节点针对所述目标对象的新数据的哈希碰撞,获得目标随机数;
数据更新模块,用于利用所述目标随机数和所述新数据对所述目标叶节点进行更新,得到新区块;
共识更新模块,用于在利用目标随机数和新数据对目标叶节点进行更新之后,启动区块更新流程,将所述新区块在区块链节点之间做共识;
修改论证模块,用于接收修改论证请求,确定参考数据和嫌疑数据;若所述参考数据与所述嫌疑数据产生哈希碰撞,则确定嫌疑数据已被所述监管节点修改;若所述参考数据与所述嫌疑数据未产生哈希碰撞,则确定嫌疑数据未修改。
7.一种区块链数据更新设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至5任一项所述区块链数据更新方法的步骤。
8.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述区块链数据更新方法的步骤。
9.一种区块链系统,其特征在于,包括监管节点和提议节点,其中,所述监管节点用于执行如权利要求1至5任一项所述的区块链数据更新方法的步骤,所述提议节点用于向所述监管节点发生数据更新请求并构建变色龙默克尔树。
CN202010477705.8A 2020-05-29 2020-05-29 区块链数据更新方法、装置、设备、系统及可读存储介质 Active CN111641712B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010477705.8A CN111641712B (zh) 2020-05-29 2020-05-29 区块链数据更新方法、装置、设备、系统及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010477705.8A CN111641712B (zh) 2020-05-29 2020-05-29 区块链数据更新方法、装置、设备、系统及可读存储介质

Publications (2)

Publication Number Publication Date
CN111641712A CN111641712A (zh) 2020-09-08
CN111641712B true CN111641712B (zh) 2023-11-17

Family

ID=72331621

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010477705.8A Active CN111641712B (zh) 2020-05-29 2020-05-29 区块链数据更新方法、装置、设备、系统及可读存储介质

Country Status (1)

Country Link
CN (1) CN111641712B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112200471B (zh) * 2020-10-15 2023-11-21 国网北京市电力公司 充电桩的数量配置方法、装置和充电桩的分布系统
CN112104748B (zh) * 2020-11-09 2021-02-26 百度在线网络技术(北京)有限公司 区块链数据的监管方法、装置、电子设备和存储介质
CN112380584B (zh) * 2021-01-13 2021-04-16 北京笔新互联网科技有限公司 区块链数据更新方法、装置、电子设备和存储介质
CN112887078B (zh) * 2021-02-02 2022-10-14 中国银联股份有限公司 一种编辑区块链中区块的方法及装置
CN113810185B (zh) * 2021-09-17 2022-09-27 华中科技大学 一种抗陷门泄露的链上数据修复系统及方法
CN115102955B (zh) * 2022-05-30 2023-08-01 电子科技大学 基于变色龙哈希函数的链外数据存储与更新方法
CN115442106A (zh) * 2022-08-31 2022-12-06 长沙理工大学 一种区块链监管方法、系统、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110061850A (zh) * 2019-04-24 2019-07-26 电子科技大学 变色龙哈希函数的碰撞计算方法及可编辑区块链构造方法
CN110572254A (zh) * 2019-09-12 2019-12-13 中国科学院信息工程研究所 一种基于格的可更改区块链方法
CN110781524A (zh) * 2019-10-29 2020-02-11 陕西师范大学 一种混合云存储中数据的完整性验证方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200067697A1 (en) * 2017-03-22 2020-02-27 NEC Laboratories Europe GmbH Method for operating a blockchain
US11416475B2 (en) * 2018-10-19 2022-08-16 Adobe Inc. Block quantity reduction in distributed ledgers

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110061850A (zh) * 2019-04-24 2019-07-26 电子科技大学 变色龙哈希函数的碰撞计算方法及可编辑区块链构造方法
CN110572254A (zh) * 2019-09-12 2019-12-13 中国科学院信息工程研究所 一种基于格的可更改区块链方法
CN110781524A (zh) * 2019-10-29 2020-02-11 陕西师范大学 一种混合云存储中数据的完整性验证方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
面向流式数据认证的变色龙认证树算法研究;黄雪刚等;《四川大学学报(工程科学版)》;20160320(第02期);全文 *

Also Published As

Publication number Publication date
CN111641712A (zh) 2020-09-08

Similar Documents

Publication Publication Date Title
CN111641712B (zh) 区块链数据更新方法、装置、设备、系统及可读存储介质
JP7486630B2 (ja) ブロック認識
EP3693886A1 (en) Optimizations for verification of interactions system and method
CN111641496B (zh) 区块链数据更新方法、装置、设备、系统及可读存储介质
CN108370318B (zh) 用于使用数字签名的区块链变型的方法和系统
CN108494557B (zh) 社保数字证书管理方法、计算机可读存储介质及终端设备
CN117278224A (zh) 用于验证身份属性信息的方法和系统
WO2021036086A1 (zh) 交易数据处理方法、装置、系统及计算机可读存储介质
CN110543488B (zh) 一种验证节点更新方法、装置及设备
WO2020240321A1 (en) Hash function attacks
CN111984725A (zh) 分布式数据库中的测量数据集的验证
CN115659417A (zh) 审计日志存储方法、验证方法、装置和计算机设备
EP3970048A1 (en) Systems and methods for non-parallelised mining on a proof-of-work blockchain network
CN112102078B (zh) 区块链共识计算方法、装置、计算机设备及存储介质
CN110597466B (zh) 区块链节点的控制方法、装置、存储介质和计算机设备
CN111147477B (zh) 一种基于区块链网络的验证方法及装置
CN112868202B (zh) 强空间证明中有空间限制的连续不可延展代码
CN113783839B (zh) 区块链数据更新方法、装置、计算机设备及存储介质
CN111199044B (zh) 数据存储方法、装置以及存储介质
KR102189667B1 (ko) 탈중앙화된 블록체인에서 거래의 승인과 수정을 통합한 블록 채굴 방법
CN115118429A (zh) 可验证且完全可编辑的区块链系统、方法、设备及终端
Yadav et al. Blockchain Technology: and its Applications
CN116938965A (zh) 从分布式账本中删除交易
EP4360032A1 (en) Systems and methods for transaction validation in layer 2
CN117391702A (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
TA01 Transfer of patent application right

Effective date of registration: 20210917

Address after: 518000 21 / f-23 / F, block B, building 12, Shenzhen Bay science and technology ecological park, No. 18, South Keji Road, high tech community, Yuehai street, Nanshan District, Shenzhen City, Guangdong Province

Applicant after: Xunlei Networking Technologies, Ltd.

Applicant after: SHENZHEN ONETHING TECHNOLOGIES Co.,Ltd.

Address before: 518052 Room 201, building A, No. 1, Qian Wan Road, Qianhai Shenzhen Hong Kong cooperation zone, Shenzhen, Guangdong (Shenzhen Qianhai business secretary Co., Ltd.)

Applicant before: SHENZHEN ONETHING TECHNOLOGIES Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant