Skip to content

Commit

Permalink
Add multiple proof and verification test for benchmarking
Browse files Browse the repository at this point in the history
  • Loading branch information
drskalman committed Sep 26, 2024
1 parent cfc3dfa commit bfcd00d
Showing 1 changed file with 31 additions and 2 deletions.
33 changes: 31 additions & 2 deletions ring/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,8 @@ mod tests {
use common::gadgets::ProverGadget;
use common::gadgets::VerifierGadget;

use std::hint::black_box;

use super::*;

fn _test_ring_proof<
Expand All @@ -91,6 +93,7 @@ mod tests {
CondAddT: CondAdd<Fq, P> + ProverGadget<Fq>,
>(
domain_size: usize,
repeat: usize,
) where
CondAddT::CondAddValT: VerifierGadget<Fq>,
{
Expand All @@ -116,12 +119,23 @@ mod tests {
Transcript::new(b"ring-vrf-test"),
);
let t_prove = start_timer!(|| "Prove");
let mut proofs: Vec<RingProof<_, CS>> = vec![];
for _ in 0..repeat - 1 {
black_box(proofs.push(ring_prover.prove::<CondAddT>(secret)));
}

let proof = ring_prover.prove::<CondAddT>(secret);
end_timer!(t_prove);

let ring_verifier =
RingVerifier::init(verifier_key, piop_params, Transcript::new(b"ring-vrf-test"));
let t_verify = start_timer!(|| "Verify");
for _ in 0..repeat - 1 {
black_box(ring_verifier.verify_ring_proof::<CondAddT::CondAddValT>(
proofs.pop().unwrap(),
result.into_affine(),
));
}
let res =
ring_verifier.verify_ring_proof::<CondAddT::CondAddValT>(proof, result.into_affine());
end_timer!(t_verify);
Expand Down Expand Up @@ -194,20 +208,22 @@ mod tests {

#[test]
fn test_ring_proof_kzg_sw() {
_test_ring_proof::<KZG<Bls12_381>, SWAffine, SwCondAdd<Fq, SWAffine>>(2usize.pow(10));
_test_ring_proof::<KZG<Bls12_381>, SWAffine, SwCondAdd<Fq, SWAffine>>(2usize.pow(10), 1);
}

#[test]
fn test_ring_proof_kzg_te() {
_test_ring_proof::<KZG<Bls12_381>, EdwardsAffine, TeCondAdd<Fq, EdwardsAffine>>(
2usize.pow(10),
1,
);
}

#[test]
fn test_ring_proof_id_sw() {
_test_ring_proof::<fflonk::pcs::IdentityCommitment, SWAffine, SwCondAdd<Fq, SWAffine>>(
2usize.pow(10),
1,
);
}

Expand All @@ -217,6 +233,19 @@ mod tests {
fflonk::pcs::IdentityCommitment,
EdwardsAffine,
TeCondAdd<Fq, EdwardsAffine>,
>(2usize.pow(10));
>(2usize.pow(10), 1);
}

#[test]
fn test_16k_ring_10_proofs_kzg_sw() {
_test_ring_proof::<KZG<Bls12_381>, SWAffine, SwCondAdd<Fq, SWAffine>>(2usize.pow(14), 10);
}

#[test]
fn test_16k_ring_10_proofs_kzg_te() {
_test_ring_proof::<KZG<Bls12_381>, EdwardsAffine, TeCondAdd<Fq, EdwardsAffine>>(
2usize.pow(14),
10,
);
}
}

0 comments on commit bfcd00d

Please sign in to comment.