nizk: better u param for range proofs/TODO: optimize

This commit is contained in:
Gijs Van Laer 2019-07-21 15:13:18 -04:00
parent 51ada703ed
commit 9aaec97e3e
1 changed files with 5 additions and 4 deletions

View File

@ -310,7 +310,7 @@ impl<E: Engine> RPPublicParams<E> {
if a > b {
panic!("a must be less than or equal to b");
}
//TODO: optimize u?
let logb = (b as f32).log2();
let loglogb = logb.log2();
if loglogb > 0.0 {
@ -318,6 +318,7 @@ impl<E: Engine> RPPublicParams<E> {
if u < 2 {
u = 2;
}
u = 57; //TODO: optimize u?
let l = (b as f32).log(u as f32).ceil() as i32;
let params_out: ParamsUL<E> = ParamsUL::<E>::setup_ul(rng, u, l, csParams.clone());
@ -615,9 +616,9 @@ mod tests {
let public_params = RPPublicParams::<Bls12>::setup(rng, 2, 10, csParams);
assert_eq!(public_params.a, 2);
assert_eq!(public_params.b, 10);
assert_eq!(public_params.p.signatures.len(), 2);
assert_eq!(public_params.p.u, 2);
assert_eq!(public_params.p.l, 4);
assert_eq!(public_params.p.signatures.len(), 57);
assert_eq!(public_params.p.u, 57);
assert_eq!(public_params.p.l, 1);
for (m, s) in public_params.p.signatures {
assert_eq!(public_params.p.kp.verify(&public_params.p.mpk, &vec! {Fr::from_str(m.to_string().as_str()).unwrap()}, &Fr::zero(), &s), true);
}