@@ -31,7 +31,7 @@ use crate::{
31
31
SynthesisError
32
32
} ;
33
33
34
- const MIMC_ROUNDS : usize = 2 ;
34
+ const MIMC_ROUNDS : usize = 322 ;
35
35
36
36
fn mimc < E : Engine > (
37
37
mut xl : E :: Fr ,
@@ -544,8 +544,8 @@ fn test_succinct_sonic_mimc() {
544
544
let s1_srs = perm_structure. create_permutation_special_reference ( & srs) ;
545
545
let s2_srs = perm_structure. calculate_s2_commitment_value ( & srs) ;
546
546
547
- // let info = get_circuit_parameters_for_succinct_sonic::<Bls12, _>(circuit.clone()).expect("Must get circuit info");
548
- // println!("{:?}", info);
547
+ let info = get_circuit_parameters_for_succinct_sonic :: < Bls12 , _ > ( circuit. clone ( ) ) . expect ( "Must get circuit info" ) ;
548
+ println ! ( "{:?}" , info) ;
549
549
550
550
println ! ( "creating proof" ) ;
551
551
let start = Instant :: now ( ) ;
@@ -609,36 +609,38 @@ fn test_succinct_sonic_mimc() {
609
609
{
610
610
use rand:: { XorShiftRng , SeedableRng , Rand , Rng } ;
611
611
let mut rng = & mut XorShiftRng :: from_seed ( [ 0x3dbe6259 , 0x8d313d76 , 0x3237db17 , 0xe5bc0654 ] ) ;
612
-
612
+ let start = Instant :: now ( ) ;
613
613
let ( perm_commitments, s_prime_challenges, perm_proof, perm_arg_proof, z_prime, num_poly, s1_naive) = perm_structure. create_permutation_arguments ( aggregate. w , aggregate. z , & mut rng, & srs) ;
614
614
let s2_proof = perm_structure. calculate_s2_proof ( aggregate. z , aggregate. w , & srs) ;
615
615
616
- let n = perm_structure. n ;
617
- let z = aggregate. z ;
618
- let y = aggregate. w ;
619
- let z_inv = z. inverse ( ) . unwrap ( ) ;
620
- let z_inv_n_plus_1 = z_inv. pow ( [ ( n+1 ) as u64 ] ) ;
621
- let z_n = z. pow ( [ n as u64 ] ) ;
622
- let y_n = y. pow ( [ n as u64 ] ) ;
616
+ println ! ( "Permutation argument done in {:?}" , start. elapsed( ) ) ;
623
617
624
- println ! ( "S_1 naive = {}" , s1_naive) ;
618
+ // let n = perm_structure.n;
619
+ // let z = aggregate.z;
620
+ // let y = aggregate.w;
621
+ // let z_inv = z.inverse().unwrap();
622
+ // let z_inv_n_plus_1 = z_inv.pow([(n+1) as u64]);
623
+ // let z_n = z.pow([n as u64]);
624
+ // let y_n = y.pow([n as u64]);
625
625
626
- let mut s_1 = s1_naive;
627
- s_1. mul_assign ( & z_inv_n_plus_1) ;
628
- s_1. mul_assign ( & y_n) ;
626
+ // println!("S_1 naive = {}", s1_naive);
629
627
630
- println ! ( "S_1 multiplied = {}" , s_1) ;
628
+ // let mut s_1 = s1_naive;
629
+ // s_1.mul_assign(&z_inv_n_plus_1);
630
+ // s_1.mul_assign(&y_n);
631
631
632
- let mut s_2 = s2_proof. c_value ;
633
- s_2. add_assign ( & s2_proof. d_value ) ;
634
- s_2. mul_assign ( & z_n) ;
632
+ // println!("S_1 multiplied = {}", s_1);
635
633
636
- s_1. sub_assign ( & s_2) ;
637
- println ! ( "S naive = {}" , s_1) ;
634
+ // let mut s_2 = s2_proof.c_value;
635
+ // s_2.add_assign(&s2_proof.d_value);
636
+ // s_2.mul_assign(&z_n);
637
+
638
+ // s_1.sub_assign(&s_2);
639
+ // println!("S naive = {}", s_1);
638
640
639
641
640
642
let mut verifier = SuccinctMultiVerifier :: < Bls12 , _ , Permutation3 , _ > :: new ( AdaptorCircuit ( circuit. clone ( ) ) , & srs, rng) . unwrap ( ) ;
641
- println ! ( "verifying 100 proofs with advice" ) ;
643
+ println ! ( "verifying 100 proofs with succinct advice" ) ;
642
644
let start = Instant :: now ( ) ;
643
645
{
644
646
for ( ref proof, ref advice) in & proofs {
0 commit comments