用Circom和Snarkjs实践零知识证明技术

Installation - Circom 2 Documentation

  1. Circom:它是用来定义和构建零知识证明电路的工具。当你使用 circom 编写一个电路(通常是一个用于验证某种计算过程的程序),它会生成一些所谓的“工件”(artifacts)。这些工件包括了用来生成证明和验证证明的关键数据,如电路的描述(通常是 .r1cs 文件)、公共输入、私有输入、证明生成的帮助函数(.wasm 文件)等。

  2. Snarkjs:它是用来操作这些“工件”的工具包。snarkjs 会使用由 circom 构建的工件来:

    • 生成证明(生成 ZK-proof):基于电路和私有输入生成零知识证明。

    • 验证证明(验证 ZK-proof):验证生成的证明是否正确,是否符合电路逻辑。

换句话说:

  • Circom:负责电路的构建(通过定义电路并生成相应的“工件”)。

  • Snarkjs:负责利用这些工件生成和验证证明。

所以,CircomSnarkjs 是配合使用的工具,前者用于构建电路和生成必要的工件,后者用于基于这些工件来进行证明的生成和验证。

 

posted on 2025-10-30 17:11  肥兔子爱豆畜子  阅读(0)  评论(0)    收藏  举报

导航