掌桥专利:专业的专利平台
掌桥专利
首页

基于区块链技术的电力行业数字身份证管理方法及系统

文献发布时间:2023-06-19 11:22:42


基于区块链技术的电力行业数字身份证管理方法及系统

技术领域

本发明涉及区块链技术领域,具体涉及一种基于区块链技术的电力行业数字身份证管理方法及系统。

背景技术

传统的电力行业网信息系统按照当下流行的账号、角色、权限三个维度来管理,即:权限对应到某个菜单或者URL,我们可以认为权限是一个颗粒度较小的功能或者菜单。按照现实中的岗位分工定义角色,并定义角色包含的功能(权限),再定义一个账号拥有几个角色,从而达到权限控制的目的。当然除此之外,由于考虑到交易系统的数据安全要求,对于部分功能,都进行了特殊的权限控制,比如:必须是交易中心账号或者只能是管理员才能操作的硬编码要求。

经过比特币和以太坊两代的发展,区块链它正越来越吸引着全球相关从业人员的广泛关注,无论是行业巨头,还是初创型公司都纷纷投身其中,积极寻求如何利用区块链技术对业务进行革新或者对商业模式进行创新。但大多数从业人员更为关心的是,如何在企业业务系统中使用区块链技术,从而充分利用它的技术特性来降低业务交易成本或提升商业作业效率,或为业务系统带来更增强的安全特性。

发明内容

针对现有技术的不足,本发明公开了一种基于区块链技术的电力行业数字身份证管理方法及系统,用于解决传统的电力行业网信息系统管理的问题。

本发明通过以下技术方案予以实现:

第一方面,本发明公开一种基于区块链技术的电力行业数字身份证管理方法,包括以下步骤:

S1对电力行业市场成员信息表建立映射交易系统中市场主体在区块链系统中身份的区块链身份信息字段;

S2使用Ukey信息中的私钥作为市场主体的身份信息,并将其保存至交易系统中;

S3接收用户申报时,首先获取申报企业的区块链身份信息,并通过交易系统自动触发数据上链;

S4进入交易过程,在逻辑上将节点角色解耦为背书和提交,在不同类型节点关注处理不同类型的工作负载;

S5在客户端收集背书并将起提交给排序服务将多个交易打包进区块,最后输出包含交易的带有hash链的区块。

更进一步的,所述方法中,客户端发送交易信息至背书节点,背书节点执行交易,并且把执行结果返回给客户端,同时会在返回结果上添加背书节点的签名,背书节点执行完成此次交易,实现对智能合约的操作。

更进一步的,所述方法中,当客户端收到若干个背书节点返回的执行结果后,先验证背书节点的签名,如果签名没有问题而且数量足够,则将此结果发送给排序节点,排序收到客户端发来的结果后,检验该结果,检验结果通过后,排序节点服务器在内部达成共识后,生成区块信息。

更进一步的,所述方法中,客户端、背书及订单、提交及订单会将会定时去同步排序节点的信息,并且以此来更新本地的账本。

更进一步的,所述方法中,当客户端在提案上收集了足够多的背书时,组装交易并将它提交给排序服务,该交易包括交易的有效负载、交易元数据和一系列背书。

更进一步的,所述方法中,排序服务为每个渠道上的所有交易进行排序,同时执行访问控制检查以查看是否允许客户端在给定信道上广播消息或接收块,排序服务将多个交易打包进区块,并输出包含交易的带有hash链的区块。

更进一步的,所述方法中,区块链平台网络采用面向CA的准入机制,使用x509协议的证书格式,根据现有业务场景,默认采用三级的证书结构,自上而下分别为链证书、机构证书、节点证书。

更进一步的,所述方法中,在多群组架构中,一条链拥有一个链证书及对应的链私钥,链私钥由联盟链委员会共同管理对机构下属节点签发节点证书。

更进一步的,所述方法中,所述节点证书是节点身份的凭证,用于与其他持有合法证书的节点间建立SSL连接,并进行加密通讯,使用sdk证书作为sdk与节点通信的凭证,机构生成sdk证书,允许sdk与节点进行通信。

第二方面,本发明公开一种基于区块链技术的电力行业数字身份证管理系统,所述系统用于执行第一方面所述的基于区块链技术的电力行业数字身份证管理方法,包括

客户端,应用使用微服务跟区块链网络打交道,首先客户端从CA中心获取合法的身份证信息来加入网络内的应用通道,发起正式交易前,先构造交易提案提交给背书节点进行背书;客户端收集到足够的背书支持后可以利用背书构造一个合法的交易请求,发给排序节点进行排序处理;

