Liminal secures FSP license from FSRA in ADGM   Read more

Verifiable Random Function (VRF)

| May 6, 2024

Share this article

A verifiable random function (VRF) serves as a cryptographic random number generator (RNG). It generates an output with cryptographic proof of its randomness. The ability to cryptographically verify randomness is highly significant for various blockchain applications. This is important because it facilitates engaging gameplay, the creation of unique non-fungible tokens (NFTs) and ensures impartial outcomes.

Key Takeaways

A verifiable random function is a type of cryptographic function that computes a set of inputs into a pseudorandom output and provides verifiable evidence of authenticity.

What is a Verifiable Random Function (VRF)?

A verifiable random function (VRF) is a cryptographic function designed to take a set of inputs, process them, and generate a pseudorandom output. This output is accompanied by a proof of authenticity that can be verified by anyone.

Typically, inputs for a VRF involve a public/private key pair (also referred to as a verification key and secret key) and a seed. The process begins by creating a public/private key pair and selecting a seed. These values are then fed into the VRF, where the private key and seed work together to produce a random number. The VRF outputs both the random number and a proof. The crucial element here is that the inclusion of a proof ensures the verifiability of the function, while safeguarding the private key maintains the unpredictability of the generated number.

Unlock the potential of digital assets for your institution

True to its Name, a Verifiable Random Function is Characterized by Key Attributes:

  1. Verifiable:

The random number generated by a VRF can be verified by anyone through examination of the proof and confirmation of the hash output’s accuracy. While only the possessor of the VRF secret key can compute the hash, anyone holding the public key can authenticate the correctness of the hash.

  2. Random:

The output of a VRF is entirely unpredictable, following no discernible pattern and exhibiting uniform distribution to those unaware of the seed or private key. Every possible output is equally probable, with the randomness derived from a unique combination of the seed and private key.

  3. Function:

VRFs operate on a mathematical algorithm to produce both a random number and a verifiable proof of its authenticity. For a function to be deemed a VRF, the Random Number Generator (RNG) must keep the seed implicit to maintain unpredictability, while the proof must be explicit and computable by everyone, ensuring verifiability.

Secure and manage your digital assets with Liminal

Use Cases of VRFs

VRFs Find Applications in Various Domains, Including:

  1. Enhancements in Internet Security Systems: VRFs play a crucial role in improving the security of Internet systems. For instance, generators of TLS certificates, PKI infrastructures, or certificates for DNS encryption can utilize VRFs to establish secure communication means between parties. The certificates generated can be verified by all parties involved throughout the communication process.

  2. Generation of Connected Devices (e.g., IoT): VRFs contribute to the creation of secure connected devices, such as those in the Internet of Things (IoT). These devices can maintain secure connections through encrypted communications, with their entropy relying on VRF functions.

  3. Secure Development of New Cryptographic Schemes: VRFs are instrumental in generating secure cryptographic schemes, as seen in applications like Zero Knowledge Proofs (ZKP). VRFs can produce the necessary data sets for ZKPs, which can then be verified by the involved parties. This application is elaborated in the 1999 paper by Silvio Micali, Michael Rabin, and Salil Vadhan.

  4. Blockchain Security Scheme Generation: VRFs find utility in creating secure and verifiable transaction chains of custody within blockchain systems. They are also employed in blockchain oracles for verifying operations, as seen in Chainlink, and can be integrated into consensus protocols, as demonstrated in Algorand.