一种基于区块链网络的节点认证方法及装置转让专利

申请号 : CN201911218904.0

文献号 : CN111131171B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 廖飞强严强李昊轩李辉忠张开翔范瑞彬

申请人 : 深圳前海微众银行股份有限公司

摘要 :

本发明实施例公开了一种基于区块链网络的节点认证方法及装置,证书签发节点对跨链节点中的各个证书属性信息进行签名得到节点证书,如此,跨链节点根据第一区块链网络的认证属性信息和节点证书生成待认证数据,并将待认证数据发送给第一区块链网络中的认证节点,以使认证节点进行认证。通过签名待接入的至少两个区块链网络的认证属性信息得到跨链节点的节点证书,使得跨链节点使用一个节点证书来管理跨链节点接入多个区块链网络的认证过程,从而可以降低节点证书管理和认证的复杂性;且,该种方式在认证时不会泄露其它区块链网络的认证属性信息,从而能够保证各个区块链网络的认证属性信息的安全。

权利要求 :

1.一种基于区块链网络的节点认证方法,其特征在于,所述方法包括:跨链节点接收节点证书;所述节点证书为证书签发节点对所述跨链节点中的各个证书属性信息进行签名得到的,所述各个证书属性信息中包括所述跨链节点待接入的至少两个区块链网络的认证属性信息;

所述跨链节点根据第一区块链网络的认证属性信息和所述节点证书生成待认证数据;

所述第一区块链网络为所述待接入的至少两个区块链网络中的一个;

所述跨链节点将所述待认证数据发送给所述第一区块链网络中的认证节点;所述待认证数据用于所述认证节点根据所述待认证数据中的节点证书对所述第一区块链网络的认证属性信息进行认证。

2.根据权利要求1所述的方法,其特征在于,所述证书属性信息包括第一类型证书属性信息和第二类型证书属性信息;所述第一类型证书属性信息的优先级高于第二类型证书属性信息;

所述跨链节点接收节点证书之前,还包括:所述跨链节点接收所述证书签发节点发送的签名私钥对应的签名公钥;

所述跨链节点使用所述签名公钥对所述各个证书属性信息中的第一类型证书属性信息进行盲化,得到第一密文;

所述跨链节点将所述第一密文发送给所述证书签发节点,所述第一密文用于所述证书签发节点使用所述签名私钥对所述各个证书属性信息中的第二类型证书属性信息进行签名,得到所述节点证书。

3.根据权利要求1所述的方法,其特征在于,所述跨链节点根据第一区块链网络的认证属性信息和所述节点证书生成待认证数据之前,还包括:所述跨链节点对所述节点证书进行偏移。

4.一种基于区块链网络的节点认证方法,其特征在于,所述方法包括:证书签发节点获取跨链节点中的各个证书属性信息;所述各个证书属性信息中包括所述跨链节点待接入的至少两个区块链网络的认证属性信息;

所述证书签发节点对所述跨链节点中的各个证书属性信息进行签名得到所述跨链节点的节点证书;

所述证书签发节点将所述节点证书发送给所述跨链节点;所述节点证书用于所述跨链节点使用第一区块链网络的认证属性信息生成待认证数据,所述第一区块链网络为所述待接入的至少两个区块链网络中的一个,所述待认证数据用于所述第一区块链网络中的认证节点对所述第一区块链网络的认证属性信息进行认证。

5.根据权利要求4所述的方法,其特征在于,所述证书签发节点对所述跨链节点中的各个证书属性信息进行签名得到所述跨链节点的节点证书,包括:所述证书签发节点根据签名私钥和所述各个证书属性信息,确定签名私钥对应的签名公钥;

所述证书签发节点将所述签名公钥发送给所述跨链节点,所述签名公钥用于所述跨链节点对所述各个证书属性信息中的第一类型证书属性信息进行盲化,得到第一密文;

所述证书签发节点接收所述跨链节点发送的所述第一密文;

所述证书签发节点使用所述第一密文和所述签名私钥对所述各个证书属性信息中的第二类型证书属性信息进行签名,得到所述节点证书。

6.一种基于区块链网络的节点认证装置,其特征在于,所述装置包括:收发模块,用于接收节点证书;所述节点证书为证书签发节点对跨链节点中的各个证书属性信息进行签名得到的,所述各个证书属性信息中包括所述跨链节点待接入的至少两个区块链网络的认证属性信息;

生成模块,用于根据第一区块链网络的认证属性信息和所述节点证书生成待认证数据;所述第一区块链网络为所述待接入的至少两个区块链网络中的一个;

所述收发模块,还用于将所述待认证数据发送给所述第一区块链网络中的认证节点;

所述待认证数据用于所述认证节点根据所述待认证数据中的节点证书对所述第一区块链网络的认证属性信息进行认证。

