发明内容
有鉴于此,本发明实施例提供一种电力结算隐私保护方法及装置,以实现提升电力结算交易系统的性能和保护隐私的目的。
为实现上述目的,本发明实施例提供如下技术方案:
本发明实施例第一方面公开了一种电力结算隐私保护方法,适用于结算中心,所述结算中心为结算链上的一个节点,所述方法包括:
获取结算周期内各个参与方结算信息,所述参与方至少包括电网公司、用电企业和结算中心,所述结算信息至少包括所述用电企业的实际用电量、所述电网公司的合同电价和合同偏差电量;
根据所述结算信息链下进行电力结算,得到多笔结算数据,所述结算数据包括合同编号、结算类型、结算电价和结算电量,所述结算电价和所述结算电量为敏感字段;
利用二层扩容zkRollup生成状态变更零知识证明,将所述多笔结算数据进行聚合,并将非敏感的结算数据及所述状态变更零知识证明上链,使所述结算链上的其他节点验证所述状态变更零知识证明,以获取全局参与方的状态变量;
利用所述敏感字段生成SNARK零知识证明并上链,使所述结算链上的其他节点基于所述SNARK零知识证明验证对应参与方的变更数据,在验证通过后,在链上基于所述状态变更零知识证明验证各个所述参与方的有效变更数据。
可选的,所述利用所述敏感字段生成SNARK零知识证明并上链,包括:
将所述结算数据中的敏感字段转换为多项式,并利用Setup算法将所述多项式转换成交易电路;
在所述交易电路上添加隐私保护电路,所述隐私保护电路包括结算主体隐私信息和电力结算规则;
根据Prove算法,将所述隐私保护电路编译成SNARK零知识证明,并将所述SNARK零知识证明上链。
可选的,所述根据Prove算法,将所述隐私保护电路编译成SNARK零知识证明,将所述SNARK零知识证明上链,包括:
将所述隐私保护电路进行分割,得到多个隐私处理单元和交易处理单元,所述隐私处理单元用于对所述结算数据中的关键信息的存在性进行验证,所述交易处理单元用于对结算规则的合法性进行验证;
将所述隐私处理单元和所述交易处理单元进行组合,得到电力结算零知识证明电路;
根据Prove算法,将所述电力结算零知识证明电路编译成SNARK零知识证明,并将所述SNARK零知识证明上链。
本发明实施例第二方面公开了一种电力结算隐私保护方法,适用于验证节点,所述验证节点为结算链上的一个节点,所述方法包括:
获取所述结算链上的状态变更零知识证明;
利用所述结算链上的Rollup合约验证所述状态变更零知识证明,并在验证通过后,获取全局参与方的状态变量,将所述状态变量上链;
获取所述结算链上的SNARK零知识证明;
基于所述SNARK零知识证明验证对应参与方的变更数据,在验证通过后,在链上基于所述状态变更零知识证明验证各个所述参与方的有效变更数据,并将有效变更数据上链。
可选的,所述获取所述结算链上的SNARK零知识证明,包括:
获取所述结算链上的结算信息、SNARK零知识证明和对应参与方的变更数据;
相应的,所述基于所述SNARK零知识证明验证对应参与方的变更数据,在验证通过后,在链上基于所述状态变更零知识证明验证所述参与方的有效变更数据并上链,包括:
解析所述SNARK零知识证明,得到结算主体隐私信息和电力结算规则;
利用Verify算法,对所述对应参与方的变更数据、所述SNARK零知识证明、所述结算信息、所述结算主体隐私信息和所述电力结算规则进行验证,在验证通过后,基于所述状态变更零知识证明验证所述参与方的有效变更数据并上链。
本发明实施例第三方面公开了一种电力结算隐私保护装置,适用于结算中心,所述结算中心为结算链上的一个节点,所述装置包括:
获取模块,用于获取结算周期内各个参与方的结算信息,所述参与方至少包括电网公司、用电企业和结算中心,所述结算信息至少包括所述用电企业的实际用电量、所述电网公司的合同电价和合同偏差电量;
结算模块,用于根据所述结算信息链下进行电力结算,得到多笔结算数据,所述结算数据包括合同编号、结算类型、结算电价和结算电量,所述结算电价和所述结算电量为敏感字段;
第一生成模块,用于利用二层扩容zkRollup生成状态变更零知识证明,将所述多笔结算数据进行聚合,并将非敏感的结算数据及所述状态变更零知识证明上链,使所述结算链上的其他节点验证所述状态变更零知识证明,以获取全局参与方的状态变量;
第二生成模块,用于利用所述敏感字段生成SNARK零知识证明并上链,使所述结算链上的其他节点基于所述SNARK零知识证明验证对应参与方的变更数据,在验证通过后,在链上基于所述状态变更零知识证明验证各个所述参与方的有效变更数据。
可选的,所述第二生成模块,包括:
转换单元,用于将所述结算数据中的敏感字段转换为多项式,并利用Setup算法将所述多项式转换成交易电路;
添加单元,用于在所述交易电路上添加隐私保护电路,所述隐私保护电路包括结算主体隐私信息和电力结算规则;
编译单元,用于根据Prove算法,将所述隐私保护电路编译成SNARK零知识证明,并将所述SNARK零知识证明上链。
可选的,所述编译单元具体用于:
将所述隐私保护电路进行分割,得到多个隐私处理单元和交易处理单元,所述隐私处理单元用于对所述结算数据中的关键信息的存在性进行验证,所述交易处理单元用于对结算规则的合法性进行验证;将所述隐私处理单元和所述交易处理单元进行组合,得到电力结算零知识证明电路;根据Prove算法,将所述电力结算零知识证明电路编译成SNARK零知识证明,并将所述SNARK零知识证明上链。
本发明实施例第四方面公开了一种电力结算隐私保护装置,适用于验证节点,所述验证节点为结算链上的一个节点,所述装置包括:
第一获取模块,用于获取所述结算链上的状态变更零知识证明;
第一验证模块,用于利用所述结算链上的Rollup合约验证所述状态变更零知识证明,并在验证通过后,获取全局参与方的状态变量,将所述状态变量上链;
第二获取模块,用于获取所述结算链上的SNARK零知识证明;
第二验证模块,用于基于所述SNARK零知识证明验证对应参与方的变更数据,在验证通过后,在链上基于所述状态变更零知识证明验证各个所述参与方的有效变更数据并上链。
可选的,所述第二获取模块,具体用于:
获取所述结算链上的结算信息、SNARK零知识证明和对应参与方的变更数据;
相应的,所述第二验证模块,具体用于:
解析所述SNARK零知识证明,得到结算主体隐私信息和电力结算规则;利用Verify算法,对所述对应参与方的变更数据、所述SNARK零知识证明、所述结算信息、所述结算主体隐私信息和所述电力结算规则进行验证,在验证通过后,基于所述状态变更零知识证明验证所述参与方的有效变更数据并上链。
基于上述本发明实施例提供的一种电力结算隐私保护方法及装置,所述方法包括:获取结算周期内各个参与方的结算信息,所述参与方至少包括电网公司、用电企业和结算中心,所述结算信息至少包括所述用电企业的实际用电量、所述电网公司的合同电价和合同偏差电量;根据所述结算信息链下进行电力结算,得到多笔结算数据,所述结算数据包括结算数据包括合同编号、结算类型、结算电价和结算电量,所述结算电价和所述结算电量为敏感字段;利用二层扩容zkRollup生成状态变更零知识证明,将所述多笔结算数据进行聚合,并将非敏感的结算数据及所述状态变更零知识证明上链,使所述结算链上的其他节点验证所述状态变更零知识证明,以获取全局参与方的状态变量;利用所述敏感字段生成SNARK零知识证明并上链,使所述结算链上的其他节点基于所述SNARK零知识证明验证对应参与方的变更数据,在验证通过后,在链上基于所述状态变更零知识证明验证各个所述参与方的有效变更数据。在本方案中,利用zkRollup将多笔结算数据聚合,得到状态变更零知识证明,并验证状态变更零知识证明,利用结算数据中的敏感字段生成SNARK零知识证明,使结算链上的其他节点通过验证SNARK零知识证明得到全局参与方的结算信息,从而提升电力结算交易系统的性能,达到隐私保护的目的。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
由背景技术可知,现有的区块链技术缺少对购电方、售电方、传输方等企业真实电价、电量等企业交易信息、结算信息等敏感信息的隐私保护。
因此,本发明实施例提供一种电力结算隐私保护方法及装置,在本方案中,利用zkRollup将多笔结算数据聚合,得到零知识证明,并验证状态变更零知识证明,利用结算数据中的敏感字段生成SNARK零知识证明,使结算链上的其他节点通过验证SNARK零知识证明得到全局节点的结算信息,从而提升电力结算交易系统的性能,达到隐私保护的目的。
如图1所示,为本发明实施例提供的一种电力结算隐私保护方法的流程示意图,该方法适用于结算中心。
需要说明的是,结算中心为结算链上的一个节点。
在本发明实施例中,结算链为区块链。
需要说明的是,区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。
该电力结算隐私保护方法主要包括以下步骤:
步骤S101:获取结算周期内各个参与方的结算信息。
在步骤S101中,参与方至少包括电网公司、用电企业和结算中心。
结算信息至少包括用电企业的实际用电量、电网公司的合同电价和合同偏差电量。
需要说明的是,在结算中心获取各个参与方的结算信息之前,需要先在各个参与方之间通过区块链技术搭建结算链。
在具体实现步骤S101的过程中,结算中心获取各个参与方在各个结算周期内的结算信息。
步骤S102:根据结算信息链下进行电力结算,得到多笔结算数据。
在步骤S102中,结算数据包括合同编号、结算类型、结算电价和结算电量。
其中,结算电价和结算电量为敏感字段。
在具体实现步骤S102的过程中,结算中心根据获取到的结算周期内各个参与方的结算信息,在链下对各个参与方进行电力结算,具体地,结算中心对用电企业,电网公司各时段的合同电量和合同偏差电量分开结算,得到多笔结算数据。
步骤S103:利用二层扩容zkRollup生成状态变更零知识证明,将多笔结算数据进行聚合,并将非敏感的结算数据及状态变更零知识证明上链,使结算链上的其他节点验证状态变更零知识证明,以获取全局参与方的状态变量。
需要说明的是,利用二层扩容zkRollup将多笔结算数据进行聚合,生成状态变更零知识证明,这一过程是在链下进行的。
需要说明的是,zkRollup采用有效性证明,将数百个交易进行打包,同时生成一个称为ZK-SNARK的零知识证明,智能合约通过验证ZK-SNARK证明的合法性来保障批量交易的合法性。
需要说明的是,零知识证明是一种涉及两方或更多方的协议,即两方或更多方完成一项任务所需采取的一系列步骤。
零知识证明需要满足以下要求:
(1)完整性。如果企业的电量电价等隐私信息满足了电路的要求,那么生成的证明一定可以被验证通过。其中,电路为算数电路,电路是为了证明运算规则的,例如电费=电价*电量,将其转换成电路,电路验证通过,即表示运算关系以及结果正确。
(2)知识证明(Proof of Knowledge)。企业信息、电价、电路等字段可以被提取出来。
(3)简短证明(SNARK)。
(4)零知识。
总而言之,在进行电力结算交易的过程中不能暴露任何与企业的电量电价等隐私信息有关的信息。
需要说明的是,结算链上的其他节点泛指想要获取数据,对证明进行验证的节点,包括但不限于电网公司和用电企业。
在具体实现步骤S103的过程中,结算中心利用二层扩容zkRollup生成状态变更零知识证明,将结算得到的多笔结算数据聚合到目标区块中,也就是说,利用zkRollup,将用电企业,电网公司产生的数百笔结算交易捆绑为一个交易,将数百个交易压缩,生成状态变更零知识证明,然后,将生成的状态变更零知识证明及非敏感的结算数据上链至结算链,结算链上的其他节点对状态变更零知识证明进行验证,以获取全局参与方的状态变量。
步骤S104:利用敏感字段生成SNARK零知识证明并上链,使结算链上的其他节点基于SNARK零知识证明验证对应参与方的变更数据,在验证通过后,在链上基于状态变更零知识证明验证各个参与方的有效变更数据。
需要说明的是,一个SNARK零知识证明系统,由三个核心算法组成:Setup,Prove和Verify。
需要说明的是,将得到的有效数据上链后,企业用户和监管机构等可以从结算链中实时获取并验证数据。
需要说明的是,利用敏感字段生成SNARK零知识证明并上链,这一过程是在链下进行的。
在具体实现步骤S104的过程中,结算中心利用结算数据中的敏感字段生成SNARK零知识证明,然后,将生成的SNARK零知识证明上链至结算链,结算链上的其他节点基于SNARK零知识证明验证对应参与方的变更数据,在验证通过后,在链上基于状态变更零知识证明对各个参与方的有效变更数据进行验证。
可选的,执行步骤S104利用敏感字段生成SNARK零知识证明并上链的过程,如图2所示,为本发明实施例提供的一种生成SNARK零知识证明的流程示意图,主要包括以下步骤:
步骤S201:将结算数据中的敏感字段转换为多项式,并利用Setup算法将多项式转换成交易电路。
在具体实现步骤S201的过程中,确定全局参与方的状态变量通过验证后,将上述得到的结算数据中的敏感字段转换为多项式,并利用Setup算法进一步将多项式转换成交易电路。
步骤S202:在交易电路上添加隐私保护电路。
在步骤S202中,隐私保护电路包括结算主体隐私信息和电力结算规则。
结算主体隐私信息包括但不限于主体名称和信用编码。
电力结算规则包括但不限于电费计算规则,例如:电费=电价*电量,以及用电违法合同的惩罚规则。
需要说明的是,在交易电路上添加隐私保护电路,得到新电路,该新电路在保障结算信息的安全性基础上,又能保证结算主体的隐私信息。
在具体实现步骤S202的过程中,结算中心对零知识证明中的交易电路进行重新设计,在原有的交易电路的基础上,加入结算主体隐私信息和电力结算规则的隐私保护电路。
步骤S203:根据Prove算法,将隐私保护电路编译成SNARK零知识证明,并将SNARK零知识证明上链。
在具体实现步骤S203的过程中,结算中心通过Prove算法,将隐私保护电路进行编译,得到SNARK零知识证明,并将SNARK零知识证明上链至结算链。
可选的,执行步骤S203根据Prove算法,将隐私保护电路编译成SNARK零知识证明,并将SNARK零知识证明上链的过程,如图3所示,为本发明实施例提供的另一种生成SNARK零知识证明的流程示意图,主要包括以下步骤:
步骤S301:将隐私保护电路进行分割,得到多个隐私处理单元和交易处理单元。
在步骤S301中,隐私处理单元用于对结算数据中的关键信息的存在性进行验证。
交易处理单元用于对结算规则的合法性进行验证。
需要说明的是,存在性验证是验证信息是否被篡改,结算规则验证是验证规则运算是否正确。
在具体实现步骤S301的过程中,结算中心将隐私保护电路分割成一个个通用的处理单元,该处理单元包括隐私处理单元和交易处理单元。
步骤S302:将隐私处理单元和交易处理单元进行组合,得到电力结算零知识证明电路。
在具体实现步骤S302的过程中,结算中心将隐私处理单元和交易处理单元进行组合,也就是说,结算中心将隐私处理单元和交易处理单元连接在一起,得到电力结算零知识证明电路。
步骤S303:根据Prove算法,将电力结算零知识证明电路编译成SNARK零知识证明,并将SNARK零知识证明上链。
在具体实现步骤S303的过程中,结算中心通过Prove算法,将电力结算零知识证明电路进行编译,得到SNARK零知识证明,并将SNARK零知识证明上链至结算链。
基于本发明实施例提供的一种电力结算隐私保护方法,通过获取结算周期内各个参与方的结算信息;根据结算信息链下进行电力结算,得到多笔结算数据,结算数据包括结算数据包括合同编号、结算类型、结算电价和结算电量,所述结算电价和所述结算电量为敏感字段;利用二层扩容zkRollup将多笔结算数据进行聚合,生成状态变更零知识证明,将非敏感的结算数据及状态变更零知识证明上链,使结算链上的其他节点利用状态变更零知识证明验证全局参与方状态变量;利用敏感字段生成SNARK零知识证明并上链,将SNARK零知识证明上链,使结算链上的其他节点基于SNARK零知识证明验证对应参与方的变更数据,在验证通过后,在链上基于状态变更零知识证明验证各个参与方的有效变更数据。在本方案中,利用zkRollup将多笔结算数据聚合,得到状态变更零知识证明,并验证状态变更零知识证明,利用结算数据中的敏感字段生成SNARK零知识证明,使结算链上的其他节点通过验证SNARK零知识证明得到全局参与方的结算信息,从而提升电力结算交易系统的性能,达到隐私保护的目的。
基于上述本发明实施例图1示出的电力结算隐私保护方法,如图4所示,为本发明实施例提供的另一种电力结算隐私保护方法的流程示意图,该方法适用于验证节点。
需要说明的是,验证节点为结算链上的一个节点。
该方法主要包括以下步骤:
步骤S401:获取结算链上的状态变更零知识证明。
在具体实现步骤S401的过程中,验证节点获取结算中心上链至结算链上的状态变更零知识证明。
步骤S402:利用结算链上的Rollup合约验证状态变更零知识证明,并在验证通过后,获取全局参与方的状态变量,将全局参与方的状态变量上链。
在具体实现步骤S402的过程中,结算中心将状态变更零知识证明上链至结算链后,验证节点利用结算链上的Rollup合约对所获取的状态变更零知识证明进行验证,若状态变更零知识证明验证通过,则获取全局参与方的状态变量,并将全局参与方的状态变量上链。
需要说明的是,验证节点利用结算链上的Rollup合约验证零知识证明,证明了存在一些交易,这些交易是由发起人正确签名过的,并且正确地更新了相关账户的余额,并使旧的默克尔根值变为代表新状态的新值,杜绝出现运营者提交无效状态或篡改状态的可能。
步骤S403:获取结算链上的SNARK零知识证明。
在具体实现步骤S403的过程中,结算中心将SNARK零知识证明上链至结算链后,验证节点获取结算中心上链至结算链上的SNARK零知识证明。
步骤S404:基于SNARK零知识证明验证对应参与方的变更数据,在验证通过后,在链上基于状态变更零知识证明验证各个参与方的有效变更数据并上链。
在具体实现步骤S404的过程中,验证节点基于SNARK零知识证明对对应参与方的变更数据进行验证,若验证通过,则在链上基于状态变更零知识证明对各个参与方的有效变更数据进行验证,得到有效变更数据,并在各个参与方的有效变更数据验证通过后,将有效变更数据上链至结算链。
可选的,执行步骤S403获取结算链上的SNARK零知识证明和步骤S404基于SNARK零知识证明验证对应参与方的变更数据,在验证通过后,在链上基于状态变更零知识证明验证各个参与方的有效变更数据并上链的过程,如图5所示,为本发明实施例提供的一种验证SNARK零知识证明的流程示意图,主要包括以下步骤:
步骤S501:获取结算链上的结算信息、SNARK零知识证明和对应参与方的变更数据。
在具体实现步骤S501的过程中,验证节点获取结算链上的结算信息、SNARK零知识证明和对应参与方的变更数据。
步骤S502:解析SNARK零知识证明,得到结算主体隐私信息和电力结算规则。
在具体实现步骤S502的过程中,结算中心将SNARK零知识证明上链至结算链后,验证节点对获取到的结算链上的SNARK零知识证明进行解析,得到结算主体隐私信息和电力结算规则。
步骤S503:利用Verify算法,对对应参与方的变更数据、SNARK零知识证明、结算信息、结算主体隐私信息和电力结算规则进行验证,在验证通过后,在链上基于状态变更零知识证明验证各个参与方的有效变更数据,并将有效变更数据上链。
在具体实现步骤S503的过程中,验证节点利用Verify算法,对对应参与方的变更数据、SNAR零知识K证明、结算链上的结算信息、结算主体隐私信息和电力结算规则进行验证,若验证通过,在链上基于状态变更零知识证明对各个参与方的有效变更数据进行验证,得到有效变更数据,并在各个参与方的有效变更数据验证通过后,将有效变更数据上链至结算链。
基于本发明实施例提供的一种电力结算隐私保护方法,先通过验证状态变更零知识证明,保障了结算交易的合法性,再通过验证SNARK零知识证明,也就是验证电路的满足性,进而保证交易、结算主体隐私信息、电力结算规则的合法性,从而达到隐私保护的目的。
与上述本发明实施例图1示出的一种电力结算隐私保护方法相对应,本发明实施例还对应提供了一种电力结算隐私保护装置,如图6所示,该装置适用于结算中心,结算中心为结算链上的一个节点,该装置包括:获取模块601、结算模块602、第一生成模块603和第二生成模块604。
获取模块601,用于获取结算周期内各个参与方结算信息。
其中,参与方至少包括电网公司、用电企业和结算中心,结算信息至少包括用电企业的实际用电量、电网公司的合同电价和合同偏差电量。
结算模块602,用于根据结算信息链下进行电力结算,得到多笔结算数据。
其中,结算数据包括合同编号、结算类型、结算电价和结算电量,结算电价和结算电量为敏感字段。
第一生成模块603,用于利用基于零知识证明的二层扩容zkRollup生成状态变更零知识证明,将多笔结算数据进行聚合,并将非敏感的结算数据及状态变更零知识证明上链,使结算链上的其他节点验证状态变更零知识证明,以获取全局参与方的状态变量。
第二生成模块604,用于利用敏感字段生成SNARK零知识证明并上链,使结算链上的其他节点基于SNARK零知识证明验证对应参与方的变更数据,在验证通过后,在链上基于状态变更零知识证明验证各个参与方的有效变更数据。
可选的,基于上述图6示出的第二生成模块604,所述第二生成模块604包括:转换单元、添加单元和编译单元。
转换单元,用于将结算数据中的敏感字段转换为多项式,并利用Setup算法将多项式转换成交易电路。
添加单元,用于在交易电路上添加隐私保护电路。
其中,隐私保护电路包括结算主体隐私信息和电力结算规则。
编译单元,用于根据Prove算法,将隐私保护电路编译成SNARK零知识证明,并将SNARK零知识证明上链。
可选的,基于上述图6示出的第二生成模块604,所述编译单元具体用于:
将隐私保护电路进行分割,得到多个隐私处理单元和交易处理单元,其中,隐私处理单元用于对结算数据中的关键信息的存在性进行验证,交易处理单元用于对结算规则的合法性进行验证;将隐私处理单元和交易处理单元进行组合,得到电力结算零知识证明电路;根据Prove算法,将电力结算零知识证明电路编译成SNARK零知识证明,并将SNARK零知识证明上链。
需要说明的是,上述本发明实施例公开的电力结算隐私保护装置中的各个模块具体的原理和执行过程,与上述本发明实施电力结算隐私保护方法相同,可参见上述本发明实施例公开的电力结算隐私保护方法中相应的部分,这里不再进行赘述。
基于本发明实施例提供的一种电力结算隐私保护装置,通过获取结算周期内各个参与方的结算信息;根据结算信息链下进行电力结算,得到多笔结算数据,结算数据包括结算数据包括合同编号、结算类型、结算电价和结算电量,结算电价和结算电量为敏感字段;利用基于零知识证明的二层扩容zkRollup生成状态变更零知识证明,将多笔结算数据进行聚合,并将非敏感的结算数据及状态变更零知识证明上链,使结算链上的其他节点验证状态变更零知识证明,以获取全局参与方的状态变量;利用敏感字段生成SNARK零知识证明并上链,使结算链上的其他节点基于SNARK零知识证明验证对应参与方的变更数据,在验证通过后,在链上基于状态变更零知识证明验证各个参与方的有效变更数据。在本方案中,利用zkRollup将多笔结算数据聚合,得到状态变更零知识证明,并验证状态变更零知识证明,利用结算数据中的敏感字段生成SNARK零知识证明,使结算链上的其他节点通过验证SNARK零知识证明得到全局参与方的结算信息,从而提升电力结算交易系统的性能,达到隐私保护的目的。
与上述本发明实施例图4示出的一种电力结算隐私保护方法相对应,本发明实施例还对应提供了另一种电力结算隐私保护装置,如图7所示,该装置适用于验证节点,验证中心为结算链上的一个节点,该装置包括:第一获取模块701、第一验证模块702、第二获取模块703和第二验证模块704。
获取模块701,用于获取结算链上的状态变更零知识证明。
验证模块702,用于利用结算链上的Rollup合约验证状态变更零知识证明,并在验证通过后,获取全局参与方的状态变量,将状态变量上链。
第二获取模块703,用于获取结算链上的SNARK零知识证明。
第二验证模块704,用于基于SNARK零知识证明验证对应参与方的变更数据,在验证通过后,在链上基于状态变更零知识证明验证各个参与方的有效变更数据并上链。
可选的,基于上述图7示出的第二获取模块703和第二验证模块704,所述第二获取模块703,具体用于:
获取结算链上的结算信息、SNARK零知识证明和对应参与方的变更数据。
相应的,所述第二验证模块704,具体用于:
解析SNARK零知识证明,得到结算主体隐私信息和电力结算规则;利用Verify算法,对对应参与方的变更数据、SNARK零知识证明、结算信息、结算主体隐私信息和电力结算规则进行验证,在验证通过后,基于状态变更零知识证明验证参与方的有效变更数据并上链。
需要说明的是,上述本发明实施例公开的电力结算隐私保护装置中的各个模块具体的原理和执行过程,与上述本发明实施电力结算隐私保护方法相同,可参见上述本发明实施例公开的电力结算隐私保护方法中相应的部分,这里不再进行赘述。
基于本发明实施例提供的一种电力结算隐私保护装置,先通过验证状态变更零知识证明,保障了结算交易的合法性,再通过验证SNARK零知识证明,也就是验证电路的满足性,进而保证交易、结算主体隐私信息、电力结算规则的合法性,从而达到隐私保护的目的。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本公开的范围。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。