基于椭圆曲线循环的可扩展零知识证明技术解析
在密码学和分布式计算领域,可扩展零知识证明(zk - SNARK)是一项关键技术,它能在不泄露敏感信息的情况下验证计算的正确性。本文将深入探讨基于椭圆曲线循环的可扩展零知识证明的相关技术,包括基本概念、构建方法以及实际应用中的考虑因素。
1. 预备知识
1.1 算术电路的预处理 zk - SNARK
给定一个有限域 $F$,$F$ - 算术电路 $C: F^n×F^h → F^l$ 的电路满足问题由关系 $R_C = {(x, a) ∈ F^n × F^h : C(x, a) = 0^l}$ 定义,其语言为 $L_C = {x ∈ F^n : ∃a ∈ F^h, C(x, a) = 0^l}$。
预处理 zk - SNARK 是一个由多项式时间算法 $(G, P, V)$ 组成的三元组,分别称为密钥生成器、证明者和验证者。密钥生成器 $G$ 接收安全参数 $\lambda$ 和 $F$ - 算术电路 $C$,生成证明密钥 $pk$ 和验证密钥 $vk$,这些是证明系统的公共参数,每个电路只需生成一次。之后,任何人都可以使用 $pk$ 为语言 $L_C$ 生成非交互式证明,使用 $vk$ 检查这些证明。具体来说,给定 $pk$ 和任何 $(x, a) ∈ R_C$,诚实的证明者 $P(pk, x, a)$ 生成一个证明 $\pi$,证明 $x ∈ L_C$;验证者 $V(vk, x, \pi)$ 检查 $\pi$ 是否为 $x ∈ L_C$ 的有效证明。证明 $\pi$ 既是知识证明,也是(统计)零知识证明。简洁性要求 $\pi$ 的长度为 $O_{\lambda}(1)$,验证者 $V$ 的运行时间为 $O_{\
超级会员免费看
订阅专栏 解锁全文
41

被折叠的 条评论
为什么被折叠?



