零知识证明开发工具集

简介:

零知识证明是区块链开发者值得关注的密码学技术,本文整理了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个主流零知识证明开发库 — 汇智网

目录
相关文章
|
存储 数据采集
正确处理 CSV 文件的引号和逗号
CSV(Comma-Separated Values,逗号分割值),就是用纯文本的形式存储表格数据,最大的特点就是方便。但是你真的会处理 CSV 文件吗?数据包含引号或逗号,该怎么办?
1362 0
|
设计模式 消息中间件 JavaScript
巧用『责任链模式』来优化 参数多重校验,非常优雅!
巧用『责任链模式』来优化 参数多重校验,非常优雅!
巧用『责任链模式』来优化 参数多重校验,非常优雅!
|
7月前
|
数据可视化 数据管理 BI
如何用二维码搭建一套会议和活动报名系统
本文介绍了如何利用二维码技术高效管理会议报名与签到流程。相比传统方式,二维码具有低成本、便捷、数据统计准确等优势,适用于小型内部会议、中型公开讲座及大型行业论坛等多种场景。通过草料二维码平台,用户可轻松创建报名表单、配置规则、生成二维码,并支持线上线下多渠道推广。系统还提供实时数据统计、现场签到核销功能,帮助组织者提升活动管理效率。文章还分享了应对现场突发情况的实用技巧,为活动组织者提供全面参考。
|
12月前
|
机器学习/深度学习 数据可视化 计算机视觉
DeepSeek迁移学习与预训练模型应用
迁移学习利用预训练模型加速新任务训练,尤其在数据有限时效果显著。DeepSeek提供丰富的预训练模型和工具,支持图像、文本等多类型数据的迁移学习。本文详细介绍了如何使用DeepSeek进行特征提取、微调预训练模型、文本分类和目标检测,并通过代码示例帮助读者掌握这些技巧,解决常见问题,快速构建高性能模型。
|
JavaScript 中间件 数据库
中间件应用身份验证和授权
【5月更文挑战第1天】你可以编写类似的中间件函数来检查用户的角色和权限,并根据需要允许或拒绝访问。
365 2
中间件应用身份验证和授权
|
12月前
|
存储 人工智能 Java
一文轻松搞清楚数字电路的锁存器和触发器
数字电路中的锁存器和触发器是核心存储单元,均能存储二进制状态。锁存器为电平敏感型,适用于异步电路;触发器为边沿敏感型,适用于同步时序电路。两者在抗干扰能力、时序控制精度等方面有显著差异。锁存器功耗较低,适合低功耗设计;触发器则更易满足时序要求,广泛用于FPGA和ASIC中。选择时需综合考虑应用场景与时序收敛等因素。
1207 0
|
安全 程序员 API
|
弹性计算 运维 安全
访问控制(RAM)|云上程序使用临时凭证的最佳实践
STS临时访问凭证是阿里云提供的一种临时访问权限管理服务,通过STS获取可以自定义时效和访问权限的临时身份凭证,减少长期访问密钥(AccessKey)泄露的风险。本文将为您介绍产品原理,以及具体的使用步骤。
151915 5
|
算法 安全 区块链
区块链如何实现交易匿名性
**区块链匿名性摘要:** - 匿名性源于公钥/私钥系统,公钥作地址,私钥验证交易,不透露身份信息。 - Coin Mixing 和 CoinJoining 混合交易,使资金流向难以追踪。 - 匿名币如 Monero、Zcash 使用零知识证明和环签名技术增强匿名。 - 隐身地址和一次性地址增加隐私,公私钥交换确保安全交易而不暴露身份。 - 多层次加密与协议结合,保障区块链交易隐私。
|
存储 算法 区块链
Python算法——Merkle树
Python算法——Merkle树
422 2