Verifiable Random Function
   HOME

TheInfoList



OR:

In
cryptography Cryptography, or cryptology (from grc, , translit=kryptós "hidden, secret"; and ''graphein'', "to write", or ''-logia'', "study", respectively), is the practice and study of techniques for secure communication in the presence of adver ...
, a verifiable random function (VRF) is a public-key
pseudorandom function In cryptography, a pseudorandom function family, abbreviated PRF, is a collection of efficiently-computable functions which emulate a random oracle in the following way: no efficient algorithm can distinguish (with significant advantage) betwee ...
that provides proofs that its outputs were calculated correctly. The owner of the secret key can compute the function value as well as an associated proof for any input value. Everyone else, using the proof and the associated public key (or ''verification key''), can check that this value was indeed calculated correctly, yet this information cannot be used to find the secret key. A verifiable random function can be viewed as a public-key analogue of a keyed cryptographic hash and as a
cryptographic commitment A commitment scheme is a cryptographic primitive that allows one to commit to a chosen value (or chosen statement) while keeping it hidden to others, with the ability to reveal the committed value later.Oded Goldreich (2001). Foundations of Crypt ...
to an exponentially large number of seemingly random bits. The concept of a verifiable random function is closely related to that of a verifiable unpredictable function (VUF), whose outputs are hard to predict but do not necessarily seem random. The concept of a VRF was introduced by Micali,
Rabin Rabin is a List of Jewish surnames, Hebrew surname. It originates from the Hebrew word ''rav'' meaning Rabbi, or from the name of the specific Rabbi Abin I, Abin. The most well known bearer of the name was Yitzhak Rabin, prime minister of Israel ...
, and Vadhan in 1999. Since then, verifiable random functions have found widespread use in cryptocurrencies, as well as in proposals for protocol design and cybersecurity.


Constructions

