基于聚合签名的区块链存证方法、装置、设备及存储介质与流程

allin2023-03-17  61



1.本技术涉及区块链技术领域,尤其涉及一种基于聚合签名的区块链存证方法、装置、设备及存储介质。


背景技术:

2.随着互联网的高速发展,有大量的交易是在线上进行的,随之产生的是更多的电子交易数据。为保证电子交易数据真实没有被篡改,通常利用区块链技术把线上交易的电子数据作为证据进行存证。
3.目前,由于存证交易数据中往往存储有存证信息,可能导致信息泄露等安全问题,且由于一笔存证交易对应于一个签名,存在签名会占用大量区块链空间,当一次出证提供大量存证时,由于签名数量较多,获取、验证存证所对应的签名也需要较大的计算量。


技术实现要素:

4.鉴于以上内容,本技术提供一种基于聚合签名的区块链存证方法、装置、设备及存储介质,其目的在于解决上述技术问题。
5.第一方面,本技术提供一种基于聚合签名的区块链存证方法,该方法包括:获取交易提交者对目标主题的存证数据进行签名后的存证交易,对所述存证交易进行验证,当验证通过时删除所述存证交易中的存证信息;判断所述存证交易为初始存证交易还是增量存证交易;当判断所述存证交易为初始存证交易时,基于所述初始存证交易中的存证签名生成区块并进行上链存证;当判断存证交易为增量存证交易时,验证所述增量存证交易的前一次交易在区块链中的所处位置信息中是否存在历史签名,若存在,基于所述增量存证交易的存证签名与所述历史签名生成区块进行上链存证,基于所述历史签名对所述区块中的签名信息执行合并操作。
6.第二方面,本技术提供一种基于聚合签名的区块链存证装置,该基于聚合签名的区块链存证装置包括:获取模块:用于获取交易提交者对目标主题的存证数据进行签名后的存证交易,对所述存证交易进行验证,当验证通过时删除所述存证交易中的存证信息;判断模块:用于判断所述存证交易为初始存证交易还是增量存证交易;初始存证处理模块:用于当判断所述存证交易为初始存证交易时,基于所述初始存证交易中的存证签名生成区块并进行上链存证;增量存证处理模块:用于当判断存证交易为增量存证交易时,验证所述增量存证交易的前一次交易在区块链中的所处位置信息中是否存在历史签名,若存在,基于所述增量存证交易的存证签名与所述历史签名生成区块进行上链存证,基于所述历史签名对所述区块中的签名信息执行合并操作。
7.第三方面,本技术提供一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现第一方面任一项实施例所述的基于聚合签名的区块链存证方法的步骤。
8.第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面任一项实施例所述的基于聚合签名的区块链存证方法的步骤。
9.本技术实施例提供的上述技术方案与现有技术相比具有如下优点:本技术提出的基于聚合签名的区块链存证方法、装置、设备及存储介质,通过获取交易提交者对目标主题的存证数据进行签名后的存证交易进行验证,当验证通过时删除存证交易中的存证信息,由于去除了存证信息的存储,区块链中可以仅存储存证签名,从而去除了区块链对存证信息的存储量,且该过程没有暴露存证信息,存证的安全性也得到提升。
10.判断存证交易为初始存证交易还是增量存证交易,当判断为初始存证交易时,基于初始存证交易中的存证签名生成区块并进行上链存证,当判断为增量存证交易时,验证增量存证交易的前一次交易在区块链中的所处位置信息中是否存在历史签名,若存在,基于增量存证交易的存证签名与历史签名生成区块进行上链存证,基于历史签名对区块中的签名信息执行合并操作,由于对同一目标主题下的所有签名进行了合并,可以将历史签名数据合并删除,从而降低了区块链的存储量及区块验证时的计算量,也降低了出证的数据量、搜索出证签名所需的数据处理量和对出证的验证计算量。
附图说明
11.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。
12.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
13.图1为本技术基于聚合签名的区块链存证方法较佳实施例的流程图示意图;图2为本技术聚合签名树的示意图;图3为本技术将历史签名的签名信息修改为对应的哈希值的示意图;图4为本技术位置信息所处节点对应的兄弟节点的值为哈希值的示意图;图5为本技术将位置信息所处节点及兄弟节点进行合并的示意图;图6本技术执行合并操作后的最佳情况的示意图;图7为本技术基于聚合签名的区块链存证装置较佳实施例的模块示意图;图8为本技术电子设备较佳实施例的示意图;本技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
14.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对
本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本技术,并不用于限定本技术。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
15.需要说明的是,在本技术中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本技术要求的保护范围之内。
16.本技术提供一种基于聚合签名的区块链存证方法。参照图1所示,为本技术基于聚合签名的区块链存证方法的实施例的方法流程示意图。该方法可以由一个电子设备执行,该电子设备可以由软件和/或硬件实现。基于聚合签名的区块链存证方法包括:步骤s10:获取交易提交者对目标主题的存证数据进行签名后的存证交易,对所述存证交易进行验证,当验证通过时删除所述存证交易中的存证信息;步骤s20:判断所述存证交易为初始存证交易还是增量存证交易;步骤s30:当判断所述存证交易为初始存证交易时,基于所述初始存证交易中的存证签名生成区块并进行上链存证;步骤s40:当判断存证交易为增量存证交易时,验证所述增量存证交易的前一次交易在区块链中的所处位置信息中是否存在历史签名,若存在,基于所述增量存证交易的存证签名与所述历史签名生成区块进行上链存证,基于所述历史签名对所述区块中的签名信息执行合并操作。
17.设在一个主题下,存在n个由一个或多个不同提交者提交的存证,则该主题称为存证的目标主题。例如,一个电子商务的交易事务由合同发起、合同签订、合同履行等多个环节组成,其目标主题可以是“用户a与用户b在t时刻确定的电子交易合同相关的存证,电子交易合同编号xxxxxx”。目标主题也可以是某个用户的id,在该目标主题下存储了该用户所搜集的所有存证。目标主题也还可以是某个nft(即非同质化代币)的id,在该目标主题下存储了该nft所相关的所有交易的存证。存证的目标主题下的第一笔交易称为初始交易,后续交易称为增量交易,所有交易要么属于初始交易,要么属于增量交易。区块链成员有区块链提交者和区块链读取者,区块链提交者具有提交区块的权限,区块链读取者仅具有读取权限,没有提交区块的权限。
18.交易提交者包括初始交易提交者和增量交易提交者,区块链提交者可以获取交易提交者对目标主题的存证数据进行签名后的存证交易,区块链提交者对存证交易进行验证,当验证通过时将存证交易中的存证信息删除,具体地,从存证交易中删除掉目标主题和存证数据的哈希运算结果。若存证交易验证不通过,则存证交易被区块链提交者丢弃。
19.判断存证交易是初始存证交易还是增量存证交易,即判断存证交易是初始交易提交者提交的,还是增量交易提交者提交的。可以在该目标主题下判断是否存在前一个提交者来确定提交的存证交易是初始存证交易还是增量存证交易,若不存在前一个提交者说明该存证交易是初始存证交易,若存在前一个提交者说明该存证交易是增量存证交易。可选地,交易提交者可以在交易的内容中加入标志位,该标志位作为初始交易或增量交易的标
识。
20.当判断存证交易为初始存证交易时,根据初始存证交易中的存证签名生成区块并进行上链存证。由于从初始存证交易tx1中删除了目标主题tid和初始存证数据的哈希运算结果txh1,因此仅将第一存证签名txs1放入交易列表,然后计算得到merkle根,区块链提交者基于交易列表生成区块,以使该区块对应的其余区块链成员验证该区块,区块链提交者验证该区块的逻辑可以利用u1的公钥验证txs1是否为u1对tid和txh1的签名,区块链读取者仅验证该区块的正确性,由于未获得存证信息(即txh1),不对存证签名进行签名验证,当验证通过时,对该区块进行上链存证。
21.初始交易提交者u1可以在区块链外的存储路径保存初始存证交易tx1对应的tid、存证数据data1、位置pos1(表示方法可以是:第xx个区块的第yy个交易,或xxyy),区块链外的存储路径可以是初始交易提交者的本地存储路径、云存储或p2p存储等。
22.由于初始存证交易去除了对存证信息(即txh1)的存储,仅存储了第一存证签名txs1,从而去掉了区块链对存证信息的存储量,且由于没有暴露存证信息,存证的安全性也得到提升。
23.当判断存证交易为增量存证交易时,验证增量存证交易的前一次交易在区块链中的所处位置信息中是否存在历史签名,若存在历史签名,基于增量存证交易的存证签名与历史签名生成区块进行上链存证,再根据历史签名对区块中的签名信息执行合并操作。
24.当判断存证交易为增量存证交易时,从前一个提交者处获取到同个目标主题tid下的前一次交易在区块链中所处的位置信息posj,若该位置存在历史签名,则历史签名为txsposj。验证增量存证交易的前一次交易在区块链中的所处位置信息posj中是否存在历史签名(即验证posj位置处是否存在txsposj),当增量存证交易的前一次交易在区块链中的所处位置信息中不存在历史签名(即posj位置处不存在txsposj)时,丢弃增量存证交易txi。
25.当验证posj位置处存在历史签名txsposj时,由于从增量存证交易txi中删掉了目标主题tid、增量存证数据的哈希运算结果txhi及位置信息posj,因此仅将第二存证签名txsi与历史签名txsposj的聚合签名作为存证签名放入交易列表,然后计算得到merkle根,区块链提交者基于交易列表生成区块,以使该区块对应的其余区块链成员验证该区块,区块链提交者验证该区块的逻辑可以利用ui的公钥验证txsi是否为ui对tid、txhi及posj的签名,ui为增量存证交易txi的增量交易提交者。区块链读取者仅验证该区块的正确性,由于未获得存证信息(即txhi),不对存证签名进行签名验证。当区块链节点验证该区块通过时,基于历史签名对该区块中的签名信息执行合并操作,具体地:由于增量存证交易txi的聚合签名已经合并了posj处的txsposj,因此需对txsposj进行删减,可以利用哈希算法将历史签名txsposj的签名信息修改为历史签名对应的哈希值,例如,设历史签名txsposj位于如图2所示的聚合签名树中s1的位置,s1至s8为实线,s1-s8可以表示为第1笔至第8笔交易对应的签名,修改为对应的哈希值后,该区块内容变成如图3所示,即s1变成虚线,虚线表示空值或被删除的值,s1对应的哈希值h1变为实线,实际存储的内容为merkle树结构中的h1。可选地,基于历史签名对该区块中的签名信息执行合并操作的时机,对于区块链提交者来说是在当前时刻新区块形成后立即执行,对于区块链读取者来说是在接收到己方所信任的区块链提交者单独发送的指令后立即执行,所述
指令中包含txsposj的信息。可选地,基于历史签名对该区块中的签名信息执行合并操作的时机,对于所有区块链成员来说是在当前时刻新区块形成后立即执行,此时区块链提交者已在新区块的广播消息中加入了txsposj的信息。
26.判断位置信息posj所处节点对应的并列节点(即兄弟节点)的值是否也是哈希值,若是(如图4所示,兄弟节点s2的位置为哈希值h2),则将位置信息所处节点及并列节点进行合并得到合并节点(如图5所示,合并h1和h2为h12,即h1和h2变为虚线,h12变为实线,实际存储的内容为merkle树结构中的h12),继续判断合并节点对应的并列节点的值是否为哈希值,若是,将该合并节点及该合并节点的并列节点进行合并,重复执行合并步骤,直到无法进行合并删减为止,合并删减的最佳情况如图6所示,h1-8为实线,其余均为虚线,8个数据h1至h8缩减为h1-8,实际存储的内容为merkle树结构中的h1-8。当区块链成员需要验证执行数据合并删减后的区块时,计算merkle根若遇到哈希值,则无需再进行该merkle节点所有子树的哈希计算,因此可以降低计算量。
27.增量交易提交者ui在区块链外保存增量交易对应的目标主题tid、增量存证数据datai及位置信息posi。
28.由于对同一存证主题下的所有签名进行聚合,因此可以删除相关的历史签名数据,从而大大降低了区块链的存储量及区块验证时的计算量。
29.当出证者(例如,权威机关)需要从区块链出证时,设第i个用户存有的链外存证为deposi=datai||posi||pki,其中pki为第i个用户的公钥,出证者搜集到所有链外存证,链外存证集合为depos={deposi, i∈[1,n]},出证者根据posn从区块链中取出txposn(即posn处的存证签名),出证数据为目标主题tid、链外存证集合depos、txposn(若验证者是区块链成员,也可以不提供txposn)。由于出证的签名部分仅包含一个聚合后的签名,因此降低了出证的数据量以及搜索出证签名所需的数据处理量。
[0030]
验证者收到目标主题tid、链外存证集合depos、txposn(若出证者未提供txposn,则验证者根据posn从区块链中取出txposn)解析depos后组合为n条签名消息:msg1=tid||txh1,其中,thx1为data1的存证信息;msg2=tid||txh2||pos1,其中,thx2为data2的存证信息;以此类推,msgn=tid||txhn||pos(n-1),其中,thxn为datan的存证信息;验证者根据msg1~msgn、pk1~pkn用聚合签名验证方法验证txposn,若验证通过则认可此次出证。由于仅需要对一个聚合签名进行验证,因此降低了对出证的验证计算量。
[0031]
进一步地,获取交易提交者对目标主题的存证数据进行签名后的存证交易,包括:交易提交者对所述存证数据执行哈希计算,得到存证数据的哈希运算结果;交易提交者对存证数据的哈希运算结果进行签名得到存证签名;获取所述交易提交者发送的所述存证交易,其中,所述存证交易包括所述目标主题、所述哈希运算结果及所述存证签名。若存证交易为增量存证交易,签名的对象还包含本增量存证交易的前一次交易在区块链中的所处位置信息。
[0032]
区块链提交者可以获取初始交易提交者u1对初始存证数据进行签名后的初始存证交易tx1,具体地,初始交易提交者u1对初始存证数据data1执行哈希计算,得到初始存证
数据的哈希运算结果txh1,初始交易提交者对初始存证数据的哈希运算结果txh1进行签名,得到第一存证签名txs1,u1将tx1提交到区块链网络中的区块链提交者,其中,初始存证交易tx1包括目标主题tid、哈希运算结果txh1及第一存证签名txs1。
[0033]
区块链提交者可以获取增量交易提交者ui对增量存证数据进行签名后的增量存证交易txi,具体地,增量交易提交者ui先找到前一个提交者,可以理解的是,前一个提交者可能是初始交易提交者,也可能是增量交易提交者。从前一个提交者处获取到同个目标主题tid下的前一次交易在区块链中所处的位置信息posj,该位置的历史签名为txsposj,增量交易提交者对增量存证数据datai进行哈希计算,得到增量存证数据的哈希运算结果txhi,对目标主题tid、增量存证数据的哈希运算结果txhi及位置信息posj进行签名得到第二存证签名txsi,增量交易提交者ui将增量存证交易txi提交到区块链网络中的区块链提交者,其中,增量存证交易txi包括目标主题tid、增量存证数据的哈希运算结果txhi、位置信息posj及第二存证签名txsi。
[0034]
进一步地,对所述存证交易进行验证,包括:验证所述存证交易是否为所述交易提交者,对所述目标主题及所述初始存证数据的哈希运算结果的签名。若存证交易为增量存证交易,签名的对象还包含本增量存证交易的前一次交易在区块链中的所处位置信息。
[0035]
区块链提交者获取到初始交易提交者发送的初始存证交易tx1之后,区块链提交者对初始存证交易tx1进行验证,即验证初始存证交易tx1是否为初始交易提交者u1,对目标主题tid及初始存证数据的哈希运算结果txh1的签名,区块链提交者可以利用u1的公钥验证txs1是否为u1对tid和txh1的签名,验证通过即认可tid和txh1。
[0036]
区块链提交者获取到增量交易提交者发送的增量存证交易txi之后,区块链提交者对增量存证交易txi进行验证,即验证增量存证交易txi是否为增量交易提交者ui,对目标主题tid、增量存证数据的哈希运算结果txhi及位置信息posj的签名,区块链提交者可以利用ui的公钥验证txsi是否为ui对tid、txhi及posj的签名,验证通过即认可tid、txhi及posj。
[0037]
参照图7所示,为本技术基于聚合签名的区块链存证装置100的功能模块示意图。
[0038]
本技术所述基于聚合签名的区块链存证装置100可以安装于电子设备中。根据实现的功能,所述基于聚合签名的区块链存证装置100可以包括获取模块110、判断模块120、初始存证处理模块130及增量存证处理模块140。本技术所述模块也可以称之为单元,是指一种能够被电子设备处理器所执行,并且能够完成固定功能的一系列计算机程序段,其存储在电子设备的存储器中。
[0039]
在本实施例中,关于各模块/单元的功能如下:获取模块110:用于获取交易提交者对目标主题的存证数据进行签名后的存证交易,对所述存证交易进行验证,当验证通过时删除所述存证交易中的存证信息;判断模块120:用于判断所述存证交易为初始存证交易还是增量存证交易;初始存证处理模块130:用于当判断所述存证交易为初始存证交易时,基于所述初始存证交易中的存证签名生成区块并进行上链存证;增量存证处理模块140:用于当判断存证交易为增量存证交易时,验证所述增量存证交易的前一次交易在区块链中的所处位置信息中是否存在历史签名,若存在,基于所述
增量存证交易的存证签名与所述历史签名生成区块进行上链存证,基于所述历史签名对所述区块中的签名信息执行合并操作。
[0040]
在一个实施例中,所述获取交易提交者对目标主题的存证数据进行签名后的存证交易,包括:交易提交者对所述存证数据执行哈希计算,得到存证数据的哈希运算结果;交易提交者对存证数据的哈希运算结果进行签名得到存证签名;获取所述交易提交者发送的所述存证交易,其中,所述存证交易包括所述目标主题、所述哈希运算结果及所述存证签名。
[0041]
在一个实施例中,所述对所述存证交易进行验证,包括:验证所述存证交易是否为所述交易提交者,对所述目标主题及所述初始存证数据的哈希运算结果的签名。
[0042]
在一个实施例中,所述删除所述存证交易中的存证信息,包括:删除所述存证交易中的目标主题及存证数据的哈希运算结果。
[0043]
在一个实施例中,所述基于所述初始存证交易中的存证签名生成区块并进行上链存证,包括:将所述初始存证交易的存证签名放入交易列表;基于交易列表生成区块,以使该区块对应的其余区块链成员验证该区块;当验证通过时,对该区块进行上链存证。
[0044]
在一个实施例中,增量存证处理模块还用于:当验证所述增量存证交易的前一次交易在区块链中的所处位置信息中不存在历史签名时,丢弃所述增量存证交易。
[0045]
在一个实施例中,所述基于所述历史签名对所述区块中的签名信息执行合并操作,包括:将所述历史签名的签名信息修改为所述历史签名对应的哈希值;判断所述位置信息所处节点对应的并列节点的值是否为哈希值;若是,将所述位置信息所处节点及并列节点进行合并得到合并节点;判断所述合并节点对应的并列节点的值是否为哈希值;若是,合并所述合并节点及合并节点的并列节点。
[0046]
参照图8所示,为本技术电子设备1较佳实施例的示意图。
[0047]
该电子设备1包括但不限于:存储器11、处理器12、显示器13及网络接口14。所述电子设备1通过网络接口14连接网络。其中,所述网络可以是企业内部网(intranet)、互联网(internet)、全球移动通讯系统(global system of mobile communication,gsm)、宽带码分多址(wideband code division multiple access,wcdma)、4g网络、5g网络、蓝牙(bluetooth)、wi-fi、通话网络等无线或有线网络。
[0048]
其中,存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器11可以是所述电子设备1的内部存储单元,例如该电子设备1的硬盘或内存。在另一些实施例中,所述存储器11也
可以是所述电子设备1的外部存储设备,例如该电子设备1配备的插接式硬盘,智能存储卡(smart media card, smc),安全数字(secure digital, sd)卡,闪存卡(flash card)等。当然,所述存储器11还可以既包括所述电子设备1的内部存储单元也包括其外部存储设备。本实施例中,存储器11通常用于存储安装于所述电子设备1的操作系统和各类应用软件,例如基于聚合签名的区块链存证程序10的程序代码等。此外,存储器11还可以用于暂时地存储已经输出或者将要输出的各类数据。
[0049]
处理器12在一些实施例中可以是中央处理器(central processing unit,cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器12通常用于控制所述电子设备1的总体操作,例如执行数据交互或者通信相关的控制和处理等。本实施例中,所述处理器12用于运行所述存储器11中存储的程序代码或者处理数据,例如运行基于聚合签名的区块链存证程序10的程序代码等。
[0050]
显示器13可以称为显示屏或显示单元。在一些实施例中显示器13可以是led显示器、液晶显示器、触控式液晶显示器以及有机发光二极管(organic light-emitting diode,oled)触摸器等。显示器13用于显示在电子设备1中处理的信息以及用于显示可视化的工作界面。
[0051]
网络接口14可选地可以包括标准的有线接口、无线接口(如wi-fi接口),该网络接口14通常用于在所述电子设备1与其它电子设备之间建立通信连接。
[0052]
图8仅示出了具有组件11-14以及基于聚合签名的区块链存证程序10的电子设备1,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
[0053]
可选地,所述电子设备1还可以包括用户接口,用户接口可以包括显示器(display)、输入单元比如键盘(keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是led显示器、液晶显示器、触控式液晶显示器以及有机发光二极管(organic light-emitting diode,oled)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备1中处理的信息以及用于显示可视化的用户界面。
[0054]
该电子设备1还可以包括射频(radio frequency,rf)电路、传感器和音频电路等等,在此不再赘述。
[0055]
在上述实施例中,处理器12执行存储器11中存储的基于聚合签名的区块链存证程序10时可以实现如下步骤:获取交易提交者对目标主题的存证数据进行签名后的存证交易,对所述存证交易进行验证,当验证通过时删除所述存证交易中的存证信息;判断所述存证交易为初始存证交易还是增量存证交易;当判断所述存证交易为初始存证交易时,基于所述初始存证交易中的存证签名生成区块并进行上链存证;当判断存证交易为增量存证交易时,验证所述增量存证交易的前一次交易在区块链中的所处位置信息中是否存在历史签名,若存在,基于所述增量存证交易的存证签名与所述历史签名生成区块进行上链存证,基于所述历史签名对所述区块中的签名信息执行合并操作。
[0056]
所述存储设备可以为电子设备1的存储器11,也可以为与电子设备1通讯连接的其
它存储设备。
[0057]
关于上述步骤的详细介绍,请参照上述图7关于基于聚合签名的区块链存证装置100实施例的功能模块图以及图1关于基于聚合签名的区块链存证方法实施例的流程图的说明。
[0058]
此外,本技术实施例还提出一种计算机可读存储介质,所述计算机可读存储介质可以是非易失性的,也可以是易失性的。该计算机可读存储介质可以是硬盘、多媒体卡、sd卡、闪存卡、smc、只读存储器(rom)、可擦除可编程只读存储器(eprom)、便携式紧致盘只读存储器(cd-rom)、usb存储器等等中的任意一种或者几种的任意组合。所述计算机可读存储介质中包括存储数据区和存储程序区,存储程序区存储有基于聚合签名的区块链存证程序10,所述基于聚合签名的区块链存证程序10被处理器执行时实现如下操作:获取交易提交者对目标主题的存证数据进行签名后的存证交易,对所述存证交易进行验证,当验证通过时删除所述存证交易中的存证信息;判断所述存证交易为初始存证交易还是增量存证交易;当判断所述存证交易为初始存证交易时,基于所述初始存证交易中的存证签名生成区块并进行上链存证;当判断存证交易为增量存证交易时,验证所述增量存证交易的前一次交易在区块链中的所处位置信息中是否存在历史签名,若存在,基于所述增量存证交易的存证签名与所述历史签名生成区块进行上链存证,基于所述历史签名对所述区块中的签名信息执行合并操作。
[0059]
本技术之计算机可读存储介质的具体实施方式与上述基于聚合签名的区块链存证方法的具体实施方式大致相同,在此不再赘述。
[0060]
需要说明的是,上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
[0061]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,电子装置,或者网络设备等)执行本技术各个实施例所述的方法。
[0062]
以上仅为本技术的优选实施例,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。

技术特征:
1.一种基于聚合签名的区块链存证方法,其特征在于,所述方法包括:获取交易提交者对目标主题的存证数据进行签名后的存证交易,对所述存证交易进行验证,当验证通过时删除所述存证交易中的存证信息;判断所述存证交易为初始存证交易还是增量存证交易;当判断所述存证交易为初始存证交易时,基于所述初始存证交易中的存证签名生成区块并进行上链存证;当判断存证交易为增量存证交易时,验证所述增量存证交易的前一次交易在区块链中的所处位置信息中是否存在历史签名,若存在,基于所述增量存证交易的存证签名与所述历史签名生成区块进行上链存证,基于所述历史签名对所述区块中的签名信息执行合并操作。2.如权利要求1所述的基于聚合签名的区块链存证方法,其特征在于,所述获取交易提交者对目标主题的存证数据进行签名后的存证交易,包括:交易提交者对所述存证数据执行哈希计算,得到存证数据的哈希运算结果;交易提交者对存证数据的哈希运算结果进行签名得到存证签名;获取所述交易提交者发送的所述存证交易,其中,所述存证交易包括所述目标主题、所述哈希运算结果及所述存证签名。3.如权利要求1所述的基于聚合签名的区块链存证方法,其特征在于,所述对所述存证交易进行验证,包括:验证所述存证交易是否为所述交易提交者,对所述目标主题及初始存证数据的哈希运算结果的签名。4.如权利要求1所述的基于聚合签名的区块链存证方法,其特征在于,所述删除所述存证交易中的存证信息,包括:删除所述存证交易中的目标主题及存证数据的哈希运算结果。5.如权利要求1所述的基于聚合签名的区块链存证方法,其特征在于,所述基于所述初始存证交易中的存证签名生成区块并进行上链存证,包括:将所述初始存证交易的存证签名放入交易列表;基于交易列表生成区块,以使该区块对应的其余区块链成员验证该区块;当验证通过时,对该区块进行上链存证。6.如权利要求1所述的基于聚合签名的区块链存证方法,其特征在于,所述方法还包括:当验证所述增量存证交易的前一次交易在区块链中的所处位置信息中不存在历史签名时,丢弃所述增量存证交易。7.如权利要求1所述的基于聚合签名的区块链存证方法,其特征在于,所述基于所述历史签名对所述区块中的签名信息执行合并操作,包括:将所述历史签名的签名信息修改为所述历史签名对应的哈希值;判断所述位置信息所处节点对应的并列节点的值是否为哈希值;若是,将所述位置信息所处节点及并列节点进行合并得到合并节点;判断所述合并节点对应的并列节点的值是否为哈希值;若是,合并所述合并节点及合并节点的并列节点。
8.一种基于聚合签名的区块链存证装置,其特征在于,所述装置包括:获取模块:用于获取交易提交者对目标主题的存证数据进行签名后的存证交易,对所述存证交易进行验证,当验证通过时删除所述存证交易中的存证信息;判断模块:用于判断所述存证交易为初始存证交易还是增量存证交易;初始存证处理模块:用于当判断所述存证交易为初始存证交易时,基于所述初始存证交易中的存证签名生成区块并进行上链存证;增量存证处理模块:用于当判断存证交易为增量存证交易时,验证所述增量存证交易的前一次交易在区块链中的所处位置信息中是否存在历史签名,若存在,基于所述增量存证交易的存证签名与所述历史签名生成区块进行上链存证,基于所述历史签名对所述区块中的签名信息执行合并操作。9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现权利要求1至7中任一项所述的基于聚合签名的区块链存证方法。10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述基于聚合签名的区块链存证方法的步骤。

技术总结
本申请涉及一种基于聚合签名的区块链存证方法、装置、设备及存储介质。所述方法包括:获取交易提交者对目标主题的存证数据进行签名后的存证交易进行验证,当验证通过时删除存证交易中的存证信息,判断存证交易为初始存证交易还是增量存证交易,当判断为初始存证交易时,基于初始存证交易中的存证签名生成区块并进行上链存证,当判断为增量存证交易时,验证增量存证交易的前一次交易在区块链中的所处位置信息中是否存在历史签名,若存在,基于增量存证交易的存证签名与历史签名生成区块进行上链存证,基于历史签名对区块中的签名信息执行合并操作。本申请可以减小区块链的存储量,降低区块验证时的计算量,也降低了出证的数据量和验证的计算量。数据量和验证的计算量。数据量和验证的计算量。


技术研发人员:钟一民 陈传义 郭峰 金宏洲 程亮
受保护的技术使用者:深圳天谷信息科技有限公司
技术研发日:2022.05.25
技术公布日:2022/7/5
转载请注明原文地址: https://www.8miu.com/read-6294.html

最新回复(0)