Niftyzk 教程 5 - CosmWasm

Niftyzk 教程 5 - CosmWasm

💡 原文英文,约900词,阅读约需4分钟。
📝

内容提要

本教程讲解Niftyzk在ZKP开发中的应用,重点是导出CosmWasm合约。首先使用niftyzk生成验证密钥,并确保单元测试通过。可以选择Rust库(Arkworks或Bellman)生成合约,推荐使用成熟的Bellman库。生成合约后,安装Rust编译器并运行测试,确保合约有效,最后进行部署。

🎯

关键要点

  • 本教程讲解Niftyzk在ZKP开发中的应用,重点是导出CosmWasm合约。
  • 首先需要使用niftyzk生成验证密钥,并确保单元测试通过。
  • 可以选择Rust库(Arkworks或Bellman)生成合约,推荐使用成熟的Bellman库。
  • 使用命令niftyzk gencontract生成CosmWasm验证智能合约。
  • 需要安装Rust编译器,并运行cargo test以确保合约有效。
  • 使用cargo wasm构建合约,并使用cosmwasm-check验证合约的有效性。
  • 合约的入口点在src/lib.rs,ZKP验证逻辑在src/verify.rs。
  • 调用Query函数并传递VerifyProof消息以触发智能合约。
  • Bellman库使用未压缩的验证密钥和证明,适合不同格式的需求。
  • 建议在使用时评估Arkworks和Bellman库的适用性。
  • 验证合约有效后,可以进行部署。

延伸问答

如何使用niftyzk生成CosmWasm合约?

使用命令niftyzk gencontract生成CosmWasm验证智能合约,并确保提供正确的参数。

在生成合约之前需要做什么准备?

首先需要使用niftyzk生成验证密钥,并确保单元测试通过。

推荐使用哪个Rust库来生成合约?

推荐使用成熟的Bellman库来生成合约。

如何验证生成的合约是否有效?

使用cargo test运行测试,并使用cosmwasm-check验证合约的有效性。

Bellman库和Arkworks库有什么区别?

Bellman库使用未压缩的验证密钥和证明,适合不同格式的需求,而Arkworks库虽然易用,但未完全审计。

合约的入口点和验证逻辑在哪里?

合约的入口点在src/lib.rs,ZKP验证逻辑在src/verify.rs。

➡️

继续阅读