Adding VRF-based computation of labels
Jasleen1 opened this issue · comments
We want to use a VRF to compute labels in seemless_directory.rs
and then verify these VRFs in lookup_verify
, key_history_verify
etc.
See: https://crates.io/crates/vrf for one option. Below is a starting checklist of things to consider:
- We will need to convert the output of the VRF into
NodeLabel
type. We may want to change the NodeLabel type as a result, or implement a trait instead. - VRF keys need to be stored in some sort of
config
file, so that the server can generate VRF values. - In the Java implementation of SEEMless, we used BouncyCastle, and at the time, we had to hash to the curve from strings/bytearrays. We need to hash to the correct space in this case as well.
- If we hash to a curve and later hash the output value, we should be careful about the security guarantees offered by the various parameter sizes. Would be helpful to add documentation for this.
I believe this should be done and this can be closed (finally!), but @Jasleen1 to confirm