7.根据权利要求6所述的装置,其特征在于,所述证书属性信息包括第一类型证书属性信息和第二类型证书属性信息;所述第一类型证书属性信息的优先级高于第二类型证书属性信息;

所述装置还包括处理模块;

所述收发模块接收节点证书之前,还用于:接收所述证书签发节点发送的签名私钥对应的签名公钥;

所述处理模块用于:使用所述签名公钥对所述各个证书属性信息中的第一类型证书属性信息进行盲化,得到第一密文;

所述收发模块还用于:将所述第一密文发送给所述证书签发节点,所述第一密文用于所述证书签发节点使用所述签名私钥对所述各个证书属性信息中的第二类型证书属性信息进行签名,得到所述节点证书。

8.根据权利要求6所述的装置,其特征在于,所述生成模块根据第一区块链网络的认证属性信息和所述节点证书生成待认证数据之前,还用于:对所述节点证书进行偏移。

9.一种基于区块链网络的节点认证装置,其特征在于,所述装置包括:获取模块,用于获取跨链节点中的各个证书属性信息;所述各个证书属性信息中包括所述跨链节点待接入的至少两个区块链网络的认证属性信息;

处理模块,用于对所述跨链节点中的各个证书属性信息进行签名得到所述跨链节点的节点证书;

收发模块,用于将所述节点证书发送给所述跨链节点;所述节点证书用于所述跨链节点使用第一区块链网络的认证属性信息生成待认证数据,所述第一区块链网络为所述待接入的至少两个区块链网络中的一个,所述待认证数据用于所述第一区块链网络中的认证节点对所述第一区块链网络的认证属性信息进行认证。

10.根据权利要求9所述的装置,其特征在于,所述处理模块还用于:根据签名私钥和所述各个证书属性信息,确定签名私钥对应的签名公钥;

所述收发模块还用于:将所述签名公钥发送给所述跨链节点,所述签名公钥用于所述跨链节点对所述各个证书属性信息中的第一类型证书属性信息进行盲化,得到第一密文;

以及,接收所述跨链节点发送的所述第一密文;

所述处理模块还用于:使用所述第一密文和所述签名私钥对所述各个证书属性信息中的第二类型证书属性信息进行签名,得到所述节点证书。

11.一种计算设备,其特征在于,包括至少一个处理器以及至少一个存储器,其中,所述存储器存储有计算机程序,当所述程序被所述处理器执行时,使得所述处理器执行权利要求1~3或4和5任一权利要求所述的方法。

12.一种计算机可读存储介质,其特征在于,其存储有可由计算设备执行的计算机程序,当所述程序在所述计算设备上运行时,使得所述计算设备执行权利要求1~3或4和5任一权利要求所述的方法。

说明书 :

一种基于区块链网络的节点认证方法及装置

技术领域

[0001] 本发明涉及金融科技(Fintech)技术领域,尤其涉及一种基于区块链网络的节点认证方法及装置。

背景技术

[0002] 随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(Fintech)转变,区块链技术也不例外,但由于金融行业的安全性、实时性要求,
金融科技也对区块链技术提出了更高的要求。
[0003] 现阶段,一种常用的跨链节点认证策略为:跨链节点在加入多个区块链网络之前,分别从证书签发节点处获取跨链节点在每个区块链网络中的节点证书,在加入任一区块链
网络时,跨链节点只需要向待加入的区块链网络发送跨链节点在该区块链网络中的节点证
书,以使该区块链网络对节点证书进行认证,若认证通过,则区块链网络可以允许跨链节点
加入该区块链网络,若认证不通过,则区块链网络不允许跨链节点加入该区块链网络。在该
种实现方式中,跨链节点在不同区块链网络中的节点证书无法复用,若要加入多个区块链
网络,则跨链节点需要分别拥有跨链节点在多个区块链网络中的节点证书,且需要使用每
个区块链网络对应的节点证书进行节点认证,显然地,该种方式会导致跨链节点中节点证
书的管理和认证较为复杂。
[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] 图1为本发明实施例提供的一种可能的系统架构示意图;
[0032] 图2为本发明实施例提供的一种基于区块链网络的节点认证方法的流程示意图;
[0033] 图3为本发明实施例提供的一种确定跨链节点的节点证书的流程示意图;
[0034] 图4为本发明实施例提供的一种基于区块链网络的节点认证装置的结构示意图;
[0035] 图5为本发明实施例提供的又一种基于区块链网络的节点认证装置的结构示意图;
[0036] 图6为本发明实施例提供的一种计算设备的结构示意图。

具体实施方式

