简介
jsnark是一个比较老的zk-snark工具,使用方法也较繁杂晦涩;但它的优点在于,给出的example范例众多,很适合我这种需要将密码学与zk-snark结合使用的宝宝。因为我查看过其他看起来更新更好用的工具,但其帮我们写好的example只有哈希,这意味着密码学方面的东西需要我们自己写,更加不便。故再三纠结下,仍决定使用jsnark。
网上似乎没有同僚出教程,本人资历尚浅不敢贸然为人师,但仍希望本人的实践经历能够帮助其他伙伴共同进步。本工具的使用均为本人探索得来,前路难料,但勇往直前,望此行平安顺遂。
VSCode连接服务器
在安装工具前,有一个使用服务器的好方法。VSCode连接服务器后,能够更方便地新建、上传文件以及运行代码,教程见链接:
jsnark环境配置与安装
jsnark官方网站为:GitHub - akosba/jsnark: A Java library for zk-SNARK circuits
故所有的安装、运行等教程均基于jsnark官方文档。
阅读文档得知,环境配置需要以下四个,官方也给出了详细配置方法:
- Libsnark prerequisites
- JDK 8 (Higher versions are also expected to work. We've only tested with JDKs 8 and 12.)
- Junit 4
- BouncyCastle library
但根据Ubuntu版本的不同,命令需要稍许调整。
1.Libsnark prerequisites
官方教程限定Ubuntu14.04,如果你版本相同则可直接使用:
但若Ubuntu版本不同,可进入GitHub - scipr-lab/libsnark: C++ library for zkSNARKs查询对应版本的安装命令:
2.JDK8
官方教程为ppa源方法,已经失效:
应使用安装包安装,教程如下:
3.Junit4和BouncyCastle
按官方教程命令来即可。
jsnark安装
遵循官方教程: