掌桥专利:专业的专利平台
掌桥专利
首页

一种用于电子货币的区块链可编辑方法、装置和交易方法

文献发布时间:2023-06-19 19:27:02


一种用于电子货币的区块链可编辑方法、装置和交易方法

技术领域

本发明涉及区块链技术领域,尤其涉及一种用于电子货币的区块链可编辑方法、装置和交易方法。

背景技术

随着计算机技术和互联网的不断发展,数据安全越来越重要。区块链作为一种分布式、不可篡改、不可修改的高安全性数据存储技术,已经运用到社会方方面面的领域。虽然区块链的不可篡改性和不可变更性对提供安全保障至关重要,但是同时也阻碍了区块链中内容的修改。目前,各大银行已经搭建了区块链交易平台,并且在实际生产交易中进行了运用。但是区块链的不可更改性,会使电子货币在发行、流通过程中,交易不可撤销,使得电子货币很难在传统支付中应用。

目前对于区块链可编辑的方法主要非密码学方法、去密码算法和采用密码学算法。非密码学方法采用硬分叉的方法,每修改一个交易需要重新构建整个区块链,影响重大,难以实现。去密码算法采用μ链和采用共识投票的方法,方法过于复杂,效率很低。采用密码学算法包括对整个区块进行编辑和对交易进行编辑,对整个区块进行编辑是将区块链上的区块杂凑值替换为变色龙哈希函数,该方式在每一次交易修改时需要改变一个区块,影响范围大,不能精准的进行编辑;对交易进行编辑是将可能修改的交易的杂凑值替换为变色龙哈希函数,该方式需要提前预判将来可能需要修改的交易,效率较低,计算难度大,难以实际应用。

因此,目前的用于电子货币的区块链可编辑方法,难以进行细粒度编辑,并且编辑效率低、计算复杂度高。

发明内容

鉴于上述的分析,本发明实施例旨在提供一种用于电子货币的区块链可编辑方法、装置和交易方法,用以解决目前的用于电子货币的区块链可编辑方法,难以进行细粒度编辑,并且编辑效率低、计算复杂度高的问题。

本发明实施例提供了一种用于电子货币的区块链可编辑方法,包括以下步骤:

通过变色龙哈希函数生成各区块内Merkle树叶子节点的父节点,以此进行各区块内的Merkle树的构建,将各区块连接构成电子货币区块链;其中,基于杂凑函数和电子货币交易信息生成各区块内Merkle树的叶子节点;

根据接收到电子货币交易修改指令,确定待修改原始交易信息在区块链中的区块,进而确定在该区块内Merkle树上的叶子节点,继而通过更新叶子节点完成Merkle树的编辑。

进一步地,在进行各区块内Merkle树的构建时,变色龙哈希函数的输入包括公钥、消息和随机数,其中,所述消息为Merkle树相应两个叶子节点中杂凑值前后连接后,再基于杂凑函数计算的杂凑值;所述随机数为相应两个叶子节点中杂凑值的异或值。

进一步地,通过以下方式进行各区块内的Merkle树的构建:

将区块内的电子货币交易信息分别基于杂凑函数计算杂凑值,将各杂凑值作为Merkle树第一层上的各叶子节点;

将叶子节点两两配对后,基于变色龙哈希函数计算变色龙哈希值,将各变色龙哈希值作为Merkle树第二层上的各父节点;

将第二层上相邻的父节点两两配对后,基于杂凑函数计算杂凑值,将各杂凑值作为Merkle树第三层上的各父节点,以此类推,直至只剩一个节点,作为Merkle树的根节点,以此完成Merkle树的构建;

其中,各区块内的电子货币信息根据交易时间进行划分。

进一步地,所述各区块内的Merkle树构建时还包括:Merkle树中叶子节点包括该叶子节点中杂凑值对应的电子货币交易信息,以及该叶子节点的父节点的变色龙哈希函数的消息和随机数。

进一步地,所述根据接收到电子货币交易修改指令,确定待修改原始交易信息在区块链中的区块,进而确定在该区块内Merkle树上的位置,具体为:

根据所述电子货币交易修改指令中的交易时间确定待修改的原始交易信息在区块链中的区块;

根据所述电子货币交易修改指令中的杂凑值确定待修改的原始交易信息在Merkle树中的叶子节点。

进一步地,当Merkle树第二层上的同一父节点下存在一个叶子节点中的交易信息需要修改,则通过以下方式更新父节点下的叶子节点,进行Merkle的编辑:

获取第二层上更新前父节点的变色龙哈希函数的消息和随机数,并获取私钥;其中,更新前父节点下的一个叶子节点为待修改的原始交易信息位于的叶子节点;

基于待修改的原始交易信息位于的叶子节点,确定更新后父节点的变色龙哈希函数的消息为更新前父节点下的另一叶子节点的杂凑值;

将私钥、更新前父节点变色龙哈希函数的消息和随机数、更新后父节点的变色龙哈希函数的消息作为变色龙哈希函数中Forge()算法的输入,计算得到第一随机数;

将待修改的原始交易信息位于的叶子节点的杂凑值更新为第一随机数,将该叶子节点中的待修改原始交易信息更新为电子货币交易修改指令中的修改后的交易信息,并将两个叶子节点中的消息更新为更新后父节点变色龙哈希函数的消息、随机数更新为第一随机数,完成Merkle树的编辑。

进一步地,当Merkle树第二层上的同一父节点下两个叶子节点中的交易信息均需要修改,则通过以下方式更新父节点下的叶子节点,进行 Merkle的编辑:

获取第二层上的更新前父节点的变色龙哈希函数的消息和随机数,并获取私钥;其中,更新前父节点下的两个叶子节点为待修改的原始交易信息位于的两个叶子节点;

基于待修改的原始交易信息位于的叶子节点,确定更新后父节点的变色龙哈希函数的消息为空;

将私钥、更新前父节点变色龙哈希函数的消息和随机数、更新后父节点的变色龙哈希函数的消息作为变色龙哈希函数中Forge()算法的输入,计算得到第二随机数;

基于第二随机数的比特数,将第二随机数划分为第三随机数和第四随机数;

将两个叶子节点的杂凑值分别更新为第三随机数和第四随机数,将两个叶子节点中的待修改原始交易信息分别更新为电子货币交易修改指令中相应的修改后的交易信息,并将两个叶子节点中的消息更新为更新后父节点变色龙哈希函数的消息、随机数更新为第二随机数,完成Merkle 树的编辑。

进一步地,所述基于第二随机数的比特数,将第二随机数划分为第三随机数和第四随机数,具体为:

根据第二随机数的比特总数N,将第二随机数中位于前N/2比特的数值划分为第三随机数,位于后N/2比特的数值划分为第四随机数。

本发明实施例还提供了一种用于电子货币的区块链可编辑装置,包括:

区块链构建模块,用于通过变色龙哈希函数生成各区块内Merkle树叶子节点的父节点,以此进行各区块内的Merkle树的构建,将各区块连接构成电子货币区块链;其中,基于杂凑函数和电子货币交易信息生成各区块内Merkle树的叶子节点;

区块链编辑模块,用于根据接收到电子货币交易修改指令,确定待修改原始交易信息在区块链中的区块,进而确定在该区块内Merkle树上的叶子节点,继而通过更新叶子节点完成Merkle树的编辑。

本发明实施例还提供了一种电子货币交易方法,包括如上述的所述的区块链可编辑方法,以及,在完成Merkle树的编辑后,还包括根据编辑后的区块链进行电子货币的区块链货币交易。

与现有技术相比,本发明可实现如下有益效果:

本发明提供的一种用于电子货币的区块链可编辑方法、装置和交易方法,通过基于变色龙哈希函数生成区块中Merkle树的叶子节点的父节点,以此完成区块中Merkle树的构建,在交易进行更改时,仅通过更改叶子节点就可以完成Merkle树的编辑,而Merkle树叶子节点的父节点以及以上的父节点均保持不变,并且在进行交易修改时仅影响相关的两个叶子节点的交易,针对性强,实现了区块链的细粒化编辑,极大的减小了影响范围,计算简单、效率高效。

本发明中,上述各技术方案之间还可以相互组合,以实现更多的优选组合方案。本发明的其他特征和优点将在随后的说明书中阐述,并且,部分优点可从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过说明书以及附图中所特别指出的内容中来实现和获得。

附图说明

附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件。

