天天看點

零知識證明開發工具集

零知識證明是區塊鍊開發者值得關注的密碼學技術,本文整理了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

原文連結:

11個主流零知識證明開發庫 — 彙智網