围炉网

一行代码,一篇日志,一个梦想,一个世界

11个主流的零知识证明开发库 | 学习软件编程

11个主流的零知识证明开发库

发表于


2020-06-02

|

分类于



区块链

零知识证明是区块链开发者值得关注的密码学技术,本文整理了11个
主流的零知识证明开发库,希望有助于你在自己的项目中学习并
利用零知识证明技术。

用自己熟悉的语言学习以太坊DApp开发:
Java |
Php |
Python |
.Net / C# |
Golang |
Node.JS |
Flutter / Dart

1、libsnark

libsnark是SCIPR Lab开发的zkSNARK方案实现,开发语言为
C++,应用于zcash等多个项目。

libsnark主要包括三部分:通用证据系统、基础电路库和应用示例。

libsnark下载地址:https://github.com/scipr-lab/libsnark

3、ZoKrates

ZoKrates是一个用于以太坊零知识证明应用开发的zkSNARK工具箱,
利用ZokRates提供的插件,你可以直接在Remix
中开发零知识证明应用。

ZoKrates的开发语言主要为Rust。

ZoKrates下载地址:https://github.com/Zokrates/ZoKrates

3、snarkjs

snarkjs是zkSARNK方案的javascript实现库,支持原始的8points协议和
Groth协议。利用snarkjs你可以进行可信设置、生成证据并验证证据。

snarkjs使用iden3自己的circom编译器对DSL定义的电路进行编译。

snarkjs下载地址:https://github.com/iden3/snarkjs

4、circom

circom是iden3设计的zk-snark电路描述DSL,circom npm包含了
使用该DSL描述的电路的编译器。

circom下载地址:https://github.com/iden3/circom

5、wasmsnark

wasmsnark是一个采用原生Web Assembly开发的快速的zkSnark证据生成
和验证工具,其速度可媲美libsnark,可以用于在浏览器中生成zkSnark证据并进行验证。

wasmsnark也是iden3出品,目前仅支持groth16。

wasmsnark下载地址:https://github.com/iden3/wasmsnark

6、gnark

gnark是consenSys开发的一个zkSARNK实现,采用Go语言,使用类似GO
的DSL描述电路。目前支持groth16。

https://github.com/ConsenSys/gnark

7、go-snark

go-snark是一个采用go语言实现的zkSNARK开发库,目前支持
Groth16协议和Pinocchio协议。

go-snark下载地址:https://github.com/arnaucube/go-snark

8、xJsnark

xJsnark是开发zk-SNARK电路的高层框架,其目标是填补高级语言开发
与性能之间的鸿沟。xJsnark提供一组可以让开发者在较高层级编写
zk-SNARK电路的特性,同时也提供了削减所生成的电路成本的技术,
从而使采用框架开发的电路性能接近手工开发的电路性能。

xJsnark采用Java开发,包含前端用于电路设计的Jetbrains扩展和
后端的电路生成单元。

xjsnark下载地址:https://github.com/akosba/xjsnark

9、bellman

bellman是一个用于开发zk-SNARK电路的Rust库,它提供电路接口、
基础结构以及一些基本电路实现,例如布尔和数值抽象。

bellman下载地址:https://github.com/zkcrypto/bellman

10、zksnark-rs

zksnark-rs是一个用于创建和利用零知识证据的Rust库,提供了
基础的电路描述语言,目前支持Groth16。

zksnark-rs下载地址:https://github.com/republicprotocol/zksnark-rs

11、Pysnark

pysnark是Python开发的zk-snark方案实现,支持Pinocchio协议,
支持生成用于以太坊的智能合约用于验证零知识证据。

pysnark下载地址:https://github.com/Charterhouse/pysnark

汇智网原创,转载请标明出处

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

沪ICP备15009335号-2