图1为本发明实施提供的用于电子货币的区块链可编辑方法的流程示意图;

图2为现有的Merkle树的结构;

图3为本发明实施例中在构建阶段中将Merkle树的第二层上的杂凑函数替换为变色龙哈希函数的示意图。

具体实施方式

下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理,并非用于限定本发明的范围。

现有的区块链可编辑方法中非密码学的硬分叉方法仅为修改一个交易就需要将整个区块链进行重构,去密码学的μ链和采用共识投票的方法过于复杂,均难以在有中心的电子货币中进行应用;而采用密码学算法中的两种方式,一种是针对整个区块进行编辑,通过将区块链中区块之间的杂凑函数替换为变色龙哈希函数实现,该方式在交易每一次修改时,将改变整个区块的杂凑值,影响整个区块内容,影响范围大,不能进行精准的编辑;另一种针对交易进行编辑,通过将区块中每一个交易的杂凑函数替换为变色龙哈希函数实现,该方式能够针对交易进行编辑更加精细,但在构建时需要提前判断哪些交易可能会进行更改,对于不需要更改的交易使用杂凑函数对交易进行杂凑,对有可能需要修改的交易基于策略的变色龙哈希函数代替,需要用到基于属性密码的方法,效率很低,很难在现实中进行应用。

为此,本申请提出一种用于电子货币的区块链可编辑方法、装置和交易方法,通过变色龙哈希函数生成将区块中Merkle树的叶子节点的父节点,在交易进行修改时,仅通过改变待修改交易所在的叶子节点父节点下的两个叶子节点,就可以完成交易的修改,而不会影响Merkle树上其他节点的内容,不需要提前判断可能会修改的交易,而且可以进行细粒度的编辑,影响范围小,效率高效,计算难度低。

本发明的一个具体实施例,公开了一种用于电子货币的区块链可编辑方法,如图1所示,包括以下步骤:

步骤S1、通过变色龙哈希函数生成各区块内Merkle树叶子节点的父节点,以此进行各区块内的Merkle树的构建,将各区块连接构成电子货币区块链;其中,基于杂凑函数和电子货币交易信息生成各区块内Merkle 树的叶子节点。

实施时,在步骤S1中,在进行各区块内Merkle树的构建时,变色龙哈希函数的输入包括公钥、消息和随机数,其中,所述消息为Merkle 树相应两个叶子节点中杂凑值前后连接后,再基于杂凑函数计算的杂凑值;所述随机数为相应两个叶子节点中杂凑值的异或值。

可以理解的,将Merkle树相应两个叶子节点中杂凑值前后连接后,再基于杂凑函数计算的杂凑值作为输入的消息,将相应两个叶子节点中杂凑值的异或值作为随机数,可以不额外添加信息,存储的内容减少,更节省存储空间,并且两个杂凑值的异或值也满足随机性的要求。此外,通过该方式在交易修改后,需要验证哪些交易被修改过时,根据变色龙哈希函数中的随机数是否是两个叶子节点的杂凑值的异或值就能得到,计算简便。

实施时,步骤S1中,通过以下方式进行各区块内的Merkle树的构建:

将区块内的电子货币交易信息分别基于杂凑函数计算杂凑值,将各杂凑值作为Merkle树第一层上的各叶子节点;

将叶子节点两两配对后,基于变色龙哈希函数计算变色龙哈希值,将各变色龙哈希值作为Merkle树第二层上的各父节点;

将第二层上相邻的父节点两两配对后,基于杂凑函数计算杂凑值,将各杂凑值作为Merkle树第三层上的各父节点,以此类推,直至只剩一个节点,作为Merkle树的根节点,以此完成Merkle树的构建;

其中,各区块内的电子货币信息根据交易时间进行划分。

