支持FHE的智能合约引擎实现方法及系统技术方案

技术编号:35352683 阅读:21 留言:0更新日期:2022-10-26 12:23
一种支持FHE的智能合约引擎实现方法及系统,通过将加密的待处理数据和数据的处理逻辑分别通过区块链以及区块链的智能合约的方式发布,收到区块链的共识节点通过智能合约虚拟机加载智能合约以及待处理数据,依照其中的处理逻辑得到加密结果并通过智能合约发布至区块链中。本发明专利技术在不暴露用户数据的情况下实现用户计算逻辑,通过计算逻辑与加密数据分离发布的措施,能够实现对于任意长度密文的计算;将同态加密计算库隔离于与智能合约虚拟机之外,通过同态加密计算原语调用完成密文计算,可突破虚拟机的资源限制,实现高性能密文计算。算。算。

【技术实现步骤摘要】
支持FHE的智能合约引擎实现方法及系统


[0001]本专利技术涉及的是一种区块链领域的技术,具体是一种支持同态加密支持(FHE)的智能合约引擎实现方法及系统。

技术介绍

[0002]同态加密则是一种特殊的加密方式,允许用户直接对加密数据进行计算而不需要进行预先解密。计算结果仍以加密形式保留,对结果进行解密后即能得到对应的明文计算结果。如果同态加密只能够进行一种运算例如加法或者乘法称为部分同态,而如果既实现加法又实现乘法则称为全同态加密FHE。利用FHE可实现隐私保护的外包存储和运算,数据拥有者将明文数据加密后发送给第三方,第三方在无法获得明文的情况下完成数据计算并发送给数据拥有者。数据拥有者解密后即可得到明文计算结果。这种计算适用于不能泄露明文信息而需要第三方参与计算的场景。

技术实现思路

[0003]本专利技术针对现有同态加密中密文数据过长、传输等待时间过程以及参数过长的问题以及现有技术通过合约虚拟机执行以预编译合约的形式部署执行的全同态加密算法效率较低的缺陷,提出一种支持FHE的智能合约引擎实现方法及系统,通过数据上传与计算过程分离的方法,可以实现任意计算函数的密文计算,在不暴露用户数据的情况下实现用户计算逻辑,通过计算逻辑与加密数据分离发布的措施,能够实现对于任意长度密文的计算;将同态加密计算库隔离于与智能合约虚拟机之外,通过同态加密计算原语调用完成密文计算,可突破虚拟机的资源限制,实现高性能密文计算。
[0004]本专利技术是通过以下技术方案实现的:
[0005]本专利技术涉及一种支持FHE的智能合约引擎实现方法,通过将加密的待处理数据和数据的处理逻辑分别通过区块链以及区块链的智能合约的方式发布,收到区块链的共识节点通过智能合约虚拟机加载智能合约以及待处理数据,依照其中的处理逻辑得到加密结果并通过智能合约发布至区块链中。
[0006]所述的智能合约中的处理逻辑所需的输入通过哈希值关联至发布于区块链中的待处理数据。
[0007]所述的处理逻辑包括:同态加(FheAdd)、同态减(FheSub)、同态乘(FheMul)、同态比较(FheComp)。
[0008]所述的智能合约包括:由业务所需要的计算逻辑以及对于数据参数的定义。
[0009]所述的智能合约所包括业务的参与者输入本方的加密数据以推动智能合约的执行,各个参与者可以分别通过区块链的交易接口输入加密参数;当智能合约业务逻辑所需的所有参数由各个参与者输入并达到智能合约的执行条件时,智能合约虚拟机利用所有输入参数,完成密文状态的业务逻辑执行并得到加密计算结果。
[0010]本专利技术涉及一种实现上述方法的系统,包括:设置于智能合约虚拟机引擎中的同
态加密算法单元和同态加密编码单元,其中:同态加密算法单元提供智能合约全同态算法接口并实现全同态计算逻辑,同态加密编码单元为通过区块链交易实现的全局唯一的同态加密参数进行数据编码,同态加密算法单元从同态加密编码单元中通过全局唯一索引获得计算所需参数,同态加密算法单元将计算任务以及参数索引通过同态加密函数接口传递给作为合约虚拟机的宿主主机的区块链共识节点,区块链共识节点在宿主主机实现同态加密计算后上传至同态加密编码单元以返回计算结果的编码。技术效果
[0011]本专利技术将同态加密算法在区块链节点宿主主机中实现并通过函数调用方式为智能合约引擎提供计算服务、将同态加密大数据量的参数上传与计算调用分离,通过区块链交易数据提前上传加密参数,并以全局索引的方式传递参数,有效避免了稀缺的智能合约引擎中计算与存储资源的消耗以及计算过程中巨大参数在网络传输中带来的延迟以及计算节点调用带来的栈资源的消耗,可以实现在智能合约中的准实时同态加密计算。
附图说明
[0012]图1为本专利技术流程图;
[0013]图2为智能合约虚拟机工作示意图;
[0014]图3为实施例流程图。
具体实施方式
[0015]如图1所示,为本实施例涉及一种支持FHE的智能合约引擎实现方法,包括以下步骤:
[0016]步骤

