在 BSV 上基于 Zokrates 的 zkSNARKs 应用开发流程简介
Posted sCrypt 智能合约
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在 BSV 上基于 Zokrates 的 zkSNARKs 应用开发流程简介相关的知识,希望对你有一定的参考价值。
我们展示了如何使用 zk-SNARKs 来开发比特币的信息不完整的游戏。
众所周知,ZoKrates 是 zkSNARKs 的工具箱。它可以帮助您在 DApp 中使用可验证的计算,从规范的基于高级语言的程序电路到生成计算证明,再到验证这些证明。
在 ZoKrates Fork 库 中,我们扩展了 ZoKrates 的功能。使其支持自动生成验证 zk-SNARKs 证明的sCrypt智能合约。
安装
下载并使用我们发布的二进制包:
https://github.com/sCrypt-Inc/zokrates/releases/tag/v0.8.1
开发流程
开发流程基本与原生的 ZoKrates 相同。在验证证明阶段会有不同。
- 编写电路程序,创建文本文件
root.zok
并实现一下的程序。在这个例子中,我们将证明知道数字b
的平方根为a
:
def main(private field a, field b)
assert(a * a == b);
return;
- 编译电路
zokrates compile -i root.zok
- 执行设置
zokrates setup
- 计算见证人
zokrates compute-witness -a 337 113569
- 生成证明
zokrates generate-proof
- 导出验证者智能合约
verifier.scrypt
, 同时会提供一个verifier.js
文件
zokrates export-verifier-scrypt
- 使用第六步导出的
verifier.js
在本地执行对证明的验证。如果本地验证成功,则会将verifier.scrypt
验证者合约部署到测试网(需要填写测试网私钥),并调用部署的验证者合约
node --max-old-space-size=8192 verifier.js
如果验证失败,则用 sCrypt IDE 调试合约。
以上是关于在 BSV 上基于 Zokrates 的 zkSNARKs 应用开发流程简介的主要内容,如果未能解决你的问题,请参考以下文章