背书节点,对交易提案的背书处理,收到来自客户端的交易提案后,首先进行合法性和ACL权限检查,检查通过则模拟运行交易,对交易导致的状态变化进行背书并返回结果给客户端;

提交节点,负责维护区块链和账本结构,该节点定期地从背书节点获取排序后的批量交易区块结构,对这些交易进行最终检查,包括交易消息结构、签名完整性、是否重复、读写集合版本是否匹配等。检查通过后执行合法交易,将结果写入账本;

排序节点,负责交易排序,将网络中所有合法交易进行全局排序,并将一批排序后的交易组合生成区块结构。背书节点不需要跟账本和交易内容直接打交道。

CA,负责网络中所有证书的管理,实现标准的PKI架构;

智能合约,提供的智能合约,为上层应用与底层区块链平台交互的媒介;

账本,其存储包括区块数据的存储,存储在文件系统中,里面存储了所有交易的日志;包括Level DB,Level DB存储账户当前有多少价值约;

共识算法,采用kafka模式,基于zookeeper进行Paxos算法选举,支持2f+1节点集群,f代表失效节点个数。

本发明的有益效果为:

本发明运用于分布式应用程序的真正可扩展的区块链系统。它支持模块化的共识协议,允许系统根据特定用例和信任模型进行定制。用编程语言开发智能合约,不依赖本机加密货币的运行分布式应用的区块链系统。这与现有需要使用特定编程语言或者依赖加密货币才能开发智能合约的区块链平台形成了鲜明的对比。此外,它使用一个与行业标准身份管理相结合的易于理解的成员服务来实现许可模型。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例中典型的交易处理过程图;

图2是一种基于区块链技术的电力行业数字身份证管理系统逻辑组件关系图;

图3是本发明实施例CA黑名单所涉及的模块及其关系图;

图4是本发明实施例登陆系统时序图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例1

本实施例公开一种基于区块链技术的电力行业数字身份证管理方法,对现有的电力系统系统中的市场成员信息表(发电企业、用电企业、电网公司、售电公司)建立一个区块链身份信息字段;此字段是映射交易系统中市场主体在区块链系统中的身份;和现有的Ukey相结合使用Ukey信息中的私钥作为市场主体的身份信息,当前为了模拟验证区块链系统的正确性,暂时都保存在交易系统中;

当用户申报时,交易系统自动触发数据上链,上链前需要获取申报企业的区块链身份信息,首先从交易系统的市场成员表中获取,如果为空,调用区块链平台获取身份信息。

交易过程中不同环节的功能,在逻辑上将节点角色解耦为Endorser(背书)和Committer(提交),让不同类型节点可以关注处理不同类型的工作负载。典型的交易处理过程如下图所示下面是一个典型的标准的交易处理过程:

客户端发送交易信息至背书节点;可以同时发送给多个背书节点;

背书节点执行交易,并且把执行结果返回给客户端,同时会在返回结果上添加背书节点的签名,表示这个背书节点执行了这个交易。交易实际上是对智能合约的操作。

当客户端收到若干个背书节点返回的执行结果后,会先验证背书节点的签名,如果签名没有问题而且数量足够,会把这个结果发送给排序节点。

排序收到客户端发来的结果后,会去检验该结果。检验结果通过后,排序节点服务器会在内部达成共识后,生成区块信息,所有提交节点将会定时去同步排序节点的信息。

客户端、背书及订单单、提交及订单单会将会定时去同步排序节点的信息,并且以此来更新本地的账本。

实施例2

本实施例公开一种基于区块链技术的电力行业数字身份证管理系统,其逻辑组件关系如图2所示,登录状态如图4所示,其中重要概念解释如下:

客户端(web前台系统):客户端应用使用微服务跟区块链网络打交道。首先客户端从CA中心获取合法的身份证信息来加入网络内的应用通道。发起正式交易前,需要先构造交易提案提交给背书节点进行背书;客户端收集到足够的背书支持后可以利用背书构造一个合法的交易请求,发给排序节点进行排序处理。客户端还可以通过实现机制来监听网络中消息,或者交易是否被成功接收。

背书节点(Fabric-Peer):对交易提案的背书处理。收到来自客户端的交易提案后,首先进行合法性和ACL权限检查,检查通过则模拟运行交易,对交易导致的状态变化进行背书并返回结果给客户端。

提交节点(Fabric-Peer):负责维护区块链和账本结构。该节点会定期地从背书节点获取排序后的批量交易区块结构,对这些交易进行最终检查,包括交易消息结构、签名完整性、是否重复、读写集合版本是否匹配等。检查通过后执行合法交易,将结果写入账本。一般来讲,网络中所有节点都具备提交节点功能。

