零知识证明(Zero—Knowledge Proof),是由S.Goldwasser、S.Micali及C.Rackoff在20世纪80年代初提出的。它指的是证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。
证明系统 (Proof System) 是一个交互式协议,包含两个参与方 Prover 和 Verifier。
证明系统的作用是让 Prover 说服 Verifier 相信一件事,我们把这件事叫做一个陈述 (Statement)。
知识证明
如果要求 Prover 必须知道一些信息才能让 Verifier 验证通过,那么这个系统可以被称为知识证明 (Proof of Knowledge)。知识证明在计算意义下的版本,叫做知识论证 (Argument of Knowledge)
其他特性:
通过密码学工具(fiat-shamir)可以将交互式证明转换为非交互证明
一些奇怪的组合
将零知识性和非交互性结合起来,就有了非交互零知识 (Non-Interactive Zero-Knowledge, NIZK)。
简洁性的证明系统必然是论证系统。结合非交互性,就有了简洁非交互式论证 (Succinct Non-interactive ARGument, SNARG)。
如果一个 SNARG 同时是一个知识论证,它就被称为简洁非交互式知识性论证 (Succinct Non-interactive ARGument of Knowledge, SNARK)。