可以理解的,如图2所示,现有的Merkle树构建时,将交易信息的杂凑值作为叶子节点(HA~HP),将叶子节点的杂凑值连接后得到的杂凑值作为Merkle树的第二层(HAB~HOP),依次类推,直至剩下一个节点(HABCDEFGHIJKLMNOP),得到Merkle树,而本实施例在进行 Merkle树构建时,如图3所示,仅将Merkle树叶子节点的父节点的杂凑值替换为变色龙哈希值,由于变色龙哈希函数在改变输入时其哈希值可保持不变的特点,叶子节点的父节点采用变色龙哈希函数计算,可以实现在进行交易修改时,只针对某一个交易进行编辑即可,不会影响叶子节点的父节点以及往上的其他父节点,不会影响整个区块,并且对交易在哪个叶子节点没有限制,适用性更强;此外通过该方式构建的Merkle 树在进行编辑后,难以看出编辑痕迹,保密性更好。相比于现有的区块链可编辑方法中的采用变色龙哈希函数替换区块链中区块杂凑值的方法,本实施例中方法在交易修改时影响范围小,编辑更加精细;相对于采用变色龙哈希函数替换交易的杂凑值的方法,本实施例中的方法不需要提前确定需要修改的交易,实现简单,效率高效。

具体实施时,所述各区块内的Merkle树构建时还包括:Merkle树中叶子节点包括该叶子节点中杂凑值对应的电子货币交易信息,以及该叶子节点的父节点的变色龙哈希函数的消息和随机数。具体的,电子货币交易信息可以包括交易对象、交易规则、交易记录等。

具体地,步骤S1中,将各区块连接构成电子货币区块链为:基于杂凑函数计算各区块信息的杂凑值,区块之间通过杂凑值形成前后连接关系,也就是说区块链上的区块包括区块信息的杂凑值和区块信息,其中,区块信息包括基于电子货币交易信息构建的Merkle树。

步骤S2、根据接收到电子货币交易修改指令,确定待修改原始交易信息在区块链中的区块,进而确定在该区块内Merkle树上的叶子节点,继而通过更新叶子节点完成Merkle树的编辑。

实施时,步骤S2中,所述根据接收到电子货币交易修改指令,确定待修改原始交易信息在区块链中的区块,进而确定在该区块内Merkle树上的位置,具体为:

根据所述电子货币交易修改指令中的交易时间确定待修改的原始交易信息在区块链中的区块;其中,电子货币交易修改指令由具有编辑权限的客体发出,比如对于法定电子货币,由央行或者拥有私钥的银行发出电子货币交易修改指令;电子货币交易修改指令包括含有待修改的原始交易信息、交易时间、存放在Merkle树中的杂凑值的待修改交易内容,更改后的交易信息;由于电子货币交易信息根据交易时间进行划分,因此,通过获取交易修改指令中的交易时间可以得到所对应的待修改的原始交易信息在区块链中的区块。

根据所述电子货币交易修改指令中的杂凑值确定待修改的原始交易信息在Merkle树中的叶子节点。

电子货币过程中的修改可以对应1个叶子节点中交易信息的修改,也可能对应多个叶子节点中交易信息的修改。在电子货币交易信息修改时,对于同一个第二层上的父节点,可能是其下的一个叶子节点中的交易信息需要修改,也可能是其两个叶子节点中的交易信息均需要修改。也就是说,在进行交易信息的修改时,需要修改的交易可能存在于多个第二层上的父节点下的叶子节点,对于每个第二层上的父节点下的叶子节点更新方式相同,存在两种更新情况,一种是该父节点下的一个叶子节点中的交易信息需要修改,一种是该父节点下的两个叶子节点中的交易信息均需要修改。

实施时,当Merkle树第二层上的同一父节点下存在一个叶子节点中的交易信息需要修改,则通过以下方式更新父节点下的叶子节点,进行 Merkle的编辑:

获取第二层上更新前父节点的变色龙哈希函数的消息和随机数,并获取私钥;其中,更新前父节点下的一个叶子节点为待修改的原始交易信息位于的叶子节点;可以理解的,更新前父节点的变色龙哈希函数的消息和随机数在叶子节点中存储,因此,通过叶子节点即可获取。

基于待修改的原始交易信息位于的叶子节点,确定更新后父节点的变色龙哈希函数的消息为更新前父节点下的另一叶子节点的杂凑值。

将私钥、更新前父节点变色龙哈希函数的消息和随机数、更新后父节点的变色龙哈希函数的消息作为变色龙哈希函数中Forge()算法的输入,计算得到第一随机数。

将待修改的原始交易信息位于的叶子节点的杂凑值更新为第一随机数,将该叶子节点中的待修改原始交易信息更新为电子货币交易修改指令中的修改后的交易信息,并将两个叶子节点中的消息更新为更新后父节点变色龙哈希函数的消息、随机数更新为第一随机数。