排序节点(Fabric-order):负责交易排序。将网络中所有合法交易进行全局排序,并将一批排序后的交易组合生成区块结构。背书节点不需要跟账本和交易内容直接打交道。

CA:负责网络中所有证书的管理(分发、撤销等),实现标准的PKI架构。CA中心可提前对网络中的实体成员颁发证书,这些实体在部署证书后即可访问网络中的各项资源。后续访问过程中,实体无需再次向CA节点进行请求。也就是说CA节点的处理过程与网络中交易的处理过程是可以完全解耦的,以提高性能。

智能合约(chaincode):提供的智能合约,是上层应用与底层区块链平台交互的媒介。

账本(Ledger):Ledger的存储是分为两部分的,一部分是区块数据的存储,存储在文件系统中。里面存储了所有交易的日志;另外一部分是Level DB,Level DB是KV数据库的一种,存储的是一个账户当前有多少价值约。当我们把账户的当前信息和文件系统中的Tx日志合并在一起,就可以描述整个区块链网络所发生的所有交易。

共识算法:本项目采用kafka模式,这种模式是一种支持多通道分区的集群时序服务,可以容忍部分节点失效(crash),但不能容忍恶意节点,其基于zookeeper进行Paxos算法选举,支持2f+1节点集群,f代表失效节点个数。即kafka可以容忍少于半数的共识节点失效。

当客户端在提案上收集了足够多的背书时,他会组装一个交易并将它提交给排序服务。该交易包括交易的有效负载(例如,链码操作相关参数),交易元数据,一系列背书。排序服务为每个渠道上的所有交易进行排序。换句话说,排序源原子广播背书,从而在交易上达成共识,尽管可能有错误的排序者。此外,排序服务将多个交易打包进区块,并输出包含交易的带有hash链的区块。将交易分组或者批量打包进区块可以提升广播协议的吞吐率,这是容错广播环境中众所周知的技术。

在高层次来看,排序服务仅仅支持下列2个操作。这些操作由peer节点通过通道标识隐式参数化:但是,允许每个单独的订购实现都有自己的客户请求的活跃性和公平性保证。

由于区块链网络中可能存在大量节点,但预计只有相对较少的节点实现排序服务节点,因此可以将Fabric配置为使用内置Gossip服务将所交付的块从排序服务传播到所有Peer节点。Gossip的实现是可扩展的,并且与排序服务的特定实现无关,因此它适用于CFT和BFT订购服务,确保了Fabric的模块化。

排序服务还可以执行访问控制检查以查看是否允许客户端在给定信道上广播消息或接收块。关于设计选择的讨论。排序服务不维护区块链的任何状态非常重要,既不验证也不执行交易。这种架构是Fabric的一个重要的定义功能,它使Fabric成为第一个区块链系统,可以完全区分执行和验证的共识。这使得共识尽可能模块化,并实现了实现排序服务的共识协议生态系统。

实施例3

本实施例论述区块链平台,其网络采用面向CA的准入机制,支持任意多级的证书结构,保障信息保密性、认证性、完整性、不可抵赖性。

区块链平台使用x509协议的证书格式,根据现有业务场景,默认采用三级的证书结构,自上而下分别为链证书、机构证书、节点证书。

在多群组架构中,一条链拥有一个链证书及对应的链私钥,链私钥由联盟链委员会共同管理。联盟链委员会可以使用机构的证书请求文件agency.csr,签发机构证书agency.crt。

机构私钥由机构管理员持有,可以对机构下属节点签发节点证书。

节点证书是节点身份的凭证,用于与其他持有合法证书的节点间建立SSL连接,并进行加密通讯。

sdk证书是sdk与节点通信的凭证,机构生成sdk证书,允许sdk与节点进行通信。

区块链平台节点运行时的文件后缀介绍如下:

角色定义

区块链平台的证书结构中,共有四种角色,分别是联盟链委员会管理员、机构、节点和SDK。

联盟链委员会,联盟链委员会管理链的私钥,并根据机构的证书请求文件agency.csr为机构颁发机构证书。区块链平台进行SSL加密通信时,拥有相同链证书ca.crt的节点才可建立连接。

机构,机构管理员管理机构私钥,可以颁发节点证书和sdk证书。

节点/SDK,区块链平台节点包括节点证书和私钥,用于建立节点间SSL加密连接;SDK包括SDK证书和私钥,用于与区块链节点建立SSL加密连接。

