如何将交互式的零知识证明(zk proof)协议改造为非交互式前言零知识证明中的 Challenge哈希函数(Hash Fun

尚力财经 245 0

如何将交互式的零知识证明(zk proof)协议改造为非交互式

随着区块链应用场景的拓展,零知识证明(Zero-Knowledge Proof,简称zk proof)在其中扮演了重要的角色。零知识证明首先被人们应用于隐私保护领域,然而随着其技术特点被越来越多的人所认知,其应用领域也越来越广泛,其中最为直观的应用便是应用于身份认证、数字身份私有性保护、支付场景等等。

零知识证明的概念

零知识证明是一种基于密码学的技术,简言之,即能够在特定场景下证明某种事实而无需暴露任何额外信息。比如,在现实世界中,用户需要提供自己的身份证明、银行卡及密码等敏感信息。而使用零知识证明技术能够避免这方面的信息泄露,也就意味着更好地保障了个人信息隐私。

零知识证明协议的两种形式

零知识证明协议分为两种形式:交互式(interactiv%e)和非交互式(non-interactive)。在交互式协议中,需要存在两个实体之间实时的信息传递,而非交互式协议则不需要实时传递信息。

交互式协议中的 Challenge

在交互式协议中,有一个重要的过程便是Challenge的产生。Challenge是一个随机值,由Verifier生成,被称为Challenger,在证明者和验证者之间不断传递,最后被用于最终证明。由于每次都需要Challenger生成,交互式协议性能开销较大。

将交互式协议改造为非交互式协议

针对交互式协议中的Challenge问题,我们可以将交互式协议改造为非交互式协议。一般情况下,可以利用Fiat-Shamir启发式(Heuristic)来将交互式协议转化成非交互式协议。

Fiat-Shamir启发式是在包含道德学共识问题的交互式协议中,将交互协议变为非交互过程的一种启发式算法。

Fiat-Shamir启发式的实现过程

实现过程如下:

  1. 零知识证明的实现需要一组公私钥对,用于进行参数协商和数字签名。
  2. 在协议的交互阶段,证明者会向验证者发送特定的验证请求,并使用自己的私钥对其进行加密和签名。
  3. 验证者会在交互的过程中产生随机数并回送给证明者。
  4. 证明者将随机数和其他相应的证据发送给验证者。
  5. 验证者使用一种特殊的哈希函数(如SHA256)将收到的证据和之前回送的随机数一起哈希,并以此作为Challenge。
  6. 证明者使用私钥加密Challenge,并将加密后的结果发送给验证者。
  7. 验证者使用公钥解密Challenge并验证其正确性。

在Fiat-Shamir启发式的实现过程中,通过哈希函数将原有的Challenge替换为了由Verifier通过哈希函数产生的随机数。这样就将交互式协议转化为了非交互式协议,从而大大提高了协议的性能开销。

结论

通过非交互式零知识证明协议的相关理论和实现,可以看出其在保障隐私保护的同时,也在协议的性能方面有了大幅度的提升。在实际应用中,我们可以根据自己的需求选择相应的协议形式来进行应用开发。

标签: allen

抱歉,评论功能暂时关闭!

微信号已复制,请打开微信添加咨询详情!