零知识证明,有时也被称为 ZK 协议,是一种在“证明者”与“验证者”之间进行的验证方式。那么,什么是零知识证明?又有哪些构成零知识证明的标准呢?请通过阅读下文来了解详情。
什么是零知识证明?
零知识证明(Zero-Knowledge Proof, 简称 ZKP)或零知识协议是一种方式,使“证明者”能够在不泄露某项秘密信息本身的前提下,使“验证者”相信该信息所对应的某个陈述为真。此类证明协议可以是交互式的,也可以是非交互式的。
举例说明:验证者向证明者提供一个哈希值 H,并要求证明者提供证明,表明其拥有与 H 对应的原始秘密数据。证明者生成一个零知识证明,用以说服验证者其确实拥有该数据,并且数据哈希值为 H,但整个过程中不会向验证者透露任何该数据本身的信息。
构成零知识证明的标准是什么?
一种零知识证明方法必须满足以下几个条件:
完整性:若证明者所提供的信息为真,则该 ZKP 方法必须能使验证者验证出证明者所言为实。
可靠性:若证明者所提供的信息为假,则该 ZKP 方法必须能使验证者识别出证明者所言为虚。
零知识性:ZKP 方法在验证过程中不得泄露除陈述真实性之外的任何信息,即验证者只能知道证明者所言真假,而不能获得该秘密的任何内容。
零知识证明有哪些类型?
零知识证明主要有以下两种类型:
交互式零知识证明:在这种类型的 ZKP 中,证明者与验证者需进行多轮交互。验证者会不断向证明者发出挑战,证明者则提供相应的回应,直至验证者确信其所言为真。
非交互式零知识证明:在这种类型的 ZKP 中,证明者只需一次性提交一个证明,验证者在任意时间可独立完成验证过程。这种 ZKP 相较于交互式方式计算要求更高,但由于用户体验简洁便利,因此成为当前最受欢迎的一种方式。
希望本文能帮助你了解零知识证明的本质以及其构成标准。所谓“零知识计算证明”(Zero-Knowledge Proof-of-Computation),也称“零知识工作量证明”,是指证明者在不泄露秘密数据本身的前提下,向验证者证明其已对该秘密数据进行了正确的计算。
