用Circom和Snarkjs实践零知识证明技术
Installation - Circom 2 Documentation
-
Circom:它是用来定义和构建零知识证明电路的工具。当你使用 circom 编写一个电路(通常是一个用于验证某种计算过程的程序),它会生成一些所谓的“工件”(artifacts)。这些工件包括了用来生成证明和验证证明的关键数据,如电路的描述(通常是
.r1cs文件)、公共输入、私有输入、证明生成的帮助函数(.wasm文件)等。 -
Snarkjs:它是用来操作这些“工件”的工具包。
snarkjs会使用由 circom 构建的工件来:-
生成证明(生成 ZK-proof):基于电路和私有输入生成零知识证明。
-
验证证明(验证 ZK-proof):验证生成的证明是否正确,是否符合电路逻辑。
-
换句话说:
-
Circom:负责电路的构建(通过定义电路并生成相应的“工件”)。
-
Snarkjs:负责利用这些工件生成和验证证明。
所以,Circom 和 Snarkjs 是配合使用的工具,前者用于构建电路和生成必要的工件,后者用于基于这些工件来进行证明的生成和验证。
浙公网安备 33010602011771号