CN112910660B - 区块链系统的证书颁发方法、添加方法及交易处理方法 - Google Patents
区块链系统的证书颁发方法、添加方法及交易处理方法 Download PDFInfo
- Publication number
- CN112910660B CN112910660B CN202110322981.1A CN202110322981A CN112910660B CN 112910660 B CN112910660 B CN 112910660B CN 202110322981 A CN202110322981 A CN 202110322981A CN 112910660 B CN112910660 B CN 112910660B
- Authority
- CN
- China
- Prior art keywords
- node
- certificate
- public key
- stock
- newly added
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3255—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using group based signatures, e.g. ring or threshold signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本公开实施例提供了一种区块链系统的证书颁发方法、添加方法及交易处理方法,应用于区块链技术领域或其他领域。该方法应用于区块链系统中的证书颁发机构集群中的目标证书颁发机构节点,证书颁发机构集群包括M个证书颁发机构节点,其中,M≥2,包括:接收来自新增节点的证书颁发请求,证书颁发请求包括请求信息;响应于证书颁发请求,在确定允许新增节点加入区块链系统的情况下,根据目标证书颁发机构节点的公钥信息、证书颁发机构集群中的其他证书颁发机构节点的公钥信息和目标证书颁发机构节点的私钥信息,对请求信息进行签名,得到第一环签名;根据第一环签名和新增节点的公钥信息,生成针对新增节点的节点证书;向新增节点颁发节点证书。
Description
技术领域
本公开实施例涉及区块链技术领域,更具体地,涉及一种用于区块链系统的节点证书颁发方法、节点添加方法、交易处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品。
背景技术
区块链是一种利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全和利用由自动化脚本代码组成的智能合约集体维护可靠数据库的解决方案。根据网络范围,可以将区块链划分为公有链、私有链、联盟链和混合链。其中,联盟链是指由若干机构共同参与和管理的区块链,每个机构都可以运行至少一个区块链节点。联盟链的数据只允许联盟链系统中的机构进行读写和交易,并通过数字证书的方式实现基于PKI(Public Key Infrastructure,公钥基础设施)的身份管理体系、交易或提案的发起,以参与方共同签名验证来达成共识。
在相关技术中,如果有新增节点请求加入联盟链系统,则需要由证书颁发机构(Certificate Authority,CA)节点执行节点证书颁发的操作,以生成针对新增节点的节点证书。
在实现本公开构思的过程中,发明人发现相关技术中至少存在如下问题,利用相关技术实现证书颁发机构节点颁发针对新增节点的节点证书的操作较为繁琐且使得联盟链系统的可用性不高。
发明内容
有鉴于此,本公开实施例提供了一种用于区块链系统的节点证书颁发方法、节点添加方法、交易处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品。
本公开实施例的一个方面提供了一种用于区块链系统的节点证书颁发方法,应用于上述区块链系统中的证书颁发机构集群中的目标证书颁发机构节点,上述证书颁发机构集群包括M个证书颁发机构节点,其中,M≥2,上述方法包括:接收来自新增节点的证书颁发请求,其中,上述证书颁发请求包括请求信息,上述请求信息包括上述新增节点的公钥信息,上述新增节点为请求加入上述区块链系统的区块链节点;响应于上述证书颁发请求,在确定允许上述新增节点加入上述区块链系统的情况下,根据上述目标证书颁发机构节点的公钥信息、上述证书颁发机构集群中的其他证书颁发机构节点的公钥信息和上述目标证书颁发机构节点的私钥信息,对上述请求信息进行签名,得到第一环签名;根据上述第一环签名和上述新增节点的公钥信息,生成针对上述新增节点的节点证书;以及,向上述新增节点颁发上述节点证书。
本公开实施例的另一个方面提供了一种用于区块链系统的节点添加方法,应用于上述区块链系统中的新增轻节点,上述方法包括:接收来自目标证书颁发机构节点发送的上述目标证书颁发机构节点的认证根证书和针对上述新增轻节点的轻节点证书,其中,上述轻节点证书是利用如上所述的方法得到的;对上述目标证书颁发机构节点的认证根证书和上述新增轻节点的轻节点证书进行证书验证,得到第四验证结果;在确定上述第四验证结果为验证成功的情况下,获取上述轻节点证书所包括的公钥信息;以及,向上述N个存量节点发送上述轻节点证书所包括的公钥信息,以使上述N个存量节点中的每个存量节点根据上述公钥信息与上述新增轻节点建立通信连接。
本公开实施例的另一个方面提供了一种用于区块链系统的节点添加方法,应用于上述区块链系统中的新增共识节点,上述方法包括:接收来自目标证书颁发机构节点发送的上述目标证书颁发机构节点的认证根证书、存量共识节点的存量节点证书和针对上述新增共识节点的共识节点证书,其中,上述共识节点证书是利用如上所述的方法得到的;对上述目标证书颁发机构节点的认证根证书、上述存量节点证书和上述共识节点证书进行证书验证,得到第六验证结果;在确定上述第六验证结果为验证成功的情况下,接收来自上述证书颁发机构节点发送的网络协议地址列表,其中,上述网络协议地址列表包括上述区块链系统包括的各个上述存量共识节点中的每个存量共识节点的网络协议地址;以及,根据上述网络协议地址列表,建立与各个上述存量共识节点的通信连接。
本公开实施例的另一个方面提供了一种用于区块链系统的交易处理方法,应用于上述区块链系统,上述区块链系统包括隐私节点、背书节点、排序节点和验证节点,其中,上述隐私节点为如上所述的方法中的新增轻节点或如上所述的方法中的新增共识节点,上述方法包括:上述隐私节点根据第二公钥集合和上述隐私节点的私钥信息对交易信息进行签名,生成第四环签名和环签名公钥镜像,其中,上述第二公钥集合包括上述区块链系统所包括的各个区块链节点中的每个区块链节点的公钥信息;上述隐私节点向上述背书节点发送上述第四环签名和上述环签名公钥镜像;上述背书节点根据上述背书节点的公钥信息对上述第四环签名进行验证,得到第八验证结果;在上述背书节点确定上述第八验证结果为验证有效的情况下,上述背书节点完成交易背书;在上述背书节点完成交易背书的情况下,向上述排序节点发送上述环签名公钥镜像;在上述排序节点确定公钥镜像列表中不存在上述环签名公钥镜像的情况下,将上述环签名公钥镜像添加至上述公钥镜像列表;在上述排序节点接收到来自与上述环签名公钥镜像对应的隐私节点发送的第四环签名的情况下,对上述第四环签名进行交易排序,得到排序区块;上述排序节点向上述验证节点发送上述排序区块;以及,在上述验证节点根据上述验证节点的公钥信息验证上述第四环签名有效的情况下,将上述交易信息进行存储。
本公开实施例的另一个方面提供了一种用于区块链系统的节点证书颁发装置,设置于上述区块链系统中的证书颁发机构集群中的目标证书颁发机构节点,上述证书颁发机构集群包括M个证书颁发机构节点,其中,M≥2,上述装置包括:第一接收模块,用于接收来自新增节点的证书颁发请求,其中,上述证书颁发请求包括请求信息,上述请求信息包括上述新增节点的公钥信息,上述新增节点为请求加入上述区块链系统的区块链节点;第一签名模块,用于响应于上述证书颁发请求,在确定允许上述新增节点加入上述区块链系统的情况下,根据上述目标证书颁发机构节点的公钥信息、上述证书颁发机构集群中的其他证书颁发机构节点的公钥信息和上述目标证书颁发机构节点的私钥信息,对上述请求信息进行签名,得到第一环签名;第一生成模块,用于根据上述第一环签名和上述新增节点的公钥信息,生成针对上述新增节点的节点证书;以及,颁发模块,用于向上述新增节点颁发上述节点证书。
本公开实施例的另一个方面提供了一种用于区块链系统的节点添加装置,设置于上述区块链系统中的新增轻节点,上述装置包括:第二接收模块,用于接收来自目标证书颁发机构节点发送的上述目标证书颁发机构节点的认证根证书和针对上述新增轻节点的轻节点证书,其中,上述轻节点证书是利用如上所述的装置得到的;第一验证模块,用于对上述目标证书颁发机构节点的认证根证书和上述新增轻节点的轻节点证书进行证书验证,得到第四验证结果;第一获取模块,用于在确定上述第四验证结果为验证成功的情况下,获取上述轻节点证书所包括的公钥信息;以及,第一发送模块,用于向上述N个存量节点发送上述轻节点证书所包括的公钥信息,以使上述N个存量节点中的每个存量节点根据上述公钥信息与上述新增轻节点建立通信连接。
本公开实施例的另一个方面提供了一种用于区块链系统的节点添加装置,设置于上述区块链系统中的新增共识节点,上述装置包括:第三接收模块,用于接收来自目标证书颁发机构节点发送的上述目标证书颁发机构节点的认证根证书、存量共识节点的存量节点证书和针对上述新增共识节点的共识节点证书,其中,上述共识节点证书是利用如上所述的装置得到的;第二验证模块,用于对上述目标证书颁发机构节点的认证根证书、上述存量节点证书和上述共识节点证书进行证书验证,得到第六验证结果;第四接收模块,用于在确定上述第六验证结果为验证成功的情况下,接收来自上述证书颁发机构节点发送的网络协议地址列表,其中,上述网络协议地址列表包括上述区块链系统包括的各个上述存量共识节点中的每个存量共识节点的网络协议地址;以及,第一建立模块,用于根据上述网络协议地址列表,建立与各个上述存量共识节点的通信连接。
本公开实施例的另一个方面提供了一种用于区块链系统的交易处理装置,设置于上述区块链系统,上述区块链系统包括隐私节点、背书节点、排序节点和验证节点,其中,上述隐私节点为如上所述的装置中的新增轻节点或如上所述的装置中的新增共识节点,上述装置包括:第二生成模块,用于上述隐私节点根据第二公钥集合和上述隐私节点的私钥信息对交易信息进行签名,生成第四环签名和环签名公钥镜像,其中,上述第二公钥集合包括上述区块链系统所包括的各个区块链节点中的每个区块链节点的公钥信息;第二发送模块,用于上述隐私节点向上述背书节点发送上述第四环签名和上述环签名公钥镜像;获得模块,用于上述背书节点根据上述背书节点的公钥信息对上述第四环签名进行验证,得到第八验证结果;完成模块,用于在上述背书节点确定上述第八验证结果为验证有效的情况下,上述背书节点完成交易背书;第三发送模块,用于在上述背书节点完成交易背书的情况下,向上述排序节点发送上述环签名公钥镜像;添加模块,用于在上述排序节点确定公钥镜像列表中不存在上述环签名公钥镜像的情况下,将上述环签名公钥镜像添加至上述公钥镜像列表;排序模块,用于在上述排序节点接收到来自与上述环签名公钥镜像对应的隐私节点发送的第四环签名的情况下,对上述第四环签名进行交易排序,得到排序区块;第四发送模块,用于上述排序节点向上述验证节点发送上述排序区块;以及,存储模块,用于在上述验证节点根据上述验证节点的公钥信息验证上述第四环签名有效的情况下,将上述交易信息进行存储。
本公开实施例的另一个方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当上述一个或多个程序被上述一个或多个处理器执行时,使得上述一个或多个处理器实现如上所述的方法。
本公开实施例的另一个方面提供了一种计算机可读存储介质,存储有计算机可执行指令,上述指令在被执行时用于实现如上所述的方法。
本公开实施例的另一个方面提供了一种计算机程序产品,上述计算机程序产品包括计算机可执行指令,上述指令在被执行时用于实现如上所述的方法。
根据本公开的实施例,通过目标证书颁发机构节点接收来自新增节点的证书颁发请求,证书颁发请求包括请求信息,请求信息包括新增节点的公钥信息,新增节点为请求加入区块链系统的区块链节点,响应于证书颁发请求,在确定允许新增节点加入区块链系统的情况下,根据目标证书颁发机构节点的公钥信息、证书颁发机构集群中的其他证书颁发机构节点的公钥信息和目标证书颁发机构节点的私钥信息,对请求信息进行签名,得到第一环签名,根据第一环签名和新增节点的公钥信息,生成针对新增节点的节点证书,并向新增节点颁发节点证书。由于是由证书颁发机构集群中的目标证书颁发机构节点来执行针对节点证书的颁发操作,而证书颁发机构集群中的任意一个证书颁发机构节点均可以作为目标证书颁发机构节点,因此,实现了证书颁发机构节点的去中心化。在此基础上,由于目标证书颁发机构节点是利用第一环签名和新增节点的公钥信息,生成针对新增节点的节点证书,而环签名可以隐藏目标证书颁发机构节点的节点信息,因此,有效保证了目标证书颁发机构节点的节点信息的安全性,进而提高了联盟链系统的可用性。此外,由于可以自动实现节点证书的颁发操作,因此,简化了节点证书的颁发操作,因而,至少部分地克服了利用相关技术实现证书颁发机构节点颁发针对新增节点的节点证书的操作较为繁琐且使得联盟链系统的可用性不高的问题。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的可以应用用于区块链系统的节点证书颁发方法的示例性系统架构;
图2示意性示出了根据本公开实施例的用于区块链系统的节点证书颁发方法的流程图;
图3示意性示出了根据本公开实施例的一种用于区块链系统的节点添加方法的流程图;
图4示意性示出了根据本公开实施例的一种用于区块链系统的节点添加方法的信令图;
图5示意性示出了根据本公开实施例的另一种用于区块链系统的节点添加方法的流程图;
图6示意性示出了根据本公开实施例的另一种用于区块链系统的节点添加方法的信令图;
图7示意性示出了根据本公开实施例的一种用于区块链系统的交易处理方法的流程图;
图8示意性示出了根据本公开实施例的一种用于区块链系统的交易处理方法的信令图;
图9示意性示出了根据本公开的实施例的一种用于区块链系统的节点证书颁发装置的框图;
图10示意性示出了根据本公开实施例的一种用于区块链系统的节点添加装置的框图;
图11示意性示出了根据本公开实施例的另一种用于区块链系统的节点添加装置的框图;
图12示意性示出了根据本公开实施例的一种用于区块链系统的交易处理装置的框图;以及
图13示意性示出了根据本公开实施例的适于实现上文描述的方法的电子设备的框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
在相关技术中,通常是利用中心化的证书颁发机构节点来执行节点证书的颁发操作的。如果存在新增节点请求加入联盟链系统,则需要由中心化的证书颁发机构节点先与请求加入联盟链系统中的新增节点在线下执行证书交互,完成证书交互后,再启动请求加入联盟链系统的请求,以获得由证书颁发机构节点颁发的节点证书。
在实现本公开构思的过程中,发明人发现利用相关技术实现证书颁发机构节点颁发针对新增节点的节点证书的操作较为繁琐且使得联盟链系统的可用性不高。进一步的,发现导致相关技术存在上述问题的主要原因在于,由于是线下和线上两个过程才能实现,因此,使得节点证书的颁发操作较为繁琐。
同时,由于新增节点需要通过执行证书交互等操作才能加入联盟链系统,这就要求区块链节点的节点信息是公开透明的,即任意一个联盟链系统中的区块链节点都可以获得其他区块链节点的节点信息,节点信息可以包括网络协议(Internet Protocol,IP)地址列表和/或端口信息,而区块链节点包括中心化的证书颁发机构节点。因此,使得如果某个区块链节点(即攻击者)为了攻击中心化的证书颁发机构节点,便可以根据中心化的证书颁发机构节点的节点信息,实现对中心化的证书颁发机构节点的攻击,由此,可能导致中心化的证书颁发机构节点出现宕机。如果中心化的证书颁发机构节点出现宕机,则由于没有其他区块链节点能够实现证书颁发的功能,因此,使得区块链系统难以处理新增节点的加入请求,甚至导致交易节点由于没有获得节点证书而交易失败,上述使得联盟链系统的可用性不高。
为了解决相关技术中存在的上述问题,发明人发现解决问题的关键在于如何隐藏证书颁发机构节点的节点信息。由此,发明人发现可以利用环签名方式实现。其中,环签名是一种利用签名者集合的公钥集合和签名者自身的私钥信息对请求信息进行签名的签名方案。其中,签名者集合包括有效签名者和其他签名者,签名者集合的公钥集合包括有效签名者的公钥信息和其他签名者的公钥信息。验证者根据请求信息和环签名,确定环签名是否是由签名者集合中的签名者所生成的。如果验证者确定是由签名者集合中的签名者所生成的,则验证者也只能确定是由签名者集合中的某个签名者进行了环签名,但不能确定是由签名者集合中的哪个签名者进行的环签名。
环签名具有如下性质,其一,无条件匿名。即攻击者即使获得所有签名者集合中各个签名者的私钥信息,其能够正确确定出有效签名者的概率小于或等于1/U,其中,U表示签名者集合包括的签名者的数量。其二,正确性。即环签名需要能被其他用户验证。其三,不可伪造性。即签名者集合中的其他签名者不能伪造有效签名者的环签名。同时,攻击者即使在获得由有效签名者生成的环签名的基础上,由于不能获得有效签名者的私钥信息,因此,也难以为请求信息伪造一个签名。
基于上述,为了可以利用环签名,需要构建签名者集合,由此,构建证书颁发机构集群作为签名者集群,证书颁发机构集群可以包括M个证书颁发机构节点,不同证书颁发机构节点可以由参与机构维护,M≥2,证书颁发机构集群中的每个证书颁发机构节点可以获取证书颁发机构集群中的全部证书颁发机构节点的公钥信息,同时,每个证书颁发机构节点具有与其对应的私钥信息。证书颁发机构集群中的任意一个证书颁发机构节点都可以执行节点证书的颁发操作,即每个证书颁发机构节点都可以作为有效签名者对请求信息进行环签名。可以将证书颁发机构集群中执行节点证书的颁发操作的证书颁发机构节点作为目标证书颁发机构节点。
在此基础上,发明人提出一种基于环签名的节点证书颁发方案。即本公开实施例提供了一种用于区块链系统的节点证书颁发方法、装置、电子设备、计算机可读存储介质及计算机程序产品,本公开实施例的用于区块链系统的节点证书颁发方法、装置、电子设备、计算机可读存储介质及计算机程序产品可以应用于区块链领域,也可以用于除区块链领域之外的任意领域,本公开实施例的用于区块链系统的节点证书颁发方法、装置、电子设备、计算机可读存储介质及计算机程序产品的应用领域不作限定。该方法应用于区块链系统中的证书颁发机构集群中的目标证书颁发机构节点,证书颁发机构集群包括M个证书颁发机构节点,其中,M≥2,该方法包括:接收来自新增节点的证书颁发请求,其中,证书颁发请求包括请求信息,请求信息包括新增节点的公钥信息,新增节点为请求加入区块链系统的区块链节点,响应于证书颁发请求,在确定允许新增节点加入区块链系统的情况下,根据目标证书颁发机构节点的公钥信息、证书颁发机构集群中的其他证书颁发机构节点的公钥信息和目标证书颁发机构节点的私钥信息,对请求信息进行签名,得到第一环签名,根据第一环签名和新增节点的公钥信息,生成针对新增节点的节点证书,并向新增节点颁发节点证书。
图1示意性示出了根据本公开实施例的可以应用用于区块链系统的节点证书颁发方法的示例性系统架构100。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,根据该实施例的系统架构100可以包括证书颁发机构集群101、存量节点102、103、新增节点104和网络105。网络107用以在证书颁发机构集群101、存量节点102、103和新增节点104之间提供通信链路的介质。网络105可以包括各种连接类型,例如有线和/或无线通信链路等。证书颁发机构集群101可以包括M个证书颁发机构节点,例如,M=4,即可以包括证书颁发机构节点1010、1011、1012、1013。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
证书颁发机构节点1010、1011、1012、1013和存量节点102、103、可以是区块链系统的区块链节点。新增节点106可以是请求加入区块链系统的区块链节点。存量节点102、103可以包括轻节点或全节点。新增节点104可以包括轻节点或全节点。轻节点可以理解为是不参与共识的区块链节点。全节点可以包括共识节点。
区块链节点可以是提供各种服务的服务器,例如,如果区块链节点为证书颁发机构集群中的任意一个证书颁发机构节点,则服务器可以是执行节点证书的颁发操作的服务器。如果区块链节点为存量节点102,存量节点可以为共识节点,则服务器可以是执行共识操作的服务器。如果区块链节点为新增节点104,则服务器可以是执行查询操作的服务器。
证书颁发机构节点1010、1011、1012、1013可以作为目标证书颁发机构节点使用。目标证书颁发机构节点可以接收来自新增节点104的包括请求信息的证书颁发请求,响应于证书颁发请求,在确定允许新增节点104加入区块链系统的情况下,根据目标证书颁发机构节点的公钥信息、证书颁发机构集群101中的其他证书颁发机构节点的公钥信息和目标证书颁发机构节点的私钥信息,对请求信息进行签名,得到第一环签名,根据第一环签名和新增节点104的公钥信息,生成针对新增节点104的节点证书,并向新增节点104颁发节点证书。
需要说明的是,本公开实施例所提供的用于区块链系统的节点证书颁发方法一般可以由目标证书颁发机构节点执行。相应地,本公开实施例所提供的用于区块链系统的节点证书颁发装置一般可以设置于目标证书颁发机构节点中。
应该理解,图1中的证书颁发机构节点、存量节点、新增节点和网络的数目仅仅是示意性的。根据实现需要,可以具有任意数目的证书颁发机构节点、存量节点、新增节点和网络。
图2示意性示出了根据本公开实施例的用于区块链系统的节点证书颁发方法的流程图。
上述用于区块链系统的节点证书颁发方法应用于区块链系统中的证书颁发机构集群中的目标证书颁发机构节点,证书颁发机构集群可以包括M个证书颁发机构节点,其中,M≥2。根据本公开的实施例,M的数量可以根据实际业务需要进行配置,本公开的实施例对M不作限定。例如,M可以是2,也可以是3、5或20等其他大于2的整数。
如图2所示,该方法包括操作S210~S240。
在操作S210,接收来自新增节点的证书颁发请求,其中,证书颁发请求包括请求信息,请求信息包括新增节点的公钥信息,新增节点为请求加入区块链系统的区块链节点。
根据本公开的实施例,请求信息可以用于表征新增节点请求加入区块链系统所需要提供的信息。请求信息除可以包括新增节点的公钥信息外,还可以包括新增节点的私钥信息、新增节点的网络协议地址和新增节点的端口信息等。新增节点的公钥信息和私钥信息可以是新增节点通过自签名的方式生成的加密密钥对,可以用于对交易信息进行加密或签名。新增节点可以包括新增轻节点或新增共识节点。
如果新增节点请求加入区块链系统,则新增节点可以生成证书颁发请求,证书颁发请求可以包括新增节点的公钥信息。新增节点可以将证书颁发请求广播给区块链系统中的区块链节点,以使区块链系统中的证书颁发机构集群中的证书颁发机构节点可以接收到证书颁发请求。可以根据预设条件,从证书颁发机构集群中选择一个证书颁发机构节点作为目标证书颁发机构节点,由目标证书颁发机构节点执行后续节点证书的颁发操作。
在操作S220,响应于证书颁发请求,在确定允许新增节点加入区块链系统的情况下,根据目标证书颁发机构节点的公钥信息、证书颁发机构集群中的其他证书颁发机构节点的公钥信息和目标证书颁发机构节点的私钥信息,对目标证书颁发机构节点的认证根证书进行签名,得到第一环签名。
在操作S230,根据第一环签名和新增节点的公钥信息,生成针对新增节点的节点证书。
在操作S240,向新增节点颁发节点证书。
根据本公开的实施例,目标证书颁发机构节点在接收到来自新增节点的证书颁发请求后,可以响应于证书颁发请求,即确定是否允许新增节点加入区块链系统,如果确定允许新增节点加入区块链系统,则目标证书颁发机构节点可以根据证书颁发机构集群中的各个证书颁发机构节点的公钥信息和目标证书颁发机构节点的私钥信息,对请求信息进行签名,得到第一环签名。
在获得第一环签名后,可以根据第一环签名对请求信息中所包括的新增节点的公钥信息进行签名,得到针对新增节点的节点证书。节点证书可以用新增节点的节点名称表征,由此,针对新增节点的节点证书可以包括新增节点的公钥信息、第一环签名和新增节点的节点名称。
根据本公开实施例的技术方案,通过目标证书颁发机构节点接收来自新增节点的证书颁发请求,证书颁发请求包括请求信息,请求信息包括新增节点的公钥信息,新增节点为请求加入区块链系统的区块链节点,响应于证书颁发请求,在确定允许新增节点加入区块链系统的情况下,根据目标证书颁发机构节点的公钥信息、证书颁发机构集群中的其他证书颁发机构节点的公钥信息和目标证书颁发机构节点的私钥信息,对请求信息进行签名,得到第一环签名,根据第一环签名和新增节点的公钥信息,生成针对新增节点的节点证书,并向新增节点颁发节点证书。由于是由证书颁发机构集群中的目标证书颁发机构节点来执行针对节点证书的颁发操作,而证书颁发机构集群中的任意一个证书颁发机构节点均可以作为目标证书颁发机构节点,因此,实现了证书颁发机构节点的去中心化。在此基础上,由于目标证书颁发机构节点是利用第一环签名和新增节点的公钥信息,生成针对新增节点的节点证书,而环签名可以隐藏目标证书颁发机构节点的节点信息,因此,有效保证了目标证书颁发机构节点的节点信息的安全性,进而提高了联盟链系统的可用性。此外,由于可以自动实现节点证书的颁发操作,因此,简化了节点证书的颁发操作,因而,至少部分地克服了利用相关技术实现证书颁发机构节点颁发针对新增节点的节点证书的操作较为繁琐且使得联盟链系统的可用性不高的问题。
根据本公开的实施例,新增节点包括新增轻节点,节点证书为轻节点证书。响应于证书颁发请求,可以包括如下操作。
响应于证书颁发请求,接收来自N个存量节点中的每个存量节点发送的第二环签名,其中,第二环签名是存量节点根据存量节点的公钥信息、其他存量节点的公钥信息和存量节点的私钥信息,对接收到的新增轻节点的公钥信息进行签名生成的,N≥2。对N个第二环签名进行验证,得到第一验证结果。在确定第一验证结果为验证成功的情况下,确定允许新增轻节点加入区块链系统。
根据本公开的实施例,由于新增轻节点会将生成的证书颁发请求广播给区块链系统,即处于区块链系统的各个区块链节点均可以接收到证书颁发请求,因此,区块链系统中的存量节点可以接收到证书颁发请求。针对N个存量节点中的每个存量节点,存量节点在接收到来自新增轻节点的证书颁发请求后,可以利用密钥交换算法,与新增轻节点建立通信连接。在存量节点建立与新增轻节点的通信连接后,存量节点可以根据该存量节点的公钥信息、N个存量节点中的其他存量节点的公钥信息和该存量节点的私钥信息,对新增轻节点的公钥信息进行环签名,得到第二环签名。在本公开的实施例中,N的数量可以根据实际业务需要进行配置,本公开的实施例对N不作限定。例如,N可以是2,也可以是3、5或20等其他大于2的整数。
根据本公开的实施例,N个存量节点中的每个存量节点在生成第二环签名后,可以将第二环签名发送给目标证书颁发机构节点,目标证书颁发机构节点可以对N个第二环签名进行验证,得到第一验证结果,确定第一验证结果是否为验证成功。如果确定第一验证结果为验证成功,则可以确定允许新增轻节点加入区块链系统。如果确定第一验证结果为验证失败,则可以确定不允许新增轻节点加入区块链系统。其中,针对允许新增轻节点加入区块链系统可以理解为只是允许其加入而不是其真正加入了。
根据本公开的实施例,对N个第二环签名进行验证,得到第一验证结果,可以包括如下操作。
根据第一公钥集合分别对N个第二环签名进行验证,得到针对每个第二环签名的第二验证结果,其中,第一公钥集合包括区块链系统包括的各个存量节点中的每个存量节点的公钥信息。根据N个第二验证结果,确定第一验证结果。
根据本公开的实施例,第二验证结果是用于表征新增轻节点的公钥信息是否被修改的验证结果,第二验证结果可以包括验证成功或验证失败。
针对N个第二环签名中的每个第二环签名,目标证书颁发机构节点可以根据区块链系统所包括的各个存量节点中的每个存量节点的公钥信息对该第二环签名进行验证,得到第一验证公钥信息。根据第一验证公钥信息与新增轻节点的公钥信息,确定针对该第二环签名的第二验证结果。根据第一验证公钥信息与新增轻节点的公钥信息,确定针对该第二环签名的第二验证结果,可以包括,在确定第一验证公钥信息与新增轻节点的公钥信息一致的情况下,可以说明新增轻节点的公钥信息未被修改,由此,确定针对该第二环签名的第二验证结果为验证成功。在确定第一验证公钥信息与新增轻节点的公钥信息不一致的情况下,可以说明新增轻节点的公钥信息被修改,由此,确定针对该第二环签名的第二验证结果为验证失败。
根据本公开的实施例,目标证书颁发机构节点在获取N个第二验证结果后,确定N个第二验证结果中验证结果为验证成功的第一数量,根据第一数量与第一数量阈值,确定第一验证结果。其中,根据第一数量与第一数量阈值,确定第一验证结果,可以包括,确定第一数量是否大于或等于第一数量阈值,在确定第一数量大于或等于第一数量阈值的情况下,确定第一验证结果为验证成功。在确定第一数量小于第一数量阈值的情况下,确定第一验证结果为验证失败。
根据本公开的实施例,新增节点包括新增共识节点,节点证书为共识节点证书。响应于证书颁发请求,可以包括如下操作。
接收来自R个存量共识节点中的每个存量共识节点发送的第三环签名,其中,第三环签名是存量共识节点根据存量共识节点的公钥信息、存量共识节点的私钥信息和其他存量共识节点的公钥信息,对接收到的新增共识节点的公钥信息进行环签名生成的,R≥2。对R个第三环签名进行验证,得到第三验证结果。在确定第三验证结果为验证成功的情况下,确定允许新增共识节点加入区块链系统。
根据本公开的实施例,由于新增共识节点会将生成的证书颁发请求广播给区块链系统,即处于区块链系统的各个区块链节点均可以接收到证书颁发请求,因此,区块链系统中的存量共识节点可以接收到证书颁发请求。针对R个存量共识节点中的每个存量共识节点,存量共识节点在接收到来自新增共识节点的证书颁发请求后,可以利用密钥交换算法,与新增共识节点建立通信连接。在存量共识节点建立与新增共识节点的通信连接后,存量共识节点可以根据该存量共识节点的公钥信息、R个存量共识节点中的其他存量共识节点的公钥信息和该存量共识节点的私钥信息,对新增共识节点的公钥信息进行环签名,得到第三环签名。在本公开的实施例中,R的数量可以根据实际业务需要进行配置,本公开的实施例对R不作限定。例如,R可以是2,也可以是3、5或20等其他大于2的整数。
根据本公开的实施例,R个存量共识节点中的每个存量共识节点在生成第三环签名后,可以将第三环签名发送给目标证书颁发机构节点,目标证书颁发机构节点可以对R个第三环签名进行验证,得到第三验证结果,确定第三验证结果是否为验证成功。如果确定第三验证结果为验证成功,则可以确定允许新增共识节点加入区块链系统。如果确定第三验证结果为验证失败,则可以确定不允许新增共识节点加入区块链系统。其中,针对允许新增共识节点加入区块链系统可以理解为只是允许其加入而不是其真正加入了。
根据本公开的实施例,在根据第一环签名和新增共识节点的公钥信息,生成针对新增共识节点的共识节点证书之前,还可以包括如下操作。接收来自新增共识节点发送的共识申请请求,响应于共识申请请求,在确定新增共识节点允许参与共识的情况下,生成与新增共识节点对应的共识标识。目标证书颁发机构节点根据新增共识节点的网络协议地址更新目标证书颁发机构节点存储的网络协议地址列表。
根据本公开的实施例,对R个第三环签名进行验证,得到第三验证结果,可以包括如下操作。
根据第三公钥集合分别对R个第三环签名进行验证,得到针对每个第三环签名的第九验证结果,其中,第二公钥集合包括区块链系统包括的各个存量共识节点中的每个存量共识节点的公钥信息。根据R个第九验证结果,确定第三验证结果。
根据本公开的实施例,第三验证结果是用于表征新增共识节点的公钥信息是否被修改的验证结果,第三验证结果可以包括验证成功或验证失败。
针对R个第三环签名中的每个第三环签名,目标证书颁发机构节点可以根据区块链系统所包括的各个存量共识节点中的每个存量共识节点的公钥信息对该第三环签名进行验证,得到第二验证公钥信息。根据第二验证公钥信息与新增共识节点的公钥信息,确定针对该第三环签名的第三验证结果。根据第二验证公钥信息与新增共识节点的公钥信息,确定针对该第三环签名的第三验证结果,可以包括,在确定第二验证公钥信息与新增共识节点的公钥信息一致的情况下,可以说明新增共识节点的公钥信息未被修改,由此,确定针对该第三环签名的第三验证结果为验证成功。在确定第二验证公钥信息与新增共识节点的公钥信息不一致的情况下,可以说明新增共识节点的公钥信息被修改,由此,确定针对该第三环签名的第三验证结果为验证失败。
根据本公开的实施例,目标证书颁发机构节点在获取R个第三验证结果后,确定R个第三验证结果中验证结果为验证成功的第二数量,根据第二数量与第二数量阈值,确定第三验证结果。其中,根据第二数量与第二数量阈值,确定第三验证结果,可以包括,确定第二数量是否大于或等于第二数量阈值,在确定第二数量大于或等于第二数量阈值的情况下,确定第三验证结果为验证成功。在确定第二数量小于第二数量阈值的情况下,确定第三验证结果为验证失败。
根据本公开的实施例,通过利用存量节点将第三环签名发送给目标证书颁发机构节点,由目标证书颁发机构节点对第三环签名进行验证,由于第三环签名可以隐藏有效签名者,因此,可以有效避免区块链节点之间互相关联。同时,由于目标证书颁发机构节点用于验证第三环签名所包括的公钥信息是否有效,因此,减轻了目标证书颁发机构节点的验证压力。
根据本公开的实施例,针对新增客户端的客户端证书,可以利用与生成节点证书相同的方式进行处理,即应用于区块链系统中的存量节点集群中的目标存量节点,存量节点集群可以包括P个存量节点,其中,P≥2,目标存量节点接收来自新增客户端的证书颁发请求,其中,证书颁发请求包括请求信息,请求信息包括新增客户端的公钥信息,新增客户端为请求加入区块链系统的区块链节点,响应于证书颁发请求,在确定允许新增客户端加入区块链系统的情况下,根据目标存量节点的公钥信息、存量节点集群中的其他存量节点的公钥信息和目标存量节点的私钥信息,对请求信息进行签名,得到第五环签名,根据第五环签名和新增客户端的公钥信息,生成针对新增客户端的客户端证书,并向新增客户端颁发客户端证书。
图3示意性示出了根据本公开实施例的一种用于区块链系统的节点添加方法的流程图。
上述用于区块链系统的节点添加方法可以应用于区块链系统中的新增轻节点。
如图3所示,该方法包括操作S310~340。
在操作S310,接收来自目标证书颁发机构节点发送的目标证书颁发机构节点的认证根证书和针对新增轻节点的轻节点证书,其中,轻节点证书是利用如上所述的用于区块链系统的节点证书颁发方法得到的。
根据本公开的实施例,为了实现新增轻节点可以加入区块链系统,目标证书颁发机构节点在生成针对新增轻节点的轻节点证书后,可以将轻节点证书发送给新增轻节点。同时,目标证书颁发机构节点还可以将目标证书颁发机构节点的认证根证书发送给新增轻节点。其中,证书颁发机构集群中的每个证书颁发机构节点具有与其对应的认证根证书。认证根证书可以包括证书颁发机构节点的节点名称、证书颁发机构节点的公钥信息和证书颁发机构节点的自签名信息。相应的,目标证书颁发机构节点的认证根证书可以包括如上所述的内容。
根据本公开的实施例,针对新增轻节点的轻节点证书可以利用如上所述的用于区块链系统的节点证书颁发方法得到。
在操作S320,对目标证书颁发机构节点的认证根证书和新增轻节点的轻节点证书进行证书验证,得到第四验证结果。
在操作S330,在确定第四验证结果为验证成功的情况下,获取轻节点证书所包括的公钥信息。
在操作S340,向N个存量节点发送轻节点证书所包括的公钥信息,以使N个存量节点中的每个存量节点根据公钥信息与新增轻节点建立通信连接。
根据本公开的实施例,第四验证结果可以包括验证成功或验证失败。新增轻节点在获得第四验证结果后,可以确定第四验证结果是否为验证成功,如果确定第四验证结果为验证成功,则可以获取轻节点证书所包括的公钥信息。新增轻节点可以将新增轻节点的轻节点证书所包括的公钥信息进行存储,例如,将其存储至内存,并可以将轻节点证书发送给存量节点。
根据本公开的实施例,存量节点可以根据轻节点证书所包括的公钥信息与新增轻节点建立通信连接,可以包括,存量节点可以利用密钥交换算法,以根据轻节点证书所包括的公钥信息,与新增轻节点建立通信连接。在新增轻节点完成建立与各个存量节点的通信连接后,可以说明新增轻节点加入了区块链系统。
根据本公开实施例的技术方案,通过新增轻节点接收来自目标证书颁发机构节点发送的目标证书颁发机构节点的认证根证书和针对新增轻节点的轻节点证书,轻节点证书是利用如上所述的用于区块链系统的节点证书颁发方法得到的,对目标证书颁发机构节点的认证根证书和新增轻节点的轻节点证书进行证书验证,得到第四验证结果,在确定第四验证结果为验证成功的情况下,获取轻节点证书所包括的公钥信息,并向N个存量节点发送轻节点证书所包括的公钥信息,以使N个存量节点中的每个存量节点根据公钥信息与新增轻节点建立通信连接。由于是由证书颁发机构集群中的目标证书颁发机构节点来执行针对新增轻节点证书的颁发操作,而证书颁发机构集群中的任意一个证书颁发机构节点均可以作为目标证书颁发机构节点,因此,实现了证书颁发机构节点的去中心化。在此基础上,由于目标证书颁发机构节点是利用第一环签名和新增轻节点的公钥信息,生成针对新增轻节点的轻节点证书,而环签名可以隐藏目标证书颁发机构节点的节点信息,因此,有效保证了目标证书颁发机构节点的节点信息的安全性,进而提高了联盟链系统的可用性。此外,由于可以自动实现轻节点证书的颁发操作,因此,简化了轻节点证书的颁发操作。相应的,也简化了新增轻节点加入区块链系统的流程。
根据本公开的实施例,对目标证书颁发机构节点的认证根证书和新增轻节点的轻节点证书进行证书验证,得到第四验证结果,可以包括如下操作。
对目标证书颁发机构节点的认证根证书进行证书验证,得到第五验证结果。在确定第五验证结果为验证成功的情况下,获取目标证书颁发机构节点的认证根证书包括的公钥信息。根据目标证书颁发机构节点的认证根证书所包括的公钥信息,对轻节点证书进行证书验证,得到第四验证结果。
根据本公开的实施例,第五验证结果可以包括验证成功或验证失败。在获得第五验证结果后,确定第五验证结果是否为验证成功,如果确定第五验证结果为验证成功,则可以获取目标证书颁发机构节点的认证根证书所包括的公钥信息。如果确定第五验证结果为验证失败,则可以结束操作。
根据本公开的实施例,对目标证书颁发机构节点的认证根证书进行证书验证,得到第五验证结果,可以包括如下操作。
接收来自T个存量节点中的每个存量节点发送的认证根证书,其中,T≥2。在确定T个存量节点中的每个存量节点的认证根证书与目标证书颁发机构节点的认证根证书均一致的情况下,确定第五验证结果为验证成功。在确定T个存量节点中的至少一个存量节点的认证根证书与目标证书颁发机构节点的认证根证书不一致的情况下,确定第五验证结果为验证失败。
根据本公开的实施例,新增轻节点可以利用密钥交换算法,接收来自T个存量节点中的每个存量节点发送的目标证书颁发机构节点的认证根证书。在本公开的实施例中,T的数量可以根据实际业务需要进行配置,本公开的实施例对T不作限定。例如,T可以是2,也可以是3、5或20等其他大于2的整数。
针对T个存量节点中的每个存量节点发送的目标证书颁发机构节点的认证根证书,新增轻节点确定该存量节点发送的目标证书颁发机构节点的认证根证书与目标证书颁发机构节点发送的认证根证书是否一致,得到第十验证结果,如果确定两者一致,则确定第十验证结果为验证成功,如果两者不一致,则确定第十验证结果为验证失败。
根据T个第十验证结果,确定第五验证结果,可以包括,在确定T个第十验证结果中的每个验证结果为验证成功的情况下,确定第五验证结果为验证成功。在确定T个第十验证结果中存在至少一个第十验证结果为验证失败的情况下,确定第五验证结果为验证失败。
根据本公开的实施例,上述用于区块链系统的节点添加方法还可以包括如下操作。
获取与新增轻节点通信连接的存量节点的区块数据。在确定区块数据为多个的情况下,确定多个区块数据中的每个区块数据的区块高度。在确定多个区块高度不一致的情况下,从多个区块高度中确定最高区块高度。将新增轻节点的区块数据的区块高度设置为最高区块高度。
根据本公开的实施例,在新增轻节点加入区块链系统成功后,可以获取与新增轻节点通信连接的存量节点的区块数据,并同步存量节点的区块数据。确定区块数据的数量是否为多个,在确定区块数据的数量为多个的情况下,确定多个区块数据中的每个区块数据的区块高度。确定多个区块高度是否一致,在确定多个区块高度不一致的情况下,从多个区块高度中确定最高区块高度,将新增轻节点的区块数据的区块高度设置为最高区块高度。在确定多个区块高度一致的情况下,将新增轻节点的区块数据的区块高度设置为与多个区块高度一致的区块高度。
根据本公开的实施例,在新增轻节点成功加入区块链系统之后,如果交易类型是查询交易,则可以直接进行本地查询。如果交易类型是转账交易,则可以根据新增轻节点所存储的公钥集合生成针对交易信息的环签名,并发送给与新增轻节点通信连接的存量共识节点进行交易共识。由于在执行转账交易时,通过利用生成针对交易信息的环签名的方式,实现了转账交易的匿名处理,因此,既保证了区块链节点的隐私安全,又提高了用户的隐私安全。
图4示意性示出了根据本公开实施例的一种用于区块链系统的节点添加方法的信令图。
图4中存量节点可以包括两个,分别为存量节点1和存量节点2。如图4所示,可以看出新增轻节点加入区块链系统的整个过程。具体描述可以结合上述附图2~图3,以及图4中记载的内容,在此不再赘述。
根据本公开的实施例,本公开实施例的用于区块链系统的节点添加方法、装置、电子设备、计算机可读存储介质及计算机程序产品可以应用于区块链领域,也可以用于除区块链领域之外的任意领域,本公开实施例的用于区块链系统的节点添加方法、装置、电子设备、计算机可读存储介质及计算机程序产品的应用领域不作限定。
图5示意性示出了根据本公开实施例的另一种用于区块链系统的节点添加方法的流程图。
图6示意性示出了根据本公开实施例的另一种用于区块链系统的节点添加方法的信令图。图6中存量共识节点可以包括两个,分别为存量共识节点1和存量共识节点2。如图6所示,可以看出新增共识节点加入区块链系统的整个过程。
上述用于区块链系统的节点添加方法可以应用于区块链系统中的新增共识节点。
如图5所示,该方法包括操作S510~S540。
在操作S510,接收来自目标证书颁发机构节点发送的目标证书颁发机构节点的认证根证书、存量共识节点的存量节点证书和针对新增共识节点的共识节点证书,其中,共识节点证书是利用如上所述的用于区块链系统的节点证书颁发方法得到的。
根据本公开的实施例,为了实现新增共识节点可以加入区块链系统,目标证书颁发机构节点在生成针对新增共识节点的共识节点证书后,可以将共识节点证书发送给新增共识节点。同时,目标证书颁发机构节点还可以将目标证书颁发机构节点的认证根证书和存量共识节点的存量节点证书发送给新增共识节点。
根据本公开的实施例,针对新增共识节点的共识节点证书可以利用如上所述的用于区块链系统的节点证书颁发方法得到。
在操作S520,对目标证书颁发机构节点的认证根证书、存量节点证书和共识节点证书进行证书验证,得到第六验证结果。
在操作S530,在确定第六验证结果为验证成功的情况下,接收来自证书颁发机构节点发送的网络协议地址列表,其中,网络协议地址列表包括区块链系统包括的各个存量共识节点中的每个存量共识节点的网络协议地址。
在操作S540,根据网络协议地址列表,建立与各个存量共识节点的通信连接。
根据本公开的实施例,第六验证结果可以包括验证成功或验证失败。新增共识节点在获得第六验证结果后,可以确定第六验证结果是否为验证成功,如果确定第六验证结果为验证成功,则可以接收来自证书颁发机构节点发送的网络协议地址列表。新增共识节点可以根据网络协议地址列表所包括的各个存量共识节点的网络协议地址,分别与各个存量共识节点建立通信连接。在新增共识节点完成建立与各个存量共识节点的通信连接后,可以说明新增共识节点加入了区块链系统。
根据本公开的实施例,新增共识节点还可以在完成针对存量共识节点的存量节点证书的证书验证且验证结果为验证成功的情况下,将存量共识节点的存量节点证书进行存储,例如,将其存储至内存。
根据本公开实施例的技术方案,通过新增共识节点接收来自目标证书颁发机构节点发送的目标证书颁发机构节点的认证根证书、存量共识节点的存量节点证书和针对新增共识节点的共识节点证书,共识节点证书是利用如上所述的用于区块链系统的节点添加方法得到的,对目标证书颁发机构节点的认证根证书、存量节点证书和共识节点证书进行证书验证,得到第六验证结果,在确定第六验证结果为验证成功的情况下,接收来自证书颁发机构节点发送的网络协议地址列表,网络协议地址列表包括区块链系统包括的各个存量共识节点中的每个存量共识节点的网络协议地址,并根据网络协议地址列表,建立与各个存量共识节点的通信连接。
由于是由证书颁发机构集群中的目标证书颁发机构节点来执行针对新增共识节点证书的颁发操作,而证书颁发机构集群中的任意一个证书颁发机构节点均可以作为目标证书颁发机构节点。因此,实现了证书颁发机构节点的去中心化。
在此基础上,由于目标证书颁发机构节点是利用第一环签名和新增共识节点的公钥信息,生成针对新增共识节点的共识节点证书,而环签名可以隐藏目标证书颁发机构节点的节点信息。因此,有效保证了目标证书颁发机构节点的节点信息的安全性,进而提高了联盟链系统的可用性。此外,由于可以自动实现轻节点证书的颁发操作,因此,简化了轻节点证书的颁发操作。相应的,也简化了新增共识节点加入区块链系统的流程。
根据本公开的实施例,对目标证书颁发机构节点的认证根证书、存量节点证书和共识节点证书进行证书验证,得到第六验证结果,可以包括如下操作。
对目标证书颁发机构节点的认证根证书进行证书验证,得到第七验证结果。在确定第七验证结果为验证成功的情况下,获取目标证书颁发机构节点的认证根证书所包括的公钥信息。根据目标证书颁发机构节点的认证根证书所包括的公钥信息,对存量节点证书和共识节点证书进行证书验证,得到第六验证结果。
根据本公开的实施例,第七验证结果可以包括验证成功或验证失败。在获得第七验证结果后,确定第七验证结果是否为验证成功,如果确定第七验证结果为验证成功,则可以获取目标证书颁发机构节点的认证根证书所包括的公钥信息。如果确定第七验证结果为验证失败,则可以结束操作。
根据本公开的实施例,在确定第六验证结果为验证成功的情况下,还可以将共识节点证书所包括的公钥信息进行存储,例如,将其存储至内存。
根据本公开的实施例,对目标证书颁发机构节点的认证根证书进行证书验证,得到第七验证结果,可以包括如下操作。
接收来自S个存量共识节点中的每个存量共识节点发送的认证根证书,其中,S≥2。在确定S个存量共识节点中的每个存量共识节点的认证根证书与目标证书颁发机构节点的认证根证书均一致的情况下,确定第七验证结果为验证成功。在确定S个存量共识节点中的至少一个存量共识节点的认证根证书与目标证书颁发机构节点的认证根证书不一致的情况下,确定第七验证结果为验证失败。
根据本公开的实施例,新增共识节点可以利用密钥交换算法,接收来自S个存量共识节点中的每个存量共识节点发送的目标证书颁发机构节点的认证根证书。在本公开的实施例中,S的数量可以根据实际业务需要进行配置,本公开的实施例对S不作限定。例如,S可以是2,也可以是3、5或20等其他大于2的整数。
针对S个存量共识节点中的每个存量共识节点发送的目标证书颁发机构节点的认证根证书,新增共识节点确定该存量共识节点发送的目标证书颁发机构节点的认证根证书与目标证书颁发机构节点发送的认证根证书是否一致,得到第十一验证结果,如果确定两者一致,则确定第十一验证结果为验证成功,如果两者不一致,则确定第十一验证结果为验证失败。
根据S个第十一验证结果,确定第七验证结果,可以包括,在确定S个第十一验证结果中的每个验证结果为验证成功的情况下,确定第七验证结果为验证成功。在确定S个第十一验证结果中存在至少一个第十一验证结果为验证失败的情况下,确定第七验证结果为验证失败。
根据本公开的实施例,网络协议地址列表是密文网络协议地址列表,密文网络协议地址列表是利用同态加密算法处理网络协议地址列表得到的。
根据本公开的实施例,根据网络协议地址列表,建立与各个存量共识节点的通信连接,可以包括如下操作。
针对密文网络协议地址列表所包括的每个密文网络协议地址,利用同态加密算法处理密文网络协议地址,得到与密文网络协议地址对应的网络协议地址。建立与网络协议地址对应的存量共识节点的通信连接。
根据本公开的实施例,在实现本公开构思的过程中,发明人还发现在相关技术中,由于区块链系统的节点信息是公开的,因此,导致区块链系统中的某个区块链节点可以获取到其他区块链节点的节点信息,由此,增加了区块链节点暴露的风险,进而降低了信息的安全性。
为了解决相关技术中存在的上述问题,发明人发现可以利用加密算法实现,其中,传统的加密算法关注的是数据存储安全,即发送方利用公钥信息对原始数据进行加密,得到加密数据,只有具有私钥信息的接收方(即密钥方)才能对加密数据进行解密得到对应的解密数据(即原始数据),并对解密数据执行相应的操作。发现传统的加密算法存在如下问题,其一,增加了计算成本。即每次解密运算都会带来高昂的计算代价。其二,增加了通信成本。即由于只有密钥方才能对加密数据进行操作,如果其他接收方需要对加密数据进行操作,则需要将加密数据发送给密钥方,这就会导致一定的通信代价。其三,具有信息泄露的风险。即对加密数据进行解密存在信息泄露的风险。
为了实现提高信息的安全性,但尽量避免出现传统的加密算法所存在的上述问题,发明人提出利用同态加密算法进行处理。同态加密算法与传统的加密算法的区别在于,其关注的是数据处理安全。同态加密算法提供了一种对加密数据进行处理的功能,也就是说,发送方可以允许任何接收方对加密数据进行处理,但是处理过程不会泄露发送方的原始数据,同时,由于发送方具有对应的密钥信息,因此,发送方可以对处理后的加密数据进行解密,得到的解密数据即是对原始数据直接进行处理后得到的数据。即对经过同态加密的加密数据进行某种处理得到处理结果,将这个处理结果进行解密得到的解密结果,与直接利用同种处理方式处理未加密的原始数据得到的处理结果是一样的。简而言之,密文操作可以等同于明文操作之后再加密,即先处理后解密可以等同于先解密后处理。
由于同态加密算法是对加密数据进行操作,因此,满足了隐私保护的安全性需求。由于同态加密算法可以实现先对加密数据进行处理再解密,而不需要花费大量的计算代价处理解密运算,因此,降低了计算成本。由于同态加密算法可以实现对加密数据的处理,而无需对加密数据先解密再对解密数据进行处理,因此,无需将加密数据发送给密钥方,减少了与密钥方的通信代价,进而降低了通信成本。由于利用同态加密算法可以实现让接收方只能获得处理后的结果,而难以获得原始数据,因此,提高了信息的安全性。
基于上述,可以利用同态加密算法对网络协议地址列表所包括的每个网络协议地址进行同态加密,得到密文网络协议地址。根据各个密文网络协议地址,得到密文网络协议地址列表。相应的,为了实现新增共识节点与存量共识节点之间的通信连接,新增共识节点针对密文网络协议地址列表所包括的每个密文网络协议地址,利用同态加密算法处理密文网络协议地址,得到与密文网络协议地址对应的网络协议地址,新增共识节点可以利用密钥交换算法建立与网络协议地址对应的存量共识节点之间的通信连接。
根据本公开的实施例,由于利用同态加密算法对存量共识节点的网络协议地址进行了加密,因此,隐藏了存量共识节点的网络协议地址,使得其他区块链节点无法获得存量共识节点的网络协议地址,由此,降低了区块链节点暴露的风险,进而提高了信息的安全性。
根据本公开的实施例,除了可以利用同态加密算法对存量共识节点的网络协议地址进行加密外,还可以利用同态加密算法对存量共识节点的端口信息等进行加密。
根据本公开的实施例,本公开实施例的用于区块链系统的节点添加方法、装置、电子设备、计算机可读存储介质及计算机程序产品可以应用于区块链领域,也可以用于除区块链领域之外的任意领域,本公开实施例的用于区块链系统的节点添加方法、装置、电子设备、计算机可读存储介质及计算机程序产品的应用领域不作限定。
图7示意性示出了根据本公开实施例的一种用于区块链系统的交易处理方法的流程图。
图8示意性示出了根据本公开实施例的一种用于区块链系统的交易处理方法的信令图。如图8所示,可以看出根据隐私节点的通信流程,重新设计的交易的处理流程,不仅确保了隐私节点发起的交易的真实可靠,而且保护了发起区块链节点和发起用户的隐私信息。
上述用于区块链系统的交易处理方法可以应用于区块链系统,区块链系统可以包括隐私节点、背书节点、排序节点和验证节点,其中,隐私节点可以为如上所述的用于区块链系统的节点添加方法中的新增轻节点或如上所述的用于区块链系统的节点添加方法中的新增共识节点。
如图7所示,该方法包括操作S710~S790。
在操作S710,隐私节点根据第二公钥集合和隐私节点的私钥信息对交易信息进行签名,生成第四环签名和环签名公钥镜像,其中,第二公钥集合包括区块链系统所包括的各个区块链节点中的每个区块链节点的公钥信息。
在操作S720,隐私节点向背书节点发送第四环签名和环签名公钥镜像。
在操作S730,背书节点根据背书节点的公钥信息对第四环签名进行验证,得到第八验证结果。
在操作S740,在背书节点确定第八验证结果为验证有效的情况下,背书节点完成交易背书。
在操作S750,在背书节点完成交易背书的情况下,向排序节点发送环签名公钥镜像。
在操作S760,在排序节点确定公钥镜像列表中不存在环签名公钥镜像的情况下,将环签名公钥镜像添加至公钥镜像列表。
在操作S770,在排序节点接收到来自与环签名公钥镜像对应的隐私节点发送的第四环签名的情况下,对第四环签名进行交易排序,得到排序区块。
在操作S780,排序节点向验证节点发送排序区块。
在操作S790,在验证节点根据验证节点的公钥信息验证第四环签名有效的情况下,将交易信息进行存储。
根据本公开的实施例,根据隐私节点的通信流程,重新设计了交易处理的流程。在交易处理过程中,可能存在双花交易,双花交易(或双重支付)是指在数字货币系统中,由于数据的可复制性,使得区块链节点可以恶意的多次对区块链节点自身所具有的资源信息进行重复转移,导致区块链节点的资源信息被转移的数量大于区块链节点具有的资源信息的数量,如果对双花交易进行多次处理,则将会导致资源浪费。
在实现本公开构思的过程中,发明人还发现在相关技术中,由于排序节点只用于对交易进行排序,因此,如果存在双花交易,则也会将双花交易进行排序,由此,将会导致资源浪费。为了解决上述问题,提出排序节点根据环签名公钥镜像和公钥镜像列表,确定是否存在双花交易的方案。
根据本公开的实施例,排序节点如果确定公钥镜像列表中不存在环签名公钥镜像,则可以说明不存在双花交易,在此情况下,排序节点可以将与交易信息对应的环签名镜像公钥存储至公钥镜像列表,并可以为交易信息设置用于表征可参与排序的排序标识。如果排序节点接收到来自隐私节点广播的第四环签名,则可以将第四环签名添加至排序队列。按照排队队列的执行顺序,在确定达到第四环签名的执行顺序的情况下,排序节点对第四环签名进行处理,得到排序区块。排序节点如果确定公钥镜像列表中存在环签名公钥镜像,则可以说明存在双花交易,在此情况下,排序节点可以不执行上述所述的后续操作。
根据本公开的实施例,为了减少排序节点获取环签名公钥镜像的时间,在本公开实施例中,利用了背书节点在完成交易背书的情况下,将环签名公钥镜像广播给排序的方式。
根据本公开的实施例,验证节点在根据验证节点的公钥信息验证第四环签名有效的情况下,可以将交易信息进行存储,例如,将其存储至磁盘。
根据本公开实施例的技术方案,根据隐私节点的通信流程,重新设计的交易的处理流程,不仅确保了隐私节点发起的交易的真实可靠,而且保护了发起区块链节点和发起用户的隐私信息,解决了联盟链系统难以实现隐私交易的问题。
根据本公开的实施例,隐私节点与背书节点、排序节点和验证节点利用密钥交换算法建立通信连接。
根据本公开的实施例,在本公开实施例中区块链系统中的各个区块链节点之间的通信连接利用一来一回达成密钥交换的方式实现,即两次通信连接便可实现,而相关技术中的密钥交换方式需要三次通信连接,由此,减少了区块链系统中各个区块链节点建立通信连接所消耗的时间。
根据本公开的实施例,本公开实施例的用于区块链系统的交易处理、装置、电子设备、计算机可读存储介质及计算机程序产品可以应用于区块链领域,也可以用于除区块链领域之外的任意领域,本公开实施例的用于区块链系统的交易处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品的应用领域不作限定。
图9示意性示出了根据本公开的实施例的一种用于区块链系统的节点证书颁发装置的框图。
上述用于区块链系统的节点证书颁发装置可以设置于区块链系统中的证书颁发机构集群中的目标证书颁发机构节点,证书颁发机构集群包括M个证书颁发机构节点,其中,M≥2。
如图9所示,用于区块链系统的节点证书颁发装置900可以包括第一接收模块910、第一签名模块920、第一生成模块930和颁发模块940。
第一接收模块910、第一签名模块920、第一生成模块930和颁发模块940通信连接。
第一接收模块910,用于接收来自新增节点的证书颁发请求,其中,证书颁发请求包括请求信息,请求信息包括新增节点的公钥信息,新增节点为请求加入区块链系统的区块链节点。
第一签名模块920,用于响应于证书颁发请求,在确定允许新增节点加入区块链系统的情况下,根据目标证书颁发机构节点的公钥信息、证书颁发机构集群中的其他证书颁发机构节点的公钥信息和目标证书颁发机构节点的私钥信息,对请求信息进行签名,得到第一环签名。
第一生成模块930,用于根据第一环签名和新增节点的公钥信息,生成针对新增节点的节点证书。
颁发模块940,用于向新增节点颁发节点证书。
根据本公开实施例的技术方案,通过目标证书颁发机构节点接收来自新增节点的证书颁发请求,证书颁发请求包括请求信息,请求信息包括新增节点的公钥信息,新增节点为请求加入区块链系统的区块链节点,响应于证书颁发请求,在确定允许新增节点加入区块链系统的情况下,根据目标证书颁发机构节点的公钥信息、证书颁发机构集群中的其他证书颁发机构节点的公钥信息和目标证书颁发机构节点的私钥信息,对请求信息进行签名,得到第一环签名,根据第一环签名和新增节点的公钥信息,生成针对新增节点的节点证书,并向新增节点颁发节点证书。由于是由证书颁发机构集群中的目标证书颁发机构节点来执行针对节点证书的颁发操作,而证书颁发机构集群中的任意一个证书颁发机构节点均可以作为目标证书颁发机构节点,因此,实现了证书颁发机构节点的去中心化。在此基础上,由于目标证书颁发机构节点是利用第一环签名和新增节点的公钥信息,生成针对新增节点的节点证书,而环签名可以隐藏目标证书颁发机构节点的节点信息,因此,有效保证了目标证书颁发机构节点的节点信息的安全性,进而提高了联盟链系统的可用性。此外,由于可以自动实现节点证书的颁发操作,因此,简化了节点证书的颁发操作,因而,至少部分地克服了利用相关技术实现证书颁发机构节点颁发针对新增节点的节点证书的操作较为繁琐且使得联盟链系统的可用性不高的问题。
根据本公开的实施例,新增节点包括新增轻节点,节点证书为轻节点证书。
第一签名模块,可以包括第一接收子模块、第一验证子模块和第一确定子模块。
第一接收子模块,用于响应于证书颁发请求,接收来自N个存量节点中的每个存量节点发送的第二环签名,其中,第二环签名是存量节点根据存量节点的公钥信息、其他存量节点的公钥信息和存量节点的私钥信息,对接收到的新增轻节点的公钥信息进行签名生成的,N≥2。
第一验证子模块,用于对N个第二环签名进行验证,得到第一验证结果。
第一确定子模块,用于在确定第一验证结果为验证成功的情况下,确定允许新增轻节点加入区块链系统。
根据本公开的实施例,第一验证子模块可以包括第一获得单元和第一确定单元。
第一获得单元,用于根据第一公钥集合分别对N个第二环签名进行验证,得到针对每个第二环签名的第二验证结果,其中,第一公钥集合包括区块链系统包括的各个存量节点中的每个存量节点的公钥信息。
第一确定单元,用于根据N个第二验证结果,确定第一验证结果。
根据本公开的实施例,新增节点包括新增共识节点,节点证书为共识节点证书。
第一签名模块,可以包括第二接收子模块、第二验证子模块和第二确定子模块。
第二接收子模块,用于接收来自R个存量共识节点中的每个存量共识节点发送的第三环签名,其中,第三环签名是存量共识节点根据存量共识节点的公钥信息、存量共识节点的私钥信息和其他存量共识节点的公钥信息对接收到的新增共识节点的公钥信息进行环签名生成的,R≥2。
第二验证子模块,用于对R个第三环签名进行验证,得到第三验证结果。
第二确定子模块,用于在确定第三验证结果为验证成功的情况下,确定允许新增共识节点加入区块链系统。
图10示意性示出了根据本公开实施例的一种用于区块链系统的节点添加装置的框图。
上述用于区块链系统的节点添加装置可以设置于区块链系统中的新增轻节点。
如图10所示,用于区块链系统的节点添加装置1000可以包括第二接收模块1010、第一验证模块1020、第一获取模块1030和第一发送模块1040。
第二接收模块1010、第一验证模块1020、第一获取模块1030和第一发送模块1040通信连接。
第二接收模块1010,用于接收来自目标证书颁发机构节点发送的目标证书颁发机构节点的认证根证书和针对新增轻节点的轻节点证书,其中,轻节点证书是利用如上所述的用于区块链系统的节点证书颁发装置900得到的。
第一验证模块1020,用于对目标证书颁发机构节点的认证根证书和新增轻节点的轻节点证书进行证书验证,得到第四验证结果。
第一获取模块1030,用于在确定第四验证结果为验证成功的情况下,获取轻节点证书所包括的公钥信息。
第一发送模块1040,用于向N个存量节点发送轻节点证书所包括的公钥信息,以使N个存量节点中的每个存量节点根据公钥信息与新增轻节点建立通信连接。
根据本公开实施例的技术方案,通过新增轻节点接收来自目标证书颁发机构节点发送的目标证书颁发机构节点的认证根证书和针对新增轻节点的轻节点证书,轻节点证书是利用如上所述的用于区块链系统的节点证书颁发方法得到的,对目标证书颁发机构节点的认证根证书和新增轻节点的轻节点证书进行证书验证,得到第四验证结果,在确定第四验证结果为验证成功的情况下,获取轻节点证书所包括的公钥信息,并向N个存量节点发送轻节点证书所包括的公钥信息,以使N个存量节点中的每个存量节点根据公钥信息与新增轻节点建立通信连接。由于是由证书颁发机构集群中的目标证书颁发机构节点来执行针对新增轻节点证书的颁发操作,而证书颁发机构集群中的任意一个证书颁发机构节点均可以作为目标证书颁发机构节点,因此,实现了证书颁发机构节点的去中心化。在此基础上,由于目标证书颁发机构节点是利用第一环签名和新增轻节点的公钥信息,生成针对新增轻节点的轻节点证书,而环签名可以隐藏目标证书颁发机构节点的节点信息,因此,有效保证了目标证书颁发机构节点的节点信息的安全性,进而提高了联盟链系统的可用性。此外,由于可以自动实现轻节点证书的颁发操作,因此,简化了轻节点证书的颁发操作。相应的,也简化了新增轻节点加入区块链系统的流程。
根据本公开的实施例,第一验证模块1020可以包括第三验证子模块、第一获取子模块和第四验证子模块。
第三验证子模块,用于对目标证书颁发机构节点的认证根证书进行证书验证,得到第五验证结果。
第一获取子模块,用于在确定第五验证结果为验证成功的情况下,获取目标证书颁发机构节点的认证根证书包括的公钥信息。
第四验证子模块,用于根据目标证书颁发机构节点的认证根证书所包括的公钥信息,对轻节点证书进行证书验证,得到第四验证结果。
根据本公开的实施例,第三验证子模块可以包括第一接收单元、第二确定单元和第三确定单元。
第一接收单元,用于接收来自T个存量节点中的每个存量节点发送的认证根证书,其中,T≥2。
第二确定单元,用于在确定T个存量节点中的每个存量节点的认证根证书与目标证书颁发机构节点的认证根证书均一致的情况下,确定第五验证结果为验证成功。
第三确定单元,用于在确定T个存量节点中的至少一个存量节点的认证根证书与目标证书颁发机构节点的认证根证书不一致的情况下,确定第五验证结果为验证失败。
根据本公开的实施例,上述用于区块链系统的节点添加装置1000还可以包括第二获取模块、第一确定模块、第二确定模块和设置模块。
第二获取模块,用于获取与新增轻节点通信连接的存量节点的区块数据。
第一确定模块,用于在确定区块数据为多个的情况下,确定多个区块数据中的每个区块数据的区块高度。
第二确定模块,用于在确定多个区块高度不一致的情况下,从多个区块高度中确定最高区块高度。
设置模块,用于将新增轻节点的区块数据的区块高度设置为最高区块高度。
图11示意性示出了根据本公开实施例的另一种用于区块链系统的节点添加装置的框图。
上述用于区块链系统的节点添加装置1100可以设置于区块链系统中的新增共识节点。
如图11所示,用于区块链系统的节点添加装置1100可以包括第三接收模块1110、第二验证模块1120、第四接收模块1130和第一建立模块1140。
第三接收模块1110、第二验证模块1120、第四接收模块1130和第一建立模块1140通信连接。
第三接收模块1110,用于接收来自目标证书颁发机构节点发送的目标证书颁发机构节点的认证根证书、存量共识节点的存量节点证书和针对新增共识节点的共识节点证书,其中,共识节点证书是利用如上所述的用于区块链系统的节点证书颁发装置900得到的。
第二验证模块1120,用于对目标证书颁发机构节点的认证根证书、存量节点证书和共识节点证书进行证书验证,得到第六验证结果。
第四接收模块1130,用于在确定第六验证结果为验证成功的情况下,接收来自证书颁发机构节点发送的网络协议地址列表,其中,网络协议地址列表包括区块链系统包括的各个存量共识节点中的每个存量共识节点的网络协议地址。
第一建立模块1140,用于根据网络协议地址列表,建立与各个存量共识节点的通信连接。
根据本公开实施例的技术方案,通过新增共识节点接收来自目标证书颁发机构节点发送的目标证书颁发机构节点的认证根证书、存量共识节点的存量节点证书和针对新增共识节点的共识节点证书,共识节点证书是利用如上所述的用于区块链系统的节点添加方法得到的,对目标证书颁发机构节点的认证根证书、存量节点证书和共识节点证书进行证书验证,得到第六验证结果,在确定第六验证结果为验证成功的情况下,接收来自证书颁发机构节点发送的网络协议地址列表,网络协议地址列表包括区块链系统包括的各个存量共识节点中的每个存量共识节点的网络协议地址,并根据网络协议地址列表,建立与各个存量共识节点的通信连接。由于是由证书颁发机构集群中的目标证书颁发机构节点来执行针对新增共识节点证书的颁发操作,而证书颁发机构集群中的任意一个证书颁发机构节点均可以作为目标证书颁发机构节点,因此,实现了证书颁发机构节点的去中心化。在此基础上,由于目标证书颁发机构节点是利用第一环签名和新增共识节点的公钥信息,生成针对新增共识节点的共识节点证书,而环签名可以隐藏目标证书颁发机构节点的节点信息,因此,有效保证了目标证书颁发机构节点的节点信息的安全性,进而提高了联盟链系统的可用性。此外,由于可以自动实现轻节点证书的颁发操作,因此,简化了轻节点证书的颁发操作。相应的,也简化了新增共识节点加入区块链系统的流程。
根据本公开的实施例,第二验证模块1120可以包括第五验证子模块、第二获取子模块和第六验证子模块。
第五验证子模块,用于对目标证书颁发机构节点的认证根证书进行证书验证,得到第七验证结果。
第二获取子模块,用于在确定第七验证结果为验证成功的情况下,获取目标证书颁发机构节点的认证根证书所包括的公钥信息。
第六验证子模块,用于根据目标证书颁发机构节点的认证根证书所包括的公钥信息,对存量节点证书和共识节点证书进行证书验证,得到第六验证结果。
根据本公开的实施例,第五验证子模块可以包括第二接收单元、第四确定单元和第五确定单元。
第二接收单元,用于接收来自S个存量共识节点中的每个存量共识节点发送的认证根证书,其中,S≥2。
第四确定单元,用于在确定S个存量共识节点中的每个存量共识节点的认证根证书与目标证书颁发机构节点的认证根证书均一致的情况下,确定第七验证结果为验证成功。
第五确定单元,用于在确定S个存量共识节点中的至少一个存量共识节点的认证根证书与目标证书颁发机构节点的认证根证书不一致的情况下,确定第七验证结果为验证失败。
根据本公开的实施例,网络协议地址列表是密文网络协议地址列表,密文网络协议地址列表是利用同态加密算法处理网络协议地址列表得到的。
第一建立模块1140可以包括解密子模块和建立子模块。
解密子模块,用于针对密文网络协议地址列表所包括的每个密文网络协议地址,利用同态加密算法处理密文网络协议地址,得到与密文网络协议地址对应的网络协议地址。
建立子模块,用于建立与网络协议地址对应的存量共识节点的通信连接。
图12示意性示出了根据本公开实施例的一种用于区块链系统的交易处理装置的框图。
上述用于区块链系统的交易处理装置1200可以设置于区块链系统,区块链系统可以包括隐私节点、背书节点、排序节点和验证节点,其中,隐私节点可以为如上所述的用于区块链系统的节点添加装置900中的新增轻节点或如上所述的用于区块链系统的节点添加装置1000中的新增共识节点。
如图12所示,用于区块链系统的交易处理装置1200可以包括第二生成模块1210、第二发送模块1220、获得模块1230、完成模块1240、第三发送模块1250、添加模块1260、排序模块1270、第四发送模块1280和存储模块1290。
第二生成模块1210、第二发送模块1220、获得模块1230、完成模块1240、第三发送模块1250、添加模块1260、排序模块1270、第四发送模块1280和存储模块1290通信连接。
第二生成模块1210,用于隐私节点根据第二公钥集合和隐私节点的私钥信息对交易信息进行签名,生成第四环签名和环签名公钥镜像,其中,第二公钥集合包括区块链系统所包括的各个区块链节点中的每个区块链节点的公钥信息。
第二发送模块1220,用于隐私节点向背书节点发送第四环签名和环签名公钥镜像。
获得模块1230,用于背书节点根据背书节点的公钥信息对第四环签名进行验证,得到第八验证结果。
完成模块1240,用于在背书节点确定第八验证结果为验证有效的情况下,背书节点完成交易背书。
第三发送模块1250,用于在背书节点完成交易背书的情况下,向排序节点发送环签名公钥镜像。
添加模块1260,用于在排序节点确定公钥镜像列表中不存在环签名公钥镜像的情况下,将环签名公钥镜像添加至公钥镜像列表。
排序模块1270,用于在排序节点接收到来自与环签名公钥镜像对应的隐私节点发送的第四环签名的情况下,对第四环签名进行交易排序,得到排序区块。
第四发送模块1280,用于排序节点向验证节点发送排序区块。
存储模块1290,用于在验证节点根据验证节点的公钥信息验证第四环签名有效的情况下,将交易信息进行存储。
根据本公开实施例的技术方案,根据隐私节点的通信流程,重新设计的交易的处理流程,不仅确保了隐私节点发起的交易的真实可靠,而且保护了发起区块链节点和发起用户的隐私信息,解决了联盟链系统难以隐私交易的问题。
根据本公开的实施例,上述用于区块链系统的交易处理装置1200还可以包括第二建立模块。
第二建立模块,用于隐私节点与背书节点、排序节点和验证节点利用密钥交换算法建立通信连接。
根据本公开的实施例的模块、子模块、单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FieldProgrammableGate Array,FPGA)、可编程逻辑阵列(Programmable Logic Arrays,PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(Application Specific IntegratedCircuit,ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,第一接收模块910、第一签名模块920、第一生成模块930和颁发模块940,或,第二接收模块1010、第一验证模块1020、第一获取模块1030和第一发送模块1040,或,第三接收模块1110、第二验证模块1120、第四接收模块1130和第一建立模块1140,或,第二生成模块1210、第二发送模块1220、获得模块1230、完成模块1240、第三发送模块1250、添加模块1260、排序模块1270、第四发送模块1280和存储模块1290中的任意多个可以合并在一个模块/子模块/单元中实现,或者其中的任意一个模块/子模块/单元可以被拆分成多个模块/子模块/单元。或者,这些模块/子模块/单元中的一个或多个模块/子模块/单元的至少部分功能可以与其他模块/子模块/单元的至少部分功能相结合,并在一个模块/子模块/单元中实现。根据本公开的实施例,第一接收模块910、第一签名模块920、第一生成模块930和颁发模块940,或,第二接收模块1010、第一验证模块1020、第一获取模块1030和第一发送模块1040,或,第三接收模块1110、第二验证模块1120、第四接收模块1130和第一建立模块1140,或,第二生成模块1210、第二发送模块1220、获得模块1230、完成模块1240、第三发送模块1250、添加模块1260、排序模块1270、第四发送模块1280和存储模块1290中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,第一接收模块910、第一签名模块920、第一生成模块930和颁发模块940,或,第二接收模块1010、第一验证模块1020、第一获取模块1030和第一发送模块1040,或,第三接收模块1110、第二验证模块1120、第四接收模块1130和第一建立模块1140,或,第二生成模块1210、第二发送模块1220、获得模块1230、完成模块1240、第三发送模块1250、添加模块1260、排序模块1270、第四发送模块1280和存储模块1290中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
需要说明的是,本公开的实施例中用于区块链系统的节点证书颁发装置部分与本公开的实施例中用于区块链系统的节点证书颁发方法部分是相对应的,用于区块链系统的节点证书颁发装置部分的描述具体参考用于区块链系统的节点证书颁发方法部分,在此不再赘述。同样的,用于区块链系统的节点添加装置部分与本公开的实施例中用于区块链系统的节点添加方法部分是相对应的,用于区块链系统的节点添加装置部分的描述具体参考用于区块链系统的节点添加方法部分,在此不再赘述。
图13示意性示出了根据本公开实施例的适于实现上文描述的方法的电子设备的框图。图13示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图13所示,根据本公开实施例的电子设备1300包括处理器1301,其可以根据存储在只读存储器(Read-Only Memory,ROM)1302中的程序或者从存储部分1308加载到随机访问存储器(Random Access Memory,RAM)1303中的程序而执行各种适当的动作和处理。处理器1301例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器1301还可以包括用于缓存用途的板载存储器。处理器1301可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 1303中,存储有电子设备1300操作所需的各种程序和数据。处理器1301、ROM 1302以及RAM 1303通过总线1304彼此相连。处理器1301通过执行ROM 1302和/或RAM1303中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 1302和RAM 1303以外的一个或多个存储器中。处理器1301也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备1300还可以包括输入/输出(I/O)接口1305,输入/输出(I/O)接口1305也连接至总线1304。电子设备1300还可以包括连接至I/O接口1305的以下部件中的一项或多项:包括键盘、鼠标等的输入部分1306;包括诸如阴极射线管(CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分1307;包括硬盘等的存储部分1308;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1309。通信部分1309经由诸如因特网的网络执行通信处理。驱动器1310也根据需要连接至I/O接口1305。可拆卸介质1311,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1310上,以便于从其上读出的计算机程序根据需要被安装入存储部分1308。
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可渎存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1309从网络上被下载和安装,和/或从可拆卸介质1311被安装。在该计算机程序被处理器1301执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质。例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器((Erasable Programmable Read Only Memory,EPROM)或闪存)、便携式紧凑磁盘只读存储器(Computer Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 1302和/或RAM 1303和/或ROM 1302和RAM 1303以外的一个或多个存储器。
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行本公开实施例所提供的方法的程序代码,当计算机程序产品在电子设备上运行时,该程序代码用于使电子设备实现本公开实施例所提供的用于区块链系统的节点证书颁发方法或用于区块链系统的节点添加方法。
在该计算机程序被处理器1301执行时,执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分1309被下载和安装,和/或从可拆卸介质1311被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(Local Area Network,LAN)或广域网(Wide Area Networks,WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (23)
1.一种用于区块链系统的节点证书颁发方法,应用于所述区块链系统中的证书颁发机构集群中的目标证书颁发机构节点,所述证书颁发机构集群包括M个证书颁发机构节点,其中,M≥2,所述方法包括:
接收来自新增节点的证书颁发请求,其中,所述证书颁发请求包括请求信息,所述请求信息包括所述新增节点的公钥信息,所述新增节点为请求加入所述区块链系统的区块链节点,其中,所述新增节点的公钥信息是新增节点通过自签名的方式生成的加密密钥对;
响应于所述证书颁发请求,在确定允许所述新增节点加入所述区块链系统的情况下,根据所述目标证书颁发机构节点的公钥信息、所述证书颁发机构集群中的其他证书颁发机构节点的公钥信息和所述目标证书颁发机构节点的私钥信息,对所述请求信息进行签名,得到第一环签名;
根据所述第一环签名和所述新增节点的公钥信息,生成针对所述新增节点的节点证书;以及
向所述新增节点颁发所述节点证书。
2.根据权利要求1所述的方法,其中,所述新增节点包括新增轻节点,所述节点证书为轻节点证书;
所述响应于所述证书颁发请求,包括:
响应于所述证书颁发请求,接收来自N个存量节点中的每个存量节点发送的第二环签名,其中,所述第二环签名是所述存量节点根据所述存量节点的公钥信息、其他存量节点的公钥信息和所述存量节点的私钥信息,对接收到的所述新增轻节点的公钥信息进行签名生成的,N≥2;
对N个所述第二环签名进行验证,得到第一验证结果;
在确定所述第一验证结果为验证成功的情况下,确定允许所述新增轻节点加入所述区块链系统。
3.根据权利要求2所述的方法,其中,所述对N个所述第二环签名进行验证,得到第一验证结果,包括:
根据第一公钥集合分别对N个所述第二环签名进行验证,得到针对每个所述第二环签名的第二验证结果,其中,所述第一公钥集合包括所述区块链系统包括的各个所述存量节点中的每个存量节点的公钥信息;以及
根据N个所述第二验证结果,确定所述第一验证结果。
4.根据权利要求1所述的方法,其中,所述新增节点包括新增共识节点,所述节点证书为共识节点证书;
所述响应于所述证书颁发请求,包括:
接收来自R个存量共识节点中的每个存量共识节点发送的第三环签名,其中,所述第三环签名是所述存量共识节点根据所述存量共识节点的公钥信息、所述存量共识节点的私钥信息和其他存量共识节点的公钥信息,对接收到的所述新增共识节点的公钥信息进行环签名生成的,R≥2;
对R个所述第三环签名进行验证,得到第三验证结果;
在确定所述第三验证结果为验证成功的情况下,确定允许所述新增共识节点加入所述区块链系统。
5.一种用于区块链系统的节点添加方法,应用于所述区块链系统中的新增轻节点,所述方法包括:
接收来自目标证书颁发机构节点发送的所述目标证书颁发机构节点的认证根证书和针对所述新增轻节点的轻节点证书,其中,所述轻节点证书是利用权利要求2或3所述的方法得到的;
对所述目标证书颁发机构节点的认证根证书和所述新增轻节点的轻节点证书进行证书验证,得到第四验证结果;
在确定所述第四验证结果为验证成功的情况下,获取所述轻节点证书所包括的公钥信息;以及
向所述N个存量节点发送所述轻节点证书所包括的公钥信息,以使所述N个存量节点中的每个存量节点根据所述公钥信息与所述新增轻节点建立通信连接。
6.根据权利要求5所述的方法,其中,所述对所述目标证书颁发机构节点的认证根证书和所述新增轻节点的轻节点证书进行证书验证,得到第四验证结果,包括:
对所述目标证书颁发机构节点的认证根证书进行证书验证,得到第五验证结果;
在确定所述第五验证结果为验证成功的情况下,获取所述目标证书颁发机构节点的认证根证书所述包括的公钥信息;以及
根据所述目标证书颁发机构节点的认证根证书所包括的公钥信息,对所述轻节点证书进行证书验证,得到所述第四验证结果。
7.根据权利要求6所述的方法,其中,所述对所述目标证书颁发机构节点的认证根证书进行证书验证,得到第五验证结果,包括:
接收来自T个存量节点中的每个存量节点发送的认证根证书,其中,T≥2;
在确定所述T个存量节点中的每个存量节点的认证根证书与所述目标证书颁发机构节点的认证根证书均一致的情况下,确定所述第五验证结果为验证成功;以及
在确定所述T个存量节点中的至少一个存量节点的认证根证书与所述目标证书颁发机构节点的认证根证书不一致的情况下,确定所述第五验证结果为验证失败。
8.根据权利要求5所述的方法,还包括:
获取与所述新增轻节点通信连接的存量节点的区块数据;
在确定所述区块数据为多个的情况下,确定多个所述区块数据中的每个区块数据的区块高度;
在确定多个所述区块高度不一致的情况下,从多个所述区块高度中确定最高区块高度;以及
将所述新增轻节点的区块数据的区块高度设置为所述最高区块高度。
9.一种用于区块链系统的节点添加方法,应用于所述区块链系统中的新增共识节点,所述方法包括:
接收来自目标证书颁发机构节点发送的所述目标证书颁发机构节点的认证根证书、存量共识节点的存量节点证书和针对所述新增共识节点的共识节点证书,其中,所述共识节点证书是利用权利要求4所述的方法得到的;
对所述目标证书颁发机构节点的认证根证书、所述存量节点证书和所述共识节点证书进行证书验证,得到第六验证结果;
在确定所述第六验证结果为验证成功的情况下,接收来自所述证书颁发机构节点发送的网络协议地址列表,其中,所述网络协议地址列表包括所述区块链系统包括的各个所述存量共识节点中的每个存量共识节点的网络协议地址;以及
根据所述网络协议地址列表,建立与各个所述存量共识节点的通信连接。
10.根据权利要求9所述的方法,其中,所述对所述目标证书颁发机构节点的认证根证书、所述存量节点证书和所述共识节点证书进行证书验证,得到第六验证结果,包括:
对所述目标证书颁发机构节点的认证根证书进行证书验证,得到第七验证结果;
在确定所述第七验证结果为验证成功的情况下,获取所述目标证书颁发机构节点的认证根证书所包括的公钥信息;以及
根据所述目标证书颁发机构节点的认证根证书所包括的公钥信息,对所述存量节点证书和所述共识节点证书进行证书验证,得到所述第六验证结果。
11.根据权利要求10所述的方法,其中,所述对所述目标证书颁发机构节点的认证根证书进行证书验证,得到第七验证结果,包括:
接收来自S个存量共识节点中的每个存量共识节点发送的认证根证书,其中,S≥2;
在确定所述S个存量共识节点中的每个存量共识节点的认证根证书与所述目标证书颁发机构节点的认证根证书均一致的情况下,确定所述第七验证结果为验证成功;以及
在确定所述S个存量共识节点中的至少一个存量共识节点的认证根证书与所述目标证书颁发机构节点的认证根证书不一致的情况下,确定所述第七验证结果为验证失败。
12.根据权利要求9所述的方法,其中,所述网络协议地址列表是密文网络协议地址列表,所述密文网络协议地址列表是利用同态加密算法处理所述网络协议地址列表得到的;
所述根据所述网络协议地址列表,建立与各个所述存量共识节点的通信连接,包括:
针对所述密文网络协议地址列表所包括的每个密文网络协议地址,利用所述同态加密算法处理所述密文网络协议地址,得到与所述密文网络协议地址对应的网络协议地址;以及
建立与所述网络协议地址对应的存量共识节点的通信连接。
13.一种用于区块链系统的交易处理方法,应用于所述区块链系统,所述区块链系统包括隐私节点、背书节点、排序节点和验证节点,其中,所述隐私节点为权利要求5~8中任一项所述的方法中的新增轻节点或权利要求9~12中任一项所述的方法中的新增共识节点,所述方法包括:
所述隐私节点根据第二公钥集合和所述隐私节点的私钥信息对交易信息进行签名,生成第四环签名和环签名公钥镜像,其中,所述第二公钥集合包括所述区块链系统所包括的各个区块链节点中的每个区块链节点的公钥信息;
所述隐私节点向所述背书节点发送所述第四环签名和所述环签名公钥镜像;
所述背书节点根据所述背书节点的公钥信息对所述第四环签名进行验证,得到第八验证结果;
在所述背书节点确定所述第八验证结果为验证有效的情况下,所述背书节点完成交易背书;
在所述背书节点完成交易背书的情况下,向所述排序节点发送所述环签名公钥镜像;
在所述排序节点确定公钥镜像列表中不存在所述环签名公钥镜像的情况下,将所述环签名公钥镜像添加至所述公钥镜像列表;
在所述排序节点接收到来自与所述环签名公钥镜像对应的隐私节点发送的第四环签名的情况下,对所述第四环签名进行交易排序,得到排序区块;
所述排序节点向所述验证节点发送所述排序区块;以及
在所述验证节点根据所述验证节点的公钥信息验证所述第四环签名有效的情况下,将所述交易信息进行存储。
14.根据权利要求13所述的方法,还包括:
所述隐私节点与所述背书节点、所述排序节点和所述验证节点利用密钥交换算法建立通信连接。
15.一种用于区块链系统的节点证书颁发装置,设置于所述区块链系统中的证书颁发机构集群中的目标证书颁发机构节点,所述证书颁发机构集群包括M个证书颁发机构节点,其中,M≥2,所述装置包括:
第一接收模块,用于接收来自新增节点的证书颁发请求,其中,所述证书颁发请求包括请求信息,所述请求信息包括所述新增节点的公钥信息,所述新增节点为请求加入所述区块链系统的区块链节点,其中,所述新增节点的公钥信息是新增节点通过自签名的方式生成的加密密钥对;
第一签名模块,用于响应于所述证书颁发请求,在确定允许所述新增节点加入所述区块链系统的情况下,根据所述目标证书颁发机构节点的公钥信息、所述证书颁发机构集群中的其他证书颁发机构节点的公钥信息和所述目标证书颁发机构节点的私钥信息,对所述请求信息进行签名,得到第一环签名;
第一生成模块,用于根据所述第一环签名和所述新增节点的公钥信息,生成针对所述新增节点的节点证书;以及
颁发模块,用于向所述新增节点颁发所述节点证书。
16.根据权利要求15所述的装置,其中,所述新增节点包括新增轻节点,所述节点证书为轻节点证书;
所述第一签名模块,包括:
第一接收子模块,用于响应于所述证书颁发请求,接收来自N个存量节点中的每个存量节点发送的第二环签名,其中,所述第二环签名是所述存量节点根据所述存量节点的公钥信息、其他存量节点的公钥信息和所述存量节点的私钥信息,对接收到的所述新增轻节点的公钥信息进行签名生成的,N≥2;
第一验证子模块,用于对N个所述第二环签名进行验证,得到第一验证结果;
第一确定子模块,用于在确定所述第一验证结果为验证成功的情况下,确定允许所述新增轻节点加入所述区块链系统。
17.根据权利要求16所述的装置,其中,所述第一验证子模块,包括:
第一获得单元,用于根据第一公钥集合分别对N个所述第二环签名进行验证,得到针对每个所述第二环签名的第二验证结果,其中,所述第一公钥集合包括所述区块链系统包括的各个所述存量节点中的每个存量节点的公钥信息;以及
第一确定单元,用于根据N个所述第二验证结果,确定所述第一验证结果。
18.根据权利要求15所述的装置,其中,所述新增节点包括新增共识节点,所述节点证书为共识节点证书;
所述第一签名模块,包括:
第二接收子模块,用于接收来自R个存量共识节点中的每个存量共识节点发送的第三环签名,其中,所述第三环签名是所述存量共识节点根据所述存量共识节点的公钥信息、所述存量共识节点的私钥信息和其他存量共识节点的公钥信息对接收到的所述新增共识节点的公钥信息进行环签名生成的,R≥2;
第二验证子模块,用于对R个所述第三环签名进行验证,得到第三验证结果;
第二确定子模块,用于在确定所述第三验证结果为验证成功的情况下,确定允许所述新增共识节点加入所述区块链系统。
19.一种用于区块链系统的节点添加装置,设置于所述区块链系统中的新增轻节点,所述装置包括:
第二接收模块,用于接收来自目标证书颁发机构节点发送的所述目标证书颁发机构节点的认证根证书和针对所述新增轻节点的轻节点证书,其中,所述轻节点证书是利用权利要求16或17所述的装置得到的;
第一验证模块,用于对所述目标证书颁发机构节点的认证根证书和所述新增轻节点的轻节点证书进行证书验证,得到第四验证结果;
第一获取模块,用于在确定所述第四验证结果为验证成功的情况下,获取所述轻节点证书所包括的公钥信息;以及
第一发送模块,用于向所述N个存量节点发送所述轻节点证书所包括的公钥信息,以使所述N个存量节点中的每个存量节点根据所述公钥信息与所述新增轻节点建立通信连接。
20.一种用于区块链系统的节点添加装置,设置于所述区块链系统中的新增共识节点,所述装置包括:
第三接收模块,用于接收来自目标证书颁发机构节点发送的所述目标证书颁发机构节点的认证根证书、存量共识节点的存量节点证书和针对所述新增共识节点的共识节点证书,其中,所述共识节点证书是利用权利要求18所述的装置得到的;
第二验证模块,用于对所述目标证书颁发机构节点的认证根证书、所述存量节点证书和所述共识节点证书进行证书验证,得到第六验证结果;
第四接收模块,用于在确定所述第六验证结果为验证成功的情况下,接收来自所述证书颁发机构节点发送的网络协议地址列表,其中,所述网络协议地址列表包括所述区块链系统包括的各个所述存量共识节点中的每个存量共识节点的网络协议地址;以及
第一建立模块,用于根据所述网络协议地址列表,建立与各个所述存量共识节点的通信连接。
21.一种用于区块链系统的交易处理装置,设置于所述区块链系统,所述区块链系统包括隐私节点、背书节点、排序节点和验证节点,其中,所述隐私节点为权利要求19所述的装置中的新增轻节点或权利要求20所述的装置中的新增共识节点,所述装置包括:
第二生成模块,用于所述隐私节点根据第二公钥集合和所述隐私节点的私钥信息对交易信息进行签名,生成第四环签名和环签名公钥镜像,其中,所述第二公钥集合包括所述区块链系统所包括的各个区块链节点中的每个区块链节点的公钥信息;
第二发送模块,用于所述隐私节点向所述背书节点发送所述第四环签名和所述环签名公钥镜像;
获得模块,用于所述背书节点根据所述背书节点的公钥信息对所述第四环签名进行验证,得到第八验证结果;
完成模块,用于在所述背书节点确定所述第八验证结果为验证有效的情况下,所述背书节点完成交易背书;
第三发送模块,用于在所述背书节点完成交易背书的情况下,向所述排序节点发送所述环签名公钥镜像;
添加模块,用于在所述排序节点确定公钥镜像列表中不存在所述环签名公钥镜像的情况下,将所述环签名公钥镜像添加至所述公钥镜像列表;
排序模块,用于在所述排序节点接收到来自与所述环签名公钥镜像对应的隐私节点发送的第四环签名的情况下,对所述第四环签名进行交易排序,得到排序区块;
第四发送模块,用于所述排序节点向所述验证节点发送所述排序区块;以及
存储模块,用于在所述验证节点根据所述验证节点的公钥信息验证所述第四环签名有效的情况下,将所述交易信息进行存储。
22.一种电子设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1~4中任一项、权利要求5~8中任一项、所述权利要求9~12中任一项或所述权利要求13或14所述的方法。
23.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器实现权利要求1~4中任一项、权利要求5~8中任一项、所述权利要求9~12中任一项或所述权利要求13或14所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110322981.1A CN112910660B (zh) | 2021-03-25 | 2021-03-25 | 区块链系统的证书颁发方法、添加方法及交易处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110322981.1A CN112910660B (zh) | 2021-03-25 | 2021-03-25 | 区块链系统的证书颁发方法、添加方法及交易处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112910660A CN112910660A (zh) | 2021-06-04 |
CN112910660B true CN112910660B (zh) | 2023-02-24 |
Family
ID=76106704
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110322981.1A Active CN112910660B (zh) | 2021-03-25 | 2021-03-25 | 区块链系统的证书颁发方法、添加方法及交易处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112910660B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113609156B (zh) * | 2021-08-02 | 2023-12-12 | 北京百度网讯科技有限公司 | 数据的查询与写入方法、装置、电子设备及可读存储介质 |
CN114172666A (zh) * | 2021-12-10 | 2022-03-11 | 北京泰尔英福科技有限公司 | 基于区块链标识的数字证书多级处理方法及装置 |
CN113992434B (zh) * | 2021-12-24 | 2022-04-01 | 杭州趣链科技有限公司 | 通信方法、系统、电子设备及可读存储介质 |
CN114448730B (zh) * | 2022-04-07 | 2022-08-02 | 中国工商银行股份有限公司 | 基于区块链网络的报文转发方法及装置、交易处理方法 |
CN117118622A (zh) * | 2022-05-16 | 2023-11-24 | 华为技术有限公司 | 安全通信的方法与装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109547206A (zh) * | 2018-10-09 | 2019-03-29 | 深圳壹账通智能科技有限公司 | 数字证书的处理方法及相关装置 |
CN110113166A (zh) * | 2019-03-21 | 2019-08-09 | 平安科技(深圳)有限公司 | 在区块链上撤销环签名证书的方法、装置及存储介质 |
CN111131171A (zh) * | 2019-12-03 | 2020-05-08 | 深圳前海微众银行股份有限公司 | 一种基于区块链网络的节点认证方法及装置 |
CN111934884A (zh) * | 2020-07-22 | 2020-11-13 | 中国联合网络通信集团有限公司 | 一种证书管理方法及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108921694B (zh) * | 2018-06-21 | 2022-03-04 | 北京京东尚科信息技术有限公司 | 区块链管理方法和区块链节点以及计算机可读存储介质 |
US20200274859A1 (en) * | 2019-02-22 | 2020-08-27 | Beyond Identity Inc. | User authentication system with self-signed certificate and identity verification with offline root certificate storage |
CN110545169B (zh) * | 2019-07-16 | 2022-08-12 | 如般量子科技有限公司 | 基于非对称密钥池和隐式证书的区块链方法和系统 |
CN112464253A (zh) * | 2019-09-09 | 2021-03-09 | 云南天质弘耕科技有限公司 | 一种基于区块链技术的大型农产品溯源管理系统 |
US11228452B2 (en) * | 2019-09-16 | 2022-01-18 | Cisco Technology, Inc. | Distributed certificate authority |
-
2021
- 2021-03-25 CN CN202110322981.1A patent/CN112910660B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109547206A (zh) * | 2018-10-09 | 2019-03-29 | 深圳壹账通智能科技有限公司 | 数字证书的处理方法及相关装置 |
CN110113166A (zh) * | 2019-03-21 | 2019-08-09 | 平安科技(深圳)有限公司 | 在区块链上撤销环签名证书的方法、装置及存储介质 |
CN111131171A (zh) * | 2019-12-03 | 2020-05-08 | 深圳前海微众银行股份有限公司 | 一种基于区块链网络的节点认证方法及装置 |
CN111934884A (zh) * | 2020-07-22 | 2020-11-13 | 中国联合网络通信集团有限公司 | 一种证书管理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112910660A (zh) | 2021-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3742696B1 (en) | Identity management method, equipment, communication network, and storage medium | |
CN112910660B (zh) | 区块链系统的证书颁发方法、添加方法及交易处理方法 | |
CN111585749B (zh) | 数据传输方法、装置、系统及设备 | |
CN110602138B (zh) | 区块链网络的数据处理方法、装置、电子设备及存储介质 | |
CN107196966B (zh) | 基于区块链的多方信任的身份认证方法和系统 | |
US10848315B2 (en) | Contract agreement method, agreement verification method, contract agreement system, agreement verification device, contract agreement device, contract agreement program and agreement verification program | |
CN110535628B (zh) | 通过证书签发进行多方安全计算的方法及装置 | |
CN109067539B (zh) | 联盟链交易方法、设备及计算机可读存储介质 | |
CN108769010B (zh) | 节点受邀注册的方法和装置 | |
EP3891617A1 (en) | Secure consensus over a limited connection | |
CN113034135A (zh) | 基于区块链的信息处理方法、装置、设备、介质和产品 | |
CN112351037B (zh) | 用于安全通信的信息处理方法及装置 | |
CN112766962A (zh) | 证书的接收、发送方法及交易系统、存储介质、电子装置 | |
CN111767569A (zh) | 区块链的访问授权方法及节点 | |
CN112804260B (zh) | 基于区块链的信息传递方法和节点 | |
CN112446050B (zh) | 应用于区块链系统的业务数据处理方法及装置 | |
CN116074023A (zh) | 一种认证方法和通信装置 | |
CN112508576A (zh) | 基于区块链的密钥管理方法、系统及存储介质 | |
CN112231731A (zh) | 松散耦合的区块链交易方法和区块链节点 | |
CN115967508A (zh) | 数据访问控制方法及装置、设备、存储介质、程序产品 | |
CN115378587A (zh) | 密钥获取方法、装置、设备及可读存储介质 | |
CN115396115A (zh) | 区块链数据隐私保护方法、装置、设备及可读存储介质 | |
CN112507369B (zh) | 基于区块链的业务处理方法、装置、可读介质及电子设备 | |
CN113094190A (zh) | 微服务调用方法、调用装置、电子设备和存储介质 | |
CN116975810A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |