Page cover image

零知识证明

ZKP安全定义

在ZKP实现中,ZKP的三个核心特性均成立才能满足ZKP安全:

可靠性

  • 所有无效输入都必须被拒绝

  • 有效输入无法作假,修改或重放

负面例子

  • 约束条件被攻破

  • 证明密钥的生成方式不安全,或密封形式不安全

零知识性

  • 见证信息不应外泄,如在proof中泄露

负面例子

  • 私有变量变成了公有

  • 元数据攻击

完备性

  • 所有有效的证据都应被接受

  • 所有电路和程序都应被正确处理

负面例子

  • R1CS生成错误

  • gadget i/o 值不匹配导致gadget组合失败

其他负面例子

  • 在支路或编码中泄露了数据

  • 任意的不安全状态(代码执行,DoS)

  • 初始化仪式被黑

  • build和release版本完整性有问题

  • 软件的依赖和库有问题

最后更新于