节点证书node.crt包括节点证书和机构证书信息,节点与其他节点/SDK通信验证时会用自己的私钥node.key对消息进行签名,并发送自己的node.crt至对方进行验证。

证书生成流程,区块链平台的证书生成流程如下,用户也可以使用企业部署工具生成相应证书。

生成链证书,联盟链委员会使用openssl命令请求链私钥ca.key,根据ca.key生成链证书ca.crt。

生成机构证书,机构使用openssl命令生成机构私钥agency.key

机构使用机构私钥agency.key得到机构证书请求文件agency.csr,发送agency.csr给联盟链委员会。

联盟链委员会使用链私钥ca.key,根据得到机构证书请求文件agency.csr生成机构证书agency.crt,并将机构证书agency.crt发送给对应机构。

生成节点/SDK证书,节点生成私钥node.key和证书请求文件node.csr,机构管理员使用私钥agency.key和证书请求文件node.csr为节点/SDK颁发证书node.crt。

CA黑名单所属的配置类型:

基于作用范围(网络配置/账本配置)维度可划分为网络配置,影响整个网络的节点连接建立过程;

基于是否可改(可改配置/固定配置)维度可划分为可改配置,内容可改,重启后生效;

基于存放位置(本地存储/链上存储)维度可划分为本地存储,内容记录在本地,不存于链上。

模块架构,如图3所示表示CA黑名单所涉及的模块及其关系。图例A->B表示B模块依赖A模块的数据,同时B模块晚于A模块初始化。

核心流程,底层实现SSL双向验证。节点在handshake过程中,通过对方提供的证书获取对方节点的nodeID,检查该nodeID是否在自身的CA黑名单。如果在,关闭该connection,继续后续流程。

影响范围,CA黑名单对网络层的P2P节点连接及AMOP功能有显著影响,使之失效;对账本层的共识和同步功能有潜在影响,影响共识及同步消息/数据的转发。

首先,MGP会为每个业务系统分配对应的密钥,并将该密钥记录在MGP代码中和分发给各业务系统,采用AES加解密算法,当业务系统通过access_token和trade_no调用对应的接口后,业务系统将携带参数和通过本业务系统所属的密钥加密参数后的密文访问接口,MGP会用记录的密钥加密参数明文得到密文后与传进来的蜜文进行比对,若一致,则进入处理过程,反之,则返回错误信息。

本实施例的参数说明如下表:

本实施例中,请求和返回示例如下:

综上,本案与其他身份认证系统的区别在于:

隐私性:首先交易需要认证身份,匿名性的交易网络对于企业区块链是不合用的,如果交易双方相互不知道身份,使得交易难以在商业环境下进行。二是交易具有合适的可见性,比特币和以太坊内的交易是对所有节点透明的,企业区块链网络中交易的相关方希望能够保有商业机密,其交易行为仅在交易的各方之间是透明的;

账本共享:企业区块链也需要共享的账本来分享数据,为解决信任问题,交易的各方需要共同记账,但不同的是,账本需要对应的访问权限控制(ACLs);

智能合约:商业逻辑需要智能合约的代码来描述,尤其是复杂的商业逻辑,更需要高级语言的支持。同时交易又需要对应的数字签名来抵抗对于交易的抵赖和篡改;

共识算法:企业区块链需要多方共同认可交易,并需要满足一定量的性能吞吐要求;

本发明具备下列特性:

身份管理:区别于公有链上基于私钥的匿名账户体系,平台的身份管理模块为企业应用带来了更多场景,同时放弃内置的代币体系;

多通道与子链:多通道的设计使得系统中可创建多个逻辑子链,账本的透明仅在单个逻辑链范围内,对应于公有链的全透明,保密性以及性能得以提升;

共识与记账分离:平台提供可插拔的共识算法模块,并且将数据维护与共识服务的功能逻辑上相分离,结合多通道的设计,系统的扩展性。

本发明基于一站式解决方案的前提出发,本案运用于分布式应用程序的真正可扩展的区块链系统。它支持模块化的共识协议,允许系统根据特定用例和信任模型进行定制。用编程语言开发智能合约,不依赖本机加密货币的运行分布式应用的区块链系统。这与现有需要使用特定编程语言或者依赖加密货币才能开发智能合约的区块链平台形成了鲜明的对比。此外,它使用一个与行业标准身份管理相结合的易于理解的成员服务来实现许可模型。

以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

相关技术
  • 基于区块链技术的电力行业数字身份证管理方法及系统
  • 一种基于区块链技术的数字档案管理方法及系统
技术分类

06120112899238