本申请提供了一种基于零知识证明的智能合约隐私保护方法。所述方法响应于用户调用私人合约的操作指令,调用公共智能合约检验私人合约信息,以及将操作指令发送至分布式存储网络。公共智能合约加载在区块链上,通过检验私人合约是否属于发起操作指令的用户检验私人合约信息。获取分布式存储网络根据私人合约的合约信息ID获取的合约源代码,并根据合约源代码从用户端获取合约调用请求参数,以执行私人合约。所述方法通过部署智能合约实现对私人合约的校验,并通过分布式存储网络提供合约源代码,进而调用请求参数执行合约,通过合约哈希值、公司钥对传输与验证数据,不在传输过程中体现隐私数据,提高了交易隐私性。提高了交易隐私性。提高了交易隐私性。
【技术实现步骤摘要】
一种基于零知识证明的智能合约隐私保护方法
[0001]本申请涉及区块链
,尤其涉及一种基于零知识证明的智能合约隐私保护方法。
技术介绍
[0002]区块链技术可以记录数据和交易信息,从而建立通过点对点技术实现的交易系统。以使得在线支付的交易双方不通过金融机构直接进行交易。区块链技术通过分布式数据存储、点对点传输、过程加密等技术,具有去中心化、便于维护、安全性高的特点。
[0003]区块链技术指可以通过区块链上的合约进行交易,以省去普通合约的审批流程,节省了交易时间。并且,将有关于交易的合约信息写入到区块链中,可以通过区块链技术实现去中心化,所有参与交易的用户都可以对合约进行管理,使得交易过程具有可行性和公平性。
[0004]但由于区块链技术的特性,在交易确认阶段,需要在区块链网络的节点中进行验证,因此会导致交易信息、用户信息等隐私信息暴露在网络中,对于数据隐私缺乏保护,导致数据泄露。
技术实现思路
[0005]本申请提供了一种基于零知识证明的智能合约隐私保护方法,以解决因区块链网络中数据隐私缺乏保护,导致数据泄露的问题。
[0006]第一方面,本申请提供了一种基于零知识证明的智能合约隐私保护方法,包括:
[0007]响应于用户调用私人合约的操作指令,调用公共智能合约检验所述私人合约信息,以及将所述操作指令发送至分布式存储网络;所述公共智能合约加载在区块链上;所述检验所述私人合约信息包括检验所述私人合约是否归属于所述用户;
[0008]获取所述分布式存储网络根据所述私人合约的合约信息ID获取的合约源代码,所述合约信息ID包括合约哈希值、合约公钥和合约私钥;
[0009]根据所述合约源代码,从用户端获取合约调用请求参数,以及执行所述私人合约。
[0010]在一些实施例中,所述方法还包括:
[0011]构建所述私人合约,以及将所述私人合约发送至所述分布式存储网络;
[0012]获取所述分布式存储网络根据所述私人合约生成的所述合约信息ID;
[0013]向所述用户端发送所述合约信息ID。
[0014]在一些实施例中,所述方法包括:
[0015]检测到所述私人合约发送至所述分布式存储网络,在所述分布式存储网络中根据所述私人合约生成所述合约公钥和所述合约私钥;
[0016]根据所述合约公钥、所述合约私钥和所述私人合约生成合约哈希值。
[0017]在一些实施例中,所述向用户端发送合约信息ID时还包括:
[0018]将所述用户端上的所述合约信息ID发送至区块链,以在所述区块链上的公共智能
合约中加载所述合约信息ID。
[0019]在一些实施例中,所述根据所述合约源代码,从用户端获取合约调用请求参数,以及执行私人合约之后,还包括:
[0020]获取所述私人合约执行完毕的响应信息,以及在区块链网络中广播所述私人合约的执行结果;所述响应信息包括零知识证明密文和加密提示信息,所述零知识证明密文用于验证所述私人合约执行有效性,加密提示信息用于提示所述私人合约执行完毕;
[0021]记录所述执行结果,以及向所述用户端发送所述加密提示信息。
[0022]在一些实施例中,所述方法还包括:
[0023]获取用于生成所述零知识证明密文的输入数据以及限制条件;
[0024]根据所述输入数据以及所述限制条件,求取用于组成所述零知识证明密文的向量;
[0025]判断所述向量是否符合向量判断条件,若所述项链符合所述向量判断条件,则输出所述零知识证明密文。
[0026]在一些实施例中,所述方法还包括:
[0027]获取用于验证所述零知识证明密文的输入数据;
[0028]根据所述输入数据计算用于验证所述零知识证明密文的判断值,所述判断值的数量大于1;
[0029]若所述判断值均通过验证,则标记所述零知识证明密文有效。
[0030]在一些实施例中,所述记录所述执行结果,以及向所述用户端发送加密提示信息,包括:
[0031]获取所述区块链网络中的节点对所述执行结果的验证结果,在所述区块链上加载所述私人合约执行记录;
[0032]检测到所述区块链上加载所述私人合约执行记录,向所述用户端发送所述加密提示信息,以及向所述分布式存储网络发送所述加密提示信息。
[0033]在一些实施例中,所述方法还包括:
[0034]根据所述私人合约,调用与所述私人合约对应的私钥;
[0035]根据所述私钥,解密所述加密提示信息,以得到所述私人合约在所述分布式存储网络上的状态。
[0036]第二方面,本申请还提供了一种基于零知识证明的智能合约隐私保护系统,包括:区块链、分布式存储网络和用户端;
[0037]所述区块链响应于用户调用私人合约的操作指令,调用公共智能合约检验所述私人合约信息,以及将所述操作指令发送至分布式存储网络;所述公共智能合约加载在区块链上;所述检验所述私人合约信息包括检验所述私人合约是否归属于所述用户;
[0038]所述分布式存储网络用于根据所述私人合约的合约信息ID查找所述私人合约的合约源代码,以及将所述合约源代码发送至所述区块链;所述合约信息ID包括合约哈希值、合约公钥和合约私钥;
[0039]所述用户端用于提供所述私人合约的调用请求参数;
[0040]所述区块链还用于根据所述调用请求参数和所述合约源代码执行所述私人合约。
[0041]由以上
技术实现思路
可知,本申请提供了一种基于零知识证明的智能合约隐私保护方
法。所述方法响应于用户调用私人合约的操作指令,调用公共智能合约检验私人合约信息,以及将操作指令发送至分布式存储网络。公共智能合约加载在区块链上,通过检验私人合约是否属于发起操作指令的用户检验私人合约信息。获取分布式存储网络根据私人合约的合约信息ID获取的合约源代码,并根据合约源代码从用户端获取合约调用请求参数,以执行私人合约。所述方法通过部署智能合约实现对私人合约的校验,并通过分布式存储网络提供合约源代码,进而调用请求参数执行合约,通过合约哈希值、公司钥对传输与验证数据,不在传输过程中体现隐私数据,提高了交易隐私性。
附图说明
[0042]为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0043]图1为本申请实施例提供的基于零知识证明的智能合约隐私保护方法系统示意图;
[0044]图2为本申请实施例提供的基于零知识证明的智能合约隐私保护方法步骤示意图;
[0045]图3为本申请实施例提供的构建私人合约交互示意图。
具体实施方式
[0046]下面将详细地对实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下实施例本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种基于零知识证明的智能合约隐私保护方法,其特征在于,包括:响应于用户调用私人合约的操作指令,调用公共智能合约检验所述私人合约信息,以及将所述操作指令发送至分布式存储网络;所述公共智能合约加载在区块链上;所述检验所述私人合约信息包括检验所述私人合约是否归属于所述用户;获取所述分布式存储网络根据所述私人合约的合约信息ID获取的合约源代码,所述合约信息ID包括合约哈希值、合约公钥和合约私钥;根据所述合约源代码,从用户端获取合约调用请求参数,以及执行所述私人合约。2.根据权利要求1所述的方法,其特征在于,还包括:构建所述私人合约,以及将所述私人合约发送至所述分布式存储网络;获取所述分布式存储网络根据所述私人合约生成的所述合约信息ID;向所述用户端发送所述合约信息ID。3.根据权利要求2所述的方法,其特征在于,包括:检测到所述私人合约发送至所述分布式存储网络,在所述分布式存储网络中根据所述私人合约生成所述合约公钥和所述合约私钥;根据所述合约公钥、所述合约私钥和所述私人合约生成合约哈希值。4.根据权利要求2所述的方法,其特征在于,所述向所述用户端发送合约信息ID,还包括:将所述用户端上的所述合约信息ID发送至区块链,以在所述区块链上的公共智能合约中加载所述合约信息ID。5.根据权利要求1所述的方法,其特征在于,所述根据所述合约源代码,从用户端获取合约调用请求参数,以及执行合约之后,还包括:获取所述私人合约执行完毕的响应信息,以及在区块链网络中广播所述私人合约的执行结果;所述响应信息包括零知识证明密文和加密提示信息,所述零知识证明密文用于验证所述私人合约执行有效性,加密提示信息用于提示所述私人合约执行完毕;记录所述执行结果,以及向所述用户端发送所述加密提示信息。6.根据权利要求5所述的方法,其特征在于,所述方法还包括:获取用于生成所述零知识证明密...
【专利技术属性】
技术研发人员:李远,
申请(专利权)人:北京安博通科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。