一种基于指定验证方非交互零知识证明的交易验证方法

文档序号:39185727发布日期:2024-08-27 18:53阅读:16来源:国知局
一种基于指定验证方非交互零知识证明的交易验证方法

本发明属于信息安全,尤其涉及一种基于指定验证方非交互零知识证明的交易验证方法。


背景技术:

1、区块链作为一种新兴的去中心化分布式数据库,具有不可篡改性、透明性、安全性和可编程性,在密码货币、金融、供应链、互联网等多领域有广泛的应用。密码学技术是区块链的核心技术,可以满足区块链上多应用场景的安全与隐私保护需求。其中,最典型的需求是区块链保密交易,在联盟区块链或私有区块链中,交易区块由多个或一个节点来进行打包、存储和验证等维护操作,这些节点需要身份授权准入机制,因此节点拥有身份信息。在一笔区块链保密交易中,通常存在一个交易发送方和一个交易接收方,交易信息应至少包含发送方地址、接收方地址以及交易金额。有时交易双方不希望泄露交易金额,但交易接收方希望能够验证交易金额的合法性。

2、零知识证明是实现该需求功能的典型技术。零知识证明允许证明方向一个验证方证明一个断言的正确性而不泄漏其它任何知识。非交互零知识证明(non-interactivezero-kowledge proofs,nizk)通过引入一个可信的第三方,去掉了零知识证明中的交互,能显著降低通信代价。非交互零知识证明已广泛应用于隐私保护密码货币以及区块链的扩容等场景。例如,在区块链匿名密码货币中, 非交互零知识证明可在不泄漏用户地址及金额的同时证明某笔未支付资金的拥有权;在区块链扩容中, 链上的复杂计算需要转移到链下, 而非交互零知识证明可保障该过程的数据有效性。

3、为了提高非交互零知识证明协议的效率和设置的可靠性,可信硬件作为一种新技术被引入到非交互零知识证明协议的构造中。近几年产生了较为成熟的可信硬件方案,如arm trustzone、intel sgx 及amd sev 等。这些可信硬件方案虽然在架构选择、指令集、实现细节、加密套件以及安全模型等方面有一些差异,但仍存在许多共性,它们可以被抽象为可信处理器。

4、通用可组合(universally composable,uc)安全模型是描述和分析密码协议的通用模型,几乎所有密码协议都能用uc模型描述。具有uc安全性的协议可以在复杂网络环境中保持安全性,即使环境中存在任意数量的攻击者以恶意的方式与该协议并发执行。这种保证对于在复杂和不可预测的环境中(如现代通信网络)分析密码协议的安全性至关重要。

5、在互联网这类异步的网络环境中,非交互零知识证明协议可能会以不同的方式组合并执行多次,并且这些执行不一定是同步的,攻击者可以通过控制执行的顺序对协议进行攻击。在这些情况下,构建uc安全的非交互零知识证明协议十分必要。另一方面,非交互零知识证明协议的性能是影响落地应用的一个重要因素。非交互零知识证明协议的性能主要包括:初始设置的通信复杂度和计算复杂度,证明方的计算复杂度,验证方的计算复杂度,以及通信复杂度。在现有的利用可信处理器构造的uc安全的非交互零知识证明协议中,可信处理器作为本地设置,每个协议实例需要使用一个新的可信处理器,这样一方面无法重用可信处理器、不利于提高可信处理器的使用效率,另一方面初始设置的复杂度也会随着协议实例的增多而变大。


技术实现思路

1、本发明的主要目的在于针对现有技术存在的问题,提供了一种基于指定验证方非交互零知识证明的交易验证方法。

2、根据本技术实施例的第一方面,提供一种基于指定验证方非交互零知识证明的交易验证方法,包括:

3、获取交易验证的第一命题及相应证据,基于所述第一命题和所述证据构造证明指令;

4、利用自身的可信处理器,基于所述证明指令,对所述第一命题和证据进行验证,若验证通过,则对所述第一命题进行签名,得到第一签名;

5、利用验证方的公钥,基于身份基加密算法对所述第一命题和第一签名进行加密,将得到的密文作为证明,将所述第一命题和证明发送至验证方,以使得所述验证方利用自身的私钥对所述证明进行解密,得到第二命题和第二签名,对所述第一命题和第二命题进行比较,若二者不同,则验证不通过;若二者相同,则利用可信处理器的全局公钥验证所述第二签名的有效性,若所述第二签名有效则验证通过,若所述第二签名无效则验证不通过。

