#zk-snarks #srs #trusted-setup

no-std bin+lib ark-srs

A utility crate that simplifies reuse of Common/Structured Reference String (CRS/SRS) from past trusted setup ceremonies, especially for SNARK

5 unstable releases

0.3.2 Apr 20, 2024
0.3.1 Apr 19, 2024
0.3.0 Apr 19, 2024
0.2.0 Apr 12, 2024
0.1.0 Mar 8, 2024

#1183 in Cryptography

Download history 1107/week @ 2024-11-17 666/week @ 2024-11-24 1005/week @ 2024-12-01 584/week @ 2024-12-08 552/week @ 2024-12-15 179/week @ 2024-12-22 157/week @ 2024-12-29 979/week @ 2025-01-05 454/week @ 2025-01-12 420/week @ 2025-01-19 665/week @ 2025-01-26 936/week @ 2025-02-02 783/week @ 2025-02-09 1816/week @ 2025-02-16 1230/week @ 2025-02-23 1896/week @ 2025-03-02

5,789 downloads per month

MIT license

28KB
467 lines

ark-srs

Use Common/Structured Reference String (CRS/SRS) from existing ceremonies with ease with arkworks types.

WARNING: This is work in progress, none of the code has been audited. The library is NOT ready for production.

Download SRS to local

  • Aztec's ignition: ./scripts/download_transcripts_aztec.sh NUM where NUM can be 0..19 (NUM=2 means download transcript 0, 1, 2)
    • 100.8 million BN254 G1 points in total, split up into 20 files, each transcript file contains ~5 million points (~307 MB in size)
    • 2 BN254 G2 points are in the first transcript file
    • If you only need degree<=1,048,584, you will be directly using one of cached binary files in Released Assets (auto-downloaded when you run setup()).

Usage

Our convention for module organization for different SRS is: <scheme>::<ceremony_name>::setup().

Here's an example of using Aztec's SRS for KZG over BN254 curve:

use ark_bn254::Bn254;
use ark_poly::univariate::DenseUVPolynomial;
use ark_srs;

// simulated CRS (for test only)
let pp = KZG10::<Bn254, DenseUVPolynomial<<Bn254 as PairingEngine>::Fr>>::setup(max_degree, false, &mut rng)?;

// now, use Aztec's CRS
let pp = ark_srs::kzg10::aztec20::setup(supported_degree)?;

Dependencies

~9–21MB
~247K SLoC