Open burdges opened 3 years ago
We'll do this first in a new crate for the ring VRF based upon arkworks instead of dalek, not because the ring VRF needs it but because it fits naturally there.
We now have thin VRF in the dleq_vrf crate https://github.com/w3f/ring-vrf/blob/master/dleq_vrf/src/thin.rs#L62 and substrate needs faster VRF signature checking ala https://github.com/paritytech/polkadot-sdk/issues/730 and ..
Also I've maybe finally understood from @davxy what the substrate keystore requires for traits in https://github.com/w3f/ring-vrf/blob/master/dleq_vrf/src/traits.rs so maybe we could provide some similar ready to go traits here, if only for VRFs.
I discovered a trick that avoids the separate individual and batchable VRFProof types, which we'll adopt in the ring VRF crate, so maybe the correct solution would be adopting that here via some VRF2 proof/signature type that requires a PoK. We'd maybe remove VRFProofBatchable from the older VRF design.
I believe VRF2 simplifies doing https://github.com/w3f/schnorrkel/issues/5 with some pre-signing abstraction for witness creation, so we'd eventually generalize the multi-signatures to cover VRF2 after doing https://github.com/w3f/schnorrkel/issues/6 and https://github.com/w3f/schnorrkel/issues/11
I've closed paritytech/polkadot#26 in favor of this. It's different functionality but if you go too far that direction you need bulletproofs really, and the little step never materialized.