CN109767218A - 区块链证书处理方法及系统 - Google Patents
区块链证书处理方法及系统 Download PDFInfo
- Publication number
- CN109767218A CN109767218A CN201910014632.6A CN201910014632A CN109767218A CN 109767218 A CN109767218 A CN 109767218A CN 201910014632 A CN201910014632 A CN 201910014632A CN 109767218 A CN109767218 A CN 109767218A
- Authority
- CN
- China
- Prior art keywords
- node
- certificate
- transaction
- public key
- temporary
- 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.)
- Granted
Links
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种区块链证书处理方法及系统,其中方法包括:证书管理节点接收交易节点发送的节点公钥;证书管理节点随机生成一组或多组临时公钥和临时私钥;证书管理节点根据节点公钥和每一临时公钥,生成每一证书;证书管理节点向交易节点发送证书和对应的临时私钥。本发明可以生成一组或多组临时公钥和临时私钥,并根据节点公钥和每一临时公钥,生成多个证书,在生成多笔交易时,交易节点对每一笔交易附上不同的证书,在保证高处理效率的同时保护用户身份隐私,避免交易相互之间的关联关系被第三方掌握,从而实现了区块链的安全性。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及区块链证书处理方法及系统。
背景技术
近年来,在比特币的推动下区块链技术呈现快速发展。区块链系统是将数据和数据的操作记录,通过密码学算法进行加密和散列形成区块数据结构,并通过共识算法,在节点间可靠共享,保证数据可验证,不可篡改的分布式多节点系统。区块链网络由多个交易节点组成,交易节点负责相互广播交易,构建对等网络,并且参与共识,生成区块,记录交易数据。此外,联盟型区块链中一般存在一个证书管理节点,证书管理节点负责为各个参与区块链共识的交易节点签发证书。交易节点之间相互广播交易,需要在交易信息里附上证书,并通过证书认证机制,使用证书为交易签名,保证交易发送者的合法性,从而保障区块链网络的安全。证书主要包含四个要素:持有者、公钥、上级证书签名、私钥。其中持有者、公钥、上级证书签名被包含在证书结构内,会跟随证书和交易在区块链网络里流转,所以第三方只要掌握该证书,则可掌握证书持有者和证书公钥。而私钥不能对外公开,必须保密,只会被证书持有者掌握,不会跟随证书和交易在区块链网络里流转,不会被第三方掌握。
图1为现有技术中一种区块链证书处理方法示意图,涉及证书管理节点、交易节点(交易发送方)、其他交易节点(交易接收方)三种角色。并且整个系统共用一个根证书,被所有节点持有,而根证书对应的私钥只由证书管理节点掌握,该根证书及对应的私钥,是整个系统启动之前就配置好在各个节点上。交易节点(交易发送方)生成证书私钥,继而生成证书公钥后,把节点名称与证书公钥发送给证书管理节点。证书管理节点验证交易节点(交易发送方)的确持有该证书公钥所对应的证书私钥之后,根据交易节点(交易发送方)第一次请求发送过来的节点名称和证书公钥生成证书,并用根证书对应的私钥为该证书签名,然后把生成的证书返回给交易节点(交易发送方)。交易节点(交易发送方)生成交易后,使用证书私钥对交易签名,然后在交易里附上从证书管理节点返回的证书,再把交易的信息广播给整个区块链内的所有其他交易节点(交易接收方)。其他交易节点(交易接收方)收到交易信息后,先使用根证书验证证书的合法性,再使用证书里的证书公钥对交易验证签名的合法性,其中任意一项验证不通过则放弃该交易,都验证通过后,对交易进行后续的共识过程,并执行该交易,最后把交易结果记录在区块链上。
在多数情况下,交易节点(交易发送方)会同时或短时间内连续发起多笔交易,生成证书之后,交易节点(交易发送方)会为不同的交易附上同一证书,这种方法虽然处理效率很高,但是由于不同的交易使用的证书相同,交易相互之间的关联关系将很容易被第三方掌握,用户行为可能会被跟踪,造成用户隐私的泄露。
发明内容
本发明实施例提供一种区块链证书处理方法,用以为多笔交易快速生成不同的区块链证书,在保证高处理效率的同时保护用户身份隐私,避免交易相互之间的关联关系被第三方掌握,从而实现了区块链的安全性,该方法包括:
证书管理节点接收交易节点发送的节点公钥;
证书管理节点随机生成一组或多组临时公钥和临时私钥;
证书管理节点根据节点公钥和每一临时公钥,生成每一证书;
证书管理节点向交易节点发送证书和对应的临时私钥。
相较于现有技术中为同时发起的多笔不同交易附上同一证书的方案而言,本发明实施例通过证书管理节点接收交易节点发送的节点公钥,随机生成一组或多组临时公钥和临时私钥,根据节点公钥和每一临时公钥,生成每一证书,向交易节点发送证书和对应的临时私钥。本发明实施例可以生成一组或多组临时公钥和临时私钥,并根据节点公钥和每一临时公钥,生成多个证书,在生成多笔交易时,交易节点对每一笔交易附上不同的证书,在保证高处理效率的同时保护用户身份隐私,避免交易相互之间的关联关系被第三方掌握,从而实现了区块链的安全性。
本发明实施例提供一种区块链证书处理方法,用以为多笔交易快速生成不同的区块链证书,在保证高处理效率的同时保护用户身份隐私,避免交易相互之间的关联关系被第三方掌握,从而实现了区块链的安全性,该方法包括:
交易节点向证书管理节点发送节点公钥;
交易节点接收证书管理节点反馈的证书和对应的临时私钥,所述证书由证书管理节点根据节点公钥和每一临时公钥生成,所述临时公钥和临时私钥由证书管理节点随机生成一组或多组;
交易节点对每一交易,根据节点私钥和一临时私钥进行签名,且附上对应的证书。
相较于现有技术中为同时发起的多笔不同交易附上同一证书的方案而言,本发明实施例通过交易节点向证书管理节点发送节点公钥,接收证书管理节点反馈的证书和对应的临时私钥,所述证书由证书管理节点根据节点公钥和每一临时公钥生成,所述临时公钥和临时私钥由证书管理节点随机生成一组或多组,交易节点对每一交易,根据节点私钥和一临时私钥进行签名,且附上对应的证书。本发明实施例中,在生成多笔交易时,接收证书管理节点反馈的证书和对应的临时私钥,对每一笔交易附上不同的证书,在保证高处理效率的同时保护用户身份隐私,避免交易相互之间的关联关系被第三方掌握,从而实现了区块链的安全性。
本发明实施例提供一种证书管理节点,该证书管理节点包括:
公钥接收模块,用于接收交易节点发送的节点公钥;
临时加密模块,用于随机生成一组或多组临时公钥和临时私钥;
证书生成模块,用于根据节点公钥和每一临时公钥,生成每一证书;
证书发送模块,用于向交易节点发送证书和对应的临时私钥。
本发明实施例提供一种交易节点,该交易节点包括:
公钥发送模块,用于向证书管理节点发送节点公钥;
证书接收模块,用于接收证书管理节点反馈的证书和对应的临时私钥,所述证书由证书管理节点根据节点公钥和每一临时公钥生成,所述临时公钥和临时私钥由证书管理节点随机生成一组或多组;
交易签名模块,用于对每一交易,根据节点私钥和一临时私钥进行签名,且附上对应的证书。
本发明实施例提供一种区块链证书处理系统,用以为多笔交易快速生成不同的区块链证书,在保证高处理效率的同时保护用户身份隐私,避免交易相互之间的关联关系被第三方掌握,从而实现了区块链的安全性,该系统包括:上述证书管理节点和上述交易节点。
相较于现有技术中为同时发起的多笔不同交易附上同一证书的方案而言,本发明实施例提供的区块链证书处理系统,通过交易节点的公钥发送模块,向证书管理节点发送节点公钥,证书管理节点的公钥接收模块接收交易节点发送的节点公钥之后,在证书管理节点的临时加密模块中随机生成一组或多组临时公钥和临时私钥,并在证书管理节点的证书生成模块中根据节点公钥和每一临时公钥,生成每一证书,然后在证书管理节点的证书发送模块向交易节点发送证书和对应的临时私钥,交易节点的证书接收模块接收证书管理节点反馈的证书和对应的临时私钥之后,在交易节点的交易签名模块对每一交易,根据节点私钥和一临时私钥进行签名,且附上对应的证书。本发明实施例可以生成一组或多组临时公钥和临时私钥,并根据节点公钥和每一临时公钥,生成多个证书,在生成多笔交易时,交易节点对每一笔交易附上不同的证书,在保证高处理效率的同时保护用户身份隐私,避免交易相互之间的关联关系被第三方掌握,从而实现了区块链的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为现有技术中一种区块链证书处理方法示意图;
图2为本发明实施例中区块链证书处理方法示意图;
图3为现有技术中一种区块链证书的结构图;
图4为本发明实施例中区块链证书的结构图;
图5为本发明实施例中另一区块链证书处理方法示意图;
图6为本发明实施例中公私钥配对示意图;
图7为本发明实施例中区块链证书处理系统结构图;
图8为本发明实施例中证书管理节点结构图;
图9为本发明实施例中交易节点结构图;
图10为本发明实施例中区块链证书处理系统示意图;
图11为本发明实施例中区块链证书处理方法的具体流程图;
图12为本发明实施例中证书公钥和证书私钥生成方法示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
如前所述,现有技术中区块链证书处理方法如图1所示,涉及证书管理节点、交易节点(交易发送方)、其他交易节点(交易接收方)三种角色。并且整个系统共用一个根证书,被所有节点持有,而根证书对应的私钥只由证书管理节点掌握,该根证书及对应的私钥,是整个系统启动之前就配置好在各个节点上。交易节点(交易发送方)生成证书私钥,继而生成证书公钥后,把节点名称与证书公钥发送给证书管理节点。证书管理节点验证交易节点(交易发送方)的确持有该证书公钥所对应的证书私钥之后,根据交易节点(交易发送方)第一次请求发送过来的节点名称和证书公钥生成证书,并用根证书对应的私钥为该证书签名,然后把生成的证书返回给交易节点(交易发送方)。交易节点(交易发送方)生成交易后,使用证书私钥对交易签名,然后在交易里附上从证书管理节点返回的证书,再把交易的信息广播给整个区块链内的所有其他交易节点(交易接收方)。其他交易节点(交易接收方)收到交易信息后,先使用根证书验证证书的合法性,再使用证书里的证书公钥对交易验证签名的合法性,其中任意一项验证不通过则放弃该交易,都验证通过后,对交易进行后续的共识过程,并执行该交易,最后把交易结果记录在区块链上。发明人发现,在多数情况下交易节点(交易发送方)会同时或短时间内连续发起多笔交易,生成证书之后,交易节点(交易发送方)会为不同的交易附上同一证书,这种方法虽然处理效率很高,但是由于不同的交易使用的证书相同,交易相互之间的关联关系将很容易被第三方掌握,用户行为可能会被跟踪,造成用户隐私的泄露。如果同一交易节点(交易发送方)为不同的交易附上不同的证书,则需要为每一个交易按上述方法生成唯一一个证书,而上述方法在生成证书方面需要交易节点(交易发送方)与证书管理节点进行至少两次交互,而且其中涉及加密和解密的步骤,生成效率较低,不适合频繁使用的场景。
基于此,为了快速生成不同的区块链证书,保证高处理效率的同时保护用户身份隐私,避免交易相互之间的关联关系被第三方掌握,实现区块链的安全性,本发明实施例提供一种区块链证书处理方法,如图2所示,该方法可以包括:
步骤201、证书管理节点接收交易节点发送的节点公钥;
步骤202、证书管理节点随机生成一组或多组临时公钥和临时私钥;
步骤203、证书管理节点根据节点公钥和每一临时公钥,生成每一证书;
步骤204、证书管理节点向交易节点发送证书和对应的临时私钥。
由图2所示可以得知,本发明实施例通过证书管理节点接收交易节点发送的节点公钥,随机生成一组或多组临时公钥和临时私钥,根据节点公钥和每一临时公钥,生成每一证书,向交易节点发送证书和对应的临时私钥。本发明实施例可以生成一组或多组临时公钥和临时私钥,并根据节点公钥和每一临时公钥,生成多个证书,在生成多笔交易时,交易节点对每一笔交易附上不同的证书,在保证高处理效率的同时保护用户身份隐私,避免交易相互之间的关联关系被第三方掌握,从而实现了区块链的安全性。并且,在整个匿名证书的签发过程中,证书管理节点与交易节点只需要经过一次网络交互,减少了系统网络开销,提高了系统性能,并且在该过程中,并没有加密和解密的环节,降低了系统开销,进一步提高了系统性能。
具体实施时,证书管理节点接收交易节点发送的节点公钥。
实施例中,证书管理节点负责进行证书的签发,它可以是一台服务器或多台服务器组成的集群;交易节点是指广播、执行、存储交易的网络节点,一般是各联盟链成员的可信服务器、工作站等,负责把用户的请求封装成交易再广播到其他交易节点,或者根据区块链共识算法的规则对其他交易节点广播的交易进行共识及执行交易,生成区块并进行持久化保存。在交易节点中保存了唯一一组本节点的节点公钥和节点私钥,证书管理节点会接收交易节点发送的节点公钥。
具体实施时,证书管理节点随机生成一组或多组临时公钥和临时私钥。发明人发现,在多数情况下,交易节点(交易发送方)会同时或短时间内连续发起多笔交易,采用现有的区块链证书处理方法生成证书之后,交易节点(交易发送方)会为不同的交易附上同一证书,这种方法虽然处理效率很高,但是由于不同的交易使用的证书相同,交易相互之间的关联关系将很容易被第三方掌握,用户行为可能会被跟踪,造成用户隐私的泄露。因此,本发明实施例通过随机生成一组或多组临时公钥和临时私钥,可以根据节点公钥和每一临时公钥,生成多个证书,在生成多笔交易时,交易节点对每一笔交易附上不同的证书,在保证高处理效率的同时保护用户身份隐私,避免交易相互之间的关联关系被第三方掌握,从而实现了区块链的安全性。
实施例中,使用系统配置的基于椭圆曲线的加密算法(ECDSA或者SM2),生成临时公私钥对。首先随机生成一个或多个临时私钥,然后按如下公式生成临时私钥对应的临时公钥:
P1=d1*G (1)
其中,P1为临时公钥,d1为临时私钥,G为N阶椭圆曲线E的一个参数,*表示椭圆曲线算法中的点乘运算。
具体实施时,证书管理节点根据节点公钥和每一临时公钥,生成每一证书。
实施例中,证书管理节点首先根据节点公钥和每一临时公钥,进行基于椭圆曲线的加密算法在公钥侧的同态加法运算,按如下公式生成临时公钥对应的证书公钥:
P3=P1+P2 (2)
其中,P3为证书公钥,P1为临时公钥,P2为节点公钥。
实施例中,生成临时公钥对应的证书公钥之后,根据证书公钥,生成对应的证书。基于生成的证书公钥,封装为x509格式的数字证书,使用根证书私钥签名。
实施例中,生成的证书为匿名证书。发明人发现,采用现有技术中区块链证书处理方生成的证书里直接体现交易节点(交易发送方)的节点名称,使用该证书签名的交易的发送方将被其他节点获悉,用户行为可能会被跟踪,造成用户隐私的泄露,无法做到交易匿名性。因此,在本发明实施例中,证书管理节点不需要获取交易节点的节点名称,证书管理节点保存一个根证书及其私钥,所有交易节点均保存该同一个根证书以及各自的节点私钥和节点公钥,证书管理节点与交易节点协商生成证书公钥,从而生成匿名证书,并使用根证书私钥对生成的匿名证书签名,证书中没有体现证书持有者。匿名证书在交易节点发起交易时用于对交易进行签名,并被赋在交易上,随交易一并在区块链网络内流转。匿名证书具有匿名性,只用来判断所属交易的合法性,无法体现交易发起者的身份。并且,每个匿名证书只为一笔交易签名,为一次性使用证书,在同一个交易节点发起多笔交易,所使用的匿名证书都不相同,无法通过匿名证书跟踪用户行为,进一步起到对用户隐私的保护作用。此外,因为在匿名证书公钥中“混入”节点公钥的成分,所以只有对应的节点私钥的真正持有者,即该节点私钥对应的交易节点,才有可能生成合法的匿名证书私钥,保证了该匿名证书的安全性。需要说明的是,根证书私钥可加密后存储在文件系统,也可以使用外部的专用设备保存,并链接至证书管理节点。根证书作为匿名证书的上级证书,根证书私钥用于签发匿名证书,即根证书私钥用于对生成的匿名证书进行签名。
举一例,图3为现有技术中区块链证书的结构图,生成的证书结构内主要包含三要素:持有者为交易节点(交易发送方)的节点名称,公钥为交易节点(交易发送方)的节点公钥,上级证书签名为证书管理节点的签名。在生成的证书里直接体现交易发送方的节点名称,使用该证书签名的交易的发送方将被其他节点获悉,无法做到交易匿名性。本发明实施例中区块链证书的结构如图4所示,由证书管理节点与交易节点2协商生成的匿名证书公钥,会被用于封装为x509格式的匿名证书。从该匿名证书的持有者要素,无法获取所属交易发起者的身份信息,保证了交易匿名性。
具体实施时,证书管理节点向交易节点发送证书和对应的临时私钥。
实施例中,证书管理节点会向交易节点发送证书和对应的临时私钥,交易节点利用本交易节点的节点私钥和证书管理节点发送的临时私钥,进行基于椭圆曲线的加密算法在私钥侧的同态加法运算,生成证书私钥。证书私钥用于对本交易节点生成的交易进行签名,并为该交易附上证书管理节点发送的对应的证书。
实施例中,证书管理节点可以记录下节点公钥与匿名证书的对应关系,以便后续对交易及匿名证书进行审计。
为了快速生成不同的区块链证书,保证高处理效率的同时保护用户身份隐私,避免交易相互之间的关联关系被第三方掌握,实现区块链的安全性,本发明实施例还提供一种区块链证书处理方法,如图5所示,该方法可以包括:
步骤501、交易节点向证书管理节点发送节点公钥;
步骤502、交易节点接收证书管理节点反馈的证书和对应的临时私钥,所述证书由证书管理节点根据节点公钥和每一临时公钥生成,所述临时公钥和临时私钥由证书管理节点随机生成一组或多组;
步骤503、交易节点对每一交易,根据节点私钥和一临时私钥进行签名,且附上对应的证书。
由图5所示可以得知,本发明实施例通过交易节点向证书管理节点发送节点公钥,接收证书管理节点反馈的证书和对应的临时私钥,所述证书由证书管理节点根据节点公钥和每一临时公钥生成,所述临时公钥和临时私钥由证书管理节点随机生成一组或多组,交易节点对每一交易,根据节点私钥和一临时私钥进行签名,且附上对应的证书。本发明实施例中,在生成多笔交易时,接收证书管理节点反馈的证书和对应的临时私钥,对每一笔交易附上不同的证书,在保证高处理效率的同时保护用户身份隐私,避免交易相互之间的关联关系被第三方掌握,从而实现了区块链的安全性。
具体实施时,交易节点向证书管理节点发送节点公钥。
实施例中,交易节点向证书管理节点发送节点公钥之前,首先按如下公式获得节点公钥:
P2=d2*G (3)
其中,P2为节点公钥,d2为节点私钥,G为N阶椭圆曲线E的一个参数,*表示椭圆曲线算法中的点乘运算。
实施例中,获得节点公钥之后,在交易节点中得到了唯一一组本节点的节点公钥和节点私钥,然后由交易节点向证书管理节点发送节点公钥。
具体实施时,交易节点接收证书管理节点反馈的证书和对应的临时私钥,所述证书由证书管理节点根据节点公钥和每一临时公钥生成,所述临时公钥和临时私钥由证书管理节点随机生成一组或多组。
实施例中,交易节点接收证书管理节点反馈的证书和对应的临时私钥,用于对生成的一笔或多笔交易进行签名。
具体实施时,交易节点对每一交易,根据节点私钥和一临时私钥进行签名,且附上对应的证书。
实施例中,交易节点对每一交易,首先根据节点私钥和一临时私钥,按如下公式生成该临时私钥对应的证书私钥:
d3=d1+d2 (4)
其中,d3为证书私钥,d1为临时私钥,d2为节点私钥。
实施例中,生成该临时私钥对应的证书私钥之后,使用证书私钥进行签名,且附上与证书私钥对应的证书。
实施例中,由于临时公钥与临时私钥配对,节点公钥与节点私钥配对,根据基于椭圆曲线的加密算法的公私钥对加法同态特性,生成的匿名证书公钥与匿名证书私钥必然配对。具体地,如图6所示,首先定义公共的椭圆曲线E,阶N、基点G两个公开参数。证书管理节点的生成临时私钥d1,交易节点存储着一个节点私钥d2,临时公钥P1和节点公钥P2可按公式(1)和公式(3)计算:
证书管理节点把临时公钥P1,以椭圆曲线算法中的“点加”运算,加上节点公钥P2,按公式(2)生成临时公钥对应的证书公钥P3,交易节点把节点私钥d2,加上临时私钥d1,按公式(4)生成该临时私钥对应的证书私钥d3。根据椭圆曲线点乘运算的分配律:
P3=P1+P2=d1*G+d2*G=(d1+d2)*G=d3*G (5)
P3即为在椭圆曲线上从基点G开始移动d3次得到的点,满足椭圆曲线算法对公私钥对的定义,所以P3和d3是合法的公私钥对。
需要说明的是,可以在交易节点需要发送交易时进行,也可以提前进行,批量生成证书和证书公私钥对,待交易节点需要发送交易时,再将生成的证书附在交易中。
基于同一发明构思,本发明实施例还提供了一种区块链证书处理系统,如下面的实施例所述。由于这些解决问题的原理与区块链证书处理方法相似,因此系统的实施可以参见方法的实施,重复之处不再赘述。
图7-图9为本发明实施例中区块链证书处理系统、证书管理节点以及交易节点的结构图,如图7-图9所示,该区块链证书处理系统包括:证书管理节点701和交易节点702。其中,该证书管理节点701包括:
公钥接收模块801,用于接收交易节点发送的节点公钥;
临时加密模块802,用于随机生成一组或多组临时公钥和临时私钥;
证书生成模块803,用于根据节点公钥和每一临时公钥,生成每一证书;
证书发送模块804,用于向交易节点发送证书和对应的临时私钥。
该交易节点702包括:
公钥发送模块901,用于向证书管理节点发送节点公钥;
证书接收模块902,用于接收证书管理节点反馈的证书和对应的临时私钥,所述证书由证书管理节点根据节点公钥和每一临时公钥生成,所述临时公钥和临时私钥由证书管理节点随机生成一组或多组;
交易签名模块903,用于对每一交易,根据节点私钥和一临时私钥进行签名,且附上对应的证书。
由图7-图9所示可以得知,本发明实施例提供的区块链证书处理系统,通过交易节点的公钥发送模块,向证书管理节点发送节点公钥,证书管理节点的公钥接收模块接收交易节点发送的节点公钥之后,在证书管理节点的临时加密模块中随机生成一组或多组临时公钥和临时私钥,并在证书管理节点的证书生成模块中根据节点公钥和每一临时公钥,生成每一证书,然后在证书管理节点的证书发送模块向交易节点发送证书和对应的临时私钥,交易节点的证书接收模块接收证书管理节点反馈的证书和对应的临时私钥之后,在交易节点的交易签名模块对每一交易,根据节点私钥和一临时私钥进行签名,且附上对应的证书。本发明实施例可以生成一组或多组临时公钥和临时私钥,并根据节点公钥和每一临时公钥,生成多个证书,在生成多笔交易时,交易节点对每一笔交易附上不同的证书,在保证高处理效率的同时保护用户身份隐私,避免交易相互之间的关联关系被第三方掌握,从而实现了区块链的安全性。
实施例中,区块链匿名证书处理系统中,包括一个证书管理节点和多个交易节点,如图10所示,其中证书管理节点与所有交易节点之间以及所有交易节点相互之间进行P2P连接。
下面给出一个具体实施例,说明本发明实施例中,如何进行区块链证书处理。如图11所示,在本具体实施例中,交易节点向证书管理节点发送节点公钥,并请求证书管理节点签发匿名证书,证书管理节点随机生成临时私钥,根据生成的临时私钥,进一步生成临时公钥;证书管理节点把临时公钥加上接收的交易节点的节点公钥,从而合成得到匿名证书公钥,这里定义公共的椭圆曲线E,阶N、基点G两个公开参数;证书管理节点基于合成的匿名证书公钥,封装成x509格式的证书,其中持有者一栏不填充数据,所以该证书为匿名证书,然后用根证书对应的私钥为该证书签名,保证该证书的有效性;最后把临时私钥和匿名证书,返回给交易节点;交易节点把节点私钥加上从证书管理节点返回的临时私钥,从而合成得到匿名证书私钥,如图12所示,其中,匿名证书私钥和匿名证书公钥满足椭圆曲线加密算法对公私钥对的定义,是一对合法的公钥和私钥;使用生成的匿名证书私钥进行签名的交易,可以使用匿名证书公钥进行验签,并得到正确的结果;交易节点使用匿名证书私钥对该交易签名,并且把对应的匿名证书附加在交易信息里;交易节点向其他交易节点广播该交易,其他交易节点先使用根证书验证匿名证书,再使用交易中的匿名证书,对交易进行验签,如果验证匿名证书不通过或者该交易验签不通过,其他交易节点会放弃该交易,如果验证匿名证书通过并且该交易验签通过,其他交易节点会对交易进行共识,并执行该交易,根据交易的执行结果,组装成区块,持久化记录到区块链账本上,也即,交易节点对交易的合法性进行判断,在合法性验证通过后再进行三阶段的拜占庭容错(PBFT)共识,并根据共识的结果确定交易的执行顺序。在交易顺序确定后,对应的交易将被调用。其中,证书管理节点可以记录下节点公钥与匿名证书的对应关系,以便后续对交易及匿名证书进行审计。根据上述方法,证书管理节点在掌握有限信息的情况下,为交易节点生成了匿名证书公钥,进而签发了匿名证书。由于匿名证书没有体现证书持有者,所以无法从匿名证书本身获取所属交易的发送方信息,对交易发送者的身份起到了隐私保护的作用。在整个匿名证书的签发过程中,证书管理节点与交易节点的网络交互中并没有直接体现节点名称与匿名证书公钥或者匿名证书本身的关联关系,有效保障了所签发证书的匿名性。所签发的每一个匿名证书,只会被交易节点用于为唯一的一笔交易签名,以保证该交易的合法性。由于同一个交易节点所发送的不同交易,均使用不同的匿名证书签名,所以无法对交易进行数据分析,无法跟踪到用户行为,难以推导出用户身份,进一步对交易发送者的身份起到了隐私保护的作用。在整个匿名证书的签发过程中,证书管理节点与交易节点只需要经过一次网络交互,减少了系统网络开销,提高了系统性能,并且在该过程中,并没有加密和解密的环节,降低了系统开销,进一步提高了系统性能。另外,还可以在证书管理节点记录下节点公钥与匿名证书的对应关系,以便后续对交易及匿名证书进行审计。
综上所述,本发明实施例提供一种区块链证书处理方法,通过证书管理节点接收交易节点发送的节点公钥,随机生成一组或多组临时公钥和临时私钥,根据节点公钥和每一临时公钥,生成每一证书,向交易节点发送证书和对应的临时私钥。本发明实施例可以生成一组或多组临时公钥和临时私钥,并根据节点公钥和每一临时公钥,生成多个证书,在生成多笔交易时,交易节点对每一笔交易附上不同的证书,在保证高处理效率的同时保护用户身份隐私,避免交易相互之间的关联关系被第三方掌握,从而实现了区块链的安全性。实施例中,证书管理节点不需要获取交易节点的节点名称,证书管理节点保存一个根证书及其私钥,所有交易节点均保存该同一个根证书以及各自的节点私钥和节点公钥,证书管理节点与交易节点协商生成证书公钥,从而生成匿名证书,并使用根证书私钥对生成的匿名证书签名,证书中没有体现证书持有者。匿名证书在交易节点发起交易时用于对交易进行签名,并被赋在交易上,随交易一并在区块链网络内流转。匿名证书具有匿名性,只用来判断所属交易的合法性,无法体现交易发起者的身份;每个匿名证书只为一笔交易签名,为一次性使用证书,在同一个交易节点发起多笔交易,所使用的匿名证书都不相同,无法通过匿名证书跟踪用户行为,进一步起到对用户隐私的保护作用;在整个匿名证书的签发过程中,证书管理节点与交易节点只需要经过一次网络交互,减少了系统网络开销,提高了系统性能,并且在该过程中,并没有加密和解密的环节,降低了系统开销,进一步提高了系统性能;证书管理节点还可以记录下节点公钥与匿名证书的对应关系,以便后续对交易及匿名证书进行审计。
本发明实施例还提供另一种区块链证书处理方法,通过交易节点向证书管理节点发送节点公钥,接收证书管理节点反馈的证书和对应的临时私钥,所述证书由证书管理节点根据节点公钥和每一临时公钥生成,所述临时公钥和临时私钥由证书管理节点随机生成一组或多组,交易节点对每一交易,根据节点私钥和一临时私钥进行签名,且附上对应的证书。本发明实施例中,在生成多笔交易时,接收证书管理节点反馈的证书和对应的临时私钥,对每一笔交易附上不同的证书,在保证高处理效率的同时保护用户身份隐私,避免交易相互之间的关联关系被第三方掌握,从而实现了区块链的安全性。实施例中,临时公钥与临时私钥配对,节点公钥与节点私钥配对,根据基于椭圆曲线的加密算法的公私钥对加法同态特性,生成的匿名证书公钥与匿名证书私钥必然配对。
本发明实施例还提供一种区块链证书处理系统、证书管理节点以及交易节点,通过交易节点的公钥发送模块,向证书管理节点发送节点公钥,证书管理节点的公钥接收模块接收交易节点发送的节点公钥之后,在证书管理节点的临时加密模块中,随机生成一组或多组临时公钥和临时私钥,并在证书管理节点的证书生成模块中根据节点公钥和每一临时公钥,生成每一证书,然后在证书管理节点的证书发送模块向交易节点发送证书和对应的临时私钥,交易节点的证书接收模块接收证书管理节点反馈的证书和对应的临时私钥之后,在交易节点的交易签名模块对每一交易,根据节点私钥和一临时私钥进行签名,且附上对应的证书。本发明实施例可以生成一组或多组临时公钥和临时私钥,并根据节点公钥和每一临时公钥,生成多个证书,在生成多笔交易时,交易节点对每一笔交易附上不同的证书,在保证高处理效率的同时保护用户身份隐私,避免交易相互之间的关联关系被第三方掌握,从而实现了区块链的安全性。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (11)
1.一种区块链证书处理方法,其特征在于,包括:
证书管理节点接收交易节点发送的节点公钥;
证书管理节点随机生成一组或多组临时公钥和临时私钥;
证书管理节点根据节点公钥和每一临时公钥,生成每一证书;
证书管理节点向交易节点发送证书和对应的临时私钥。
2.如权利要求1所述的方法,其特征在于,随机生成一组或多组临时公钥和临时私钥,包括:
随机生成一个或多个临时私钥;
按如下公式生成临时私钥对应的临时公钥:
P1=d1*G
其中,P1为临时公钥,d1为临时私钥,G为N阶椭圆曲线E的一个参数,*表示椭圆曲线算法中的点乘运算。
3.如权利要求1所述的方法,其特征在于,根据节点公钥和每一临时公钥,生成每一证书,包括:
根据节点公钥和每一临时公钥,按如下公式生成临时公钥对应的证书公钥:
P3=P1+P2
其中,P3为证书公钥,P1为临时公钥,P2为节点公钥;
根据证书公钥,生成对应的证书。
4.一种区块链证书处理方法,其特征在于,包括:
交易节点向证书管理节点发送节点公钥;
交易节点接收证书管理节点反馈的证书和对应的临时私钥,所述证书由证书管理节点根据节点公钥和每一临时公钥生成,所述临时公钥和临时私钥由证书管理节点随机生成一组或多组;
交易节点对每一交易,根据节点私钥和一临时私钥进行签名,且附上对应的证书。
5.如权利要求4所述的方法,其特征在于,交易节点向证书管理节点发送节点公钥之前,还包括:
交易节点按如下公式获得节点公钥:
P2=d2*G
其中,P2为节点公钥,d2为节点私钥,G为N阶椭圆曲线E的一个参数,*表示椭圆曲线算法中的点乘运算。
6.如权利要求4所述的方法,其特征在于,交易节点对每一交易,根据节点私钥和一临时私钥进行签名,且附上对应的证书,包括:
交易节点对每一交易,根据节点私钥和一临时私钥,按如下公式生成该临时私钥对应的证书私钥:
d3=d1+d2
其中,d3为证书私钥,d1为临时私钥,d2为节点私钥;
使用证书私钥进行签名,且附上与证书私钥对应的证书。
7.一种证书管理节点,其特征在于,该证书管理节点包括:
公钥接收模块,用于接收交易节点发送的节点公钥;
临时加密模块,用于随机生成一组或多组临时公钥和临时私钥;
证书生成模块,用于根据节点公钥和每一临时公钥,生成每一证书;
证书发送模块,用于向交易节点发送证书和对应的临时私钥。
8.一种交易节点,其特征在于,该交易节点包括:
公钥发送模块,用于向证书管理节点发送节点公钥;
证书接收模块,用于接收证书管理节点反馈的证书和对应的临时私钥,所述证书由证书管理节点根据节点公钥和每一临时公钥生成,所述临时公钥和临时私钥由证书管理节点随机生成一组或多组;
交易签名模块,用于对每一交易,根据节点私钥和一临时私钥进行签名,且附上对应的证书。
9.一种区块链证书处理系统,其特征在于,包括:证书管理节点和交易节点,其中所述证书管理节点包括权利要求7所述的证书管理节点,所述交易节点包括权利要求8所述的交易节点。
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6任一所述方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1至6任一所述方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910014632.6A CN109767218B (zh) | 2019-01-08 | 2019-01-08 | 区块链证书处理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910014632.6A CN109767218B (zh) | 2019-01-08 | 2019-01-08 | 区块链证书处理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109767218A true CN109767218A (zh) | 2019-05-17 |
CN109767218B CN109767218B (zh) | 2021-11-02 |
Family
ID=66453512
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910014632.6A Active CN109767218B (zh) | 2019-01-08 | 2019-01-08 | 区块链证书处理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109767218B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110264200A (zh) * | 2019-05-29 | 2019-09-20 | 中国工商银行股份有限公司 | 区块链数据处理方法及装置 |
CN110532810A (zh) * | 2019-08-30 | 2019-12-03 | 北京海益同展信息科技有限公司 | 信息处理方法、装置、电子设备及可读存储介质 |
CN111064734A (zh) * | 2019-12-25 | 2020-04-24 | 中国科学院信息工程研究所 | 一种区块链系统用户身份匿名、可追踪方法及相应存储介质与电子装置 |
CN111556035A (zh) * | 2020-04-20 | 2020-08-18 | 中国工商银行股份有限公司 | 多认证节点的联盟链系统及方法 |
CN111934884A (zh) * | 2020-07-22 | 2020-11-13 | 中国联合网络通信集团有限公司 | 一种证书管理方法及装置 |
CN112182627A (zh) * | 2020-10-27 | 2021-01-05 | 杭州云链趣链数字科技有限公司 | 基于移动设备的区块链数字证书管理方法和系统 |
CN113326529A (zh) * | 2021-06-24 | 2021-08-31 | 北京八分量信息科技有限公司 | 一种基于可信计算的去中心化架构统一方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108111314A (zh) * | 2018-01-19 | 2018-06-01 | 中链科技有限公司 | 数字证书的生成和校验方法及设备 |
CN109067521A (zh) * | 2018-07-27 | 2018-12-21 | 天津大学 | 一种基于区块链的公钥分发方法 |
-
2019
- 2019-01-08 CN CN201910014632.6A patent/CN109767218B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108111314A (zh) * | 2018-01-19 | 2018-06-01 | 中链科技有限公司 | 数字证书的生成和校验方法及设备 |
CN109067521A (zh) * | 2018-07-27 | 2018-12-21 | 天津大学 | 一种基于区块链的公钥分发方法 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110264200A (zh) * | 2019-05-29 | 2019-09-20 | 中国工商银行股份有限公司 | 区块链数据处理方法及装置 |
CN110264200B (zh) * | 2019-05-29 | 2021-11-19 | 中国工商银行股份有限公司 | 区块链数据处理方法及装置 |
CN110532810A (zh) * | 2019-08-30 | 2019-12-03 | 北京海益同展信息科技有限公司 | 信息处理方法、装置、电子设备及可读存储介质 |
CN110532810B (zh) * | 2019-08-30 | 2021-05-25 | 北京海益同展信息科技有限公司 | 信息处理方法、装置、电子设备及可读存储介质 |
CN111064734A (zh) * | 2019-12-25 | 2020-04-24 | 中国科学院信息工程研究所 | 一种区块链系统用户身份匿名、可追踪方法及相应存储介质与电子装置 |
CN111556035A (zh) * | 2020-04-20 | 2020-08-18 | 中国工商银行股份有限公司 | 多认证节点的联盟链系统及方法 |
CN111934884A (zh) * | 2020-07-22 | 2020-11-13 | 中国联合网络通信集团有限公司 | 一种证书管理方法及装置 |
CN111934884B (zh) * | 2020-07-22 | 2023-03-14 | 中国联合网络通信集团有限公司 | 一种证书管理方法及装置 |
CN112182627A (zh) * | 2020-10-27 | 2021-01-05 | 杭州云链趣链数字科技有限公司 | 基于移动设备的区块链数字证书管理方法和系统 |
CN113326529A (zh) * | 2021-06-24 | 2021-08-31 | 北京八分量信息科技有限公司 | 一种基于可信计算的去中心化架构统一方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109767218B (zh) | 2021-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106961336B (zh) | 一种基于sm2算法的密钥分量托管方法和系统 | |
CN107911216B (zh) | 一种区块链交易隐私保护方法及系统 | |
CN109767218A (zh) | 区块链证书处理方法及系统 | |
TWI760149B (zh) | 決定用於資訊的安全交換的共同私密,及階層化的決定性加密金鑰 | |
CN110022217B (zh) | 一种基于区块链的广告传媒业务数据可信存证系统 | |
CN109840771A (zh) | 一种基于同态加密的区块链隐私保护系统及其方法 | |
Wang et al. | Security analysis of a single sign-on mechanism for distributed computer networks | |
CN107612934A (zh) | 一种基于密钥分割的区块链移动端计算系统和方法 | |
CN109309565A (zh) | 一种安全认证的方法及装置 | |
CN109309569A (zh) | 基于sm2算法的协同签名的方法、装置及存储介质 | |
CN106713336B (zh) | 基于双重非对称加密技术的电子数据保管系统及方法 | |
CN108768652A (zh) | 一种可抗量子攻击的联盟区块链底层加密方法 | |
CN114362993B (zh) | 一种区块链辅助的车联网安全认证方法 | |
CN110365662B (zh) | 业务审批方法及装置 | |
CN109741068A (zh) | 网银跨行签约方法、装置及系统 | |
CN109861956B (zh) | 基于状态通道的数据验证系统、方法、装置及设备 | |
CN111162912B (zh) | 一种适用于区块链的验证方法、装置及存储介质 | |
CN111429138A (zh) | 区块链节点数据安全交互方法及第一交互节点 | |
CN114710275B (zh) | 物联网环境下基于区块链的跨域认证和密钥协商方法 | |
Zhang et al. | NDN-MPS: supporting multiparty authentication over named data networking | |
CN111565108B (zh) | 签名处理方法、装置及系统 | |
CN110809000B (zh) | 基于区块链网络的业务交互方法、装置、设备及存储介质 | |
CN108965278A (zh) | 交易请求处理方法及装置 | |
Emura et al. | Group Signatures with Message‐Dependent Opening: Formal Definitions and Constructions | |
CN114254284B (zh) | 数字证书生成、身份认证方法及量子ca认证中心与系统 |
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 |