sigmabus-poc
Proof of concept implementation of Sigmabus https://eprint.iacr.org/2023/1406, a cool idea by George Kadianakis and Mary Maller and Andrija Novakovic.
Experimental code, do not use in production.
This PoC implements Sigmabus to prove & verify that
Proving
Let
// generate the trusted setup
let params = Sigmabus::<Bn254>::setup(&mut rng, &poseidon_config);
// compute X = x * G
let x = Fr::rand(&mut rng);
let X = G1Projective::generator().mul(x);
// generate Sigmabus proof for X==x*G
let mut transcript_p = PoseidonTranscript::<G1Projective>::new(&poseidon_config);
let proof = Sigmabus::<Bn254>::prove(&mut rng, ¶ms, &mut transcript_p, x);
// verify Sigmabus proof for X==x*G
let mut transcript_v = PoseidonTranscript::<G1Projective>::new(&poseidon_config);
Sigmabus::<Bn254>::verify(¶ms, &mut transcript_v, proof, X).unwrap();