一种基于同态加密智能合约的电力数据安全共享方法及系统技术方案

技术编号:34465923 阅读:13 留言:0更新日期:2022-08-10 08:38
本发明专利技术提出了一种基于同态加密智能合约的电力数据安全共享方法及系统。该方法将同态加密算法布置在智能合约里,通过对电力数据的个别隐私字段进行同态加密,牺牲该字段一定程度的计算效率而换取隐私保障。让智能合约完成数据分析计算的功能,只共享计算结果而不是源数据且共享全过程上链存证,从而保证供需双方的数据安全,防止数据泄露。防止数据泄露。防止数据泄露。

【技术实现步骤摘要】
一种基于同态加密智能合约的电力数据安全共享方法及系统


[0001]本专利技术属于数据共享
,特别是涉及一种基于同态加密智能合约的电力数据安全共享方法及系统。

技术介绍

[0002]目前基于区块链技术的电力数据交易共享系统有多平等主体、去信任交易和记录留痕(可溯源)的优势,但依然存在原始数据转卖备份导致的泄露滥用风险以及数据处理服务不可信的缺陷。考虑数据需求方一般是需要数据分析的结果而并不直接使用原始数据,如果仅交易源数据的运算结果而不是源数据,就可以杜绝源数据泄露。为了解决计算环境信任问题,将数据的分析计算部分转移到区块链智能合约执行环境中,相当于在区块链系统上部署了“云计算”的功能服务。但“云计算”对于数据所有方是有数据泄露风险的。若数据是以明文形式提交在区块链系统中,则在通信或节点存储环节有数据泄露风险。
[0003]为实现隐私安全的数据计算服务,目前有“智能合约+SGX技术”的软硬件结合技术方案。SGX技术是对Intel架构的一个扩展,它能够在硬件级别保护程序的执行过程,即使主机拥有ROOT权限或者虚拟机管理员权限也无法访问其中的代码和数据。SGX技术要求特殊的硬件设施,本质上是通过对区块链参与方增加硬件约束(需要支持TEE的CPU),来换取性能和隐私保障,由此提高了硬件成本。本专利技术则提出一种“智能合约+同态加密算法”的纯软件解决方案,对个别字段的隐私数据进行同态加密,牺牲该字段一定程度的计算效率而换取隐私保障,免却了特殊硬件的购置和使用成本。

技术实现思路

