先区分命题与见证

公开命题描述需要确认的性质,见证则是支撑这个命题的秘密信息。例如,证明者希望说明自己知道某个公开值对应的秘密,而不直接发送秘密本身。

“证明命题为真”与“证明知道见证”是不同要求。知识证明还需要形式化的知识提取性质,不能仅凭交互看起来合理就认定成立。

三个条件,三个观察角度

  • 完备性:当命题为真且双方诚实执行协议时,验证者能够接受。
  • 可靠性:对错误命题,作弊证明者难以让验证者接受;不同定义对对手资源与误差有不同限制。
  • 零知识:验证者从交互中获得的信息,可以由不持有秘密见证的模拟器产生,精确形式取决于定义。

“没有直接发送秘密”还不够

一个协议即使从不发送见证,也可能通过响应泄露见证的一部分。零知识要求论证这种泄露不存在,而不仅是查看消息中有没有明文秘密。

阅读零知识协议时,把公开输入、秘密见证、交互消息、验证条件分开记录。

本文只提供概念入口;具体构造还需要说明交互模型、初始化假设及面对何种验证者的安全性。

延伸阅读