mirror of
https://github.com/serai-dex/serai.git
synced 2025-12-14 15:09:23 +00:00
Update to the new eVRF proof
This commit is contained in:
@@ -7,14 +7,18 @@ use generic_array::typenum::{Sum, Diff, Quot, U, U1, U2};
|
||||
use blake2::{Digest, Blake2b512};
|
||||
|
||||
use ciphersuite::{
|
||||
group::ff::{FromUniformBytes, PrimeField},
|
||||
group::{
|
||||
ff::{FromUniformBytes, Field, PrimeField},
|
||||
Group,
|
||||
},
|
||||
Ciphersuite,
|
||||
};
|
||||
use pasta_curves::{Ep, Eq, Fp, Fq};
|
||||
|
||||
use generalized_bulletproofs::tests::generators;
|
||||
use generalized_bulletproofs_ec_gadgets::DiscreteLogParameters;
|
||||
|
||||
use crate::*;
|
||||
use crate::evrf::proof::*;
|
||||
|
||||
#[derive(Clone, Copy, PartialEq, Eq, Debug, Zeroize)]
|
||||
struct Pallas;
|
||||
@@ -64,26 +68,36 @@ impl EvrfCurve for Pallas {
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn pasta_test() {
|
||||
fn evrf_proof_pasta_test() {
|
||||
let generators = generators(1024);
|
||||
let vesta_private_key = Zeroizing::new(<Vesta as Ciphersuite>::F::random(&mut OsRng));
|
||||
let ecdh_public_keys =
|
||||
[<Vesta as Ciphersuite>::G::random(&mut OsRng), <Vesta as Ciphersuite>::G::random(&mut OsRng)];
|
||||
let time = Instant::now();
|
||||
let res =
|
||||
Evrf::prove::<Pallas>(&mut OsRng, &generators, vesta_private_key.clone(), [0; 32], 1).unwrap();
|
||||
println!("Proving time: {:?}", Instant::now() - time);
|
||||
let res = Evrf::<Pallas>::prove(
|
||||
&mut OsRng,
|
||||
&generators,
|
||||
vesta_private_key.clone(),
|
||||
[0; 32],
|
||||
1,
|
||||
&ecdh_public_keys,
|
||||
)
|
||||
.unwrap();
|
||||
println!("Proving time: {:?}", time.elapsed());
|
||||
|
||||
let time = Instant::now();
|
||||
let mut verifier = generators.batch_verifier();
|
||||
dbg!(Evrf::verify::<Pallas>(
|
||||
dbg!(Evrf::<Pallas>::verify(
|
||||
&mut OsRng,
|
||||
&generators,
|
||||
&mut verifier,
|
||||
Vesta::generator() * *vesta_private_key,
|
||||
[0; 32],
|
||||
1,
|
||||
&ecdh_public_keys,
|
||||
&res.proof,
|
||||
)
|
||||
.unwrap());
|
||||
assert!(generators.verify(verifier));
|
||||
println!("Verifying time: {:?}", Instant::now() - time);
|
||||
println!("Verifying time: {:?}", time.elapsed());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user