Verifiable Random Functions (VRF)
It sounds like a hard task, but can we produce a random function which is verifiable in its operation?
Overall, a Verifiable Random Function (VRF) allows the owner of a private key the ability to create a hashed value of data, while anyone with the associated public key can prove the validity of the hash. Thus the owner of the private key can produce H(x) from H(x)=f_priv(x), while someone with the public key can prove that H(x) is the hash of x. This is similar to the approach of keyed cryptography hashes but uses public-key encryption for the key operation.
A demo of the method I will outline is here:
https://asecuritysite.com/zero/vrf
We will use the method coded by Google and defined in the appendix of [1][here]:
The method in the paper is defined in a discrete log format, but we now normally use elliptic curve methods. It is fairly easy to convert from a discrete log format (with exponentiation) to multiplication:
g^x → x.G
and where g is the base in the discrete log form, and G is the base point on the curve. With elliptic curves, we have two core operations: a…