[0037] 为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施
例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的
所有其它实施例,都属于本发明保护的范围。
[0038] 图1为本发明实施例提供的一种可能的系统架构示意图,如图1所示,该系统架构中包括证书签发节点100、跨链节点110和至少两个区块链网络,比如区块链网络121和区块
链网络122;其中,至少两个区块链网络是跨链节点110待加入的区块链网络,证书签发节点
100与跨链节点110、跨链节点110与每个区块链网络可以连接,比如可以通过有线方式连
接,或者可以通过无线方式连接,不作限定。
[0039] 本发明实施例中,证书签发节点100是指较为权威的安全认证机构,例如中国金融认证中心(CFCA),证书签发节点100能够根据跨链节点的证书签发请求生成带有证书签发
节点100签名的节点证书。
[0040] 如图1所示,每个区块链网络中可以设置有一个或多个区块链节点,一个或多个区块链节点中的任意两个区块链节点通信连接,从而共同维护区块链网络,比如区块链网络
121中设置有区块链节点1211、区块链节点1212、区块链节点1213与区块链节点1214,区块
链节点1211~区块链节点1214中的任意两个区块链节点可以通信连接,区块链网络122中
设置有区块链节点1221、区块链节点1222、区块链节点1223与区块链节点1224,区块链节点
1221~区块链节点1224中的任意两个区块链节点可以通信连接。
[0041] 本发明实施例中,区块链网络中的区块链节点可以具有多种功能,比如,路由功能、交易功能、区块链功能和共识功能等,路由功能是指区块链节点可以将客户端传送过来
的交易信息传送给区块链网络中的其它区块链节点,以实现各个区块链节点之间的通信,
交易功能和共识功能是指区块链节点可以通过共识支持与用户的交易或与其它区块链节
点的交易,还可以记录在该区块链节点(或区块链网络)中执行过的全部交易,区块链功能
是指区块链节点可以基于交易的执行情况在区块链网络中生成新区块。其中,路由功能是
区块链网络中的每个区块链节点必须具有的功能,而其它功能可由本领域技术人员根据实
际需要进行设置。
[0042] 需要说明的是,区块链网络中的一个区块链节点可以在一台物理机(服务器)上,且一个区块链节点具体可以是指服务器中运行的一个进程或者一系列进程。比如,区块链
节点1211可以为服务器上运行的一个进程,或者也可以为是指服务器,具体不作限定。
[0043] 本发明实施例中,跨链节点110与每个区块链网络连接的方式可以有多种,比如跨链节点110可以仅与区块链网络中的一个区块链节点连接,或者也可以与区块链网络中的
全部区块链节点连接,或者还可以与区块链网络中的部分区块链节点连接,具体不作限定。
[0044] 基于图1所示意的系统架构,图2为本发明实施例提供的一种节点认证方法,该方法包括:
[0045] 步骤201,证书签发节点对跨链节点中的各个证书属性信息进行签名,得到所述跨链节点的节点证书;所述各个证书属性信息中包括所述跨链节点待接入的至少两个区块链
网络的认证属性信息。
[0046] 本发明实施例中,各个证书属性信息中可以包括第一类型证书属性信息和第二类型证书属性信息,第一类型证书属性信息为与跨链节点的隐私数据相关的证书属性信息,
比如节点证书的颁发者、有效期、使用者、待加入的区块链网络的认证属性信息等,第二类
型证书属性信息为与跨链节点的隐私数据无关的证书属性信息,比如版本号、序列号、节点
证书的签名算法、消息摘要算法等,第一类型证书属性信息的优先级大于第二类型证书属
性信息的优先级。
[0047] 在一种可能的实现方式中,证书签发节点在确定跨链节点存在节点证书的签发需求后,可以将预设的节点证书模板发送给跨链节点,以使跨链节点按照预设的节点证书模
板确定跨链节点对应的节点证书模板;其中,预设的节点证书模板用于标识设定的各个证
书属性信息的部署形式,证书属性信息可以由本领域技术人员根据经验进行设置,或者也
可以根据业务需求进行设置,比如可以包括证书属性名及对应的证书属性值,不作限定。
[0048] 具体实施中,预设的节点证书模板可以由属性名模板和属性键值对模板构成,属性名模板为一个列表容器,存储有设定的各个证书属性名,还可以支持增加新的证书属性
名、删除已有的证书属性名、修改已有的证书属性名或查询已有的属性证书名等操作;相应
地,属性键值对模板为一个键值对容器,用于存储各个证书属性名和对应的证书属性值,还
可以支持增加新的证书属性名和对应的证书属性值、删除已有的证书属性名和对应的证书
属性值、修改已有的证书属性名和对应的证书属性值或查询已有的证书属性名和对应的证
书属性值等操作。
[0049] 本发明实施例中,设定的各个证书属性名中包括待加入的区块链网络的认证属性名,比如待加入的区块链网络的数字身份信息(即链id),还可以包含有版本号、序列号、使
用者中的任意一项或任意多项,不作限定。
[0050] 相应地,跨链节点在获取预设的节点证书模板后,可以从属性名模板所存储的设定的各个证书属性名中选取各个证书属性名,组装得到跨链节点对应的属性名模板,相应
地,跨链节点还可以根据各个证书属性名对应的证书属性值,组装得到跨链节点对应的属
性键值对模板。
[0051] 举例来说,如图1所示,跨链节点110待加入的区块链网络为区块链网络121和区块链网络122,若跨链节点110中的各个证书属性名还包括版本号和使用者,则跨链节点110对
应的属性名模板可以为:
[0052] {版本号,使用者,链121的id,链122的id}
[0053] 相应地,若版本号为1.0,链121的id为0x12ab,链122的id为0xbc68,则跨链节点110对应的属性键值对模板可以为:
[0054] {版本号=1.0,使用者=“跨链节点110”,链121的id=“0x12ab”,链122的id=“0xbc68”}
[0055] 本发明实施例中,通过在各个证书属性信息中设置待加入的区块链网络的认证属性信息,并基于待加入的区块链网络的认证属性信息签名得到节点证书,使得节点证书中
能够包含待加入的各个区块链网络的特征,从而该节点证书能够在跨链节点加入待加入的
区块链网络时进行认证,并能保证认证的准确性。
[0056] 步骤202,所述证书签发节点将所述跨链节点的节点证书发送给所述跨链节点。
[0057] 步骤203,所述跨链节点根据第一区块链网络的认证属性信息和节点证书生成待认证数据,所述一区块链网络为所述待接入的至少两个区块链网络中的一个。
[0058] 在一个示例中,证书签发节点100除了可以将跨链节点110的节点证书发送给跨链节点110,还可以同时将签名节点证书的过程中所使用的盲密钥发送给跨链节点110;相应
地,跨链节点110在接收到节点证书和盲密钥后,还可以对盲密钥进行偏移,并根据偏移后
的盲密钥、节点证书和第一区块链网络的认证属性信息生成待认证数据。其中,偏移的方式
可以由本领域技术人员根据经验进行设置,比如可以为增大或减小某一数值、点乘或点除
某一数值,等等,具体不作限定。
[0059] 在该示例中,通过对证书签发节点使用的盲密钥进行偏移,并基于偏移后的盲密钥和节点证书生成待认证数据,可以避免证书签发节点根据盲密钥追踪到跨链节点使用节
点证书进行认证的情况,从而保证跨链节点在一个安全的环境下使用节点证书,提高认证
的安全性。
[0060] 如图1所示,具体实施中,若第一区块链网络为区块链网络121,跨链节点110想要接入区块链网络121,则跨链节点110可以使用区块链网络121的认证属性信息“链121的id
=“0x12ab””和节点证书生成待认证数据,若第一区块链网络为区块链网络122,跨链节点
110想要接入区块链网络122,则跨链节点110可以使用区块链网络122的认证属性信息“链
122的id=“0xbc68””和节点证书生成待认证数据。
[0061] 步骤204,所述跨链节点将待认证数据发送给第一区块链网络中的认证节点。
[0062] 步骤205,第一区块链网络中的认证节点根据所述待认证数据中的节点证书对所述第一区块链网络的认证属性信息进行认证,并根据认证结果确定所述跨链节点是否能接
入所述第一区块链网络。
[0063] 在一个示例中,第一区块链网络中的认证节点接收到跨链节点110发送的待认证数据后,可以先解析待认证数据得到跨链节点110的节点证书和第一区块链网络的认证属
性信息,再基于跨链节点110的节点证书和第一区块链网络的认证属性信息构造证明函数,
并加载证明函数,若加载的结果为成功,则说明跨链节点110认证通过,因此允许跨链节点
110接入第一区块链网络,若加载的结果为失败,则说明跨链节点110认证不通过,因此不允
许跨链节点110接入第一区块链网络。
[0064] 其中,证明函数可以基于节点证书的签名过程进行设置,不作限定。
[0065] 本发明实施例中,认证节点可以为第一区块链网络中的任一区块链节点,跨链节点110可以仅与第一区块链网络中的一个区块链节点连接,或者也可以与第一区块链网络
中的全部区块链节点连接,或者还可以与第一区块链网络中的部分区块链节点连接。具体
实施中,若跨链节点110仅与第一区块链网络中的一个区块链节点连接,则跨链节点110可
以将待认证数据发送给连接的区块链节点,以使连接的区块链节点将待认证数据同步给第
一区块链网络中的其它区块链节点,且,第一区块链网络中的任一区块链节点接收到待认
证数据后,可以对待认证数据进行验证,得到该区块链节点对跨链节点的认证结果;进一步
地,第一区块链网络中的各个区块链节点还可以对各个区块链节点对跨链节点110的认证
结果进行共识,得到认证结果,并可以根据认证结果确定是否允许跨链节点110接入第一区
块链网络。
[0066] 本发明实施例中,通过签名跨链节点待接入的至少两个区块链网络的认证属性信息得到跨链节点的节点证书,可以使用一个节点证书来管理跨链节点接入多个区块链网络
的认证过程,而无需分别设置每个区块链网络对应的节点证书,从而可以降低节点证书管
理和认证的复杂性;且,本方案中的节点证书是对多个区块链网络的认证属性信息进行签
名得到的,而不是多个区块链网络的认证属性信息的明文形式,因此该种方式在认证任一
区块链网络的认证属性信息时均不会泄露其它区块链网络的认证属性信息,从而可以保证
各个区块链网络的认证属性信息的安全。
[0067] 在步骤201中,证书签发节点100可以通过多种方式生成跨链节点110的节点证书,下面具体描述一种可能的生成方式。
[0068] 图3为本发明实施例提供的一种生成跨链节点的节点证书的流程示意图,如图3所示,该方法包括:
[0069] 步骤301,证书签发节点根据跨链节点中的各个证书属性信息,确定签名私钥对应的签名公钥。
[0070] 具体实施中,跨链节点110可以先根据各个证书属性信息生成证书签名请求,并将证书签名请求发送给证书签发节点100,以使证书签发节点100根据签名私钥和证书签名请
求确定签名私钥对应的签名公钥。
[0071] 在一个示例中,跨链节点110可以先从各个证书属性信息中提取出第二类型证书属性信息,然后基于各个证书属性名和第二类型证书属性信息生成证书签名请求。举例来
说,若跨链节点110基于预设的节点证书模板生成了跨链节点对应的证书属性名模板和证
书属性键值对模板,则跨链节点110可以先从跨链节点110对应的证书属性键值对模板中提
取得到第二类型证书属性信息的键值对,然后根据第二类型证书属性信息的键值对和跨链
节点110对应的证书属性名模板生成证书签名请求。
[0072] 在上述示例中,各个证书属性信息中包括第一类型证书属性信息和第二类型证书属性信息,由于第一类型证书属性信息为与跨链节点的隐私数据相关的属性信息,因此跨
链节点在组装得到跨链节点对应的证书属性名模板和证书属性键值对模板后,通过仅发送
跨链节点对应的证书属性名模板和第二类型证书属性信息给证书签发节点,能够保护跨链
节点的隐私数据的安全,尤其保证各个待接入区块链网络的认证属性信息的安全。
[0073] 具体实施中,证书签名节点100在获取证书签名请求后,可以解析证书签名请求得到各个证书属性名和第二类型证书属性信息,然后使用签名私钥和各个证书属性名计算得
到第一信息和每个证书属性名对应的第二信息,并可以将第一信息和各个证书属性名对应
的第二信息作为签名私钥对应的签名公钥。
[0074] 在一种可能的实现方式中,证书签发节点100可以采用如下步骤a~步骤d确定签名私钥和签名私钥对应的签名公钥:
[0075] 步骤a,证书签名节点确定第一签名私钥和第二签名私钥。
[0076] 具体实施中,证书签名节点100可以随机地选取第一素数psafe和第二素数qsafe,并根据第一素数psafe和第二素数qsafe按照如下公式计算得到第一签名私钥p和第二签名
私钥q:
[0077] p=psafe/2
[0078] q=qsafe/2
[0079] 其中,第一素数和第二素数可以均为大素数(即阶大于2256的素数),第一签名私钥p和第二签名私钥q的位数可以为1024位。
[0080] 步骤b,证书签名节点根据第一签名私钥和第二签名私钥计算得到第一随机盲密钥。
[0081] 具体实施中,证书签名节点100可以先根据第一素数psafe和第二素数qsafe,按照如下公式计算得到模n:
[0082] n=psafe*qsafe
[0083] 再从区间范围(0,n)内选取随机数x1,根据随机数x1和模n,按照如下公式计算得到第一随机盲密钥S1:
[0084] S1=x12modn
[0085] 其中,modn为对模n取余。
[0086] 步骤c,证书签名节点根据第一随机盲密钥、第一签名私钥、第二签名私钥和各个证书属性名计算得到第一信息和各个证书属性名对应的各个第二信息。
[0087] 具体实施中,若存在L个证书属性信息,则证书签名节点100可以先从区间范围[2,p*q‑L]内选取随机数xZ1,然后根据随机数xZ1和第一随机盲密钥S1,按照如下公式计算得到
第一信息Z1:
[0088]
[0089] 进一步地,证书签名节点100可以再从区间范围[2,p*q‑L]内选取出L个证书属性信息分别对应的随机数xZ21、xZ22、xZ23、……、xZ2L,并根据第一随机盲密钥S1和每个证书属性
信息对应的随机数,按照如下公式计算得到每个证书属性信息对应的第二信息Z2i:
[0090]
[0091] 其中,xZ2i为第i个证书属性信息对应的随机数,0
[0092] 步骤d,将第一签名私钥和第二签名私钥作为签名私钥,并将第一随机盲密钥、第一信息、各个证书属性信息对应的第二信息作为签名私钥对应的签名公钥。
[0093] 本发明实施例中,证书签名节点100可以直接将第一随机盲密钥S1、第一信息Z1和各个证书属性信息对应的第二信息作为签名私钥对应的签名公钥,或者也可以将模n、第一
随机盲密钥S1、第一信息Z1和各个证书属性信息对应的第二信息作为签名私钥对应的签名
公钥;以后者为例,签名私钥对应的签名公钥可以为基于模n、第一随机盲密钥S1、第一信息
Z1和各个证书属性信息对应的第二信息构建的一行L+3列的向量(n,S1,Z1,Z21,Z22,……,
Z2L),也可以为基于模n、第一随机盲密钥S1、第一信息Z1和各个证书属性信息对应的第二信
T
息构建的L+3行一列的向量(n,S1,Z1,Z21,Z22,……,Z2L) ,不作限定。
[0094] 需要说明的是,上述内容仅是一种示例性的简单说明,其所列举的各个公式仅是为了便于说明方案,并不构成对方案的限定,在具体实施中,各个公式也可以由本领域技术
人员根据经验进行设置,具体不作限定。
[0095] 步骤302,证书签发节点将签名私钥对应的签名公钥发送给跨链节点。
[0096] 步骤303,跨链节点使用签名公钥对各个证书属性信息中的第一类型证书属性信息进行盲化,得到第一密文。
[0097] 具体实施中,跨链节点110接收到证书签发节点100发送的签名公钥后,可以先从证书属性键值对模板中提取得到各个第一类型证书属性信息,然后设置第二随机盲密钥,
使用签名公钥和第二随机盲密钥对各个第一类型证书属性信息进行盲化,得到第一密文。
举例来说,若跨链节点110对应的证书属性键值对模板为Cv={版本号=1.0,使用者=“跨
链节点110”,链121的id=“0x12ab”,链122的id=“0xbc68”},则“版本号=1.0”属于第二类
型证书属性信息,“使用者=“跨链节点110””、“链121的id=“0x12ab””和“链122的id=
“0xbc68””属于第一类型证书属性信息,跨链节点110可以盲化处理证书属性键值对模板为
Cv中需要盲化的第一类型证书属性信息,即“使用者=“跨链节点110””、“链121的id=
“0x12ab””和“链122的id=“0xbc68””。
[0098] 在一个示例中,第一密文可以基于如下公式计算得到:
[0099] U=S1*S2*Zm1m1*Zm2m2*……*ZmTmT
[0100] 其中,U为第一密文,S2为第二随机盲密钥,m1、m2、……、mT为T个第一类型证书属性信息,每个第一类型证书属性信息均包括证书属性名和证书属性值,Zm1、Zm2、……、ZmT为T个
第一类型证书属性信息对应的第二信息,0
[0101] 需要说明的是,上述内容仅是一种示例性的简单说明,其所列举的第一密文的生成方式仅是为了便于说明方案,并不构成对方案的限定,在具体实施中,第一密文也可以按
m1 m2 mT m1 m2
照其它公式生成,比如U=K+S1*S2*Z1 *Z2 *……*ZL ,或者U=K*S1*S2*Z1 *Z2 *……*
mT
ZL ,K为随机数,具体不作限定。
[0102] 步骤304,跨链节点将所述第一密文发送给证书签发节点。
[0103] 步骤305,证书签发节点使用第一密文和签名私钥对各个证书属性信息中的第二类型证书属性信息进行签名,得到跨链节点的节点证书。
[0104] 在一个示例中,证书签发节点100在接收到第一密文后,可以先设置第三随机盲密钥,并根据第一信息、第一密文、第三随机盲密钥、第一随机密钥和各个第二类型证书属性
信息,按照如下公式生成第二密文:
[0105] Q=Z1/(U*S1S3*Zr1r1*Zr2r2*……*ZrWrW)
[0106] 其中,Q为第二密文,S3为第三随机盲密钥,r1、r2、……、rW为W个第二类型证书属性信息,每个第二类型证书属性信息均包括证书属性名和证书属性值,Zr1、Zr2、……、ZrW为W个
第二类型证书属性信息对应的第二信息,0
[0107] 相应地,在生成第二密文后,证书签发节点100可以随机生成素数e,并使用素数e、模n、签名私钥p和签名私钥q按照如下公式对第二密文进行签名,得到跨链节点的节点证书
A:
[0108] A=Q(1/e)mod(p*q)modn
[0109] 在上述示例中,通过使用第二随机盲密钥对第一类型证书属性信息进行盲化,得到第一密文,再使用第三随机盲密钥对第一密文和第二类型证书属性信息进行盲化,得到
第二密文,最后使用签名私钥对第二密文进行签名,能够在保证证书签发节点成功签名节
点证书的同时,保护第一类型证书属性信息和第二类型证书属性信息的安全。
[0110] 在一个示例中,证书签发节点可以同时将跨链节点的节点证书A以及在生成节点证书A的过程中使用的第三随机盲密钥S3和素数e发送给跨链节点;相应地,跨链节点接收
到节点证书A、第三随机盲密钥S3和素数e后,可以先对第三随机盲密钥S3和/或素数e进行偏
移,然后根据偏移后的信息生成待认证数据。其中,偏移的方式可以由本领域技术人员根据
经验进行设置,比如可以使用第二随机盲密钥S2对第三随机盲密钥S3进行加和偏移(或作差
偏移),并根据节点证书A、偏移信息S3+S2(或S3‑S2)和素数e生成待认证数据,或者可以使用
第二随机盲密钥S2对第三随机盲密钥S3进行点乘偏移(或点除偏移),并根据节点证书A、偏
移信息S3*S2(或S3/S2)和素数e生成待认证数据,等等,具体不作限定。
[0111] 在上述实现方式中,通过跨链节点对重要程度较高的第一类型证书属性信息进行盲化,再通过证书签发节点进行签名盲化,能够在证书签发节点成功对跨链节点签发证书
的同时,保证第一类型证书属性信息的安全。
[0112] 本发明的上述实施例中,证书签发节点对跨链节点中的各个证书属性信息进行签名得到节点证书,并将节点证书发送给跨链节点,所述各个证书属性信息中包括所述跨链
节点待接入的至少两个区块链网络的认证属性信息;相应地,跨链节点接收节点证书后,根
据第一区块链网络的认证属性信息和所述节点证书生成待认证数据,并将所述待认证数据
发送给所述第一区块链网络中的认证节点,所述第一区块链网络为所述待接入的至少两个
区块链网络中的一个,所述待认证数据用于所述认证节点根据所述待认证数据中的节点证
书对所述第一区块链网络的认证属性信息进行认证。本发明实施例中,通过签名跨链节点
待接入的至少两个区块链网络的认证属性信息得到跨链节点的节点证书,可以使用一个节
点证书来管理跨链节点接入多个区块链网络的认证过程,而无需分别设置每个区块链网络
对应的节点证书,从而可以降低节点证书管理和认证的复杂性;且,本方案中的节点证书是
对多个区块链网络的认证属性信息进行签名得到的,而不是多个区块链网络的认证属性信
息的明文形式,因此该种方式在认证任一区块链网络的认证属性信息时均不会泄露其它区
块链网络的认证属性信息,从而可以保证各个区块链网络的认证属性信息的安全。
[0113] 针对上述方法流程,本发明实施例还提供一种基于区块链网络的节点认证装置,该装置的具体内容可以参照上述方法实施。
[0114] 图4为本发明实施例提供的一种基于区块链网络的节点认证装置的结构示意图,包括:
[0115] 收发模块401,用于接收节点证书;所述节点证书为证书签发节点对跨链节点中的各个证书属性信息进行签名得到的,所述各个证书属性信息中包括所述跨链节点待接入的
至少两个区块链网络的认证属性信息;
[0116] 生成模块402,用于根据第一区块链网络的认证属性信息和所述节点证书生成待认证数据;所述第一区块链网络为所述待接入的至少两个区块链网络中的一个;
[0117] 所述收发模块401,还用于将所述待认证数据发送给所述第一区块链网络中的认证节点;所述待认证数据用于所述认证节点根据所述待认证数据中的节点证书对所述第一
区块链网络的认证属性信息进行认证。
[0118] 可选地,所述证书属性信息包括第一类型证书属性信息和第二类型证书属性信息;所述第一类型证书属性信息的优先级高于第二类型证书属性信息;
[0119] 所述装置还包括处理模块403;
[0120] 所述收发模块401接收节点证书之前,还用于:接收所述证书签发节点发送的签名私钥对应的签名公钥;
[0121] 所述处理模块403用于:使用所述签名公钥对所述各个证书属性信息中的第一类型证书属性信息进行盲化,得到第一密文;
[0122] 所述收发模块401还用于:将所述第一密文发送给所述证书签发节点,所述第一密文用于所述证书签发节点使用所述签名私钥对所述各个证书属性信息中的第二类型证书
属性信息进行签名,得到所述节点证书。
[0123] 可选地,所述生成模块402根据第一区块链网络的认证属性信息和所述节点证书生成待认证数据之前,还用于:
[0124] 对所述节点证书进行偏移。
[0125] 图5为本发明实施例提供的又一种基于区块链网络的节点认证装置的结构示意图,包括:
[0126] 获取模块501,用于获取跨链节点中的各个证书属性信息;所述各个证书属性信息中包括所述跨链节点待接入的至少两个区块链网络的认证属性信息;
[0127] 处理模块502,用于对所述跨链节点中的各个证书属性信息进行签名得到所述跨链节点的节点证书;
[0128] 收发模块503,用于将所述节点证书发送给所述跨链节点;所述节点证书用于所述跨链节点使用第一区块链网络的认证属性信息生成待认证数据,所述第一区块链网络为所
述待接入的至少两个区块链网络中的一个,所述待认证数据用于所述第一区块链网络中的
认证节点对所述第一区块链网络的认证属性信息进行认证。
[0129] 可选地,所述处理模块502还用于:根据签名私钥和所述各个证书属性信息,确定签名私钥对应的签名公钥;
[0130] 所述收发模块503还用于:将所述签名公钥发送给所述跨链节点,所述签名公钥用于所述跨链节点对所述各个证书属性信息中的第一类型证书属性信息进行盲化,得到第一
密文;以及,接收所述跨链节点发送的所述第一密文;
[0131] 所述处理模块502还用于:使用所述第一密文和所述签名私钥对所述各个证书属性信息中的第二类型证书属性信息进行签名,得到所述节点证书。
[0132] 从上述内容可以看出:本发明的上述实施例中,证书签发节点对跨链节点中的各个证书属性信息进行签名得到节点证书,并将节点证书发送给跨链节点,所述各个证书属
性信息中包括所述跨链节点待接入的至少两个区块链网络的认证属性信息;相应地,跨链
节点接收节点证书后,根据第一区块链网络的认证属性信息和所述节点证书生成待认证数
据,并将所述待认证数据发送给所述第一区块链网络中的认证节点,所述第一区块链网络
为所述待接入的至少两个区块链网络中的一个,所述待认证数据用于所述认证节点根据所
述待认证数据中的节点证书对所述第一区块链网络的认证属性信息进行认证。本发明实施
例中,通过签名跨链节点待接入的至少两个区块链网络的认证属性信息得到跨链节点的节
点证书,可以使用一个节点证书来管理跨链节点接入多个区块链网络的认证过程,而无需
分别设置每个区块链网络对应的节点证书,从而可以降低节点证书管理和认证的复杂性;
且,本方案中的节点证书是对多个区块链网络的认证属性信息进行签名得到的,而不是多
个区块链网络的认证属性信息的明文形式,因此该种方式在认证任一区块链网络的认证属
性信息时均不会泄露其它区块链网络的认证属性信息,从而可以保证各个区块链网络的认
证属性信息的安全。
[0133] 基于同一发明构思,本发明实施例还提供了一种计算设备,如图6所示,包括至少一个处理器601,以及与至少一个处理器连接的存储器602,本发明实施例中不限定处理器
601与存储器602之间的具体连接介质,图6中处理器601和存储器602之间通过总线连接为
例。总线可以分为地址总线、数据总线、控制总线等。
[0134] 在本发明实施例中,存储器602存储有可被至少一个处理器601执行的指令,至少一个处理器601通过执行存储器602存储的指令,可以执行前述的基于区块链网络的节点认
证方法中所包括的步骤。
[0135] 其中,处理器601是计算设备的控制中心,可以利用各种接口和线路连接计算设备的各个部分,通过运行或执行存储在存储器602内的指令以及调用存储在存储器602内的数
据,从而实现数据处理。可选的,处理器601可包括一个或多个处理单元,处理器601可集成
应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序
等,调制解调处理器主要处理运维人员下发的指令。可以理解的是,上述调制解调处理器也
可以不集成到处理器601中。在一些实施例中,处理器601和存储器602可以在同一芯片上实
现,在一些实施例中,它们也可以在独立的芯片上分别实现。
[0136] 处理器601可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列或者其他可
编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施
例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器
等。结合基于区块链网络的节点认证实施例所公开的方法的步骤可以直接体现为硬件处理
器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
[0137] 存储器602作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器602可以包括至少一种类型的存储介质,
例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random Access 
Memory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存
储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带
电可擦除可编程只读存储器(Electrically Erasable Programmable Read‑Only Memory,
EEPROM)、磁性存储器、磁盘、光盘等等。存储器602是能够用于携带或存储具有指令或数据
结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本发明实
施例中的存储器602还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序
指令和/或数据。
[0138] 基于同一发明构思,本发明实施例还提供了一种计算机可读存储介质,其存储有可由计算设备执行的计算机程序,当所述程序在所述计算设备上运行时,使得所述计算设
备执行上述图2或图3任意所述的基于区块链网络的节点认证方法。
[0139] 本领域内的技术人员应明白,本发明的实施例可提供为方法、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的
形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存
储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产品的形
式。
[0140] 本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流
程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序
指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产
生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实
现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0141] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指
令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或
多个方框中指定的功能。
[0142] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或
其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一
个方框或多个方框中指定的功能的步骤。
[0143] 尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优
选实施例以及落入本发明范围的所有变更和修改。
[0144] 显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围
之内,则本发明也意图包含这些改动和变型在内。