Updated to t-variant and new protocol
This commit is contained in:
+8
-9
@@ -1,4 +1,5 @@
|
||||
use bls12_381::*;
|
||||
use rayon::prelude::*;
|
||||
use crate::utils;
|
||||
|
||||
fn lambda(i: i64, shares: i64) -> (Scalar, bool) {
|
||||
@@ -19,17 +20,15 @@ fn lambda(i: i64, shares: i64) -> (Scalar, bool) {
|
||||
}
|
||||
}
|
||||
|
||||
fn recover_shares(shares: &Vec<Gt>, n: i64) -> Gt {
|
||||
let mut target = Gt::identity();
|
||||
for i in 0..shares.len() {
|
||||
pub fn recover_shares(shares: &Vec<Gt>, n: i64) -> Gt {
|
||||
shares.par_iter().enumerate().map(|(i, share)| {
|
||||
let (l, b) = lambda((i + 1) as i64, n);
|
||||
let mut temp = shares[i] * l;
|
||||
let mut temp = share * l;
|
||||
if b {
|
||||
temp = -temp
|
||||
}
|
||||
target = target + temp;
|
||||
}
|
||||
return target;
|
||||
temp
|
||||
}).reduce(|| Gt::identity(), |a, b| a + b)
|
||||
}
|
||||
|
||||
fn recover_shares_scalar(shares: &Vec<Scalar>, n: i64) -> Scalar {
|
||||
@@ -61,7 +60,7 @@ fn eval_at_scalar(poly: &Vec<Scalar>, x: i64) -> Scalar {
|
||||
return y;
|
||||
}
|
||||
|
||||
fn gen_shares(secret: Gt, n: i64, t: i64) -> Vec<Gt> {
|
||||
pub fn gen_shares(secret: Gt, n: i64, t: i64) -> Vec<Gt> {
|
||||
assert!(t > 0);
|
||||
assert!(n >= t);
|
||||
assert!(t <= n);
|
||||
@@ -77,7 +76,7 @@ fn gen_shares(secret: Gt, n: i64, t: i64) -> Vec<Gt> {
|
||||
return shares;
|
||||
}
|
||||
|
||||
fn gen_shares_scalar(secret: Scalar, n: i64, t: i64) -> Vec<Scalar> {
|
||||
pub fn gen_shares_scalar(secret: Scalar, n: i64, t: i64) -> Vec<Scalar> {
|
||||
assert!(t > 0);
|
||||
assert!(n >= t);
|
||||
assert!(t <= n);
|
||||
|
||||
Reference in New Issue
Block a user