From 7c675ca5b1fb82d1e96b02d97fb5253ed1e4f6a4 Mon Sep 17 00:00:00 2001 From: Piotr Roslaniec Date: Mon, 26 Jun 2023 14:56:26 +0200 Subject: [PATCH] replace radix2 eval domain to mixed radix eval domain in ferveo --- ferveo/benches/benchmarks/eval_domain.rs | 2 +- ferveo/src/api.rs | 4 ++-- ferveo/src/dkg.rs | 11 ++++++----- ferveo/src/pvss.rs | 4 ++-- 4 files changed, 11 insertions(+), 10 deletions(-) diff --git a/ferveo/benches/benchmarks/eval_domain.rs b/ferveo/benches/benchmarks/eval_domain.rs index cdb6d3c1..6a583f16 100644 --- a/ferveo/benches/benchmarks/eval_domain.rs +++ b/ferveo/benches/benchmarks/eval_domain.rs @@ -21,7 +21,7 @@ pub fn bench_eval_domain(c: &mut Criterion) { for shares_num in NUM_SHARES_CASES { let eval_radix2_eval_domain = { let domain = - ark_poly::Radix2EvaluationDomain::new(shares_num).unwrap(); + ark_poly::MixedRadixEvaluationDomain::new(shares_num).unwrap(); let phi = SecretPolynomial::::new( &s, shares_num, rng, ); diff --git a/ferveo/src/api.rs b/ferveo/src/api.rs index 99c5af02..84d4a8cd 100644 --- a/ferveo/src/api.rs +++ b/ferveo/src/api.rs @@ -1,6 +1,6 @@ use std::io; -use ark_poly::{EvaluationDomain, Radix2EvaluationDomain}; +use ark_poly::{EvaluationDomain, MixedRadixEvaluationDomain}; use ark_serialize::{CanonicalDeserialize, CanonicalSerialize}; use ark_std::UniformRand; use bincode; @@ -204,7 +204,7 @@ impl AggregatedTranscript { messages: &[ValidatorMessage], ) -> Result { let pvss_params = PubliclyVerifiableParams::::default(); - let domain = Radix2EvaluationDomain::::new(shares_num as usize) + let domain = MixedRadixEvaluationDomain::::new(shares_num as usize) .expect("Unable to construct an evaluation domain"); let is_valid_optimistic = self.0.verify_optimistic(); diff --git a/ferveo/src/dkg.rs b/ferveo/src/dkg.rs index 0da37084..9607718f 100644 --- a/ferveo/src/dkg.rs +++ b/ferveo/src/dkg.rs @@ -61,7 +61,7 @@ pub struct PubliclyVerifiableDkg { pub pvss_params: PubliclyVerifiableParams, pub validators: ValidatorsMap, pub vss: PVSSMap, - pub domain: ark_poly::Radix2EvaluationDomain, + pub domain: ark_poly::MixedRadixEvaluationDomain, pub me: DkgValidator, pub state: DkgState, } @@ -84,10 +84,11 @@ impl PubliclyVerifiableDkg { dkg_params.shares_num, )); } - let domain = ark_poly::Radix2EvaluationDomain::::new( - dkg_params.shares_num as usize, - ) - .expect("unable to construct domain"); + let domain = + ark_poly::MixedRadixEvaluationDomain::::new( + dkg_params.shares_num as usize, + ) + .expect("unable to construct domain"); // Sort the validators to verify a global ordering if !is_sorted(validators) { diff --git a/ferveo/src/pvss.rs b/ferveo/src/pvss.rs index af05c4da..50c7066c 100644 --- a/ferveo/src/pvss.rs +++ b/ferveo/src/pvss.rs @@ -224,7 +224,7 @@ pub fn do_verify_full( pvss_encrypted_shares: &[E::G2Affine], pvss_params: &PubliclyVerifiableParams, validators: &[Validator], - domain: &ark_poly::Radix2EvaluationDomain, + domain: &ark_poly::MixedRadixEvaluationDomain, ) -> bool { let mut commitment = batch_to_projective_g1::(pvss_coefficients); domain.fft_in_place(&mut commitment); @@ -256,7 +256,7 @@ pub fn do_verify_aggregation( pvss_agg_encrypted_shares: &[E::G2Affine], pvss_params: &PubliclyVerifiableParams, validators: &[Validator], - domain: &ark_poly::Radix2EvaluationDomain, + domain: &ark_poly::MixedRadixEvaluationDomain, vss: &PVSSMap, ) -> Result { let is_valid = do_verify_full(