发布加密数据:用户将需要的密文计算的数据加密,通过区块链交易接口将数据发布至区块链中,同时生成数据的哈希值作为数据的标识。
[0017]步骤

发布计算逻辑:用户将需要的密文计算逻辑用智能合约实现,并通过区块链的交易接口将智能合约部署至区块链中,计算逻辑所需的输入通过哈希值关联至步骤

中所发布的数据。
[0018]步骤

加载计算逻辑:共识节点启动智能合约虚拟机,加载步骤

中所发布的计算逻辑,完成计算环境的准备。
[0019]步骤

记载计算数据:共识节点根据智能合约中计算逻辑所需的输入数据哈希值,检索区块链所发布的加密数据,并将其加载至智能合约引擎中。
[0020]步骤

计算与输出:如图2所示,智能合约虚拟机执行智能合约所定义的计算逻辑,其中密文的同态加密计算由智能合约虚拟机调用宿主机的同态加密算法库的计算原语完成,计算结果以密文形态输出,输出结果通过智能合约发布至区块链中。
[0021]所述的宿主机优选同时为多个并发智能合约虚拟机提供算法支持。
[0022]所述的计算原语包括:同态加(FheAdd)、同态减(FheSub)、同态乘(FheMul)、同态比较(FheComp)。
[0023]经过具体实际实验,在长安链的基础环境下通过改造宿主主机以及智能合约引擎实现上述方法,以单次全同态乘法作为测试基准,该方法支持任意长度的加密参数,在3

4秒内完成智能合约的调用与执行过程。
[0024]与现有技术相比,本方法可以支持任意长度的同态加密参数调用,从而可以支持更加复杂的计算流程,同时计算调用过程由数十秒减少到数秒内完成。
[0025]上述具体实施可由本领域技术人员在不背离本专利技术原理和宗旨的前提下以不同的方式对其进行局部调整,本专利技术的保护范围以权利要求书为准且不由上述具体实施所限,在其范围内的各个实现方案均受本专利技术之约束。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种支持FHE的智能合约引擎实现方法,其特征在于,通过将加密的待处理数据和数据的处理逻辑分别通过区块链以及区块链的智能合约的方式发布,收到区块链的共识节点通过智能合约虚拟机加载智能合约以及待处理数据,依照其中的处理逻辑得到加密结果并通过智能合约发布至区块链中;所述的智能合约中的处理逻辑所需的输入通过哈希值关联至发布于区块链中的待处理数据。2.根据权利要求1所述的支持FHE的智能合约引擎实现方法,其特征是,所述的智能合约所包括业务的参与者输入本方的加密数据以推动智能合约的执行,各个参与者可以分别通过区块链的交易接口输入加密参数;当智能合约业务逻辑所需的所有参数由各个参与者输入并达到智能合约的执行条件时,智能合约虚拟机利用所有输入参数,完成密文状态的业务逻辑执行并得到加密计算结果。3.根据权利要求1或2所述的支持FHE的智能合约引擎实现方法,其特征是,具体包括:步骤

发布加密数据:用户将需要的密文计算的数据加密,通过区块链交易接口将数据发布至区块链中,同时生成数据的哈希值作为数据的标识;步骤

发布计算逻辑:用户将需要的密文计算逻辑用智能合约实现,并通过区块链的交易接口将智能合约部署至区块链中,计算逻辑所需的输入通过哈希值关联至步骤

...

【专利技术属性】
技术研发人员:连理胥康李聪聪唐谷祥范磊
申请(专利权)人:太保科技有限公司
类型:发明
国别省市:

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

1