使用 Zokrates 在 BSV 上创建您的第一个 zkSNARK 证明

Posted sCrypt 智能合约

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用 Zokrates 在 BSV 上创建您的第一个 zkSNARK 证明相关的知识,希望对你有一定的参考价值。

这个 ZoKrates Fork库 是 BSV 上 zkSNARKs 的工具箱。它可以帮助您在应用程序中使用可验证的计算,从高级语言的编写的电路到生成计算证明,再到在 sCrypt 中验证这些证明。

安装

下载并使用我们发布的二进制包:

https://github.com/sCrypt-Inc/zokrates/releases/latest

或者从源码编译:

git clone https://github.com/sCrypt/ZoKrates
./build_release.sh
cd target/release

工作流程

整个工作流程与原始 ZoKrates 相同,除了验证部分。

  1. 编写电路程序,创建文本文件 root.zok 并实现以下的程序。在这个例子中,我们将证明知道数字 b 的平方根为 a
def main(private field a, field b) 
    assert(a * a == b);
    return;

  1. 编译电路
zokrates compile -i root.zok
  1. 执行设置
zokrates setup
  1. 计算见证人
zokrates compute-witness -a 337 113569
  1. 生成证明
zokrates generate-proof
  1. 导出验证者智能合约 verifier.scrypt, 同时会提供一个 verifier.js 文件
zokrates export-verifier-scrypt
  1. 执行 verifier.js 验证 zkSNARK 证明1。如果本地验证成功,则会将 verifier.scrypt 验证者合约部署到测试网2,并调用部署的验证者合约
node --max-old-space-size=8192 verifier.js

  • [1] 在此之前,你需要确保安装了 scryptlibaxios nodejs 模块。 由于验证者合约较大,增加 --max-old-space-size=8192 确保 nodejs 内存充足

  • [2] 需要填写测试网私钥

以上是关于使用 Zokrates 在 BSV 上创建您的第一个 zkSNARK 证明的主要内容,如果未能解决你的问题,请参考以下文章

在 BSV 上基于 Zokrates 的 zkSNARKs 应用开发流程简介

Babbage项目在BSV区块链上创建一个负责任的互联网

Babbage项目在BSV区块链上创建一个负责任的互联网

BSV第一次开发者大会(DevCon),现在开启预注册。

零知识证明实战在线旅游业ZoKrates

ZoKrates实战在线旅游业零知识证明