From aa7818320fed7b93d6c2e312e5bd7978da5d4717 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 398d4582..a6ee4cd2 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(