零知识证明的力量:深入理解 zk-SNARK

fffmCQ.jpg

0xAlpha 投稿 DODO research:让我们一起深入解析了 zk-SNARK 技术,探讨它在加密和区块链中实现隐私保护的原理和应用

作者:0xAlpha  Co-founder @DeriProtocol

编译:DODO Research

欢迎关注推特:@0x_Alpha

零知识证明的力量:深入理解 zk-SNARK

0xAlpha 投稿 DODO research。这篇文章将用数学解码这项技术,揭示它如何在不透露任何信息的情况下证明知识的真实性。准备好,让我们一起揭开 zk-SNARK 的神秘面纱。

介绍

zk-SNARK,即 “零知识简洁非交互式知识论证”,使得一名验证者  能够确认一名证明者  拥有某些特定知识,这些知识被称为 witness,满足特定的关系,而无需透露关于见证本身的任何信息。

为特定问题生成 zk-SNARK 包括以下四个阶段:

  1. 将问题(或函数)转换成算术门电路。
  2. 然后将这个电路翻译成矩阵公式。
  3. 这个矩阵公式进一步转换成一个多项式,这个多项式应该能被一个特定的最小多项式整除。
  4. 最后,这种可整除性在有限域的椭圆曲线点中表示出来,证明就在这里进行。

前三个步骤仅仅是转换了原始陈述的表示方式。最后一个步骤使用同态加密将第三步的陈述投影到加密空间中,使得证明者能够证实其中的镜像陈述。鉴于这种投影利用了非对称加密,从第三步的陈述回溯到原始陈述是不可行的,确保了零知识的暴露。

阅读本文所需的数学背景相当于 STEM 专业学生的大一级代数水平。唯一可能具有挑战性的概念可能是椭圆曲线加密。对于不熟悉这一点的人来说,可以将其视为具有特殊基数的指数函数,同时要记住其逆函数仍然未解。

零知识证明的力量:深入理解 zk-SNARK

在本文中,我们将继续使用方程式 (1) 作为讨论的基础。

第 1 步:算术门电路

方程式 (1) 可以分解为以下基本算术运算:

零知识证明的力量:深入理解 zk-SNARK

这对应于以下算术门电路:

零知识证明的力量:深入理解 zk-SNARK

我们还将方程式 (2) 称为一组 4 个 “一级约束”,每个约束描述了电路中一个算术门的关系。通常,一组 n 个一级约束可以概括为一个二次算术程序(QAP),接下来将进行解释。

第 2 步:矩阵

零知识证明的力量:深入理解 zk-SNARK
零知识证明的力量:深入理解 zk-SNARK
零知识证明的力量:深入理解 zk-SNARK
零知识证明的力量:深入理解 zk-SNARK
零知识证明的力量:深入理解 zk-SNARK
零知识证明的力量:深入理解 zk-SNARK

第 3 步:多项式

零知识证明的力量:深入理解 zk-SNARK
零知识证明的力量:深入理解 zk-SNARK
零知识证明的力量:深入理解 zk-SNARK

如果提取出每一行单独观察,不难发现这四行对应于在四个点分别求值的相同表达式。因此,上述矩阵方程等价于:

零知识证明的力量:深入理解 zk-SNARK

一种直接但不保密的方式来证明这一点是提供方程式 (4) 的左边并展示因式分解。然而,zk-SNARK 的主要目的是保持隐秘(不透露任何知识)。因此,我们不会直接证明这个方程,而是在椭圆曲线点的空间中证明它的加密版本。

第 4 步:椭圆曲线点

   将方程式 (4) 重写为:

零知识证明的力量:深入理解 zk-SNARK

接下来,我们将更详细地阐述实际的操作步骤。

椭圆曲线加密

零知识证明的力量:深入理解 zk-SNARK

另一方面,两个椭圆曲线点的加法定义如下图所示:

零知识证明的力量:深入理解 zk-SNARK
Figure from Wikipedia
零知识证明的力量:深入理解 zk-SNARK
零知识证明的力量:深入理解 zk-SNARK

然而,Alice 想要证明的方程式 (5) 是二次形式的,所以线性不够。为了处理二次项,我们需要在加密空间中定义乘法。这被称为配对函数,或双线性映射,接下来将进行解释。

双线性映射

零知识证明的力量:深入理解 zk-SNARK

这是我们都熟悉的东西——加法和乘法操作的分配律。

有了这样的双线性映射,我们就可以将方程式 (5) 的两边映射到加密空间。

公共参考字符串    

零知识证明的力量:深入理解 zk-SNARK

整个过程被称作 “验证钥”,简称 VK。这里只涉及 7 个椭圆曲线点(ECPs),需要提供给验证方。要注意的是,不管问题里面涉及多少输入和一级约束,VK 始终是由 7 个 ECPs 构成的。

另外,值得一提的是,“可信设置” 以及生成 PK 和 VK 的过程,对于一个特定的问题来说,只需操作一次即可。

证明与验证

现在拥有公钥(PK),爱丽丝将计算以下椭圆曲线点(ECPs):

零知识证明的力量:深入理解 zk-SNARK

这 9 个椭圆曲线点就是零知识简洁非交互式证明(zk-SNARK)的关键!

注意,爱丽丝其实只是对公钥里的椭圆曲线点做了些线性组合运算。这点特别关键,验证时会重点检查。

现在,爱丽丝交出了 zk-SNARK 证明,咱们终于进入验证环节,分三步走。

零知识证明的力量:深入理解 zk-SNARK

参考文献

  1. “Zk-SNARKs: Under the Hood” (Vitalik Buterin)
  2. “A Review of Zero Knowledge Proofs” (Thomas Chen, Abby Lu, Jern Kunpittaya, and Alan Luo)
  3. “Why and How zk-SNARK Works: Definitive Explanation” (Maksym Petkus)
  4. Website: Zero-Knowledge Proofs
  5. Wikipedia: Elliptic curve
  6. Wikipedia: Finite field
  7. Wikipedia: Pairing-based cryptography

免责声明

本研究报告内的信息均来自公开披露资料,且本文中的观点仅作为研究目的,并不代表任何投资意见。报告中出具的观点和预测仅为出具日的分析和判断,不具备永久有效性。

声明:该文观点仅代表作者本人,与炒币网无关。炒币网系信息发布平台,仅提供信息存储空间服务。对所包含内容的准确性、可靠性或者完整性不提供任何明示或暗示的保证,并不对文章观点负责。 提示:投资有风险,入市须谨慎。本资讯仅供参阅,不作为投资理财建议。

发表评论

登录后才能评论