登录 后可观看高清视频

ZK 白板 S3M5: Ligero 证明系统

18次播放
1天前

视频 AI 总结:

  1. 核心内容概括: 视频深入探讨了零知识证明(ZKPs)系统Ligero的原理和设计。Muthu首先回顾了零知识证明和多方安全计算(MPC)的起源,特别是“MPC in the head”范式如何作为Ligero的基础。他详细解释了Ligero如何利用Reed-Solomon编码和多项式性质,通过打包秘密共享和交互式证明协议来验证计算的正确性,同时保持隐私。视频还讨论了Ligero在实现简洁验证和内存效率方面的挑战与解决方案,强调了ZK技术从理论走向实际应用的重要性。

  2. 视频中提出的关键信息:

    • 零知识证明(ZKPs)与多方安全计算(MPC)基础:

      • 知识定义: 攻击者可以免费获得高效计算和随机性所能学习到的任何信息。零知识证明旨在确保攻击者不会学习到超出这些“免费知识”的额外信息。
      • 模拟器(Simulator): 证明零知识的关键工具,它能在不知道私有信息的情况下生成与真实交互无法区分的证明,且必须在多项式时间内运行。
      • MPC定义: 多个参与方在不泄露各自私有输入的情况下,共同计算一个函数,确保最大隐私。
      • MPC与ZK关系: ZK是MPC的一个特例。从通用MPC构建ZK效率低下且继承了公钥假设。
    • “MPC in the Head”范式:

      • 由Ishai Kushi Levitz Ostrovsky和Sahai于2007年提出,是Ligero的基础。
      • 通过模拟一个“诚实多数”的MPC协议(例如5个虚拟参与方),将证明者的私有信息秘密共享给这些虚拟方,并验证它们之间的计算一致性,从而实现高效的零知识证明,且无需公钥假设。
    • Ligero证明系统核心机制:

      • 约束系统: 将计算表示为点乘约束(x y = z)和线性约束(A w = b)。
      • 打包秘密共享(Packed Secret Sharing): 使用Reed-Solomon编码将多行见证值秘密共享为编码后的行,形成证明预言(Proof Oracle)。
      • 交互式协议: 证明者提交编码后的见证矩阵,验证者提供随机挑战R,证明者计算三个聚合值(VP, VM, VL)用于邻近性测试(验证编码正确性)、乘法测试(验证点乘约束)和线性测试(验证线性约束)。验证者通过查询随机位置并重新计算来检查一致性。
      • 零知识实现: 通过在秘密共享中添加随机盲化行(blinding rows)来隐藏见证信息,模拟器可以生成这些盲化值。
    • 简洁验证与内存效率:

      • 简洁验证: 对于批量处理的方程组,Ligero可以实现简洁验证。对于任意电路,线性测试会破坏简洁性。
      • 预处理SNARK: 通过引入一个额外的SNARK来证明线性测试中所需辅助值(R-hat)的正确性,可以将Ligero转换为一个预处理SNARK,从而实现任意电路的简洁验证。
      • 内存效率: 通过流式处理(streaming)和垃圾回收(garbage collection)技术,Ligero可以在内存受限的环境(如浏览器、手机)中运行,例如Merkle树的构建和部分测试的计算。
      • 见证遍历: Ligero协议需要多次(例如3次)遍历见证数据,这是影响性能的关键因素。
    • 未来展望: 零知识证明技术正从理论走向实际应用,能够在移动设备和浏览器上运行,解决隐私和合规性问题。