1. 引言
斯坦福大学Trisha Datta、Binyi Chen 和 Dan Boneh 2024年论文《VerITAS: Verifying Image Transformations at Scale》,开源代码实现见:
- https://github.com/zk-VerITAS/VerITAS(Rust+Python)
- 依赖https://github.com/arkworks-rs/gemini中的KZG实现
src/absorbcircuit.rs
中实现了Poseidon Groth16哈希电路genpic.py
用于生成测试图片。
验证图像来源已成为一个重要的议题,特别是在新闻媒体领域。为解决该问题,内容来源和真实性联盟(Coalition for Content Provenance and Authenticity ,C2PA)制定了一项标准,用于验证图像来源,该标准依赖于摄像机生成的数字签名。然而,照片通常在发布之前会被编辑,仅凭所发布的编辑后的图像无法验证原始照片上的签名。
本文提出了VerITAS系统:
- 利用零知识证明(zk-SNARKs)证明了仅对签名照片应用了特定编辑。
- 已有研究成果可为照片创建图像编辑证明,但VerITAS是首个能够为实际上大型图像(三千万像素)做到这一点的系统。
本文的关键创新是:
- 设计了一种新的证明系统,能够证明对大量witness数据上的有效签名。
- 在实际上对非常大的图像进行了实验,这些图像的尺寸比以往研究中测试的大出一个数量级。
- 对于计算能力较弱的签名者,如相机,能够在不到一小时内生成一个90 MB图像的有效编辑证明,成本约为每张图像$2.42(在AWS上)。
- 对于计算能力更强的签名者,能够在不到五分钟内生成90 MB图像的有效编辑证明,成本约为每张图像$0.09(在AWS上)。
- 无论哪种情况,证明验证时间在浏览器中约为2秒。
- 本文技术可广泛适用于需要证明对大量签署私有数据进行有效转换的情况。