登录 后可观看高清视频
ZK 白板 S3M5: Ligero 证明系统
18次播放
1天前
视频 AI 总结:
-
核心内容概括: 视频深入探讨了零知识证明(ZKPs)系统Ligero的原理和设计。Muthu首先回顾了零知识证明和多方安全计算(MPC)的起源,特别是“MPC in the head”范式如何作为Ligero的基础。他详细解释了Ligero如何利用Reed-Solomon编码和多项式性质,通过打包秘密共享和交互式证明协议来验证计算的正确性,同时保持隐私。视频还讨论了Ligero在实现简洁验证和内存效率方面的挑战与解决方案,强调了ZK技术从理论走向实际应用的重要性。
-
视频中提出的关键信息:
-
零知识证明(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次)遍历见证数据,这是影响性能的关键因素。
-
未来展望: 零知识证明技术正从理论走向实际应用,能够在移动设备和浏览器上运行,解决隐私和合规性问题。
-