6、进一步地,所述第一命题为交易金额有效,所述证据为交易金额,其中交易金额有效指交易金额大于0且在区块链系统的允许范围内。

7、进一步地,所述证明指令包括证明程序的调用指令、所述第一命题、所述证据和签名算法,所述可信处理器基于所述调用指令调用证明程序,利用所述证明程序判断所述第一命题和所述证据是否符合二元关系,若符合,则利用所述签名算法对所述第一命题进行签名,得到第一签名。

8、进一步地,利用验证方的公钥,基于身份基加密算法对所述第一命题和第一签名进行加密,得到密文,具体为:

9、将所述第一命题和第一签名拼接,作为第一明文;

10、根据验证方的公钥和所述第一明文,基于身份基加密算法,加密得到密文。

11、根据本技术实施例的第二方面,提供一种基于指定验证方非交互零知识证明的交易验证方法,包括:

12、利用自身的私钥对证明进行解密,得到第二命题和第二签名,其中所述证明通过如下过程获取:获取交易验证的第一命题及相应证据,基于所述第一命题和所述证据构造证明指令;利用自身的可信处理器,基于所述证明指令,对所述第一命题和证据进行验证,若验证通过,则对所述第一命题进行签名,得到第一签名;利用验证方的公钥,基于身份基加密算法对所述第一命题和第一签名进行加密,将得到的密文作为证明,将所述第一命题和证明发送至验证方;

13、对所述第一命题和第二命题进行比较,若二者不同,则验证不通过;若二者相同,则利用可信处理器的全局公钥验证所述第二签名的有效性,若所述第二签名有效则验证通过,若所述第二签名无效则验证不通过。

14、进一步地,利用自身的私钥对证明进行解密,得到第二命题和第二签名,包括:

15、基于身份基加密的密钥提取算法,根据自身的公开身份标识,得到自身的私钥;

16、基于身份基解密算法,利用所述私钥对密文进行解密,得到包含第二命题和第二签名的第二明文;

17、基于所述第一命题的长度,对所述第二明文进行解析,得到第二命题和第二签名。

18、根据本技术实施例的第三方面,提供一种基于指定验证方非交互零知识证明的交易验证系统,包括证明方和验证方;

19、证明方用于获取交易验证的第一命题及相应证据,基于所述第一命题和所述证据构造证明指令;利用自身的可信处理器,基于所述证明指令,对所述第一命题和证据进行验证,若验证通过,则对所述第一命题进行签名,得到第一签名;利用验证方的公钥,基于身份基加密算法对所述第一命题和第一签名进行加密,将得到的密文作为证明,将所述第一命题和证明发送至验证方;

20、验证方用于利用自身的私钥对所述证明进行解密,得到第二命题和第二签名,对所述第一命题和第二命题进行比较,若二者不同,则验证不通过;若二者相同,则利用可信处理器的全局公钥验证所述第二签名的有效性,若所述第二签名有效则验证通过,若所述第二签名无效则验证不通过。

21、进一步地,所述证明方为交易发起方,所述验证方为区块链节点,所述证明方本地安装有可信处理器。

22、根据本技术实施例的第四方面,提供一种电子设备,包括:

23、一个或多个处理器;

24、存储器,用于存储一个或多个程序;

25、当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面或第二方面所述的方法。

26、根据本技术实施例的第五方面,提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如第一方面或第二方面所述方法的步骤。

27、本技术的实施例提供的技术方案可以包括以下有益效果:

28、由上述实施例可知,本技术采用可信处理器作为证明组件,克服了非交互零知识证明计算效率低以及证明产生过程被篡改的问题,进而实现了高效安全的证明计算过程;利用可信处理器的全局参数,使得本技术具有全局通用可组合安全性,从而可以便捷地同时应用于多个联盟区块链或私有区块链进行保密交易的交易金额有效性证明,并且不影响其安全性;采用身份基加密方案进行加密和解密,与命题尺寸无关,克服了需要分发、查询公钥证书等复杂过程及开销,进而实现了便捷、灵活的指定验证方加解密过程,使交易金额有效性证明的产生和验证过程非常高效和实用。

29、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1