22// SPDX-License-Identifier: Apache-2.0
33
44use aptos_dkg:: {
5- range_proofs:: dekart_univariate:: { batch_prove , batch_verify , DST } ,
5+ range_proofs:: { dekart_univariate:: Proof as UnivariateDeKART , traits :: BatchedRangeProof } ,
66 utils:: test_utils,
77} ;
88use ark_ec:: pairing:: Pairing ;
99use ark_std:: rand:: thread_rng;
1010use criterion:: { criterion_group, criterion_main, Criterion } ;
1111
1212/// Generic benchmark function over any pairing curve
13- fn bench_range_proof < E : Pairing > ( c : & mut Criterion , curve_name : & str ) {
13+ fn bench_range_proof < E : Pairing , B : BatchedRangeProof < E > > ( c : & mut Criterion , curve_name : & str ) {
1414 let mut group = c. benchmark_group ( format ! ( "range_proof/{}" , curve_name) ) ;
1515
1616 let ell = std:: env:: var ( "L" )
@@ -27,14 +27,14 @@ fn bench_range_proof<E: Pairing>(c: &mut Criterion, curve_name: &str) {
2727 b. iter_with_setup (
2828 || {
2929 let mut rng = thread_rng ( ) ;
30- let ( pp, zz, cc, r) = test_utils:: range_proof_random_instance ( n, ell, & mut rng) ;
31- ( pp, zz, cc, r)
30+ let ( pk, _, values, comm, comm_r) =
31+ test_utils:: range_proof_random_instance :: < _ , B , _ > ( n, ell, & mut rng) ;
32+ ( pk, values, comm, comm_r)
3233 } ,
33- |( pp , z_vals , com , prover_state ) | {
34- let mut fs_t = merlin:: Transcript :: new ( DST ) ;
34+ |( pk , values , comm , r ) | {
35+ let mut fs_t = merlin:: Transcript :: new ( B :: DST ) ;
3536 let mut rng = thread_rng ( ) ;
36- let _proof =
37- batch_prove :: < E , _ > ( & mut rng, & pp, & z_vals, & com, & prover_state, & mut fs_t) ;
37+ let _proof = B :: prove ( & pk, & values, ell, & comm, & r, & mut fs_t, & mut rng) ;
3838 } ,
3939 )
4040 } ) ;
@@ -43,23 +43,27 @@ fn bench_range_proof<E: Pairing>(c: &mut Criterion, curve_name: &str) {
4343 b. iter_with_setup (
4444 || {
4545 let mut rng = thread_rng ( ) ;
46- let ( pp, zz, cc, r) = test_utils:: range_proof_random_instance ( n, ell, & mut rng) ;
47- let mut fs_t = merlin:: Transcript :: new ( DST ) ;
48- let proof = batch_prove :: < E , _ > ( & mut rng, & pp, & zz, & cc, & r, & mut fs_t) ;
49- ( pp, cc, proof)
46+ let ( pk, vk, values, comm, r) =
47+ test_utils:: range_proof_random_instance :: < _ , B , _ > ( n, ell, & mut rng) ;
48+ let mut fs_t = merlin:: Transcript :: new ( B :: DST ) ;
49+ let proof = B :: prove ( & pk, & values, ell, & comm, & r, & mut fs_t, & mut rng) ;
50+ ( vk, n, ell, comm, proof)
5051 } ,
51- |( pp , com , proof) | {
52- let mut fs_t = merlin:: Transcript :: new ( DST ) ;
53- batch_verify :: < E > ( & pp , & com , & proof , & mut fs_t) . unwrap ( ) ;
52+ |( vk , n , ell , comm , proof) | {
53+ let mut fs_t = merlin:: Transcript :: new ( B :: DST ) ;
54+ proof . verify ( & vk , n , ell , & comm , & mut fs_t) . unwrap ( ) ;
5455 } ,
5556 )
5657 } ) ;
5758}
5859
5960// Specialize benchmark for a concrete pairing curve
6061fn bench_groups ( c : & mut Criterion ) {
61- bench_range_proof :: < ark_bn254:: Bn254 > ( c, "BN254" ) ;
62- bench_range_proof :: < ark_bls12_381:: Bls12_381 > ( c, "BLS12-381" ) ;
62+ use ark_bls12_381:: Bls12_381 ;
63+ use ark_bn254:: Bn254 ;
64+
65+ bench_range_proof :: < Bn254 , UnivariateDeKART < Bn254 > > ( c, "BN254" ) ;
66+ bench_range_proof :: < Bls12_381 , UnivariateDeKART < Bls12_381 > > ( c, "BLS12-381" ) ;
6367}
6468
6569criterion_group ! (
0 commit comments