一种数据处理方法、装置、设备及存储介质转让专利

申请号 : CN202110227288.6

文献号 : CN112600671B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李茂材王宗友时一防廖志勇刘攀蓝虎周开班孔利朱耿良刘区城张劲松黄焕坤崔嘉辉

申请人 : 腾讯科技(深圳)有限公司

摘要 :

本申请实施例公开了一种数据处理方法、装置、设备及存储介质,该方法包括:第一业务节点将业务数据信息发送至第二业务节点,以使第二业务节点得到数据签名信息;数据签名信息中的第一关键参数和第二关键参数均与随机参数相关;随机参数是第二业务节点基于节点私钥以及业务数据信息所共同确定的;基于第一关键参数和第二关键参数对接收到的数据签名信息进行签名验证,将签名验证得到的签名验证结果添加至验证结果集;在验证结果集中查找满足合法验签条件的目标签名验证结果;若统计到目标签名验证结果的签名数量满足聚合签名条件,则对统计到的数据签名信息进行聚合签名。采用本申请实施例,可以降低聚合签名的网络复杂度。

权利要求 :

1.一种数据处理方法,其特征在于,所述方法由区块链网络中的第一业务节点执行,包括:

获取待发送至第二业务节点的业务数据信息,以使所述第二业务节点对所述业务数据信息进行签名处理,得到数据签名信息;所述数据签名信息中包括第一关键参数和第二关键参数;所述第一关键参数是所述第二业务节点基于随机参数、和与非交互式聚合签名规则相关联的固定参数所确定的;所述第二关键参数是所述第二业务节点基于所述随机参数、所述第二业务节点的节点私钥以及验证哈希值所确定的;所述随机参数是所述第二业务节点基于所述节点私钥以及所述业务数据信息所共同确定的;所述验证哈希值是所述第二业务节点基于所述业务数据信息和所述非交互式聚合签名规则所得到的;所述第二业务节点为所述区块链网络中除所述第一业务节点之外的节点;

在接收到所述第二业务节点返回的所述数据签名信息时,基于所述第一关键参数和所述第二关键参数,对所述数据签名信息进行签名验证,得到签名验证结果,将所述签名验证结果添加至与所述区块链网络相关联的验证结果集;

在所述验证结果集中查找满足合法验签条件的签名验证结果,将查找到的满足所述合法验签条件的签名验证结果确定为目标签名验证结果;

若统计到所述目标签名验证结果的签名数量满足聚合签名条件,则对所述目标签名验证结果所对应的数据签名信息进行聚合签名。

2.根据权利要求1所述的方法,其特征在于,所述获取待发送至第二业务节点的业务数据信息,包括:

在接收到由用户终端发送的业务请求时,获取所述业务请求中携带的待处理业务数据信息和用户签名信息;所述用户签名信息为基于所述用户终端对应的用户私钥对所述待处理业务数据信息进行签名处理后所得到的;

获取所述用户私钥对应的用户公钥,基于所述用户公钥对所述用户签名信息进行验签,得到用户验签结果;

在所述用户验签结果指示验签成功时,将所述待处理业务数据信息作为待发送至所述区块链网络中的第二业务节点的业务数据信息。

3.根据权利要求1所述的方法,其特征在于,所述方法还包括:获取所述区块链网络中的所述第二业务节点的节点公钥;

基于所述节点公钥对所述业务数据信息进行加密处理,得到加密数据信息;

将所述加密数据信息发送至所述第二业务节点,以使所述第二业务节点基于所述第二业务节点的节点私钥对所述加密数据信息进行解密处理,得到所述业务数据信息。

4.根据权利要求1所述的方法,其特征在于,所述验证结果集包括合法结果集和非法结果集;

所述在接收到所述第二业务节点返回的所述数据签名信息时,基于所述第一关键参数和所述第二关键参数,对所述数据签名信息进行签名验证,得到签名验证结果,将所述签名验证结果添加至与所述区块链网络相关联的验证结果集,包括:在接收到所述第二业务节点返回的所述数据签名信息时,基于所述第一关键参数和所述第二关键参数,对所述数据签名信息进行签名验证,得到签名验证结果;

在所述签名验证结果为验签成功结果时,将所述签名验证结果添加至所述验证结果集中的所述合法结果集;

在所述签名验证结果为验签失败结果时,将所述签名验证结果添加至所述验证结果集中的所述非法结果集。

5.根据权利要求4所述的方法,其特征在于,所述在接收到所述第二业务节点返回的所述数据签名信息时,基于所述第一关键参数和所述第二关键参数,对所述数据签名信息进行签名验证,得到签名验证结果,包括:在接收到所述第二业务节点返回的所述数据签名信息时,基于所述第二关键参数以及所述固定参数,得到第一辅助参数;

基于所述非交互式聚合签名规则获取所述业务数据信息对应的消息哈希值,且在获取到所述第二业务节点的节点公钥时,基于所述节点公钥、所述第一关键参数、以及所述消息哈希值,得到第二辅助参数;

基于所述第一辅助参数与所述第二辅助参数,确定签名验证结果。

6.根据权利要求5所述的方法,其特征在于,所述基于所述第一辅助参数与所述第二辅助参数,确定签名验证结果,包括:将所述第一辅助参数与所述第二辅助参数进行比对,得到比对结果;

在所述比对结果指示所述第一辅助参数与所述第二辅助参数一致时,得到所述数据签名信息对应的验签成功结果;

在所述比对结果指示第一辅助参数与所述第二辅助参数不一致时,得到所述数据签名信息对应的验签失败结果;

将所述验签成功结果或者所述验签失败结果确定为签名验证结果。

7.根据权利要求1所述的方法,其特征在于,所述区块链网络中的第二业务节点的节点数量为N个;所述N为正整数;所述验证结果集中的一个签名验证结果是对一个第二业务节点返回的一个数据签名信息进行签名验证后所确定的;一个数据签名信息中包括:一个第一关键参数和一个第二关键参数;

所述若统计到所述目标签名验证结果的签名数量满足聚合签名条件,则对所述目标签名验证结果所对应的数据签名信息进行聚合签名,包括:获取聚合签名条件中的数量阈值,统计所述验证结果集中的所述目标签名验证结果的签名数量;

若所述签名数量达到所述数量阈值,则确定所述签名数量满足所述聚合签名条件;所述签名数量为n个;所述n为小于或者等于所述N的正整数;

从n个目标签名验证结果对应的n个数据签名信息中,获取每个数据签名信息中的第一关键参数以及所述每个数据签名信息中的第二关键参数;

对获取到的n个第一关键参数进行合并处理,将合并处理后的n个第一关键参数作为第一聚合关键参数,且对获取到的n个第二关键参数进行合并处理,将合并处理后的n个第二关键参数作为第二聚合关键参数;

基于所述聚合签名条件所指示的非交互式聚合签名规则,对所述第一聚合关键参数和所述第二聚合关键参数进行聚合签名。

8.一种数据处理方法,其特征在于,所述方法由区块链网络中的第二业务节点执行,包括:

在获取到由所述区块链网络中的第一业务节点发送的业务数据信息时,基于所述第二业务节点的节点私钥和所述业务数据信息,生成用于对所述业务数据信息进行签名处理的随机参数;所述第二业务节点为所述区块链网络中除所述第一业务节点之外的节点;

基于所述随机参数、以及与非交互式聚合签名规则相关联的固定参数生成第一关键参数,基于所述随机参数、所述节点私钥以及验证哈希值生成第二关键参数,且基于所述第一关键参数和所述第二关键参数,确定用于对所述业务数据信息进行签名处理的数据签名信息;所述验证哈希值是基于所述业务数据信息和所述非交互式聚合签名规则所得到的;

将所述数据签名信息发送至所述第一业务节点,以使所述第一业务节点基于所述第一关键参数和所述第二关键参数,对所述数据签名信息进行签名验证,得到签名验证结果,将所述签名验证结果添加至与所述区块链网络相关联的验证结果集;所述验证结果集中的签名验证结果用于指示所述第一业务节点对所述业务数据信息进行聚合签名。

9.根据权利要求8所述的方法,其特征在于,所述在获取到由所述区块链网络中的第一业务节点发送的业务数据信息时,基于所述第二业务节点的节点私钥和所述业务数据信息,生成用于对所述业务数据信息进行签名处理的随机参数,包括:在获取到由所述区块链网络中的第一业务节点发送的业务数据信息时,将所述第二业务节点的节点私钥和所述业务数据信息进行拼接处理,得到拼接信息;

获取非交互式聚合签名规则中的哈希确定规则,基于所述哈希确定规则获取所述拼接信息对应的拼接哈希值;

将所述拼接哈希值作为用于对所述业务数据信息进行签名处理的随机参数。

10.根据权利要求8所述的方法,其特征在于,所述基于所述随机参数、以及与非交互式聚合签名规则相关联的固定参数生成第一关键参数,基于所述随机参数、所述节点私钥以及验证哈希值生成第二关键参数,且基于所述第一关键参数和所述第二关键参数,确定用于对所述业务数据信息进行签名处理的数据签名信息,包括:获取与非交互式聚合签名规则相关联的固定参数,将所述随机参数和所述固定参数之间的第一乘积作为第一关键参数;

基于所述非交互式聚合签名规则,确定所述业务数据信息对应的验证哈希值和所述节点私钥之间的第二乘积,对所述第二乘积和所述随机参数进行求和处理,将求和处理后的值作为第二关键参数;

基于所述第一关键参数和所述第二关键参数,确定用于对所述业务数据信息进行签名处理的数据签名信息。

11.根据权利要求8所述的方法,其特征在于,所述方法还包括:获取由所述第一业务节点发送的聚合签名信息;所述聚合签名信息是由所述第一业务节点对目标签名验证结果所对应的数据签名信息进行聚合签名后所得到的;所述目标签名验证结果为所述第一业务节点在所述验证结果集中查找到的满足合法验签条件的签名验证结果;一个签名验证结果是所述第一业务节点对一个第二业务节点返回的一个数据签名信息进行签名验证后所确定的;所述聚合签名信息包括第一聚合关键参数和第二聚合关键参数;

获取与所述目标签名验证结果相关联的第二业务节点的节点公钥,对获取到的节点公钥进行合并处理,得到目标公钥;

基于所述第二聚合关键参数以及与非交互式聚合签名规则相关联的定点参数,得到第一聚合辅助参数;

基于所述非交互式聚合签名规则获取所述业务数据信息对应的数据哈希值,基于所述目标公钥、所述数据哈希值以及所述第一聚合关键参数,得到第二聚合辅助参数;

若所述第一聚合辅助参数与所述第二聚合辅助参数一致,则将所述聚合签名信息对应的聚合验签结果确定为合法结果。

12.一种数据处理装置,其特征在于,包括:业务信息获取模块,用于获取待发送至第二业务节点的业务数据信息,以使所述第二业务节点对所述业务数据信息进行签名处理,得到数据签名信息;所述数据签名信息中包括第一关键参数和第二关键参数;所述第一关键参数是所述第二业务节点基于随机参数、和与非交互式聚合签名规则相关联的固定参数所确定的;所述第二关键参数是所述第二业务节点基于所述随机参数、所述第二业务节点的节点私钥以及验证哈希值所确定的;所述随机参数是所述第二业务节点基于所述节点私钥以及所述业务数据信息所共同确定的;所述验证哈希值是所述第二业务节点基于所述业务数据信息和所述非交互式聚合签名规则所得到的;所述第二业务节点为区块链网络中除第一业务节点之外的节点;

