Adding VRF-based computation of labels
Jasleen1 opened this issue · comments
Jasleen1 commented
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.
Sean Lawlor commented
Kevin Lewi commented
I believe this should be done and this can be closed (finally!), but @Jasleen1 to confirm