本文讨论了gnark库中的一种对Groth16证明方案的扩展及其存在的两个安全漏洞。第一个漏洞针对可靠性,允许恶意证明者在使用两个或以上承诺时证明错误的陈述;第二个漏洞破坏了零知识属性,使得攻击者可以从证明中恢复私有见证。文章详细解释了这些技术细节,并提供了修复方案和解决方案的演变过程。
探索 ZK 框架:用 5 种不同的 ZK 语言实现的 Mastermind 游戏