验证结果添加模块,用于在接收到所述第二业务节点返回的所述数据签名信息时,基于所述第一关键参数和所述第二关键参数,对所述数据签名信息进行签名验证,得到签名验证结果,将所述签名验证结果添加至与所述区块链网络相关联的验证结果集;

验证结果查找模块,用于在所述验证结果集中查找满足合法验签条件的签名验证结果,将查找到的满足所述合法验签条件的签名验证结果确定为目标签名验证结果;

聚合签名模块,用于若统计到所述目标签名验证结果的签名数量满足聚合签名条件,则对所述目标签名验证结果所对应的数据签名信息进行聚合签名。

13.一种数据处理装置,其特征在于,包括:随机参数生成模块,用于在获取到由区块链网络中的第一业务节点发送的业务数据信息时,基于第二业务节点的节点私钥和所述业务数据信息,生成用于对所述业务数据信息进行签名处理的随机参数;所述第二业务节点为所述区块链网络中除所述第一业务节点之外的节点;

签名信息确定模块,用于基于所述随机参数、以及与非交互式聚合签名规则相关联的固定参数生成第一关键参数,基于所述随机参数、所述节点私钥以及验证哈希值生成第二关键参数,且基于所述第一关键参数和所述第二关键参数,确定用于对所述业务数据信息进行签名处理的数据签名信息;所述验证哈希值是基于所述业务数据信息和所述非交互式聚合签名规则所得到的;

签名信息发送模块,用于将所述数据签名信息发送至所述第一业务节点,以使所述第一业务节点基于所述第一关键参数和所述第二关键参数,对所述数据签名信息进行签名验证,得到签名验证结果,将所述签名验证结果添加至与所述区块链网络相关联的验证结果集;所述验证结果集中的签名验证结果用于指示所述第一业务节点对所述业务数据信息进行聚合签名。

14.一种计算机设备,其特征在于,包括:处理器和存储器;

所述处理器与存储器相连,其中,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,以使得所述计算机设备执行权利要求1‑11任一项所述的方法。

15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序适于由处理器加载并执行,以使得具有所述处理器的计算机设备执行权利要求1‑11任一项所述的方法。

说明书 :

一种数据处理方法、装置、设备及存储介质

技术领域

[0001] 本申请涉及区块链技术领域,尤其涉及一种数据处理方法、装置、设备及存储介质。

背景技术

[0002] 在数字签名应用中,有时需要多个签名方对多条消息或者同一条消息进行签名,这种现象可以称之为多重签名或者聚合签名。可以理解的是,在多重签名的应用场景中,参
与聚合签名的聚合方在接收到由签名方发送的同一待签名消息对应的数据签名信息时,可
以对接收到的数据签名信息进行聚合签名,以得到待签名消息对应的聚合签名信息。其中,
各签名方在对待签名消息进行签名处理时,均需要事先感知所有参与聚合签名的签名方
(例如,区块链网络中的业务节点),以得到待签名消息对应的数据签名信息。
[0003] 应当理解,若参与聚合签名的所有签名方包括区块链网络中的业务节点1、业务节点2以及业务节点3,则对于任意一个签名方(例如,业务节点1)而言,在接收到待签名消息
时,需要获取所有签名方的交互数据(例如,业务节点1自身生成的关键参数R1、业务节点2
发送的关键参数R2以及业务节点3发送的关键参数R3),进而可以对待签名消息进行签名处
理,以得到数据签名信息,这意味着各签名方在对待签名消息进行签名处理的过程中存在
较多的网络交互,以至于现有聚合签名方案存在较高的网络复杂度,从而导致占用较多带
宽,进而使得聚合签名的签名效率降低。

发明内容

[0004] 本申请实施例提供一种数据处理方法、装置、设备及存储介质,可以降低聚合签名的网络复杂度。
[0005] 本申请实施例一方面提供一种数据处理方法,该方法由区块链网络中的第一业务节点执行,包括:
[0006] 获取待发送至第二业务节点的业务数据信息,以使第二业务节点对业务数据信息进行签名处理,得到数据签名信息;数据签名信息中包括第一关键参数和第二关键参数;第
一关键参数与第二关键参数均与第二业务节点的随机参数相关;随机参数是第二业务节点
基于节点私钥以及业务数据信息所共同确定的;第二业务节点为区块链网络中除第一业务
节点之外的节点;
[0007] 在接收到第二业务节点返回的数据签名信息时,基于第一关键参数和第二关键参数,对数据签名信息进行签名验证,得到签名验证结果,将签名验证结果添加至与区块链网
络相关联的验证结果集;
[0008] 在验证结果集中查找满足合法验签条件的签名验证结果,将查找到的满足合法验签条件的签名验证结果确定为目标签名验证结果;
[0009] 若统计到目标签名验证结果的签名数量满足聚合签名条件,则对目标签名验证结果所对应的数据签名信息进行聚合签名。
[0010] 本申请实施例一方面提供一种数据处理方法,该方法由区块链网络中的第二业务节点执行,包括:
[0011] 在获取到由区块链网络中的第一业务节点发送的业务数据信息时,基于第二业务节点的节点私钥和业务数据信息,生成用于对业务数据信息进行签名处理的随机参数;第
二业务节点为区块链网络中除第一业务节点之外的节点;
[0012] 基于随机参数以及固定参数生成第一关键参数,基于随机参数、业务数据信息以及节点私钥生成第二关键参数,且基于第一关键参数和第二关键参数,确定用于对业务数
据信息进行签名处理的数据签名信息;
[0013] 将数据签名信息发送至第一业务节点,以使第一业务节点基于第一关键参数和第二关键参数,对数据签名信息进行签名验证,得到签名验证结果,将签名验证结果添加至与
区块链网络相关联的验证结果集;验证结果集中的签名验证结果用于指示第一业务节点对
业务数据信息进行聚合签名。
[0014] 本申请实施例一方面提供一种数据处理装置,包括:
[0015] 业务信息获取模块,用于获取待发送至第二业务节点的业务数据信息,以使第二业务节点对业务数据信息进行签名处理,得到数据签名信息;数据签名信息中包括第一关
键参数和第二关键参数;第一关键参数与第二关键参数均与第二业务节点的随机参数相
关;随机参数是第二业务节点基于节点私钥以及业务数据信息所共同确定的;第二业务节
点为区块链网络中除第一业务节点之外的节点;
[0016] 验证结果添加模块,用于在接收到第二业务节点返回的数据签名信息时,基于第一关键参数和第二关键参数,对数据签名信息进行签名验证,得到签名验证结果,将签名验
证结果添加至与区块链网络相关联的验证结果集;
[0017] 验证结果查找模块,用于在验证结果集中查找满足合法验签条件的签名验证结果,将查找到的满足合法验签条件的签名验证结果确定为目标签名验证结果;
[0018] 聚合签名模块,用于若统计到目标签名验证结果的签名数量满足聚合签名条件,则对目标签名验证结果所对应的数据签名信息进行聚合签名。
[0019] 其中,该业务信息获取模块包括:
[0020] 用户签名信息获取单元,用于在接收到由用户终端发送的业务请求时,获取业务请求中携带的待处理业务数据信息和用户签名信息;用户签名信息为基于用户终端对应的
用户私钥对待处理业务数据信息进行签名处理后所得到的;
[0021] 用户验签结果确定单元,用于获取用户私钥对应的用户公钥,基于用户公钥对用户签名信息进行验签,得到用户验签结果;
[0022] 业务信息确定单元,用于在用户验签结果指示验签成功时,将待处理业务数据信息作为用于待发送至区块链网络中的第二业务节点的业务数据信息。
[0023] 其中,该装置还包括:
[0024] 节点公钥获取模块,用于获取区块链网络中的第二业务节点的节点公钥;
[0025] 加密处理模块,用于基于节点公钥对业务数据信息进行加密处理,得到加密数据信息;
[0026] 加密信息发送模块,用于将加密数据信息发送至第二业务节点,以使第二业务节点基于第二业务节点的节点私钥对加密数据信息进行解密处理,得到业务数据信息。
[0027] 其中,验证结果集包括合法结果集和非法结果集;
[0028] 该验证结果添加模块包括:
[0029] 签名验证单元,用于在接收到第二业务节点返回的数据签名信息时,基于第一关键参数和第二关键参数,对数据签名信息进行签名验证,得到签名验证结果;
[0030] 第一添加单元,用于在签名验证结果为验签成功结果时,将签名验证结果添加至验证结果集中的合法结果集;
[0031] 第二添加单元,用于在签名验证结果为验签失败结果时,将签名验证结果添加至验证结果集中的非法结果集。
[0032] 其中,第一关键参数是第二业务节点基于随机参数、和与非交互式聚合签名规则相关联的固定参数所确定的;第二关键参数是第二业务节点基于随机参数、节点私钥以及
验证哈希值所确定的;验证哈希值是第二业务节点基于业务数据信息和非交互式聚合签名
规则所得到的;
[0033] 该签名验证单元包括:
[0034] 第一辅助参数确定子单元,用于在接收到第二业务节点返回的数据签名信息时,基于第二关键参数以及固定参数,得到第一辅助参数;
[0035] 第二辅助参数确定子单元,用于基于非交互式聚合签名规则获取业务数据信息对应的消息哈希值,且在获取到第二业务节点的节点公钥时,基于节点公钥、第一关键参数、
以及消息哈希值,得到第二辅助参数;
[0036] 签名验证结果确定子单元,用于基于第一辅助参数与第二辅助参数,确定签名验证结果。
[0037] 其中,该签名验证结果确定子单元还用于:
[0038] 将第一辅助参数与第二辅助参数进行比对,得到比对结果;
[0039] 在比对结果指示第一辅助参数与第二辅助参数一致时,得到数据签名信息对应的验签成功结果;
[0040] 在比对结果指示第一辅助参数与第二辅助参数不一致时,得到数据签名信息对应的验签失败结果;
[0041] 将验签成功结果或者验签失败结果确定为签名验证结果。
[0042] 其中,区块链网络中的第二业务节点的节点数量为N个;N为正整数;验证结果集中的一个签名验证结果是对一个第二业务节点返回的一个数据签名信息进行签名验证后所
确定的;一个数据签名信息中包括:一个第一关键参数和一个第二关键参数;
[0043] 该聚合签名模块包括:
[0044] 数量统计单元,用于获取聚合签名条件中的数量阈值,统计验证结果集中的目标签名验证结果的签名数量;
[0045] 条件满足单元,用于若签名数量达到数量阈值,则确定签名数量满足聚合签名条件;签名数量为n个;n为小于或者等于N的正整数;
[0046] 参数获取单元,用于从n个目标签名验证结果对应的n个数据签名信息中,获取每个数据签名信息中的第一关键参数以及每个数据签名信息中的第二关键参数;
[0047] 合并处理单元,用于对获取到的n个第一关键参数进行合并处理,将合并处理后的n个第一关键参数作为第一聚合关键参数,且对获取到的n个第二关键参数进行合并处理,
将合并处理后的n个第二关键参数作为第二聚合关键参数;
[0048] 聚合签名单元,用于基于聚合签名条件所指示的非交互式聚合签名规则,对第一聚合关键参数和第二聚合关键参数进行聚合签名。
[0049] 本申请实施例一方面提供一种数据处理装置,包括:
[0050] 随机参数生成模块,用于在获取到由区块链网络中的第一业务节点发送的业务数据信息时,基于第二业务节点的节点私钥和业务数据信息,生成用于对业务数据信息进行
签名处理的随机参数;第二业务节点为区块链网络中除第一业务节点之外的节点;
[0051] 签名信息确定模块,用于基于随机参数以及固定参数生成第一关键参数,基于随机参数、业务数据信息以及节点私钥生成第二关键参数,且基于第一关键参数和第二关键
参数,确定用于对业务数据信息进行签名处理的数据签名信息;
[0052] 签名信息发送模块,用于将数据签名信息发送至第一业务节点,以使第一业务节点基于第一关键参数和第二关键参数,对数据签名信息进行签名验证,得到签名验证结果,
将签名验证结果添加至与区块链网络相关联的验证结果集;验证结果集中的签名验证结果
用于指示第一业务节点对业务数据信息进行聚合签名。
[0053] 其中,该随机参数生成模块包括:
[0054] 拼接处理单元,用于在获取到由区块链网络中的第一业务节点发送的业务数据信息时,将第二业务节点的节点私钥和业务数据信息进行拼接处理,得到拼接信息;
[0055] 拼接哈希值确定单元,用于获取非交互式聚合签名规则中的哈希确定规则,基于哈希确定规则获取拼接信息对应的拼接哈希值;
[0056] 随机参数确定单元,用于将拼接哈希值作为用于对业务数据信息进行签名处理的随机参数。
[0057] 其中,该签名信息确定模块包括:
[0058] 第一关键参数确定单元,用于获取与非交互式聚合签名规则相关联的固定参数,将随机参数和固定参数之间的第一乘积作为第一关键参数;
[0059] 第二关键参数确定单元,用于基于非交互式聚合签名规则,确定业务数据信息对应的验证哈希值和节点私钥之间的第二乘积,对第二乘积和随机参数进行求和处理,将求
和处理后的值作为第二关键参数;
[0060] 签名信息确定单元,用于基于第一关键参数和第二关键参数,确定用于对业务数据信息进行签名处理的数据签名信息。
[0061] 其中,该装置还包括:
[0062] 聚合签名信息获取模块,用于获取由第一业务节点发送的聚合签名信息;聚合签名信息是由第一业务节点对目标签名验证结果所对应的数据签名信息进行聚合签名后所
得到的;目标签名验证结果为第一业务节点在验证结果集中查找到的满足合法验签条件的
签名验证结果;一个签名验证结果是第一业务节点对一个第二业务节点返回的一个数据签
名信息进行签名验证后所确定的;聚合签名信息包括第一聚合关键参数和第二聚合关键参
数;
[0063] 目标公钥确定模块,用于获取与目标签名验证结果相关联的第二业务节点的节点公钥,对获取到的节点公钥进行合并处理,得到目标公钥;
[0064] 第一参数确定模块,用于基于第二聚合关键参数以及与非交互式聚合签名规则相关联的固定参数,得到第一聚合辅助参数;
[0065] 第二参数确定模块,用于基于非交互式聚合签名规则获取业务数据信息对应的数据哈希值,基于目标公钥、数据哈希值以及第一聚合关键参数,得到第二聚合辅助参数;
[0066] 合法结果确定模块,用于若第一聚合辅助参数与第二聚合辅助参数一致,则将聚合签名信息对应的聚合验签结果确定为合法结果。
[0067] 本申请实施例一方面提供了一种计算机设备,包括:处理器和存储器;
[0068] 处理器与存储器相连,其中,存储器用于存储计算机程序,计算机程序被处理器执行时,使得该计算机设备执行本申请实施例提供的方法。
[0069] 本申请实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,该计算机程序适于由处理器加载并执行,以使得具有该处理器的计算机设
备执行本申请实施例提供的方法。
[0070] 本申请实施例一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设
备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该
计算机设备执行本申请实施例提供的方法。
[0071] 在本申请实施例中,区块链网络中的第二业务节点(例如,节点i)在获取到的第一业务节点(例如,节点p)发送的业务数据信息时,无需感知其他签名方的存在,可以直接对
接收到的业务数据信息进行签名处理,以得到待返回至第一业务节点的数据签名信息。其
中,可以理解的是,第二业务节点所确定的数据签名信息中可以包括第一关键参数(例如,
关键参数Ri)和第二关键参数(例如,关键参数si),这两个关键参数均与第二业务节点生成
的随机参数相关,而无需根据所有签名方返回的交互数据来确定关键参数Ri,从而可以减
少网络交互。该随机参数是由第二业务节点的节点私钥以及业务数据信息所共同确定的。
应当理解,区块链网络中的第一业务节点能够获取多个第二业务节点对同一条消息(即业
务数据信息)进行签名处理后的数据签名信息,进而可以对获取到的每个数据签名信息进
行签名验证,以得到每个数据签名信息的签名验证结果,且将得到的签名验证结果添加至
与区块链网络相关联的验证结果集。其中,第二业务节点可以在验证结果集中查找到满足
合法验签条件的目标签名验证结果,并统计目标签名验证结果的签名数量。当签名数量满
足聚合签名条件时,第一业务节点可以直接对目标签名验证结果对应的数据签名信息进行
聚合签名。整个聚合签名过程中由于签名方无需感知其他签名方的存在,可以直接对接收
到的业务数据信息进行签名处理,进而导致在签名方的签名过程中减少了网络交互,从而
可以降低聚合签名的网络复杂度,进而可以提高聚合签名的签名效率。

附图说明

[0072] 为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本
申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以
根据这些附图获得其他的附图。
[0073] 图1是本申请实施例提供的一种区块链节点系统的结构示意图;
[0074] 图2是本申请实施例提供的一种进行数据交互的场景示意图;
[0075] 图3是本申请实施例提供的一种数据处理方法的流程示意图;
[0076] 图4是本申请实施例提供的一种向第二业务节点广播业务数据信息的场景示意图;
[0077] 图5是本申请实施例提供的一种对数据签名信息进行签名验证的场景示意图;
[0078] 图6是本申请实施例提供的一种数据处理方法的流程示意图;
[0079] 图7是本申请实施例提供的一种数据处理装置的结构示意图;
[0080] 图8是本申请实施例提供的一种数据处理装置的结构示意图;
[0081] 图9是本申请实施例提供的一种计算机设备的示意图;
[0082] 图10是本申请实施例提供的一种数据处理系统的结构示意图。

具体实施方式

[0083] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于
本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他
实施例,都属于本申请保护的范围。
[0084] 请参见图1,图1是本申请实施例提供的一种区块链节点系统的结构示意图。如图1所示,该区块链系统可以是由多个节点通过网络通信的形式连接形成的分布式系统。该区
块链节点系统中可以包括多个节点。这多个节点具体可以包括节点10A、节点10B、节点
10C、…、节点10N。其中,本申请实施例可以将该区块链网络中的每个节点(例如,节点10A、
节点10B、节点10C、…、节点10N)统称为区块链节点。可以理解的是,该区块链节点可以为接
入该区块链网络中的服务器,也可以为接入该区块链网络中的用户终端,这里对区块链节
点的具体形式不做限定。
[0085] 应当理解,这些区块链节点均可以用于维护同一区块链,该区块链网络中的任意两个区块链节点之间可以形成点对点(P2P,Peer To Peer)网络,该点对点网络可以采用
P2P协议,其中,该P2P协议是一个运行在传输控制协议(TCP,Transmission Control 
Protocol)协议之上的应用层协议。
[0086] 其中,本申请实施例中的数据处理方法可以涉及一种非交互式聚合签名方案(例如,Schnorr算法)。该非交互式聚合签名方案可以有效降低存储空间、减少网络流量、缩短
验证时间,对签名频次较低但验证频次较高的场景有显著效果。比如,该聚合签名方案可以
应用于共识场景、多方协作场景、合同签署C场景等。这里的聚合签名是一种多重签名,可以
理解的是,多重签名是指在获取到多个签名方对多个消息或者同一消息进行签名处理后所
得到的签名信息时,可以将这多个签名信息聚合成一个短的签名信息,以得到聚合签名信
息。验证方可以通过对聚合签名信息的验证,来确保接收到的消息的真实性。
[0087] 为便于理解,本申请实施例可以在图1所示区块链节点系统中选择一个区块链节点作为第一业务节点,例如,节点10A。该第一业务节点可以作为参与聚合签名的聚合方。此
外,本申请实施例还可以将该区块链网络中除第一业务节点之外的区块链节点称之为第二
业务节点,该第二业务节点可以用于对第一业务节点广播的业务数据信息进行签名处理,
即该第二业务节点可以称之为参与聚合签名的签名方。可以理解的是,该第一业务节点所
获取的业务数据信息可以是指客户端的交易请求消息,也可以是指对交易请求消息进行打
包处理的待验证区块,这里将不对业务数据信息进行限定。其中,该客户端可以包含社交客
户端、多媒体客户端(例如,视频客户端)、娱乐客户端(例如,游戏客户端)、教育客户端、直
播客户端等。其中,该客户端可以为独立的客户端,也可以为集成在某客户端(例如,社交客
户端、教育客户端以及多媒体客户端等)中的嵌入式子客户端,在此不做限定。
[0088] 应当理解,集成有客户端的用户终端可以通过有线或无线通信方式与区块链网络中的区块链节点(例如,第一业务节点)进行直接或间接地连接,以进行业务数据交互,本申
请实施例在此不做限制。该用户终端可以包括智能手机、平板电脑、笔记本电脑、桌上型电
脑、可穿戴设备、智能家居、头戴设备等智能终端。本申请实施例中的第一业务节点可以为
该客户端对应的服务器。该第一业务节点可以是独立的物理服务器,也可以是多个物理服
务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、
云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能
平台等基础云计算服务的云服务器。
[0089] 可以理解的是,本申请实施例中的第一业务节点可以将业务数据信息发送至区块链网络中的第二业务节点(即签名方),以使第二业务节点对业务数据信息进行签名处理。
其中,第二业务节点在接收到业务数据信息时,无需感知其他签名方的存在,可以直接基于
第二业务节点的节点私钥和业务数据信息,得到用于生成第一关键参数和第二关键参数的
随机参数,以得到业务数据信息对应的数据签名信息。从而可以减少网络交互。第一业务节
点在接收到第二业务节点返回的数据签名消息时,可以对该数据签名信息进行签名验证,
进而可以统计满足合法验签条件的目标签名验证结果,以在目标签名验证结果的签名数量
满足聚合签名条件时,对目标签名验证结果对应的数据签名信息进行聚合签名。由于签名
方的签名过程中减少了网络交互,因此导致聚合签名的网络复杂度降低,进而提高了聚合
签名的签名效率。
[0090] 为便于理解,进一步地,请参见图2,图2是本申请实施例提供的一种进行数据交互的场景示意图。如图2所示,本申请实施例中的节点20A可以为区块链网络中的第一业务节
点,即用于参与聚合签名的聚合方,例如,该节点20A可以为上述图1所示的区块链网络中的
节点10A。如图2所示,本申请实施例中的节点20B、节点20C、节点20D、…、以及节点20N均可
以统称为该区块链网络中的第二业务节点,该第二业务节点可以是指区块链网络中除节点
20A之外的区块链节点。
[0091] 可以理解的是,节点20A可以获取待发送至第二业务节点的业务数据信息,以使第二业务节点对业务数据信息进行签名处理,得到数据签名信息。例如,这里的业务数据信息
可以是由运行有客户端的用户终端直接发送的,还可以是由该区块链网络中的其他节点所
转发的,在此不做限定。其中,该业务数据信息可以是指该用户终端对应的用户在客户端上
所发起的资产转移消息,该资产转移消息可以用于请求转移比特币、以太币、游戏金币、游
戏钻石以及电子票据等虚拟资产。
[0092] 其中,可以理解的是,第二业务节点所得到的数据签名信息可以包括第一关键参数和第二关键参数。这里的第一关键参数和第二关键参数均与第二业务节点生成的随机参
数相关。该随机参数可以是由第二业务节点基于第二业务节点的节点私钥以及该第二业务
节点所接收到的业务数据信息所共同确定的。
[0093] 例如,图2所示的节点20B在接收到节点20A所广播的业务数据信息时,可以基于节点20B的节点私钥和业务数据信息,生成用于对业务数据信息进行签名处理的随机参数(例
如,参数r1)。进一步地,该节点20B可以基于随机参数以及与非交互式聚合签名规则相关联
的固定参数(例如,参数G),生成第一关键参数(例如,关键参数R1)。与此同时,该节点20B还
可以基于随机参数、该业务数据信息以及节点20B的节点私钥,生成第二关键参数(例如,关
键参数s1)。此时,该节点20B可以基于第一关键参数和第二关键参数,确定用于返回至节点
20A的数据签名信息(例如,签名信息1,即)。
[0094] 进一步地,在节点20A接收到第二业务节点返回的数据签名信息时,该节点20A可以基于数据签名信息中的第一关键参数和第二关键参数,对接收到的数据签名信息进行签
名验证,以得到签名验证结果,进而可以将签名验证结果添加至与区块链网络相关联的验
证结果集(例如,图2所示的验证结果集200x)。
[0095] 可以理解的是,该节点20A可以在验证结果集200x中查找满足合法验签条件的签名验证结果,进而可以将查找到的满足合法验签条件的签名验证结果确定为目标签名验证
结果。其中,本申请实施例中的合法验签条件可以是指属于验签成功结果的签名验证结果,
即节点20A基于接收到的数据签名信息和非交互式聚合签名规则,所确定出的第一辅助参
数和第二辅助参数一致。如图2所示,该节点20A在验证结果集200x中所查找到的目标签名
验证结果可以包括签名验证结果1、签名验证结果2、…、以及签名验证结果n。其中,签名验
证结果1可以为节点20A对节点20B返回的签名信息1进行签名验证后所得到的签名验证结
果。
[0096] 此时,该节点20A可以在验证结果集200x中,统计目标签名验证结果的签名数量。若统计到目标签名验证结果的签名数量达到聚合签名条件中的数量阈值(例如,n),则节点
20A可以确定目标签名验证结果的签名数量满足聚合签名条件,此时,节点20A可以对这n个
目标签名验证结果所对应的数据签名信息进行聚合签名,以得到聚合签名信息。其中,n为
正整数,这里的n可以根据实际需求进行动态调整,在此不做限定。
[0097] 如图2所示,节点20A所查找到的目标签名验证结果对应的数据签名信息可以包括签名验证结果1对应的签名信息1(例如,)、签名验证结果2对应的签名信息2(例如,<
R2,s2>)、…、以及签名验证结果n对应的签名信息n(例如,)。在目标签名验证结果的
签名数量满足聚合签名条件时,节点20A可以对这n个数据签名信息进行聚合签名,以得到
图2所示的聚合签名信息(例如,)。其中,聚合关键参数R可以称之为第一聚合关键参
数,聚合关键参数s可以称之为第二聚合关键参数。
[0098] 例如,在多方协作场景下,一笔虚拟资产可以由多方共同持有,比如,在某游戏中可以设定某阵营所获得的仓库游戏金币需要由n个(例如,5个)用户共同管理。这5个用户可
以包括该阵营中的团长、营长等游戏身份的用户。在需要对该虚拟资产进行处理(例如,资
产转移)时,需要这5个具有资产管理权限的用户各自对这笔虚拟资产进行签名处理,以得
到这笔虚拟资产对应的数据签名信息。进一步地,节点20A(例如,团长对应的节点)可以收
集第二业务节点返回的数据签名信息。其中,该第二业务节点可以为对该笔虚拟资产具有
资产管理权限的用户对应的业务节点(例如,营长或者团长等对应的节点)。在节点20A收集
到5个满足合法验签条件的目标签名验证结果所对应的数据签名信息时,节点20A可以对这
5个数据签名信息进行聚合签名。
[0099] 由此可见,本申请实施例中的第二业务节点在获取到节点20A所广播的业务数据信息时,无需感知其他签名方的存在,可以直接对业务数据信息进行签名处理,以得到数据
签名信息。此时,每个第二业务节点均可以将数据签名信息统一返回至节点20A,以使节点
20A在收集到足够多的满足合法验签条件的目标签名验证结果所对应的数据签名信息时,
对收集到的所有签名信息进行聚合签名,而无需在签名方对业务数据信息进行签名处理
时,获取所有签名方的交互数据,以至于减少了网络间的数据交互,从而降低了聚合签名的
网络复杂度,提高了聚合签名的签名效率。
[0100] 其中,第一业务节点可以统一收集由多个第二业务节点基于同一业务数据信息返回的数据签名信息,以查找满足合法验签条件的目标签名验证结果,且在目标签名验证结
果的签名数量满足聚合签名条件时,对目标签名验证结果对应的数据签名信息进行聚合签
名的具体实现方式可以参见下述图3‑图6所对应的实施例。
[0101] 进一步地,请参见图3,图3是本申请实施例提供的一种数据处理方法的流程示意图。如图3所示,该方法可以由区块链网络中的第一业务节点(即参与聚合签名的签名方)执
行,该第一业务节点可以为接入区块链网络中的用户终端,也可以为接入区块链网络中的
服务器,在此不做限定。为便于理解,本申请实施例中的第一业务节点可以以服务器(例如,
图1所示的区块链网络中的节点10A)为例进行说明,该方法至少可以包括以下步骤S101‑步
骤S104:
[0102] 步骤S101,获取待发送至第二业务节点的业务数据信息,以使第二业务节点对业务数据信息进行签名处理,得到数据签名信息。
[0103] 具体地,第一业务节点在接收到由用户终端发送的业务请求时,可以获取业务请求中携带的待处理业务数据信息和用户签名信息。该用户签名信息可以是由用户终端基于
用户终端对应的用户私钥,对该待处理业务数据信息进行签名处理后所得到。进一步地,第
一业务节点可以获取用户私钥对应的用户公钥,进而可以基于用户公钥对用户签名信息进
行验签,得到用户验签结果。在用户验签结果指示验签成功时,该第一业务节点可以将待处
理业务数据信息作为待发送至区块链网络中的第二业务节点的业务数据信息。
[0104] 应当理解,当用户终端对应的用户(例如,用户A)需要在客户端上执行某笔交易业务(例如,资产转移业务)时,可以针对客户端执行触发操作。其中,这里的触发操作可以包
括点击、长按等接触性操作,也可以包括语音、手势等非接触性操作,这里将不对其进行限
定。进一步地,该用户终端可以响应该触发操作,生成与客户端相关联的待处理业务数据信
息。此时,用户终端可以获取用户A的用户私钥,进而可以基于用户私钥对待处理业务数据
信息进行签名处理,以得到用户签名信息。进一步地,该用户终端可以基于用户签名信息和
待处理业务数据信息,生成用于向第一业务节点发送的业务请求。
[0105] 该第一业务节点在接收到由用户终端发送的业务请求时,可以获取用户A的用户公钥,对业务请求中的用户签名信息进行验签,以得到用户验签结果。在用户验签结果指示
验签失败时,该第一业务节点可以确定接收到的业务请求为非法请求。在用户验签结果指
示验签成功时,该第一业务节点可以确定接收到的业务请求为合法请求,此时,该第一业务
节点可以将该业务请求中的待处理业务数据信息作为待发送至区块链网络中的第二业务
节点的业务数据信息。
[0106] 应当理解,该第一业务节点在将业务数据信息广播至区块链网络中的第二业务节点时,为了保证数据传输时的安全性,该第一业务节点可以获取第二业务节点的节点公钥,
进而可以基于该节点公钥对业务数据信息进行加密处理,以得到加密数据信息。此时,第一
业务节点可以将加密数据信息发送至第二业务节点,以使第二业务节点基于第二业务节点
的节点私钥对加密数据信息进行解密处理,进而可以得到业务数据信息。
[0107] 为便于理解,进一步地,请参见图4,图4是本申请实施例提供一种向第二业务节点广播业务数据信息的场景示意图。如图4所示,本申请实施例中的节点40A可以为用于获取
待广播至区块链网络中的业务数据信息的第一业务节点,例如,该节点40A可以为上述图1
所示的区块链网络中的节点10A。本申请实施例中的节点40B可以为该区块链网络中的第二
业务节点,可以用于对业务数据信息进行签名处理,该节点40B可以为上述图1所示的区块
链网络中除第一业务节点之外的区块链节点,例如,节点20B。本申请实施例中的用户终端
400a可以为与节点40A具有网络连接关系的用户终端,用于向节点40A发送携带业务数据信
息的业务请求。
[0108] 应当理解,用户终端400a对应的用户可以针对客户端执行触发操作(例如,点击操作),以使用户终端400a响应该触发操作,生成用于广播至区块链网络中的待处理业务数据
信息(例如,图4所示的业务数据信息4)。进一步地,该用户终端400a可以基于该用户终端
400a对应的用户私钥,对该业务数据信息4进行签名处理,以得到该业务数据信息4的用户
签名信息。其中,可以理解的是,该用户终端400a可以对业务数据信息4进行哈希计算,得到
业务数据信息4的摘要信息h。进一步地,该用户终端400a可以基于该用户终端400a对应的
用户私钥,对该摘要信息h进行数字签名,以得到用户签名信息。此时,该用户终端400a可以
基于该用户签名信息和业务数据信息4,生成图4所示的业务请求,进而可以将该业务请求
发送至图4所示的节点40A。
[0109] 如图4所示,节点40A在接收到业务请求时,可以从业务请求中获取业务数据信息4和用户签名信息。进一步地,该节点40A可以获取用户私钥对应的用户公钥,进而可以基于
该用户公钥,对用户签名信息进行验签,以得到用户验签结果。其中,可以理解的是,节点
40A可以基于用户公钥对该用户签名信息中的数字签名进行验签,得到业务数据信息4的摘
要信息h,并利用与该用户终端400a相同的哈希算法对该业务数据信息4进行哈希计算,从
而可以得到该业务数据信息4的摘要信息H。进一步地,节点40A可以将验签后所得到的摘要
信息h与进行哈希计算得到的摘要信息H进行比对,得到用户验签结果。若该用户验签结果
指示摘要信息h与摘要信息H不相同,则可以理解为节点40A验签失败,即该业务请求为非法
请求。若该用户验签结果指示摘要信息h与摘要信息H相同,则可以理解为节点40A验签成
功,即业务请求为合法请求。
[0110] 应当理解,在用户验签结果指示业务请求为合法请求时,该节点40A可以将该业务数据信息4作为待发送至区块链网络中的第二业务节点的业务数据信息。可以理解的是,节
点40A在将业务数据信息4发送至节点40B时,为了确保数据传输时的安全性,节点40A可以
获取节点40B的节点公钥,进而可以基于节点40B的节点公钥对业务数据信息4进行加密处
理,以得到加密数据信息。当节点40B接收到由节点40A发送的加密数据信息时,节点40B可
以基于节点40B的节点私钥,对加密数据信息进行解密处理,从而可以得到业务数据信息4。
[0111] 进一步地,当第二业务节点获取到由第一业务节点发送的业务数据信息时,第二业务节点可以获取聚合签名条件所指示的非交互式聚合签名规则,对业务数据信息进行签
名处理,以得到业务数据信息的数据签名信息。可以理解的是,在本申请实施例中,由于第
一业务节点向区块链网络中的第二业务节点所广播的业务数据信息为同一条消息,因此,
第一业务节点可以收集由多个第二业务节点返回的针对同一条消息的数据签名信息。其
中,非交互式聚合签名规则可以包括多种协议,本申请实施例可以以Schnorr算法为例,基
于椭圆曲线阐述数字签名原理。可以理解的是,该Schnorr算法是一种公钥电子签名方案,
由于其计算上的线性特征,很容易改造成高效的聚合签名。在Schnorr算法流程中,可以设E
为定义在有限域上的椭圆曲线,E上的点形成一个循环群,阶为质数n,记 为模n整数
环, 的元素取值范围为{0,1,2,…,n‑1}; 为模n整数乘法群, 的元素
取值范围为{1,2,…,n‑1}。可以理解的是,本申请实施例中的随机参数可以是由签名方(例
如,第二业务节点)的节点私钥和业务数据信息所共同确定的。可选的,该随机参数还可以
使用其他对节点私钥(或者与节点私钥所绑定的一个非公开值)和业务数据信息的运算组
合。其中,这里的非公开值是指对节点私钥的一种映射运算。当然,该随机参数还可以具有
其他生成方式,这里将不对其进行限定。
[0112] 在基于非交互式聚合签名规则对业务数据信息进行签名处理时,本申请实施例可以选择随机参数 作为区块链网络中的区块链节点的节点私钥,例如,该区块链
网络中的区块链节点(例如,节点i)的节点私钥可以表示为ki,其中, 。基
于非交互式聚合签名规则,本申请实施例可以将该区块链节点的节点私钥与固定参数G的
乘积作为该节点的节点公钥。这里的固定参数可以与该非交互式聚合签名规则相关,该固
定参数可以是指椭圆曲线E上的一个定点,且为生成元。例如,区块链网络中的区块链节点
(例如,节点i)的节点公钥可以表示为Pi(即Pi=kiG),其中, 。
[0113] 具体地,本申请实施例中的非交互式聚合签名规则可以参见下述公式(1)‑公式(9)。在非交互式聚合签名规则中,签名方(即第二业务节点,例如,节点i)可以对业务数据
信息进行签名处理,以得到数据签名信息。其中,数据签名信息的具体计算方式可以
参见下述公式(1)‑公式(4):
[0114] ,                            (1)
[0115] 其中,ri可以表示节点i所生成的随机参数,ki可以表示节点i的节点私钥,m可以表示待签名消息(例如,业务数据信息),质数n可以为阶, 为模n整数乘法群,
的元素取值范围为{1,2,…,n‑1}。
[0116] ,                                              (2)
[0117] 其中,Ri可以表示节点i所确定的第一关键参数,G可以表示为与该非交互式聚合签名规则相关联的固定参数。
[0118] ,                                  (3)
[0119] 其中,m可以表示为待签名消息,e可以表示节点i所确定的待签名消息对应的哈希值(例如,业务数据信息对应的验证哈希值), 是指模n整数环, 的元素取值范围
为{0,1,2,…,n‑1}。
[0120] ,                               (4)
[0121] 其中,si可以表示节点i所确定的第二关键参数,ri可以表示节点i所生成的随机参数,ki可以表示节点i的节点私钥,e可以表示节点i所确定的待签名消息对应的哈希值。
[0122] 在非交互式聚合签名规则中,聚合方(即第一业务节点,例如,节点p)在统计到目标签名验证结果的签名数量n满足聚合签名条件时,可以对统计到的目标签名验证结果所
对应的数据签名信息(即n个数据签名信息)进行聚合签名,得到聚合签名信息。其中,节点P
确定聚合签名信息的具体计算方式可以参见下述公式(5)‑公式(6):
[0123] ,                                            (5)
[0124] 其中,Ri可以表示节点i所返回数据签名信息中的第一关键参数,R可以表示节点p对获取到的n个第一关键参数进行合并处理后所得到的聚合关键参数(即第一聚合关键参
数)。
[0125] ,                                           (6)
[0126] 其中,si可以表示节点i所返回数据签名信息中的第二关键参数,s可以表示节点p对获取到n个的第二关键参数进行合并处理后所得到的聚合关键参数(即第二聚合关键参
数)。
[0127] 在非交互式聚合签名规则中,验签方(即第二业务节点)对接收到聚合签名信息进行验签(即验证S1是否等于S2)的具体公式可以参见下述公式(7)‑公式(9):
[0128] ,                                  (7)
[0129] 其中,m可以表示为待签名消息,E可以表示验签方所确定的待签名消息的哈希值(例如,业务数据信息对应的消息哈希值)。
[0130] ,                                          (8)
[0131] 其中,s可以表示第二聚合关键参数,G可以表示与该非交互式聚合签名规则相关联的固定参数。S1可以表示验签方对待签名消息进行验签的聚合辅助参数(即第一聚合辅
助参数)。
[0132] ,                                (9)
[0133] 其中,R可以表示第一聚合关键参数,E可以表示验签方所确定的待签名消息的哈希值,Pi可以表示签名方(例如,节点i)的节点公钥,S2可以表示验签方对待签名消息进行验
签的聚合辅助参数(即第二聚合辅助参数)。
[0134] 可以理解的是,第二业务节点(例如,节点i)在获取到由区块链网络中的第一业务节点发送的业务数据信息时,可以将第二业务节点的节点私钥和业务数据信息进行拼接处
理,得到拼接信息。进一步地,节点i可以获取非交互式聚合签名规则中的哈希确定规则,进
而可以基于上述公式(1)所示的哈希确定规则,获取拼接信息对应的拼接哈希值,且将该拼
接哈希值作为用于对业务数据信息进行签名处理的随机参数(例如,参数ri)。
[0135] 进一步地,该节点i可以获取与非交互式聚合签名规则相关联的固定参数(例如,G),进而可以根据上述公式(2),将随机参数和固定参数之间的第一乘积作为第一关键参数
(例如,关键参数Ri)。与此同时,该第二业务节点还可以基于非交互式聚合签名规则中的公
式(3)以及公式(4),确定业务数据信息对应的验证哈希值和节点私钥之间的第二乘积,进
而可以对第二乘积和随机参数进行求和处理,将求和处理后的值作为第二关键参数(例如,
关键参数si)。此时,第二业务节点可以基于第一关键参数和第二关键参数,确定用于对业
务数据信息进行签名处理的数据签名信息
[0136] 由于本申请实施例的第二业务节点在对业务数据信息进行签名处理时所生成的随机参数是由该第二业务节点的节点私钥和业务数据信息所共同决定的,这样既可以有效
保证对不同待签名消息进行签名处理时,随机参数不同以保护节点私钥,又可以有效保证
同一个节点私钥对同一条待签名消息进行签名处理后所得到的数据签名信息是相同的。比
如,当区块链网络中的多个区块链节点(例如,隶属于同一机构的节点)共享一个节点私钥
时,它们会各自对区块进行签名后存储至区块链网络中的区块链上,从而可以有效确保每
个节点所存储的区块链数据一致。由于对同一条消息进行签名时生成的随机参数是相同
的,即随机参数的差值恒为0,因此每个签名方(即第二业务节点)在基于非交互式聚合签名
规则进行聚合签名时,确定业务数据信息对应的验证哈希值e时将无需依赖于关键参数R,
可以直接对业务数据信息进行哈希计算,以得到关键参数R,从而可以降低验证聚合签名信
息的复杂度。
[0137] 步骤S102,在接收到第二业务节点返回的数据签名信息时,基于第一关键参数和第二关键参数,对数据签名信息进行签名验证,得到签名验证结果,将签名验证结果添加至
与区块链网络相关联的验证结果集。
[0138] 具体地,第一业务节点在接收到第二业务节点返回的数据签名信息时,可以基于数据签名信息中的第一关键参数和第二关键参数,对数据签名信息进行签名验证,以得到
签名验证结果。在签名验证结果为验签成功结果时,该第一业务节点可以将签名验证结果
添加至验证结果集中的合法结果集。可选的,在签名验证结果为验签失败结果时,第一业务
节点可以将签名验证结果添加至验证结果集中的非法结果集。
[0139] 其中,可以理解的是,第一业务节点在接收到第二业务节点返回的数据签名信息时,可以基于上述公式(8),数据签名信息中的第二关键参数以及固定参数,得到第一辅助
参数(例如,辅助参数S1)。进一步地,第一业务节点可以基于上述非交互式聚合签名规则中
的公式(9),获取业务数据信息对应的消息哈希值(例如,哈希值E),且在获取到第二业务节
点的节点公钥时,基于节点公钥、第一关键参数、以及消息哈希值,得到第二辅助参数(例
如,辅助参数S2)。此时,该第一业务节点可以基于第一辅助参数与第二辅助参数,确定签名
验证结果。具体验证过程可以参见下述公式(10):
[0140] ,                (10)
[0141] 其中,可以理解的是,第一业务节点可以将第一辅助参数与第二辅助参数进行比对,得到比对结果。在比对结果指示第一辅助参数与第二辅助参数一致时,第一业务节点可
以得到数据签名信息对应的验签成功结果,换言之,第一业务节点验签成功。可选的,在比
对结果指示第一辅助参数与第二辅助参数不一致时,第一业务节点可以得到数据签名信息
对应的验签失败结果,换言之,第一业务节点验签失败。可以理解的是,第一业务节点可以
将验签成功结果或者验签失败结果确定为签名验证结果。
[0142] 为便于理解,进一步地,请参见图5,图5是本申请实施例提供的一种对数据签名信息进行签名验证的场景示意图。如图5所示,本申请实施例中的节点50A可以为用于获取待
广播至区块链网络中的业务数据信息的第一业务节点,例如,该节点50A可以为上述图1所
示的区块链网络中的节点10A。本申请实施例中的节点50B可以为该区块链网络中的第二业
务节点,即用于对业务数据信息进行签名处理的签名方,该节点50B可以为区块链网络中除
第一业务节点之外的区块链节点,例如,上述图1所示的区块链网络中的节点20B。
[0143] 如图5所示,本申请实施例中的节点50B在接收到由节点50A广播的业务数据信息时,可以对业务数据信息进行签名处理,从而得到该业务数据信息的数据签名信息(例如,
图5所示的数据签名信息5a)。其中,该数据签名信息5a中可以包括第一关键参数(例如,图5
所示的关键参数R5)和第二关键参数(例如,图5所示的关键参数s5)。可以理解的是,关键参
数R5是节点50B基于随机参数和与非交互式聚合签名规则相关联的固定参数(例如,G)所确
定的,关键参数s5是节点50B基于随机参数、节点50B的节点私钥以及业务数据信息对应的
验证哈希值(例如,哈希值e)所确定的,这里的验证哈希值是节点50B基于业务数据信息和
非交互式聚合签名规则所得到的。
[0144] 应当理解,节点50B可以将该数据签名信息5a发送至节点50A,以使节点50A基于上述公式(8),数据签名信息5a中的关键参数s5以及固定参数,得到用于对数据签名信息5a进
行签名验证的第一辅助参数(例如,辅助参数S1)。进一步地,节点50A可以基于上述非交互
式聚合签名规则中的公式(9),获取业务数据信息对应的消息哈希值(例如,哈希值E),且在
获取到节点50B的节点公钥(例如,P5)时,可以基于节点公钥P5、关键参数R5以及消息哈希
值,得到用于对数据签名信息5a进行签名验证的第二辅助参数(例如,辅助参数S2)。此时,
该节点50A可以基于辅助参数S1和辅助参数S2,确定数据签名信息5a对应的签名验证结果
(例如,图5所示的签名验证结果5b)。
[0145] 其中,可以理解的是,该节点50A可以将辅助参数S1与辅助参数S2进行比对,得到比对结果。在比对结果指示辅助参数S1与辅助参数S2一致时,节点50A可以确定验签成功,即数
据签名信息5a对应的签名验证结果5b为验签成功结果,此时,节点50A可以将签名验证结果
5b添加至图5所示的验证结果集500x中的合法结果集(例如,合法结果集510)。可选的,在比
对结果指示辅助参数S1与辅助参数S2不一致时,节点50A可以确定验签失败,即数据签名信
息5a对应的签名验证结果5b为验签失败结果,此时,节点50A可以将签名验证结果5b添加至
验证结果集500x中的非法结果集(例如,图5所示的非法结果集520)。
[0146] 步骤S103,在验证结果集中查找满足合法验签条件的签名验证结果,将查找到的满足合法验签条件的签名验证结果确定为目标签名验证结果。
[0147] 具体地,第一业务节点可以在验证结果集中查找满足合法验签条件的签名验证结果,进而可以将查找到的满足合法验签条件的签名验证结果确定为目标签名验证结果。其
中,合法验签条件可以是指属于验签成功结果的签名验证结果,即第一业务节点基于接收
到的数据签名信息和非交互式聚合签名规则,所确定出的第一辅助参数和第二辅助参数一
致。
[0148] 可以理解的是,当与区块链网络相关联的验证结果集包括非法结果集和合法结果集时,本申请实施例可以直接将添加至合法结果集中的签名验证结果确定为目标签名验证
结果。如图2所示,节点20A(即第一业务节点)所确定的目标签名验证结果可以包括签名验
证结果1、签名验证结果2、…、以及签名验证结果n。
[0149] 步骤S104,若统计到目标签名验证结果的签名数量满足聚合签名条件,则对目标签名验证结果所对应的数据签名信息进行聚合签名。
[0150] 其中,该区块链网络中的第二业务节点的节点数量可以为N个;这里的N为正整数;该验证结果集中的一个签名验证结果是对一个第二业务节点返回的一个数据签名信息进
行签名验证后所确定的;一个数据签名信息中可以包括一个第一关键参数和一个第二关键
参数。应当理解,该第一业务节点可以获取聚合签名条件中的数量阈值,统计验证结果集中
的目标签名验证结果的签名数量。若签名数量达到数量阈值,则第一业务节点可以确定签
名数量满足聚合签名条件。其中,该签名数量可以为n个;n为小于或者等于N的正整数。此
时,第一业务节点可以从n个目标签名验证结果对应的n个数据签名信息中,获取每个数据
签名信息中的第一关键参数以及每个数据签名信息中的第二关键参数。进一步地,第一业
务节点可以对获取到的n个第一关键参数进行合并处理,将合并处理后的n个第一关键参数
作为第一聚合关键参数,且对获取到的n个第二关键参数进行合并处理,进而可以将合并处
理后的n个第二关键参数作为第二聚合关键参数。此时,第一业务节点可以基于聚合签名条
件所指示的非交互式聚合签名规则,对第一聚合关键参数和第二聚合关键参数进行聚合签
名。
[0151] 应当理解,如图2所示,节点20A(即第一业务节点)可以获取聚合签名条件中的数量阈值。当节点20A所统计到的目标签名验证结果的签名数量达到数量阈值(例如,4)时,节
点20A可以确定签名数量满足聚合签名条件,此时,节点20A可以对所统计到的目标签名验
证结果对应的数据签名信息进行聚合签名,以得到业务数据信息对应的聚合签名信息。
[0152] 其中,该节点20A所统计到的满足聚合签名条件的这4个目标签名验证结果可以包括签名验证结果1、签名验证结果2、签名验证结果3以及签名验证结果4。可以理解的是,签
名验证结果1对应的数据签名信息可以为签名信息1,签名验证结果2对应的数据签
名信息可以为签名信息2,签名验证结果3对应的数据签名信息可以为签名信息3<
R3,s3>,签名验证结果4对应的数据签名信息可以为签名信息4
[0153] 进一步地,节点20A可以从这4个目标签名验证结果对应的4个数据签名信息中,分别获取每个数据签名信息中的第一关键参数(例如,关键参数R1、关键参数R2、关键参数R3和
关键参数R4)以及每个数据签名信息中的第二关键参数(例如,关键参数s1、关键参数s2、关
键参数s3和关键参数s4)。进一步地,节点20A可以对获取到的这4个第一关键参数进行合并
处理,进而可以将合并处理后的4个第一关键参数作为第一聚合关键参数(例如,聚合关键
参数R),且对获取到的这4个第二关键参数进行合并处理,进而可以将合并处理后的4个第
二关键参数作为第二聚合关键参数(例如,聚合关键参数s)。此时,第一业务节点可以基于
聚合签名条件所指示的非交互式聚合签名规则,对聚合关键参数R和聚合关键参数s进行聚
合签名,以得到聚合签名信息
[0154] 在本申请实施例中,区块链网络中的第二业务节点(例如,节点i)在获取到的第一业务节点(例如,节点p)发送的业务数据信息时,无需感知其他签名方的存在,可以直接对
接收到的业务数据信息进行签名处理,以得到待返回至第一业务节点的数据签名信息。其
中,可以理解的是,第二业务节点所确定的数据签名信息中可以包括第一关键参数(例如,
关键参数Ri)和第二关键参数(例如,关键参数si),这两个关键参数均与第二业务节点生成
的随机参数相关,而无需根据所有签名方返回的交互数据来确定关键参数Ri,从而可以减
少网络交互。该随机参数是由第二业务节点的节点私钥以及业务数据信息所共同确定的。
应当理解,区块链网络中的第一业务节点能够获取多个第二业务节点对同一条消息(即业
务数据信息)进行签名处理后的数据签名信息,进而可以对获取到的每个数据签名信息进
行签名验证,以得到每个数据签名信息的签名验证结果,且将得到的签名验证结果添加至
与区块链网络相关联的验证结果集。其中,第二业务节点可以在验证结果集中查找到满足
合法验签条件的目标签名验证结果,并统计目标签名验证结果的签名数量,且当签名数量
满足聚合签名条件时,第一业务节点可以直接对目标签名验证结果对应的数据签名信息进
行聚合签名。整个聚合签名过程中由于签名方可以无需感知其他签名方的存在,直接对接
收到的业务数据信息进行签名处理,进而导致在签名方的签名过程中减少了网络交互,从
而可以降低聚合签名的网络复杂度,进而可以提高聚合签名的签名效率。
[0155] 进一步地,请参见图6,图6是本申请实施例提供的一种数据处理方法的流程示意图。如图6所示,该方法可以由区块链网络中的第一业务节点以及第二业务节点共同执行,
该第一业务节点可以为参与聚合签名的聚合方,例如,该第一业务节点可以为上述图1所示
的区块链网络中的节点10A。该第二业务节点可以为参与聚合签名的签名方,该第二业务节
点可以是指该区块链网络中除第一业务节点之外的区块链节点,例如,该第二业务节点可
以为上述图1所示的区块链网络中的节点10B。该方法至少可以包括以下步骤S201‑步骤
S209:
[0156] 步骤S201,第一业务节点将获取到的业务数据信息发送至第二业务节点;
[0157] 步骤S202,第二业务节点在接收到由区块链网络中的第一业务节点发送的业务数据信息时,基于第二业务节点的节点私钥和业务数据信息,生成用于对业务数据信息进行
签名处理的随机参数;
[0158] 步骤S203,第二业务节点基于随机参数以及固定参数生成第一关键参数,基于随机参数、业务数据信息以及节点私钥生成第二关键参数,且基于第一关键参数和第二关键
参数,确定用于对业务数据信息进行签名处理的数据签名信息;
[0159] 步骤S204,第二业务节点将数据签名信息发送至第一业务节点;
[0160] 步骤S205,第一业务节点在接收到第二业务节点返回的数据签名信息时,基于第一关键参数和第二关键参数,对数据签名信息进行签名验证,得到签名验证结果,将签名验
证结果添加至与区块链网络相关联的验证结果集;
[0161] 步骤S206,第一业务节点在验证结果集中查找满足合法验签条件的签名验证结果,将查找到的满足合法验签条件的签名验证结果确定为目标签名验证结果;
[0162] 步骤S207,若统计到目标签名验证结果的签名数量满足聚合签名条件,则第一业务节点对目标签名验证结果所对应的数据签名信息进行聚合签名;
[0163] 其中,该步骤S201‑步骤S207的具体实施方式可参见上述图3所对应实施例中对步骤S101‑步骤S104的描述,这里将不再赘述。
[0164] 步骤S208,第一业务节点将聚合签名后所得到的聚合签名信息发送至第二业务节点;
[0165] 其中,聚合签名信息可以是由第一业务节点对目标签名验证结果所对应的数据签名信息进行聚合签名后所得到的;这里的目标签名验证结果可以为第一业务节点在验证结
果集中查找到的满足合法验签条件的签名验证结果;一个签名验证结果是第一业务节点对
一个第二业务节点返回的一个数据签名信息进行签名验证后所确定的。该聚合签名信息可
以包括第一聚合关键参数(例如,图2所示的聚合关键参数R)和第二聚合关键参数(例如,图
2所示的聚合关键参数s)。
[0166] 步骤S209,第二业务节点在接收到聚合签名信息时,对聚合签名信息进行签名验证,得到聚合验证结果。
[0167] 具体地,第二业务节点在获取到由第一业务节点发送的聚合签名信息时,可以获取与目标签名验证结果相关联的第二业务节点的节点公钥,对获取到的节点公钥进行合并
处理,得到目标公钥。进一步地,第二业务节点可以基于第二聚合关键参数以及与非交互式
聚合签名规则相关联的定点参数,得到第一聚合辅助参数。与此同时,第二业务节点可以基
于非交互式聚合签名规则,获取业务数据信息对应的数据哈希值,进而可以基于目标公钥、
数据哈希值以及第一聚合关键参数,得到第二聚合辅助参数。若第一聚合辅助参数与第二
聚合辅助参数一致,则第二业务节点可以将聚合签名信息对应的聚合验签结果确定为合法
结果。可选的,若第一聚合辅助参数与第二聚合辅助参数不一致,则第二业务接地可以将聚
合签名信息对应的聚合验签结果确定为非法结果。
[0168] 应当理解,如图2所示,节点20A(即第一业务节点)所生成的聚合签名信息是由节点20A在统计到目标签名验证结果的签名数量满足聚合签名条件时,基于所统计到的目标
签名验证结果对应的数据签名信息所确定的。例如,节点20A所统计到的目标签名验证结果
对应的数据签名信息可以包括节点20B返回的签名信息1、节点20C返回的签名信息2、节点
20D返回的签名信息3以及节点20E返回的签名信息4。
[0169] 因此,在区块链网络中的第二业务节点(例如,节点20B)获取到由节点20A所广播的聚合签名信息时,节点20B可以获取节点20B的节点公钥(例如,P1),节点20C的节点公钥
(例如,P2),节点20D的节点公钥(例如,P3)以及节点20E的节点公钥(例如,P4),进而可以对
获取到的这4个公钥进行合并处理,以得到目标公钥(即聚合公钥)。
[0170] 进一步地,该节点20B可以根据上述非交互式聚合签名规则中的公式(8)第二聚合关键参数(例如,聚合关键参数s)以及与非交互式聚合签名规则相关联的定点参数(例如,
G),得到用于对聚合签名信息进行签名验证的第一聚合辅助参数(例如,聚合辅助参数S1)。
与此同时,节点20B可以基于上述非交互式聚合签名规则中的公式(7)和公式(9),获取业务
数据信息对应的数据哈希值(例如,哈希值E),进而可以基于目标公钥、数据哈希值以及第
一聚合关键参数,得到用于对聚合签名信息进行签名验证的第二聚合辅助参数(例如,聚合
辅助参数S2)。若第一聚合辅助参数与第二聚合辅助参数一致,则第二业务节点可以将聚合
签名信息对应的聚合验签结果确定为合法结果。可选的,若第一聚合辅助参数与第二聚合
辅助参数不一致,则第二业务节点可以将聚合签名信息对应的聚合验签结果确定为非法结
果。
[0171] 可以理解的是,在对区块交易进行聚合签名的场景中,第二业务节点所接收到的业务数据信息可以是指包括多个交易请求消息的待验证区块,此时各签名方可以对该待验
证区块中的不同待签名消息进行签名处理,得到每个交易请求消息对应的数据签名信息。
在第二业务节点对聚合签名信息进行签名验证时,可以确定聚合签名信息对应的第二聚合
辅助参数。其中,该第二聚合辅助参数的计算公式可以参见公式(11):
[0172] ,                      (11)
[0173] 其中,这里的m可以是指待签名消息的消息数量,n可以是指参与聚合签名的签名方数量。 是指对待签名消息(例如,交易请求消息j)进行验签的聚合辅助参数,Ej可以表
示验签方所确定的待签名消息(例如,交易请求消息j)的哈希值,Pi可以表示签名方(例如,
节点i)的节点公钥。
[0174] 此时,由于待验证区块中包括不同的待签名消息,从而导致根据非交互式聚合签名规则中的公式(3)所确定的待签名消息对应的验证哈希值(即哈希值e)不同,因此对聚合
签名信息进行验证时,公式(11)中的 的计算无法优化,但这并不影响签名的聚
合。在区块链中,假设一个区块中有1000笔交易请求消息,每个交易请求消息均有自己的签
名信息,在具有打包功能的区块链节点(例如,第一业务节点)将这1000笔交易请求消息打
包成区块时,可以将这些签名信息合成一个总的签名信息(即聚合签名信息),由于区块链
网络中的共识节点在对所打包的区块进行共识时,需要在意所有交易请求消息的签名信息
是否正确,虽然这样的验证效率跟逐个验证效率没有太大的区别,但可以大大减少签名数
量,节省大量存储空间和网络流量。
[0175] 可以理解的是,本申请实施例所涉及的聚合签名方案可以有效降低存储空间、减少网络流量、缩短验证时间,对签名频次较低但验证频次较高的场景有显著效果。比如,在
多方协作(例如,签名方固定)的场景下,此时各签名方的节点公钥可以简单聚合为一个聚
合公钥(即目标公钥),表示为 。例如,在一笔虚拟资产由多方共同持有时,该虚
拟资产的归属方可以为多方的聚合公钥。当对该虚拟资产进行处理(例如,资产转移交易)
时,需要聚合方(即第一业务节点)对各签名方(例如,第二业务节点)的数据签名信息进行
聚合签名。可以理解的是,整个聚合签名过程,签名方无需感知其他签名方的存在,可以直
接各自进行签名,再由其中一方(例如,第一业务节点)收集数据签名信息并在满足聚合签
名条件时进行聚合签名,验证时可以根据聚合签名信息和聚合公钥做计算。可以理解的是,
当这笔交易作为业务数据信息在区块链网络中进行共识时,会在区块链网络中进行传播,
以使多个区块链节点对该交易进行存储,因此该笔交易可能在任何时候被校验,即校验频
次较高,此时采用聚合签名方案能够降低存储空间、且减少网络流量、缩短验证时间,进而
可以提升区块链系统的整体性能。
[0176] 进一步地,请参见图7,图7是本申请实施例提供的一种数据处理装置的结构示意图。该数据处理装置1可以是运行于计算机设备中的一个计算机程序(包括程序代码),例
如,该数据处理装置1为一个应用软件;该数据处理装置1可以用于执行本申请实施例提供
的方法中的相应步骤。如图7所示,该数据处理装置1可以运行于区块链网络中的第一业务
节点,该第一业务节点可以为上述图2所对应实施例中的节点20A。该数据处理装置1可以包
括:业务信息获取模块10,验证结果添加模块20,验证结果查找模块30,聚合签名模块40,节
点公钥获取模块50,加密处理模块60以及加密信息发送模块70。
[0177] 该业务信息获取模块10,用于获取待发送至第二业务节点的业务数据信息,以使第二业务节点对业务数据信息进行签名处理,得到数据签名信息;数据签名信息中包括第
一关键参数和第二关键参数;第一关键参数与第二关键参数均与第二业务节点的随机参数
相关;随机参数是第二业务节点基于节点私钥以及业务数据信息所共同确定的;第二业务
节点为区块链网络中除第一业务节点之外的节点。
[0178] 其中,该业务信息获取模块10包括:用户签名信息获取单元101,用户验签结果确定单元102以及业务信息确定单元103。
[0179] 该用户签名信息获取单元101,用于在接收到由用户终端发送的业务请求时,获取业务请求中携带的待处理业务数据信息和用户签名信息;用户签名信息为基于用户终端对
应的用户私钥对待处理业务数据信息进行签名处理后所得到的;
[0180] 该用户验签结果确定单元102,用于获取用户私钥对应的用户公钥,基于用户公钥对用户签名信息进行验签,得到用户验签结果;
[0181] 该业务信息确定单元103,用于在用户验签结果指示验签成功时,将待处理业务数据信息作为用于待发送至区块链网络中的第二业务节点的业务数据信息。
[0182] 其中,该用户签名信息获取单元101,用户验签结果确定单元102以及业务信息确定单元103的具体实现方式可以参见上述图3所对应实施例中对步骤S101的描述,这里将不
再继续进行赘述。
[0183] 该验证结果添加模块20,用于在接收到第二业务节点返回的数据签名信息时,基于第一关键参数和第二关键参数,对数据签名信息进行签名验证,得到签名验证结果,将签
名验证结果添加至与区块链网络相关联的验证结果集。
[0184] 其中,验证结果集包括合法结果集和非法结果集;
[0185] 该验证结果添加模块20包括:签名验证单元201,第一添加单元202以及第二添加单元203。
[0186] 该签名验证单元201,用于在接收到第二业务节点返回的数据签名信息时,基于第一关键参数和第二关键参数,对数据签名信息进行签名验证,得到签名验证结果。
[0187] 其中,第一关键参数是第二业务节点基于随机参数、和与非交互式聚合签名规则相关联的固定参数所确定的;第二关键参数是第二业务节点基于随机参数、节点私钥以及
验证哈希值所确定的;验证哈希值是第二业务节点基于业务数据信息和非交互式聚合签名
规则所得到的;
[0188] 该签名验证单元201包括:第一辅助参数确定子单元2011,第二辅助参数确定子单元2012以及签名验证结果确定子单元2013。
[0189] 该第一辅助参数确定子单元2011,用于在接收到第二业务节点返回的数据签名信息时,基于第二关键参数以及固定参数,得到第一辅助参数;
[0190] 该第二辅助参数确定子单元2012,用于基于非交互式聚合签名规则获取业务数据信息对应的消息哈希值,且在获取到第二业务节点的节点公钥时,基于节点公钥、第一关键
参数、以及消息哈希值,得到第二辅助参数;
[0191] 该签名验证结果确定子单元2013,用于基于第一辅助参数与第二辅助参数,确定签名验证结果。
[0192] 其中,该签名验证结果确定子单元2013还用于:
[0193] 将第一辅助参数与第二辅助参数进行比对,得到比对结果;
[0194] 在比对结果指示第一辅助参数与第二辅助参数一致时,得到数据签名信息对应的验签成功结果;
[0195] 在比对结果指示第一辅助参数与第二辅助参数不一致时,得到数据签名信息对应的验签失败结果;
[0196] 将验签成功结果或者验签失败结果确定为签名验证结果。
[0197] 其中,该第一辅助参数确定子单元2011,第二辅助参数确定子单元2012以及签名验证结果确定子单元2013的具体实现方式可以参见上述图3所对应实施例中对签名验证结
果的描述,这里将不再继续进行赘述。
[0198] 该第一添加单元202,用于在签名验证结果为验签成功结果时,将签名验证结果添加至验证结果集中的合法结果集;
[0199] 该第二添加单元203,用于在签名验证结果为验签失败结果时,将签名验证结果添加至验证结果集中的非法结果集。
[0200] 其中,该签名验证单元201,第一添加单元202以及第二添加单元203的具体实现方式可以参见上述图3所对应实施例中对步骤S102的描述,这里将不再继续进行赘述。
[0201] 该验证结果查找模块30,用于在验证结果集中查找满足合法验签条件的签名验证结果,将查找到的满足合法验签条件的签名验证结果确定为目标签名验证结果;
[0202] 该聚合签名模块40,用于若统计到目标签名验证结果的签名数量满足聚合签名条件,则对目标签名验证结果所对应的数据签名信息进行聚合签名。
[0203] 其中,区块链网络中的第二业务节点的节点数量为N个;N为正整数;验证结果集中的一个签名验证结果是对一个第二业务节点返回的一个数据签名信息进行签名验证后所
确定的;一个数据签名信息中包括:一个第一关键参数和一个第二关键参数;
[0204] 该聚合签名模块40包括:数量统计单元401,条件满足单元402,参数获取单元403,合并处理单元404以及聚合签名单元405。
[0205] 该数量统计单元401,用于获取聚合签名条件中的数量阈值,统计验证结果集中的目标签名验证结果的签名数量;
[0206] 该条件满足单元402,用于若签名数量达到数量阈值,则确定签名数量满足聚合签名条件;签名数量为n个;n为小于或者等于N的正整数;
[0207] 该参数获取单元403,用于从n个目标签名验证结果对应的n个数据签名信息中,获取每个数据签名信息中的第一关键参数以及每个数据签名信息中的第二关键参数;
[0208] 该合并处理单元404,用于对获取到的n个第一关键参数进行合并处理,将合并处理后的n个第一关键参数作为第一聚合关键参数,且对获取到的n个第二关键参数进行合并
处理,将合并处理后的n个第二关键参数作为第二聚合关键参数;
[0209] 该聚合签名单元405,用于基于聚合签名条件所指示的非交互式聚合签名规则,对第一聚合关键参数和第二聚合关键参数进行聚合签名。
[0210] 其中,该数量统计单元401,条件满足单元402,参数获取单元403,合并处理单元404以及聚合签名单元405的具体实现方式可以参见上述图3所对应实施例中对步骤S104的
描述,这里将不再继续进行赘述。
[0211] 该节点公钥获取模块50,用于获取区块链网络中的第二业务节点的节点公钥;
[0212] 该加密处理模块60,用于基于节点公钥对业务数据信息进行加密处理,得到加密数据信息;
[0213] 该加密信息发送模块70,用于将加密数据信息发送至第二业务节点,以使第二业务节点基于第二业务节点的节点私钥对加密数据信息进行解密处理,得到业务数据信息。
[0214] 其中,该业务信息获取模块10,验证结果添加模块20,验证结果查找模块30,聚合签名模块40,节点公钥获取模块50,加密处理模块60以及加密信息发送模块70的具体实现
方式可以参见上述图3所对应实施例中对步骤S101‑步骤S104的描述,这里将不再继续进行
赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
[0215] 进一步地,请参见图8,图8是本申请实施例提供的一种数据处理装置的结构示意图。该数据处理装置2可以是运行于计算机设备中的一个计算机程序(包括程序代码),例
如,该数据处理装置2为一个应用软件;该数据处理装置2可以用于执行本申请实施例提供
的方法中的相应步骤。如图8所示,该数据处理装置2可以运行于区块链网络中的第二业务
节点,例如,该第二业务节点可以为上述图2所对应实施例中的节点20B。该数据处理装置2
可以包括:随机参数生成模块100,签名信息确定模块200,签名信息发送模块300,聚合签名
信息获取模块400,目标公钥确定模块500,第一参数确定模块600,第二参数确定模块700以
及合法结果确定模块800。
[0216] 该随机参数生成模块100,用于在获取到由区块链网络中的第一业务节点发送的业务数据信息时,基于第二业务节点的节点私钥和业务数据信息,生成用于对业务数据信
息进行签名处理的随机参数;第二业务节点为区块链网络中除第一业务节点之外的节点。
[0217] 其中,该随机参数生成模块100包括:拼接处理单元1010,拼接哈希值确定单元1020以及随机参数确定单元1030。
[0218] 该拼接处理单元1010,用于在获取到由区块链网络中的第一业务节点发送的业务数据信息时,将第二业务节点的节点私钥和业务数据信息进行拼接处理,得到拼接信息;
[0219] 该拼接哈希值确定单元1020,用于获取非交互式聚合签名规则中的哈希确定规则,基于哈希确定规则获取拼接信息对应的拼接哈希值;
[0220] 该随机参数确定单元1030,用于将拼接哈希值作为用于对业务数据信息进行签名处理的随机参数。
[0221] 其中,该拼接处理单元1010,拼接哈希值确定单元1020以及随机参数确定单元1030的具体实现方式可以参见上述图7所对应实施例中对步骤S202的描述,这里将不再继
续进行赘述。
[0222] 该签名信息确定模块200,用于基于随机参数以及固定参数生成第一关键参数,基于随机参数、业务数据信息以及节点私钥生成第二关键参数,且基于第一关键参数和第二
关键参数,确定用于对业务数据信息进行签名处理的数据签名信息。
[0223] 其中,该签名信息确定模块200包括:第一关键参数确定单元2010,第二关键参数确定单元2020以及签名信息确定单元2030。
[0224] 该第一关键参数确定单元2010,用于获取与非交互式聚合签名规则相关联的固定参数,将随机参数和固定参数之间的第一乘积作为第一关键参数;
[0225] 该第二关键参数确定单元2020,用于基于非交互式聚合签名规则,确定业务数据信息对应的验证哈希值和节点私钥之间的第二乘积,对第二乘积和随机参数进行求和处
理,将求和处理后的值作为第二关键参数;
[0226] 该签名信息确定单元2030,用于基于第一关键参数和第二关键参数,确定用于对业务数据信息进行签名处理的数据签名信息。
[0227] 其中,该第一关键参数确定单元2010,第二关键参数确定单元2020以及签名信息确定单元2030的具体实现方式可以参见上述图7所对应实施例中对步骤S203的描述,这里
将不再继续进行赘述。
[0228] 该签名信息发送模块300,用于将数据签名信息发送至第一业务节点,以使第一业务节点基于第一关键参数和第二关键参数,对数据签名信息进行签名验证,得到签名验证
结果,将签名验证结果添加至与区块链网络相关联的验证结果集;验证结果集中的签名验
证结果用于指示第一业务节点对业务数据信息进行聚合签名。
[0229] 该聚合签名信息获取模块400,用于获取由第一业务节点发送的聚合签名信息;聚合签名信息是由第一业务节点对目标签名验证结果所对应的数据签名信息进行聚合签名
后所得到的;目标签名验证结果为第一业务节点在验证结果集中查找到的满足合法验签条
件的签名验证结果;一个签名验证结果是第一业务节点对一个第二业务节点返回的一个数
据签名信息进行签名验证后所确定的;聚合签名信息包括第一聚合关键参数和第二聚合关
键参数;
[0230] 该目标公钥确定模块500,用于获取与目标签名验证结果相关联的第二业务节点的节点公钥,对获取到的节点公钥进行合并处理,得到目标公钥;
[0231] 该第一参数确定模块600,用于基于第二聚合关键参数以及与非交互式聚合签名规则相关联的固定参数,得到第一聚合辅助参数;
[0232] 该第二参数确定模块700,用于基于非交互式聚合签名规则获取业务数据信息对应的数据哈希值,基于目标公钥、数据哈希值以及第一聚合关键参数,得到第二聚合辅助参
数;
[0233] 该合法结果确定模块800,用于若第一聚合辅助参数与第二聚合辅助参数一致,则将聚合签名信息对应的聚合验签结果确定为合法结果。
[0234] 其中,该随机参数生成模块100,签名信息确定模块200,签名信息发送模块300,聚合签名信息获取模块400,目标公钥确定模块500,第一参数确定模块600,第二参数确定模
块700以及合法结果确定模块800的具体实现方式可以参见上述图7所对应实施例中对步骤
S201‑步骤S209的描述,这里将不再继续进行赘述。另外,对采用相同方法的有益效果描述,
也不再进行赘述。
[0235] 进一步地,请参见图9,图9是本申请实施例提供的一种计算机设备的示意图。如图9所示,该计算机设备3000可以包括:至少一个处理器3001,例如CPU,至少一个网络接口
3004,用户接口3003,存储器3005,至少一个通信总线3002。其中,通信总线3002用于实现这
些组件之间的连接通信。其中,用户接口3003可以包括显示屏(Display)、键盘(Keyboard),
网络接口3004可选地可以包括标准的有线接口、无线接口(如WI‑FI接口)。存储器3005可以
是高速RAM存储器,也可以是非不稳定的存储器(non‑volatile memory),例如至少一个磁
盘存储器。存储3005可选地还可以是至少一个位于远离前述处理器3001的存储装置。如图9
所示,作为一种计算机存储介质的存储器3005可以包括操作系统、网络通信模块、用户接口
模块以及设备控制应用程序。
[0236] 在图9所示的计算机设备3000中,网络接口3004主要用于进行网络通信;而用户接口3003主要用于为用户提供输入的接口;而处理器3001可以用于调用存储器3005中存储的
设备控制应用程序应当理解,本申请实施例中所描述的计算机设备3000可执行前文图3或
者图6所对应实施例中对该数据处理方法的描述,也可执行前文图7所对应实施例中对该数
据处理装置1或者图8所对应实施例中对该数据处理装置2的描述,在此不再赘述。另外,对
采用相同方法的有益效果描述,也不再进行赘述。
[0237] 此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且该计算机可读存储介质中存储有前文提及的数据处理装置1或者数据处理装置2所执行的计
算机程序,且该计算机程序包括程序指令,当该处理器执行该程序指令时,能够执行前文图
3或者图6所对应实施例中对该数据处理方法的描述,因此,这里将不再进行赘述。另外,对
采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介
质实施例中未披露的技术细节,请参照本申请方法实施例的描述。作为示例,程序指令可被
部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分
布在多个地点且通过通信网络互连的多个计算设备上执行,分布在多个地点且通过通信网
络互连的多个计算设备可以组成区块链系统。
[0238] 本申请一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处
理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机
设备可执行前文图3或者图6所对应实施例中对数据处理方法的描述,在此不再赘述。另外,
对采用相同方法的有益效果描述,也不再进行赘述。
[0239] 进一步的,请参见图10,图10是本申请实施例提供的一种数据处理系统的结构示意图。该数据处理系统3可以包含数据处理装置1a和数据处理装置2a。其中,数据处理装置
1a可以为上述图7所对应实施例中的数据处理装置1,可以理解的是,该数据处理装置1a可
以集成在上述图2所对应实施例中的节点20A(即第一业务节点),因此,这里将不再进行赘
述。其中,数据处理装置2a可以为上述图8所对应实施例中的数据处理装置2,可以理解的
是,该数据处理装置2a可以集成在上述图2所对应实施例中的节点20B(即第二业务节点),
因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于
本申请所涉及的数据处理系统实施例中未披露的技术细节,请参照本申请方法实施例的描
述。
[0240] 本申请实施例的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖
不排他的包括。例如包括了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于
已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这
些过程、方法、装置、产品或设备固有的其他步骤单元。
[0241] 本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件
和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这
些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专
业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不
应认为超出本申请的范围。
[0242] 本申请实施例提供的方法及相关装置是参照本申请实施例提供的方法流程图和/或结构示意图来描述的,具体可由计算机程序指令实现方法流程图和/或结构示意图的每
一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。这些计算机程序指
令可提供到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器
以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用
于实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能
的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定
方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令
装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或结构示意图一个方框
或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理
设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处
理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个
流程和/或结构示意一个方框或多个方框中指定的功能的步骤。
[0243] 以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。