[0004]本专利技术为了解决现有技术中的问题,提出一种基于同态加密智能合约的电力数据安全共享方法及系统。
[0005]本专利技术是通过以下技术方案实现的,本专利技术提出一种基于同态加密智能合约的电力数据安全共享方法,在Fabric区块链网络中,数据提供方与数据需求方都是区块链同一通道的不同组织节点,节点间共同审议背书数据共享请求智能合约,于是供需双方通过所述智能合约进行数据共享请求处理,共享记录的每次生成都会产生区块,区块由区块链的节点共同保存,由共识算法确保一致性,因此共享记录不可篡改地保存在区块链账本中,电力数据保存在数据提供方的Fabric私有数据或者链下自有数据库里,满足智能合约进行数据计算时的数据调用;数据提供方是私有数据的被授权节点,且布置含有同态加密算法的数据计算智能合约;此时数据需求方以Client的身份向区块链系统发起数据请求,利用共享请求智能合约将数据共享请求写入区块链请求记录账本,数据提供方读取请求记录账本并通过共享请求后将调用数据计算智能合约,上传的电力数据在智能合约可信任的计算环境下完成数据处理分析,其中选定的隐私数据字段进行同态加密计算,生成计算报告并写入区块链,最后需求方Client调阅计算报告,数据共享流程结束。
[0006]本专利技术提出一种基于同态加密智能合约的电力数据安全共享系统,所述共享系统
包括Web端和Fabric网络;Web端是负责直接与用户交互展示的应用端,为用户提供系统核心功能的操作入口,Web端使用Fabric的应用程序SDK进行开发,连接区块链网络交互的服务接口,执行链码调用和数据访问;Fabric网络中的链码实现数据共享的业务逻辑,定义了区块链中存储的数据结构,上传的电力数据集、共享请求记录和数据计算报告都会转化为键值对存储至Fabric网络账本中,可回溯不可篡改,满足业务需求对数据的访问。
[0007]进一步地,在共享系统中,数据提供方上传的电力数据是保存在区块链网络中节点的私有数据库或者链下自有电力数据库里,逻辑上是根据管理需求,以文档型数据库的管理模式分成独立的数据表单,即电力数据表,电力数据表是json格式,对应于链码开发中的Table结构体。
[0008]进一步地,在共享系统中,数据供需两方共用的数据请求记录表即共享请求表,对应于链码开发中的Request结构体,由需求方生成并提交至区块链网络,逻辑上保存在公有的请求记录账本中。
[0009]进一步地,在共享系统中,共享请求表中的请求经由提供方审批后,区块链网络会根据请求内容从私有数据库中提取对应的电力数据进行计算服务,生成的计算结果与请求内容相整合形成计算报告,保存在需求方私有的计算报告账本中,对应于链码开发中的Response结构体。
[0010]进一步地,所述智能合约具体由链码中的五个go代码文件进行实现;链码中包含encryption.go、request.go、privateOrg1.go、privateOrg2.go以及service.go五份文件。
[0011]进一步地,service.go中定义了数据提供方为需求方设置的具体计算服务,所述计算服务包括GetAttributeTotal()、GetAttributeAve()和GetPearson();在计算过程中,如果计算字段涉及加密字段,则会调用对应同态加密算法在密文的基础上进行计算,只需要对密文计算结果进行解密,并返回解密后的结果即可,保证数据的安全性,对每种计算服务开发特定优化的同态加密算法并部署在encryption.go中,encryption.go中定义了同态加密算法的密钥生成,加密、密文计算和解密方法,链码中可以直接导入对应的方法对插入的数据进行加密和解密,密文计算由service.go开发的计算服务决定,同态加密算法允许数据在加密的情况下进行计算,最后解密返回和明文计算相同的结果。
[0012]进一步地,数据提供方的privateOrg1.go定义了Table结构体来存储电力数据,数据以表格的形式存在,实现了Create和Read基本方法;新增表格方法CreateMyTable()是使用json.Umarshal将电力数据表解析为一个Table结构体,Table结构体的TableFlag字段是数据表的操作标识符,0表示新增,1表示删除;当某电力数据表被调用时,链码会先遍历该电力私有数据计算出一个最新的数据表再供service.go中的计算函数进行运算,从而实现对电力数据表的增删改查基本操作;CreateMyTable()调用encryption.go中定义的Encryption()来对选定隐私字段作同态加密处理,默认将所有计算服务函数所涉及的同态加密算法都各自加密一份密文以供给各种计算服务使用;之后调用Fabric提供的API——stub.PutPrivateData将表格数据插入到数据提供方的私有数据库中。
[0013]进一步地,request.go定义了Request和Response结构体,分别用来存储数据需求方发送来的数据请求和数据共享计算结果;数据需求方使用请求发送方法SendRequest()发送一个数据计算请求插入到公有的请求数据库中,HandleSingle和HandleAll分别是选定处理和批量处理请求的方法,可以通过反射机制调用计算服务函数;电力数据只储存在
数据提供方的私有数据库中,因此只有数据提供方可以完成目标字段的计算,且生成数据共享计算结果Response结构体,在修本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于同态加密智能合约的电力数据安全共享方法,其特征在于,在Fabric区块链网络中,数据提供方与数据需求方都是区块链同一通道的不同组织节点,节点间共同审议背书数据共享请求智能合约,于是供需双方通过所述智能合约进行数据共享请求处理,共享记录的每次生成都会产生区块,区块由区块链的节点共同保存,由共识算法确保一致性,因此共享记录不可篡改地保存在区块链账本中,电力数据保存在数据提供方的Fabric私有数据或者链下自有数据库里,满足智能合约进行数据计算时的数据调用;数据提供方是私有数据的被授权节点,且布置含有同态加密算法的数据计算智能合约;此时数据需求方以Client的身份向区块链系统发起数据请求,利用共享请求智能合约将数据共享请求写入区块链请求记录账本,数据提供方读取请求记录账本并通过共享请求后将调用数据计算智能合约,上传的电力数据在智能合约可信任的计算环境下完成数据处理分析,其中选定的隐私数据字段进行同态加密计算,生成计算报告并写入区块链,最后需求方Client调阅计算报告,数据共享流程结束。2.一种基于同态加密智能合约的电力数据安全共享系统,其特征在于:所述共享系统包括Web端和Fabric网络;Web端是负责直接与用户交互展示的应用端,为用户提供系统核心功能的操作入口,Web端使用Fabric的应用程序SDK进行开发,连接区块链网络交互的服务接口,执行链码调用和数据访问;Fabric网络中的链码实现数据共享的业务逻辑,定义了区块链中存储的数据结构,上传的电力数据集、共享请求记录和数据计算报告都会转化为键值对存储至Fabric网络账本中,可回溯不可篡改,满足业务需求对数据的访问。3.根据权利要求2所述的共享系统,其特征在于:在共享系统中,数据提供方上传的电力数据是保存在区块链网络中节点的私有数据库或者链下自有电力数据库里,逻辑上是根据管理需求,以文档型数据库的管理模式分成独立的数据表单,即电力数据表,电力数据表是json格式,对应于链码开发中的Table结构体。4.根据权利要求3所述的共享系统,其特征在于:在共享系统中,数据供需两方共用的数据请求记录表即共享请求表,对应于链码开发中的Request结构体,由需求方生成并提交至区块链网络,逻辑上保存在公有的请求记录账本中。5.根据权利要求4所述的共享系统,其特征在于:在共享系统中,共享请求表中的请求经由提供方审批后,区块链网络会根据请求内容从私有数据库中提取对应的电力数据进行计算服务,生成的计算结果与请求内容相整合形成计算报告,保存在需求方私有的计算报告账本中,对应于链码开发中的Response结构体。6.根据权利要求5所述的共享系统,其特征在于:所述智能合约具体由链码中的五个go代码文件进行实现;链码中包含encryption.go、request.go、privateOrg1.go、privateOrg2.go以及service.go五份文件。7.根据权利要求6所述的共享系统,其特征在于:service.go中定义了数...

【专利技术属性】
技术研发人员:胡雅娟刘松崧华科叶强刘刚高超越胡开元林英杰温家俊马轩
申请(专利权)人:国网黑龙江省电力有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1