In 1999, Micali, Rabin, and Vadhan introduced the concept of a VRF and proposed the first such one. The original construction was rather inefficient: it first produces a ''verifiable unpredictable function'', then uses a hard-core bit to transform it into a VRF; moreover, the inputs have to be mapped to primes in a complicated manner: namely, by using a prime sequence generator that generates primes with overwhelming probability using a probabilistic primality test. The verifiable unpredictable function thus proposed, which is provably secure if a variant of the RSA problem is hard, is defined as follows: The public key ''PK'' is (m, r, Q, coins), where ''m'' is the product of two random primes, ''r'' is a number randomly selected from \mathbb_r^*, ''coins'' is a randomly selected set of bits, and ''Q'' a function selected randomly from all polynomials of degree 2k^2 - 1 over the field GF(2^k). The secret key is (PK, \phi(m)). Given an input ''x'' and a secret key ''SK'', the VUF uses the prime sequence generator to pick a corresponding prime p_x (the generator requires auxiliary inputs ''Q'' and ''coins''), and then computes and outputs r^ \pmod, which is easily done by knowledge of \phi(m). In 2005, an efficient and practical verifiable random function was proposed by Dodis and Yampolskiy. When the input x is from a small domain (the authors then extend it to a larger domain), the function can be defined as follows: : F_(x) = e(g, g)^ \quad\mbox\quad p_(x) = g^, where ''e''(·,·) is a bilinear map. To verify whether F_(x) was computed correctly or not, one can check if e(g^x PK, p_(x))=e(g,g) and e(g, p_(x))=F_(x). To extend this to a larger domain, the authors use a tree construction and a
universal hash function In mathematics and computing, universal hashing (in a randomized algorithm or data structure) refers to selecting a hash function at random from a family of hash functions with a certain mathematical property (see definition below). This guarantees ...
. This is secure if it is hard to break the "q-Diffie-Helman inversion assumption", which states that no algorithm given (g, g^x, \dots, g^) can compute g^, and the " q-decisional bilinear Diffie-Helman inversion assumption", which states that it is impossible for an efficient algorithm given (g, g^, \ldots, g^, R) as input to distinguish R=e(g,g)^ from random, in the group \mathbb. In 2015, Hofheinz and Jager constructed a VRF which is provably secure given any member of the "(n − 1)-linear assumption family", which includes the
decision linear assumption The Decision Linear (DLIN) assumption is a computational hardness assumption used in elliptic curve cryptography. In particular, the DLIN assumption is useful in settings where the decisional Diffie–Hellman assumption does not hold (as is oft ...
. This is the first such VRF constructed that does not depend on a "Q-type complexity assumption". In 2019, Bitansky showed that VRFs exist if non-interactive witness-indistinguishable proofs (that is, weaker versions of non-interactive zero-knowledge proofs for NP problems that only hide the witness that the prover uses), non-interactive cryptographic commitments, and single-key constrained pseudorandom functions (that is, pseudorandom functions that only allow the user to evaluate the function with a preset constrained subset of possible inputs) also do. In 2020, Esgin et al. proposed a post-quantum secure VRF based on
lattice-based cryptography Lattice-based cryptography is the generic term for constructions of cryptographic primitives that involve lattices, either in the construction itself or in the security proof. Lattice-based constructions are currently important candidates for pos ...
.


Uses and applications

VRFs provide deterministic pre-commitments for low entropy inputs which must be resistant to brute-force pre-image attacks. VRFs can be used for defense against offline enumeration attacks (such as dictionary attacks) on data stored in hash-based data structures.


In protocol design

VRFs have been used to make: * Resettable
zero-knowledge proofs In cryptography, a zero-knowledge proof or zero-knowledge protocol is a method by which one party (the prover) can prove to another party (the verifier) that a given statement is true while the prover avoids conveying any additional information a ...
(i.e. one that remains zero-knowledge even if a malicious verifier is allowed to ''reset'' the honest prover and query it again) with three rounds in the bare model * Non-interactive lottery systems * Verifiable transaction escrow schemes *Updatable zero-knowledge databases *E-cash VRFs can also be used to implement random oracles.


In Internet security

DNSSEC is a system that prevents attackers from tampering with
Domain Name System The Domain Name System (DNS) is a hierarchical and distributed naming system for computers, services, and other resources in the Internet or other Internet Protocol (IP) networks. It associates various information with domain names assigned to ...
messages, but it also suffers from the vulnerability of zone enumeration. The proposed NSEC5 system, which uses VRFs, provably prevents this type of attack.


In cryptocurrency

Cardano and
Polkadot Red polka dots on a yellow background Girl wearing polka dot dress Polish ceramics German ceramics Polka dot is a pattern consisting of an array of large filled circles of the same size. Polka dots are commonly seen on children's clothing ...
implement VRFs for block production. The Internet Computer cryptocurrency uses a VRF to produce a decentralized random beacon whose output is unpredictable to anyone until they become available to everyone. More precisely, its protocol allows clients to agree on a VRF (i.e. a commitment to a deterministic pseudorandom sequence) and to produce one new output thereof every round by using threshold signatures and
distributed key generation Distributed key generation (DKG) is a cryptographic process in which multiple parties contribute to the calculation of a shared public and private key set. Unlike most public key encryption models, distributed key generation does not rely on Trus ...
.
Algorand Algorand is a proof-of-stake blockchain cryptocurrency protocol. Algorand's native cryptocurrency is called ALGO. History Algorand was founded in 2017 by Silvio Micali, a professor at MIT. Algorand is composed of a company and a foundation. Th ...
uses VRFs to perform cryptographic sortition. In this platform, every block produces a new random selection seed, and a user secretly checks whether they were selected to participate in the consensus protocol by evaluating a VRF with their secret participation key and the selection seed. (This also produces a proof, which the user can send to anyone to show that they have been selected to participate.) Thusly, accounts are selected to propose blocks for a given round. In this manner, VRFs prevent users from gaining staking advantages by registering multiple accounts. The particular VRF that Algorand uses is based on elliptic-curve cryptography, specifically Curve25519; proposed by Sharon Goldberg, Moni Naor, Dimitris Papadopoulos, Leonid Reyzin, and Jan Včelák, the function is currently undergoing standardization as an
IETF Internet Draft An Internet Draft (I-D) is a document published by the Internet Engineering Task Force (IETF) containing preliminary technical specifications, results of networking-related research, or other technical information. Often, Internet Drafts are int ...
. Algorand's own implementation of this function has been open-source since October 2018. VRFs based on elliptic curve cryptography have been implemented in the programming language
Solidity Solidity is an object-oriented programming language for implementing smart contracts on various blockchain platforms, most notably, Ethereum. It was developed by Christian Reitwiessner, Alex Beregszaszi, and several former Ethereum core contri ...
. In May 2020, Chainlink announced that it launched Chainlink VRF, a service that uses verifiable random functions to generate verifiable randomness on-chain. To use Chainlink VRF, a
smart contract A smart contract is a computer program or a transaction protocol that is intended to automatically execute, control or document events and actions according to the terms of a contract or an agreement. The objectives of smart contracts are the re ...
supplies a seed (which should be unpredictable to the oracles to whom it is provided), and the seed in turn is used to generate a random number that is sent back to the contract; this is published on-chain along with a proof and verified using the oracle's public key and the application's seed. Each oracle, when generating randomness, uses its own secret key. In July 2021,
Harmony In music, harmony is the process by which individual sounds are joined together or composed into whole units or compositions. Often, the term harmony refers to simultaneously occurring frequencies, pitches ( tones, notes), or chords. However ...
, a cryptocurrency project that bridges between blockchains, and Oraichain, a cryptocurrency project involving
artificial intelligence Artificial intelligence (AI) is intelligence—perceiving, synthesizing, and inferring information—demonstrated by machines, as opposed to intelligence displayed by animals and humans. Example tasks in which this is done include speech re ...
, announced that they had introduced VRFs.{{Cite web, last=Oraichain, date=16 July 2021, title=Introducing VRF — Verifiable Random Function on Oraichain Mainnet, url=https://blog.orai.io/introducing-vrf-verifiable-random-function-on-oraichain-mainnet-1f51ffa26eb6, url-status=live, access-date=4 September 2021, website=Medium, language=en In February 2022
Switchboard
a decentralized
oracle An oracle is a person or agency considered to provide wise and insightful counsel or prophetic predictions, most notably including precognition of the future, inspired by deities. As such, it is a form of divination. Description The word '' ...
protocol, announced the very first verifiable random function (VRF) on the Solana blockchain. The Switchboard VRF is inspired and modelled after
Algorand Algorand is a proof-of-stake blockchain cryptocurrency protocol. Algorand's native cryptocurrency is called ALGO. History Algorand was founded in 2017 by Silvio Micali, a professor at MIT. Algorand is composed of a company and a foundation. Th ...
's VRF.


References

Cryptographic algorithms Cryptographic primitives Pseudorandomness