CN114297678A - 一种联盟链系统运行方法、装置、设备及存储介质 - Google Patents
一种联盟链系统运行方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114297678A CN114297678A CN202111604147.8A CN202111604147A CN114297678A CN 114297678 A CN114297678 A CN 114297678A CN 202111604147 A CN202111604147 A CN 202111604147A CN 114297678 A CN114297678 A CN 114297678A
- Authority
- CN
- China
- Prior art keywords
- key
- public key
- chain system
- signature
- client
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 62
- 238000012795 verification Methods 0.000 claims abstract description 35
- 230000006854 communication Effects 0.000 claims abstract description 23
- 230000008569 process Effects 0.000 claims abstract description 22
- 238000004891 communication Methods 0.000 claims abstract description 20
- 238000004088 simulation Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 10
- 230000000694 effects Effects 0.000 claims description 7
- 238000010276 construction Methods 0.000 claims description 4
- 230000007613 environmental effect Effects 0.000 claims description 3
- 101100129336 Dictyostelium discoideum malA gene Proteins 0.000 description 4
- 101100190460 Shigella flexneri pic gene Proteins 0.000 description 4
- 241001591005 Siga Species 0.000 description 4
- 101150086151 hrdB gene Proteins 0.000 description 4
- 230000010354 integration Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 101150102864 rpoD gene Proteins 0.000 description 4
- 101150117326 sigA gene Proteins 0.000 description 4
- 101150057107 sigB gene Proteins 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000013475 authorization Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- -1 and tpkA Proteins 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请公开了一种联盟链系统运行方法、装置、设备及存储介质。该方法包括:联盟链系统内各节点进行无证书公钥密码体系的密钥初始化,以得到基于无证书公钥密码体系的联盟链系统;所述联盟链系统包括多个客户端节点、多个服务端节点和多个密钥生成中心节点;通过所述联盟链系统的所述客户端构建合约代码运行环境以实现智能合约调用。通过在联盟链系统内各节点进行无证书公钥密码体系的密钥初始化,得到基于无证书公钥密码体系的联盟链系统,在保证联盟链系统的节点安全认证和通信的基础上,避免复杂的证书验证流程,减轻系统的密钥管理和存储负担,提升系统的运行效率,并且可以有效避免标识密码体系中的密钥托管问题,使整个联盟链系统更加安全。
Description
技术领域
本发明涉及区块链技术领域,特别涉及一种联盟链系统运行方法、装置、设备及存储介质。
背景技术
区块链是一种不可改的分布式共享账本。在区块链中,数据保存在多方,利用共识算法实现多节点数据的一致性;在区块链中,数据只能追加不能删除或修改;新型区块链是可编程的,利用智能合约可以将业务规则编码到区块链中,规则(代码)像数据一样不能删除或修改,代码在调用时自动执行,不能跳过,执行的结果也写入区块链。由于数据保存在多方,链上数据不可篡改,所以利用区块链可实现多方之间的可信数据共享。联盟链是区块链的一种,在联盟链中,相关节点只有在经过授权许可后才可以加入区块链网络,并按规则参与共识和读写区块数据。现有技术中,基于联盟链的项目体系通常采用公钥证书管理,如最通用的联盟链系统是IBM公司开源的超级账本系统,超级账本系统基于成熟的公钥证书密码体系来实现其系统的授权许可功能,虽然可以有效控制系统节点和用户的权限,但公钥证书管理需要存储信任CA(Certificate Authority,证书颁发机构)的根证书、自身的证书和对应的私钥才能完成基本的认证,庞杂的证书还是为超级账本系统带来了极大的证书管理和存储负担。
发明内容
有鉴于此,本发明的目的在于提供一种联盟链系统运行方法、装置、设备及介质,能够减轻联盟链系统的密码管理和存储开销。其具体方案如下:
第一方面,本申请公开了一种联盟链系统运行方法,包括:
联盟链系统内各节点进行无证书公钥密码体系的密钥初始化,以得到基于无证书公钥密码体系的联盟链系统;所述联盟链系统包括多个客户端节点、多个服务端节点和多个密钥生成中心节点;
通过所述联盟链系统的所述客户端构建合约代码运行环境以实现智能合约调用。
可选的,所述联盟链系统内各节点进行无证书公钥密码体系的密钥初始化,包括:
通过所述联盟链系统内密钥生成中心节点利用密钥生成算法,分别为每个所述服务端节点以及所述客户端节点生成对应的私钥部分字段和公钥部分字段;
公开所述公钥部分字段,以便每个所述服务端节点以及所述客户端节点根据对应的所述私钥部分字段和公钥部分字段,生成自身对应的私钥和公钥。
可选的,所述通过所述联盟链系统的所述客户端构建合约代码运行环境以实现智能合约调用,包括:
通过所述客户端根据目标合约代码对应的目标特征参数构建所述目标合约代码的模拟运行环境,并基于所述模拟运行环境对应的环境信息和所述目标特征参数得到第一交易信息;
按照预设交易流程将所述第一交易信息发送给所述服务端,并在检测到本地新保存的区块中包含所述第一交易信息时控制所述模拟运行环境生效;
通过所述客户端对所述模拟运行环境进行模拟修改,并基于修改后模拟运行环境的环境参数得到第二交易参数;
按照所述预设交易流程将所述第二交易信息发送给所述服务端,并在检测到本地新保存的区块中包含所述第二交易信息时控制所述修改后模拟运行环境生效,以实现智能合约调用。
可选的,所述预设交易流程,包括:
所述客户端根据当前交易信息生成交易信息签名,并将客户端标识、客户端公钥、所述当前交易信息和所述交易信息签名按照预设通信协议发送给所述服务端;
所述服务端根据预设验签流程对所述交易信息签名进行验签,并在验签通过后向所述联盟链系统内其余服务端共享所述当前交易信息,以便共同确定出排序后交易信息,并将所述排序后交易信息和最近一个历史区块对应的哈希值打包得到新的区块,然后将所述新的区块保存至本地并广播给所有客户端;
所述客户端根据所有服务端的广播对所述新的区块进行验证,若所有服务端广播的所述新的区块的内容一致,则将所述新的区块保存至本地,以完成本次交易流程。
可选的,所述预设通信协议的通信过程,包括:
所述联盟链系统内发送端生成用于密钥协商的第一临时公钥和第一临时私钥,并利用本地发送端私钥根据无证书公钥密码体系的签名算法对所述第一临时公钥进行签名得到第一签名,并将所述第一临时公钥、发送端标识、发送端公钥、所述第一签名发送给所述联盟链系统内接收端;
所述接收端根据预设验签流程对所述第一签名进行验签,并在验签正确后生成用于密钥协商的第二临时公钥和第二临时私钥,然后利用本地接收端私钥根据无证书公钥密码体系的签名算法对所述第二临时公钥进行签名得到第二签名,并基于所述第一临时公钥和所述第二临时私钥生成第一对称密钥,利用所述第一对称密钥对所述第一临时公钥和所述第二临时公钥进行加密得到第一密文,然后将所述第二临时公钥、接收端标识、接收端公钥、所述第二签名和所述第一密文发送给所述发送端;
所述发送端根据预设验签流程对所述第二签名进行验签,并在验签正确后基于所述第一临时私钥和所述第二临时公钥生成第二对称密钥,利用所述第二对称密钥对所述第一密文进行解密并对解密结果进行验证,若验证成功则利用所述第二对称密钥对所述第一临时公钥和所述第二临时公钥进行加密得到第二密文,并将所述第二密文发送给所述接收端;
所述接收端利用所述第一对称密钥对所述第二密文进行解密并对解密结果进行验证,若验证成功则将所述第一对称密钥和所述第二对称密钥作为所述发送端和所述接收端的协商密钥。
可选的,所述发送端生成用于密钥协商的第一临时公钥和第一临时私钥之前,还包括:
判断所述发送端和所述接收端最近一次使用的目标历史协商密钥是否过期;
若未过期,则使用所述目标历史协商密钥作为所述发送端和所述接收端的协商密钥;
若过期,则执行所述发送端生成用于密钥协商的第一临时公钥和第一临时私钥的操作。
可选的,所述预设验签流程,包括:
所述接收端根据发送端标识查找所述联盟链系统中是否存在与所述发送端标识对应的密钥生成中心节点,确定出目标密钥生成中心节点;
若存在,则根据所述发送端标识通过所述目标密钥生成中心节点确定出所述发送端标识对应的目标公钥部分字段;所述目标公钥部分字段为所述目标密钥生成中心节点利用密钥生成算法生成的公钥部分字段;
将所述目标公钥部分字段和发送端公开的公钥部分字段进行对比,若对比结果一致则利用无证书公钥密码体系的验签算法对所述发送端发送的签名进行验签。
第二方面,本申请公开了一种联盟链系统运行装置,包括:
密钥初始化模块,用于联盟链系统内各节点进行无证书公钥密码体系的密钥初始化,以得到基于无证书公钥密码体系的联盟链系统;所述联盟链系统包括多个客户端节点、多个服务端节点和多个密钥生成中心节点;
运行环境构建模块,用于通过所述联盟链系统的所述客户端构建合约代码运行环境以实现智能合约调用。
第三方面,本申请公开了一种电子设备,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现前述的联盟链系统运行方法。
第四方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中计算机程序被处理器执行时实现前述的联盟链系统运行方法。
本申请中,联盟链系统内各节点进行无证书公钥密码体系的密钥初始化,以得到基于无证书公钥密码体系的联盟链系统;所述联盟链系统包括多个客户端节点、多个服务端节点和多个密钥生成中心节点;通过所述联盟链系统的所述客户端构建合约代码运行环境以实现智能合约调用。由上可见,本实施例中通过在联盟链系统内各节点进行无证书公钥密码体系的密钥初始化,得到基于无证书公钥密码体系的联盟链系统,在通过客户端构建合约代码运行环境实现联盟链内智能合约调用,在保证该联盟链系统的节点安全认证和通信的基础上,避免复杂的证书验证流程,减轻系统的密钥管理和存储负担,提升系统的运行效率,并且可以有效避免标识密码体系中的密钥托管问题,使整个联盟链系统更加安全。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请提供的一种联盟链系统运行方法流程图;
图2为本申请提供的一种具体的合约代码调用流程图;
图3为本申请提供的一种具体的预设交易流程运行流程图;
图4为本申请提供的一种具体的预设通信协议的通信流程图;
图5为本申请提供的一种具体的预设验签流程运行流程流程图;
图6为本申请提供的一种联盟链系统运行装置结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有技术中,基于联盟链的项目体系通常采用公钥证书管理,但公钥证书管理需要存储信任CA的根证书、自身的证书和对应的私钥才能完成基本的认证,庞杂的证书还是为超级账本系统带来了极大的证书管理和存储负担。为克服上述技术问题,本申请提出一种基于无证书公钥密码体系的联盟链系统运行方法,能够避免复杂的证书验证流程,减轻系统的密钥管理和存储负担,提升系统的运行效率。
本申请实施例公开了一种联盟链系统运行方法,参见图1所示,该方法可以包括以下步骤:
步骤S11:联盟链系统内各节点进行无证书公钥密码体系的密钥初始化,以得到基于无证书公钥密码体系的联盟链系统;所述联盟链系统包括多个客户端节点、多个服务端节点和多个密钥生成中心节点。
本实施例中,联盟链系统包括多个客户端(Client)节点、多个服务端(Server)节点和多个密钥生成中心(KGC,Key Generation Center)节点,首先联盟链系统内各节点进行无证书公钥密码体系的密钥初始化,即根据无证书公钥密码体系的KGC密钥生成算法和用户密钥生成算法,为联盟链系统中的每个客户端和服务端生成各自对应的私钥和公钥。
无证书公钥密码体系与证书公钥体系相比,不需要使用证书绑定公钥以保证公钥的有效性,而且解决了标识密码体系中的私钥托管问题,即用户的私钥由密钥生成中心完全掌握,具体用户通过使用标识(ID,Identity)向KGC申请私钥时,KGC只为用户生成并安全分发一部分私钥,另一部分私钥由用户自己生成,这种KGC无法完全掌握私钥的密钥生成方法有效避免了密钥托管问题。无证书公钥密码体系中,包含KGC密钥生成算法、用户密钥生成算法、签名算法和验证算法。其中,KGC密钥生成算法根据输入的用户标识,输出对应的私钥的KGC部分和公钥的KGC部分,上述用户标识可以为客户端用户标识或服务端用户标识;上述用户密钥生成算法根据上述私钥的KGC部分和公钥的KGC部分,输出用户的私钥和公钥;上述签名算法根据输入的用户私钥、用户标识和待签名消息,输出签名;上述验证算法根据输入的签名方标识、签名方公钥、待签名消息、签名,输出签名是否有效。
本实施例中,所述联盟链系统内各节点进行无证书公钥密码体系的密钥初始化,可以包括:通过所述联盟链系统内密钥生成中心节点利用密钥生成算法,分别为每个所述服务端节点以及所述客户端节点生成对应的私钥部分字段和公钥部分字段;公开所述公钥部分字段,以便每个所述服务端节点以及所述客户端节点根据对应的所述私钥部分字段和公钥部分字段,生成自身对应的私钥和公钥。
即负责Server密钥生成的KGC节点运行无证书公钥密码的KGC密钥生成算法,将KGC名称与Server名称拼接成标识名作为该算法的输入,为所有的Server生成私钥的KGC部分和公钥的KGC部分,并将私钥的KGC部分安全分发至各Server,公开公钥的KGC部分。负责Client密钥生成的KGC节点运行无证书公钥密码的KGC密钥生成算法,将KGC名称与Client名称拼接成标识名作为该算法的输入,为所有的Client生成私钥的KGC部分和公钥的KGC部分,并将私钥的KGC部分安全分发至各Client,公开公钥的KGC部分。各Server与Client根据生成的自身私钥的KGC部分和公钥的KGC部分,运行无证书公钥密码的用户密钥生成算法,生成用户私钥和公钥,并公开公钥。也就是说,密钥初始化后,每个客户端节点保存有基于证书公钥密码体系的KGC密钥生成算法和用户密钥生成算法生成的客户端私钥和客户端公钥,并且客户端公钥进行公开,同理,服务端存有服务端私钥和服务端公钥,并且服务端公钥进行公开。
步骤S12:通过所述联盟链系统的所述客户端构建合约代码运行环境以实现智能合约调用。
本实施例中,密钥初始化得到无证书公钥密码体系的联盟链系统后,通过联盟链系统的客户端构建合约代码运行环境以实现智能合约调用。
例如图2所示,本实施例中,所述通过所述联盟链系统的所述客户端构建合约代码运行环境以实现智能合约调用,可以包括:
S121:通过所述客户端根据目标合约代码对应的目标特征参数构建所述目标合约代码的模拟运行环境,并基于所述模拟运行环境对应的环境信息和所述目标特征参数得到第一交易信息。
即将目标合约代码的名称、版本、内容等目标特征参数键入客户端,客户端按既定规则构建目标合约代码的模拟运行环境,并将目标合约代码的特征和模拟运行环境等信息打包成交易信息,得到第一交易信息。
S122:按照预设交易流程将所述第一交易信息发送给所述服务端,并在检测到本地新保存的区块中包含所述第一交易信息时控制所述模拟运行环境生效。
即客户端按预设交易流程对第一交易信息进行提交,并在检测到本地新保存的区块中包含第一交易信息时,使模拟运行环境实际生效。可以理解的是,客户端按照预设交易流程将第一交易信息递交给服务端后,服务端会进行统一整合,并将整合结果反馈给客户端,客户端在确认无误后会将其保存至新的区块。
S123:通过所述客户端对所述模拟运行环境进行模拟修改,并基于修改后模拟运行环境的环境参数得到第二交易参数。
即模拟运行环境生效后,客户端调用合约即链码,对链码运行环境进行模拟修改,并将模拟修改后的合约运行环境打包成新的交易信息,得到第二交易参数。
S124:按照所述预设交易流程将所述第二交易信息发送给所述服务端,并在检测到本地新保存的区块中包含所述第二交易信息时控制所述修改后模拟运行环境生效,以实现智能合约调用。
客户端同样按照上述预设交易流程对第二交易信息进行提交,并在检测到本地新保存的区块中包含第二交易信息时,使对运行环境的模拟修改实际生效,完成智能合约调用,以实现系统合约代码调用。
例如图3所示,本实施例中,上述步骤S122中所述预设交易流程,可以包括:
S301:所述客户端根据当前交易信息生成交易信息签名,并将客户端标识、客户端公钥、所述当前交易信息和所述交易信息签名按照预设通信协议发送给所述服务端。
即客户端用自身私钥对当前交易信息运行无证书公钥密码的签名算法获得签名,并将自身标识、自身公钥、当前交易信息和当前交易信息的签名发送给某个目标服务端。
S302:所述服务端根据预设验签流程对所述交易信息签名进行验签,并在验签通过后向所述联盟链系统内其余服务端共享所述当前交易信息,以便共同确定出排序后交易信息,并将所述排序后交易信息和最近一个历史区块对应的哈希值打包得到新的区块,然后将所述新的区块保存至本地并广播给所有客户端。
服务端接收到上述客户端标识、客户端公钥、当前交易信息和交易信息签名后,根据预设验签流程对所述交易信息签名进行验签,上述预设验签流程为基于运行无证书公钥密码的验签算法的验签流程。若验证签名不正确,则向上述客户端发送交易错误信息,当验证签名无误后,服务端之间互相发送自己收到的交易信息,以便对交易信息进行排序并达成共识。每个服务端将排序好的交易和上一个区块的哈希值打包成区块存储在服务端本地,并将该区块信息广播给所有的客户端。
S303:所述客户端根据所有服务端的广播对所述新的区块进行验证,若所有服务端广播的所述新的区块的内容一致,则将所述新的区块保存至本地,以完成本次交易流程。
本实施例中,客户端接收到所有服务端的广播后,比较相同区块号的内容是否一致,若一致,则将区块内容保存在客户端本地;否则,不对区块进行保存,至此完成一次交易流程。
本实施例中,上述步骤S301中所述预设通信协议的通信过程,可以包括:
S401:所述联盟链系统内发送端生成用于密钥协商的第一临时公钥和第一临时私钥,并利用本地发送端私钥根据无证书公钥密码体系的签名算法对所述第一临时公钥进行签名得到第一签名,并将所述第一临时公钥、发送端标识、发送端公钥、所述第一签名发送给所述联盟链系统内接收端。
可以理解的是,本实施例中在系统交易的提交过程中,涉及的发送消息与接收消息的通信操作均采用上述的预设通信协议。若通信双方为A和B,设通信发送端为A,接收端为B,A标识为IDA,私钥为skA,公钥为pkA,由KGC1签发;B标识为IDB,私钥为skB,公钥为pkB,由KGC2签发;KGC1和KGC2均在A和B的信任KGC列表上。则预设通信协议的通信过程首先A计算密钥协商第一临时公钥、第一临时私tskA,并用skA对tpkA运行无证书公钥密码的签名算法得到第一签名sigA,将tpkA、IDA、sigA、pkA发送给B。
S402:所述接收端根据预设验签流程对所述第一签名进行验签,并在验签正确后生成用于密钥协商的第二临时公钥和第二临时私钥,然后利用本地接收端私钥根据无证书公钥密码体系的签名算法对所述第二临时公钥进行签名得到第二签名,并基于所述第一临时公钥和所述第二临时私钥生成第一对称密钥,利用所述第一对称密钥对所述第一临时公钥和所述第二临时公钥进行加密得到第一密文,然后将所述第二临时公钥、接收端标识、接收端公钥、所述第二签名和所述第一密文发送给所述发送端。
即B收到tpkA、IDA、sigA、pkA后,按照预设验签流程验证签名sigA是否正确,若错误,则退出;否则,B计算密钥协商第二临时公钥tpkB、第二临时私钥tskB,用skB对tpkB运行无证书公钥密码的签名算法得到第二签名sigB,并用tskB和tpkA计算第一对称密钥sk,用sk将tpkA与tpkB拼接并加密后得到第一密文cB。将tpkB、IDB、sigB、pkB、cB发送给A。
S403:所述发送端根据预设验签流程对所述第二签名进行验签,并在验签正确后基于所述第一临时私钥和所述第二临时公钥生成第二对称密钥,利用所述第二对称密钥对所述第一密文进行解密并对解密结果进行验证,若验证成功则利用所述第二对称密钥对所述第一临时公钥和所述第二临时公钥进行加密得到第二密文,并将所述第二密文发送给所述接收端。
即A收到tpkB、IDB、sigB、pkB后,按照预设验签流程验证签名sigB是否正确,若错误,则退出;否则,基于tskA和tpkB计算第二对称密钥sk,并用sk验证cB解密后的内容是否为tpkA与tpkB的拼接,若不是,退出;否则,用第二对称密钥sk将tpkB与tpkA拼接后的内容加密,得到第二密文cA,并将cA发送给B。
S404:所述接收端利用所述第一对称密钥对所述第二密文进行解密并对解密结果进行验证,若验证成功则将所述第一对称密钥和所述第二对称密钥作为所述发送端和所述接收端的协商密钥。
即B收到cA后,验证用第一对称密钥sk解密cA后的内容是否为tpkB与tpkA的拼接,若不是,则退出连接;否则将第一对称密钥,也就是第二对称密钥,作为发送端和接收端的协商密钥,具体的A与B用sk对消息加密成密文后发送给接收消息的一方,接收消息的一方用sk解密密文后得到具体的消息并处理。
本实施例中,所述发送端生成用于密钥协商的第一临时公钥和第一临时私钥之前,还可以包括:判断所述发送端和所述接收端最近一次使用的目标历史协商密钥是否过期;若未过期,则使用所述目标历史协商密钥作为所述发送端和所述接收端的协商密钥;若过期,则执行所述发送端生成用于密钥协商的第一临时公钥和第一临时私钥的操作。也就是说,本实施例中系统内通信流程具体可以如图4所示,即发送端在向接收端发起连接请求后,先判断发送端和接收端最近一次次协商的对称密钥是否过期,若仍未过期,则用上次协商的对称密钥对发送和接受的消息进行加密后通信;否则,执行发送端生成用于密钥协商的第一临时公钥和第一临时私钥等上述操作。
例如图5所示,本实施例中,上述预设验签流程,可以包括:
S501:所述接收端根据发送端标识查找所述联盟链系统中是否存在与所述发送端标识对应的密钥生成中心节点,确定出目标密钥生成中心节点。
本实施例中,涉及的验签操作均采用上述预设验签流程,具体接收端在收到包括签名、签名方公钥、签名方标识和待签名消息等信息后,首先根据签名方标识,即发送端标识,查找联盟链系统中是否存在与发送端标识对应的密钥生成中心节点。
S502:若存在,则根据所述发送端标识通过所述目标密钥生成中心节点确定出所述发送端标识对应的目标公钥部分字段;所述目标公钥部分字段为所述目标密钥生成中心节点利用密钥生成算法生成的公钥部分字段。
本实施例中,若未找到,则验证失败;若找到则将该密钥生成中心节点作为目标密钥生成中心节点,然后以发送端标识为索引向目标密钥生成中心节点查询其目标公钥部分字段,即密钥生成中心节利用密钥生成算法生成的公钥的KGC部分。
S503:将所述目标公钥部分字段和发送端公开的公钥部分字段进行对比,若对比结果一致则利用无证书公钥密码体系的验签算法对所述发送端发送的签名进行验签。
本实施例中,若目标公钥部分字段和发送端公开的公钥部分字段不一致,则验证失败;若一致,则利用无证书公钥密码体系的验签算法对上述发送端发送的签名进行验签。验签流程仅需存储信任KGC的地址和自身的公钥、私钥即可完成认证,相比证书,公钥更加轻量,占用的存储空间更小。并且,在利用验签算法前先通过查询目标密钥生成中心节点进行第一次验证,以及通过公钥部分字段的对比进行第二次验证,大大提高验证的效率,避免每次都使用验签算法导致的资源消耗的问题。
由上可见,本实施例中联盟链系统内各节点进行无证书公钥密码体系的密钥初始化,以得到基于无证书公钥密码体系的联盟链系统;所述联盟链系统包括多个客户端节点、多个服务端节点和多个密钥生成中心节点;通过所述联盟链系统的所述客户端构建合约代码运行环境以实现智能合约调用。由上可见,本实施例中通过在联盟链系统内各节点进行无证书公钥密码体系的密钥初始化,得到基于无证书公钥密码体系的联盟链系统,在通过客户端构建合约代码运行环境实现联盟链内智能合约调用,在保证该联盟链系统的节点安全认证和通信的基础上,避免复杂的证书验证流程,减轻系统的密钥管理和存储负担,提升系统的运行效率,并且可以有效避免标识密码体系中的密钥托管问题,使整个联盟链系统更加安全。
相应的,本申请实施例还公开了一种联盟链系统运行装置,参见图6所示,该装置包括:
密钥初始化模块11,用于联盟链系统内各节点进行无证书公钥密码体系的密钥初始化,以得到基于无证书公钥密码体系的联盟链系统;所述联盟链系统包括多个客户端节点、多个服务端节点和多个密钥生成中心节点;
运行环境构建模块12,用于通过所述联盟链系统的所述客户端构建合约代码运行环境以实现智能合约调用。
由上可见,本实施例中联盟链系统内各节点进行无证书公钥密码体系的密钥初始化,以得到基于无证书公钥密码体系的联盟链系统;所述联盟链系统包括多个客户端节点、多个服务端节点和多个密钥生成中心节点;通过所述联盟链系统的所述客户端构建合约代码运行环境以实现智能合约调用。由上可见,本实施例中通过在联盟链系统内各节点进行无证书公钥密码体系的密钥初始化,得到基于无证书公钥密码体系的联盟链系统,在通过客户端构建合约代码运行环境实现联盟链内智能合约调用,在保证该联盟链系统的节点安全认证和通信的基础上,避免复杂的证书验证流程,减轻系统的密钥管理和存储负担,提升系统的运行效率,并且可以有效避免标识密码体系中的密钥托管问题,使整个联盟链系统更加安全。
在一些具体实施例中,所述密钥初始化模块11具体可以包括:
密钥部分字段生成单元,用于通过所述联盟链系统内密钥生成中心节点利用密钥生成算法,分别为每个所述服务端节点以及所述客户端节点生成对应的私钥部分字段和公钥部分字段;
密钥生成单元,用于公开所述公钥部分字段,以便每个所述服务端节点以及所述客户端节点根据对应的所述私钥部分字段和公钥部分字段,生成自身对应的私钥和公钥。
在一些具体实施例中,所述运行环境构建模块12具体可以包括:
模拟运行环境构建单元,用于通过所述客户端根据目标合约代码对应的目标特征参数构建所述目标合约代码的模拟运行环境,并基于所述模拟运行环境对应的环境信息和所述目标特征参数得到第一交易信息;
模拟运行环境生效单元,用于按照预设交易流程将所述第一交易信息发送给所述服务端,并在检测到本地新保存的区块中包含所述第一交易信息时控制所述模拟运行环境生效;
模拟修改单元,用于通过所述客户端对所述模拟运行环境进行模拟修改,并基于修改后模拟运行环境的环境参数得到第二交易参数;
修改后模拟运行环境生效单元,用于按照所述预设交易流程将所述第二交易信息发送给所述服务端,并在检测到本地新保存的区块中包含所述第二交易信息时控制所述修改后模拟运行环境生效,以实现智能合约调用。
在一些具体实施例中,所述联盟链系统运行装置具体可以包括:
预设交易流程运行模块,用于所述客户端根据当前交易信息生成交易信息签名,并将客户端标识、客户端公钥、所述当前交易信息和所述交易信息签名按照预设通信协议发送给所述服务端;所述服务端根据预设验签流程对所述交易信息签名进行验签,并在验签通过后向所述联盟链系统内其余服务端共享所述当前交易信息,以便共同确定出排序后交易信息,并将所述排序后交易信息和最近一个历史区块对应的哈希值打包得到新的区块,然后将所述新的区块保存至本地并广播给所有客户端;所述客户端根据所有服务端的广播对所述新的区块进行验证,若所有服务端广播的所述新的区块的内容一致,则将所述新的区块保存至本地,以完成本次交易流程。
在一些具体实施例中,所述联盟链系统运行装置具体可以包括:
预设通信协议通信模块,用于所述联盟链系统内发送端生成用于密钥协商的第一临时公钥和第一临时私钥,并利用本地发送端私钥根据无证书公钥密码体系的签名算法对所述第一临时公钥进行签名得到第一签名,并将所述第一临时公钥、发送端标识、发送端公钥、所述第一签名发送给所述联盟链系统内接收端;所述接收端根据预设验签流程对所述第一签名进行验签,并在验签正确后生成用于密钥协商的第二临时公钥和第二临时私钥,然后利用本地接收端私钥根据无证书公钥密码体系的签名算法对所述第二临时公钥进行签名得到第二签名,并基于所述第一临时公钥和所述第二临时私钥生成第一对称密钥,利用所述第一对称密钥对所述第一临时公钥和所述第二临时公钥进行加密得到第一密文,然后将所述第二临时公钥、接收端标识、接收端公钥、所述第二签名和所述第一密文发送给所述发送端;所述发送端根据预设验签流程对所述第二签名进行验签,并在验签正确后基于所述第一临时私钥和所述第二临时公钥生成第二对称密钥,利用所述第二对称密钥对所述第一密文进行解密并对解密结果进行验证,若验证成功则利用所述第二对称密钥对所述第一临时公钥和所述第二临时公钥进行加密得到第二密文,并将所述第二密文发送给所述接收端;所述接收端利用所述第一对称密钥对所述第二密文进行解密并对解密结果进行验证,若验证成功则将所述第一对称密钥和所述第二对称密钥作为所述发送端和所述接收端的协商密钥。
在一些具体实施例中,所述联盟链系统运行装置具体可以包括:
过期判断单元,用于判断所述发送端和所述接收端最近一次使用的目标历史协商密钥是否过期;
协商密钥确定单元,用于若未过期,则使用所述目标历史协商密钥作为所述发送端和所述接收端的协商密钥;
密钥协商触发单元,用于若过期,则执行所述发送端生成用于密钥协商的第一临时公钥和第一临时私钥的操作。
在一些具体实施例中,所述联盟链系统运行装置具体可以包括:
预设验签流程运行模块,用于所述接收端根据发送端标识查找所述联盟链系统中是否存在与所述发送端标识对应的密钥生成中心节点,确定出目标密钥生成中心节点;若存在,则根据所述发送端标识通过所述目标密钥生成中心节点确定出所述发送端标识对应的目标公钥部分字段;所述目标公钥部分字段为所述目标密钥生成中心节点利用密钥生成算法生成的公钥部分字段;将所述目标公钥部分字段和发送端公开的公钥部分字段进行对比,若对比结果一致则利用无证书公钥密码体系的验签算法对所述发送端发送的签名进行验签。
本发明实施例还提供一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现如上述的联盟链系统运行方法的步骤。
由于电子设备部分的实施例与联盟链系统运行方法部分的实施例相互对应,因此电子设备部分的实施例请参见联盟链系统运行方法部分的实施例的描述,这里暂不赘述。
进一步的,本申请实施例还公开了一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现前述任一实施例公开的联盟链系统运行方法步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种联盟链系统运行方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种联盟链系统运行方法,其特征在于,包括:
联盟链系统内各节点进行无证书公钥密码体系的密钥初始化,以得到基于无证书公钥密码体系的联盟链系统;所述联盟链系统包括多个客户端节点、多个服务端节点和多个密钥生成中心节点;
通过所述联盟链系统的所述客户端构建合约代码运行环境以实现智能合约调用。
2.根据权利要求1所述的联盟链系统运行方法,其特征在于,所述联盟链系统内各节点进行无证书公钥密码体系的密钥初始化,包括:
通过所述联盟链系统内密钥生成中心节点利用密钥生成算法,分别为每个所述服务端节点以及所述客户端节点生成对应的私钥部分字段和公钥部分字段;
公开所述公钥部分字段,以便每个所述服务端节点以及所述客户端节点根据对应的所述私钥部分字段和公钥部分字段,生成自身对应的私钥和公钥。
3.根据权利要求1所述的联盟链系统运行方法,其特征在于,所述通过所述联盟链系统的所述客户端构建合约代码运行环境以实现智能合约调用,包括:
通过所述客户端根据目标合约代码对应的目标特征参数构建所述目标合约代码的模拟运行环境,并基于所述模拟运行环境对应的环境信息和所述目标特征参数得到第一交易信息;
按照预设交易流程将所述第一交易信息发送给所述服务端,并在检测到本地新保存的区块中包含所述第一交易信息时控制所述模拟运行环境生效;
通过所述客户端对所述模拟运行环境进行模拟修改,并基于修改后模拟运行环境的环境参数得到第二交易参数;
按照所述预设交易流程将所述第二交易信息发送给所述服务端,并在检测到本地新保存的区块中包含所述第二交易信息时控制所述修改后模拟运行环境生效,以实现智能合约调用。
4.根据权利要求3所述的联盟链系统运行方法,其特征在于,所述预设交易流程,包括:
所述客户端根据当前交易信息生成交易信息签名,并将客户端标识、客户端公钥、所述当前交易信息和所述交易信息签名按照预设通信协议发送给所述服务端;
所述服务端根据预设验签流程对所述交易信息签名进行验签,并在验签通过后向所述联盟链系统内其余服务端共享所述当前交易信息,以便共同确定出排序后交易信息,并将所述排序后交易信息和最近一个历史区块对应的哈希值打包得到新的区块,然后将所述新的区块保存至本地并广播给所有客户端;
所述客户端根据所有服务端的广播对所述新的区块进行验证,若所有服务端广播的所述新的区块的内容一致,则将所述新的区块保存至本地,以完成本次交易流程。
5.根据权利要求4所述的联盟链系统运行方法,其特征在于,所述预设通信协议的通信过程,包括:
所述联盟链系统内发送端生成用于密钥协商的第一临时公钥和第一临时私钥,并利用本地发送端私钥根据无证书公钥密码体系的签名算法对所述第一临时公钥进行签名得到第一签名,并将所述第一临时公钥、发送端标识、发送端公钥、所述第一签名发送给所述联盟链系统内接收端;
所述接收端根据预设验签流程对所述第一签名进行验签,并在验签正确后生成用于密钥协商的第二临时公钥和第二临时私钥,然后利用本地接收端私钥根据无证书公钥密码体系的签名算法对所述第二临时公钥进行签名得到第二签名,并基于所述第一临时公钥和所述第二临时私钥生成第一对称密钥,利用所述第一对称密钥对所述第一临时公钥和所述第二临时公钥进行加密得到第一密文,然后将所述第二临时公钥、接收端标识、接收端公钥、所述第二签名和所述第一密文发送给所述发送端;
所述发送端根据预设验签流程对所述第二签名进行验签,并在验签正确后基于所述第一临时私钥和所述第二临时公钥生成第二对称密钥,利用所述第二对称密钥对所述第一密文进行解密并对解密结果进行验证,若验证成功则利用所述第二对称密钥对所述第一临时公钥和所述第二临时公钥进行加密得到第二密文,并将所述第二密文发送给所述接收端;
所述接收端利用所述第一对称密钥对所述第二密文进行解密并对解密结果进行验证,若验证成功则将所述第一对称密钥和所述第二对称密钥作为所述发送端和所述接收端的协商密钥。
6.根据权利要求5所述的联盟链系统运行方法,其特征在于,所述发送端生成用于密钥协商的第一临时公钥和第一临时私钥之前,还包括:
判断所述发送端和所述接收端最近一次使用的目标历史协商密钥是否过期;
若未过期,则使用所述目标历史协商密钥作为所述发送端和所述接收端的协商密钥;
若过期,则执行所述发送端生成用于密钥协商的第一临时公钥和第一临时私钥的操作。
7.根据权利要求5所述的联盟链系统运行方法,其特征在于,所述预设验签流程,包括:
所述接收端根据发送端标识查找所述联盟链系统中是否存在与所述发送端标识对应的密钥生成中心节点,确定出目标密钥生成中心节点;
若存在,则根据所述发送端标识通过所述目标密钥生成中心节点确定出所述发送端标识对应的目标公钥部分字段;所述目标公钥部分字段为所述目标密钥生成中心节点利用密钥生成算法生成的公钥部分字段;
将所述目标公钥部分字段和发送端公开的公钥部分字段进行对比,若对比结果一致则利用无证书公钥密码体系的验签算法对所述发送端发送的签名进行验签。
8.一种联盟链系统运行装置,其特征在于,包括:
密钥初始化模块,用于联盟链系统内各节点进行无证书公钥密码体系的密钥初始化,以得到基于无证书公钥密码体系的联盟链系统;所述联盟链系统包括多个客户端节点、多个服务端节点和多个密钥生成中心节点;
运行环境构建模块,用于通过所述联盟链系统的所述客户端构建合约代码运行环境以实现智能合约调用。
9.一种电子设备,其特征在于,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至7任一项所述的联盟链系统运行方法。
10.一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中计算机程序被处理器执行时实现如权利要求1至7任一项所述的联盟链系统运行方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111604147.8A CN114297678A (zh) | 2021-12-24 | 2021-12-24 | 一种联盟链系统运行方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111604147.8A CN114297678A (zh) | 2021-12-24 | 2021-12-24 | 一种联盟链系统运行方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114297678A true CN114297678A (zh) | 2022-04-08 |
Family
ID=80968594
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111604147.8A Pending CN114297678A (zh) | 2021-12-24 | 2021-12-24 | 一种联盟链系统运行方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114297678A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115967583A (zh) * | 2023-03-16 | 2023-04-14 | 安羚科技(杭州)有限公司 | 基于联盟链的密钥管理系统及方法 |
CN117478303A (zh) * | 2023-12-28 | 2024-01-30 | 湖南天河国云科技有限公司 | 区块链隐蔽通信方法、系统和计算机设备 |
-
2021
- 2021-12-24 CN CN202111604147.8A patent/CN114297678A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115967583A (zh) * | 2023-03-16 | 2023-04-14 | 安羚科技(杭州)有限公司 | 基于联盟链的密钥管理系统及方法 |
CN115967583B (zh) * | 2023-03-16 | 2023-06-06 | 安羚科技(杭州)有限公司 | 基于联盟链的密钥管理系统及方法 |
CN117478303A (zh) * | 2023-12-28 | 2024-01-30 | 湖南天河国云科技有限公司 | 区块链隐蔽通信方法、系统和计算机设备 |
CN117478303B (zh) * | 2023-12-28 | 2024-03-01 | 湖南天河国云科技有限公司 | 区块链隐蔽通信方法、系统和计算机设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112003889B (zh) | 分布式跨链系统及跨链信息交互与系统访问控制方法 | |
CN107483509B (zh) | 一种身份验证方法、服务器及可读存储介质 | |
CN112311735B (zh) | 可信认证方法,网络设备、系统及存储介质 | |
EP2182671B1 (en) | System, apparatus and method for replacing a cryptographic key | |
CN112583596B (zh) | 一种基于区块链技术的完全跨域身份认证方法 | |
US20090290715A1 (en) | Security architecture for peer-to-peer storage system | |
CN100512201C (zh) | 用于处理分组业务的接入-请求消息的方法 | |
CN113541970B (zh) | 分布式标识符的使用方法和分布式标识符使用系统 | |
Benarous et al. | Blockchain-based privacy-aware pseudonym management framework for vehicular networks | |
CN109005032B (zh) | 一种路由方法和装置 | |
CN114297678A (zh) | 一种联盟链系统运行方法、装置、设备及存储介质 | |
CN110910110B (zh) | 一种数据处理方法、装置及计算机存储介质 | |
CN113228560B (zh) | 用于发行的发行设备和方法以及用于请求数字证书的请求设备和方法 | |
CN103560887A (zh) | 智能终端远程证明方法和系统 | |
CN113536284B (zh) | 一种数字证书的验证方法、装置、设备和存储介质 | |
CN108599939A (zh) | 一种认证方法和装置 | |
CN112152778A (zh) | 一种节点管理方法、装置、及电子设备 | |
CN115378604A (zh) | 一种基于信誉值机制的边缘计算终端设备的身份认证方法 | |
CN110233850A (zh) | 基于联盟链的注册方法、应用服务器、用户端以及系统 | |
CN116204914A (zh) | 一种可信隐私计算方法、装置、设备及存储介质 | |
CN112508576A (zh) | 基于区块链的密钥管理方法、系统及存储介质 | |
CN114553480B (zh) | 跨域单点登录方法、装置、电子设备及可读存储介质 | |
Riad et al. | A blockchain‐based key‐revocation access control for open banking | |
CN115913521A (zh) | 基于量子密钥进行身份认证的方法 | |
CN110784318B (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 |