具体地,Forge()表示为Forge(sk,m,r,m'),其中sk表示私钥,m表示更新前父节点变色龙哈希函数的消息,r表示更新前父节点变色龙哈希函数的随机数,m'更新后父节点变色龙哈希函数的消息;由Forge(sk,m,r, m')计算得到更新后的随机数r',满足CH(pk,m,r)=CH(pk,m',r')。

实施时,当Merkle树第二层上的同一父节点下两个叶子节点中的交易信息均需要修改,则通过以下方式更新父节点下的叶子节点,进行 Merkle的编辑:

获取第二层上的更新前父节点的变色龙哈希函数的消息和随机数,并获取私钥;其中,更新前父节点下的两个叶子节点为待修改的原始交易信息位于的两个叶子节点;

基于待修改的原始交易信息位于的叶子节点,确定更新后父节点的变色龙哈希函数的消息为空;

将私钥、更新前父节点变色龙哈希函数的消息和随机数、更新后父节点的变色龙哈希函数的消息作为变色龙哈希函数中Forge()算法的输入,计算得到第二随机数;

基于第二随机数的比特数,将第二随机数划分为第三随机数和第四随机数;将两个叶子节点的杂凑值分别更新为第三随机数和第四随机数,将两个叶子节点中的待修改原始交易信息分别更新为电子货币交易修改指令中相应的修改后的交易信息,并将两个叶子节点中的消息更新为更新后父节点变色龙哈希函数的消息、随机数更新为第二随机数。

可以理解的,通过上述的编辑方式,只修改Merkle数的叶子节点就完成了Merkle树的修改,由于变色龙哈希值没有变化,使得Merkle树的其上的节点均没有受到影响。

具体实施时,所述基于第二随机数的比特数,将第二随机数划分为第三随机数和第四随机数,具体为:

根据第二随机数的比特总数N,将第二随机数中位于前N/2比特的数值划分为第三随机数,位于后N/2比特的数值划分为第四随机数。

应当注意的是,通常对电子货币区块链有编辑权限的客体才拥有公私钥对,在进行区块链编辑时,通过有编辑权限的客体给出私钥,比如,在法定电子货币中,央行才能对区括链中的区块进行编辑,在进行法定电子货币交易信息更改时,由央行给出私钥。

与现有技术相比,本实施例提供的一种用于电子货币的区块链可编辑方法,通过基于变色龙哈希函数生成区块中Merkle树的叶子节点的父节点,以此完成区块中Merkle树的构建,在交易进行更改时,仅通过更改叶子节点就可以完成Merkle树的编辑,而Merkle树叶子节点的父节点以及以上的父节点均保持不变,并且在进行交易修改时仅影响相关的两个叶子节点的交易,针对性强,实现了区块链的细粒化编辑,极大的减小了影响范围,计算简单、效率高效。

本发明的另一个实施例提供了一种用于电子货币的区块链可编辑装置,包括:

区块链构建模块,用于通过变色龙哈希函数生成各区块内Merkle树叶子节点的父节点,以此进行各区块内的Merkle树的构建,将各区块连接构成电子货币区块链;其中,基于杂凑函数和电子货币交易信息生成各区块内Merkle树的叶子节点;

区块链编辑模块,用于根据接收到电子货币交易修改指令,确定待修改原始交易信息在区块链中的区块,进而确定在该区块内Merkle树上的叶子节点,继而通过更新叶子节点完成Merkle树的编辑。

本实施例的具体实施过程参见上述方法实施例即可,本实施例在此不再赘述。

由于本实施例与上述方法实施例原理相同,所以本装置也具有上述方法实施例相应的技术效果。

本发明的另一个实施例提供了一种电子货币交易方法,包括上述的区块链可编辑方法,以及,在完成Merkle树的编辑后,还包括根据编辑后的区块链进行电子货币的区块链货币交易

本实施例的具体实施过程参见上述方法实施例即可,本实施例在此不再赘述。

由于本实施例与上述方法实施例原理相同,所以本方法也具有上述方法实施例相应的技术效果。

本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读存储介质中。其中,所述计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

技术分类

06120115916309