03、Zero-Knowledge Proofs of Knowledge --Yehuda Lindell【知识的零知识证明】

本文详细探讨了知识的定义,从不同角度尝试形式化表述,包括知识的动机、知识的多次正式定义。接着介绍了知识的零知识证明(ZKPOK)的概念,强调其完备性、零知识性和知识可靠性。同时,讨论了如何通过顺序合成降低知识误差,并给出了构造ZKPOK的具体示例,如对于QR_N和NP问题的证明。最后,提到了ZKPOK在实际应用中的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

03、Zero-Knowledge Proofs of Knowledge[知识的零知识证明]

这篇博客,是关于第九届BIU密码学冬令营上的内容,这篇博客是第三篇,会持续更新。
https://blog.youkuaiyun.com/qq_43479839/article/details/112946344
下面正式开始第三部分关于知识的零知识证明的介绍:
目录如下:


接下来是正式描述内容:

1、Knowledge-definition【知识的定义】

1.1Knowledge-Motivation

1、证明你知道从A到B的最短路径。
2、证明你的身份,如下

  • 对于离散问题来说,知道x是很难的,
  • 可以用这个x作为私钥来证明你的身份。
  • Attempt:用零知识去证明,…
  • Problem:1、statement对于所有的群元素都是正确的,所以这里ZK变得不重要。2、有人说他需要知道一个witness去证明这是一个正确的statement。
    在这里插入图片描述
    什么是知识?
  • 定义:如果一个学生能输出material,则代表学生知道它。就像如果一个学生能够给出一个测试问题的所有正确答案,那么基本上就可以说他知道这份material。
  • 定义,如下:

在这里插入图片描述

1.2 Formalizing Knowledge–first attempt【对知识的第一次正式定义】

  • Attempt 1:一个机器M知道一个声明statement x的witness,如果存在一些M’它能输出w使得(x,w)∈R.
  • 问题:
    1、这与机器的行为有什么关系?
    2、M’与M的关系是怎样的?如果他们之间没有连接那么M为什么能知道它【上文的witness】。
    在这里插入图片描述

1.3 Formalizing Knowledge–second attempt【对知识的第二次正式定义】

Attempt 2:

  • 我们定义一个PPT(Probabilistical Poly-time)的预言机K,我们称它为知识提取器knowledge extractor。
  • 我们说如果KM(*)(x)输出w能使得(x,w)∈R,则说M知道声明statement x所对应的witness。
    -其中K是与M进行交互的,并且能够在任何时间使用而得到w。
    -因为K是通用类,它的能力是输出w,意味着M也知道w。

Q问题:

  • Q1:仍然没有给出这个与机器M行为的关系
  • Q2:K 仅仅只能知道w与M独立。

在这里插入图片描述

1.4 Formalizing Knowledge–third attempt【对知识的第三次正式定义】

Definition:

  • 我们定义一个PPT(Probabilistical Poly-time)的预言机K,我们称它为知识提取器knowledge extractor。
  • 我们说一个证明者P知道对于statement x的witness,如果(K,P,x如下图)能输出w使得(x,w)∈R,且不管什么时候P都能让V相信自己知道x。

Intuition:

  • K是通用的,并且对于任何x和任何P*:如果P*能够使V相信其拥有w,即K能输出w,同样M也知道w

Question:“无论何时P*都能使V相信其拥有x”,这意味着什么?

  • K需要在多项式时间内运行并且其输出witness w的概率与P*使V相信自己拥有x的概率相同。
    在这里插入图片描述

1.5 Formalizing Knowledge–final attempt【对知识的最后一次正式定义】

  • 总是在ZK上能被证明,能运行zk的模拟器,并且希望Verifier的询问能与真实的询问匹配。
  • 这个定义被更新,被允许了一个Knowledge error (知识误差)κ,然后将这个κ考虑进入之前的定义中去。
    1、如果这个P*使V相信的概率大于这个知识误差,那么K就能运行在一个期望的多项式时间内以至多κ的概率输出一个witness w,这个概率比P *使得V相信的概率少。
  • 这个性质被称为knowledge soundness【知识可靠性】。

在这里插入图片描述
给出knowledge soundness的定义:一个证明系统具有error κ的知识可靠性,在下面的情况下,如果存在一个PPT K使得对于任何的P和任何的x,如果P能使V以概率ε相信P*知道x,然后就会以概至少以ε(|x|)-κ(|x|)的概率使得Kp*(.)(x)输出的w能满足(x,w)∈R
在这里插入图片描述
这个等价的公式,当我们想要使用他们的知识的时候,这个公式是很有用的。
其动机是:想要去权衡运行时间和成功的概率,

  • 原本的定义是说:运行在该概率的,多项式的,以概率ε输出
  • 这个可选择的定义:运行在期待的次数1/ε并且总是输出

等价的定义(knowledge soundness):略

在这里插入图片描述
等价的定义:【证明】
Original --> alternative,如下:

  • 我们所给的K在概率多项式时间内运行,并且以ε的概率输出witness w。
  • 我们能运行K很多次,直到输出一个witness
    1、因为它们是NP关系,能验证其正确的结果
    2、期盼的次数是1/ε;

Alternative --> original :

  • 如果我们给K能在运行次数1/ε之内输出witness。
  • 则对于i=1…n;则K运行2(i+1)步,在这其中如果输出witness,在此就结束运行的过程,否则则继续,这个概率是1/2;
    1、其中取i最小的时候,使得2i+1>1/ε:则推出至少2-(i+1)>ε.
    2、即期待的运行次数是poly(|x|)

在这里插入图片描述

2、ZKPOK:ZK proof of Knowledge【知识的零知识的证明】

2.1 ZKPOK:definition

1、一个证明系统是知识的零知识,如果它有下面的性质:

  • Completeness(完备性):诚实的证明者能使诚实的验证者相信他知道。
  • zero-knowledge(零知识):确保验证者不会知道任何东西。
  • knowledge soundness(知识可靠性):确保证明者知道witness。

2、Zero-knowledge是对于证明者Prover的性质:

  • 证明者的职责是保证不揭露任何东西
  • 这是为了对抗一个不诚实的验证者Verifier。

3、knowledge soundness是对于验证者的性质

  • 验证者的职责是保证证明者是知道witness的。
  • 对于这个为了对抗一个不诚实的Prover。

在这里插入图片描述

2.2 Reducing knowledge error【降低知识误差】

1、sequential composition(顺序合成)能以指数的误差降低
2、指数级的很小的误差等于零误差(下面又给解释)

  • 假设知识误差κ<2-|x|,之后考虑可选择的那个定义。
  • 如果Kp*(.)(x)靠蛮力去寻找witness。【假设蛮力寻找的次数是2|x|
  • 我们让P*以概率ε使V相信其拥有x。
    1》如果。。

在这里插入图片描述

3、Constructing ZKPOKs【构造知识的零知识证明】

3.1 对于QR_N(知识)的零知识证明

在这里插入图片描述
知识提取器的想法:

  • K调用P*,然后收到一些y;
  • K发送给P*的询问b=0,之后会收到回复z0。
  • 之后K使用rewind技术,使得运行环境回到K发送b=0之前,之后给P*发送询问b=1,随机收到回复z1。
  • 然后K会得到w=z1/z0 mod N;
    下面的证明很清楚,不描述:

在这里插入图片描述

3.2 对于NP问题(知识)的零知识证明

对于HAM的交互式证明。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4、the Applications of ZKPOK【知识的零知识证明的应用】

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值