ZKP编译器对比项目教程

ZKP编译器对比项目教程

zkp-compiler-shootout Evaluating & benchmarking ZKP compilation strategies. 项目地址: https://gitcode.com/gh_mirrors/zk/zkp-compiler-shootout

1. 项目介绍

ZKP编译器对比项目(zkp-compiler-shootout)旨在评估和基准测试不同的零知识证明(ZKP)编译策略。该项目目前测试了以下几种零知识证明机器:

  • RISC0
  • Miden
  • Triton
  • Plonk
  • Halo2

如果你希望你的机器/框架/编译策略被基准测试,可以通过提交PR来实现。项目的结果可以在以下文件中查看:

  • BENCHMARKS-x86.md
  • BENCHMARKS-arm64.md
  • anoma.github.io/zkp-compiler-shootout/

2. 项目快速启动

2.1 环境准备

首先,确保你已经安装了以下依赖:

  • cargo-risczero
  • cargo-criterion
  • criterion-table

你可以通过以下命令安装这些依赖:

cargo install cargo-risczero
cargo install cargo-criterion
cargo install criterion-table

2.2 获取基准测试结果

项目提供了两种命令来生成基准测试结果:

make table arg="desired_backend"
make bench arg="desired_backend"

推荐使用make table命令,但需要安装上述依赖。确保cargo包在你的路径中。无论使用哪种方式,结果都可以通过以下命令查看:

make table arg="desired_flags"
make bench arg="desired_flags"

HTML格式的结果将保存在/shootout/target/criterion/reports/index.html中。如果运行了make table命令,更新后的基准测试结果将保存在/BENCHMARKS.md文件中。

2.3 基准测试标志

为了有效服务于开发者和用户验证结果,默认情况下不会启用所有基准测试。以下是一些标志类别:

  • 编译器标志
  • 测试标志
  • 步骤标志

所有步骤标志和测试标志默认启用。如果希望关闭某些功能,可以使用以下命令:

cd shootout
cargo bench --no-default-features --features "all_tests prove_and_verify miden"

3. 应用案例和最佳实践

3.1 应用案例

该项目可以用于评估不同零知识证明编译器的性能,帮助开发者选择最适合其应用场景的编译器。例如,在需要高性能证明生成的场景中,可以通过基准测试结果选择性能最佳的编译器。

3.2 最佳实践

  • 选择合适的编译器:根据基准测试结果选择性能最佳的编译器。
  • 优化编译器配置:根据项目需求调整编译器标志,以获得最佳性能。
  • 定期更新基准测试:随着新版本的发布,定期更新基准测试结果,以确保选择的编译器仍然是最优的。

4. 典型生态项目

4.1 RISC0

RISC0是一个基于RISC-V架构的零知识证明系统,适用于需要高性能证明生成的场景。

4.2 Miden

Miden是一个基于Miden VM的零知识证明系统,适用于需要高度灵活性和可扩展性的场景。

4.3 Triton

Triton是一个基于Triton VM的零知识证明系统,适用于需要高性能和低延迟的场景。

4.4 Plonk

Plonk是一个基于Plonk协议的零知识证明系统,适用于需要高度安全性和隐私保护的场景。

4.5 Halo2

Halo2是一个基于Halo协议的零知识证明系统,适用于需要高度可扩展性和灵活性的场景。

zkp-compiler-shootout Evaluating & benchmarking ZKP compilation strategies. 项目地址: https://gitcode.com/gh_mirrors/zk/zkp-compiler-shootout

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

潘惟妍

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值