eyvara-vrf
What is a VRF
A verifiable random function (VRF) lets a secret-key holder compute a deterministic pseudorandom output for an input and publish a proof that anyone can verify with the corresponding public key. For a fixed secret key and input, the output is unique; without the secret key, it should be computationally infeasible to predict the output before seeing a valid proof.
Security Notice
Known limitations: infinity_norm is not constant-time, and the rejection
sampling loop has input-dependent timing. Do not use in systems where
side-channel resistance is required.
Quick Start
use ;
use EYVARA_128;
use OsRng;
Parameter Sets
| Name | Security | Proof Size | Key Size |
|---|---|---|---|
| EYVARA_128 | NIST Cat. 1 (~128-bit classical) | ~1.3 KB | ~4 KB public, ~8 KB secret |
| EYVARA_192 | NIST Cat. 3 (~192-bit classical) | ~2.0 KB | ~6 KB public, ~12 KB secret |
Optional Features
The serde feature enables Serialize and Deserialize for PublicKey, EyvaraProof, and EyvaraOutput. SecretKey supports Serialize only; reconstruction is available from trusted serialized components, but untrusted key import is not provided by this crate.
= { = "0.1", = ["serde"] }
Building, Testing, Benchmarking
License
MIT OR Apache-2.0