Jialiang Fan

In this essay I will introduce you to the Verifiable Delay Function, a cryptographic primitive. In my previously work I use VDF in my private vote protocol .

Imagine you're participating in an online game where everyone must solve a puzzle that takes exactly one hour to complete. No matter how powerful your computer is or how many people help you, you can't solve it any faster. Once you've finished, anyone can quickly check that you've solved it correctly without spending an hour themselves. This is the basic idea behind Verifiable Delay Functions (VDFs).

VDFs are special mathematical functions that take a set amount of time to compute, and their results can be verified instantly. They are crucial in ensuring fairness and security in various digital systems, especially in blockchain technology and cryptocurrencies.

What Is a Verifiable Delay Function?

Verifiable Delay Function is like a digital time capsule. It requires a certain amount of time to "open," no matter how much computing power you have, but once opened, anyone can immediately verify its contents.

Key Characteristics:

  1. Guaranteed Delay: The function takes a predictable amount of time to compute, which can't be shortened by using faster computers or multiple processors.
  2. Easy Verification: Once the computation is done, checking the result is quick and straightforward.
  3. Unique Output: The function always produces the same output for a given input, ensuring consistency.

How Does VDF Work?

Let's delve into the mechanics of VDFs using mathematics. Verifiable Delay Function is a cryptographic function with three algorithms: Setup, Eval , and Verify. Prover runs eval to proof it indeed perform a time-consuming computation and get result and proof . Verifier use Verify to verify if prover runs Eval .

Basic structure

Setup algorithm is to generate public parameters for the following algorithm. Setup takes a security parameter  $\lambda$ and a Time Parameter $\tau$ and outputs a pair of public parameters  $pp = (ek,vk)$ where  $ek$  stands for evaluation key and $vk$ stands for verification key.