V

VDF Implementation in Go

Verifiable Delay Function (VDF) Implementation in Go

V

VDF Implementation in Go

Verifiable Delay Function (VDF) Implementation in Go


The problem VDF Implementation in Go solves

Combining the Nakamoto consensus with verifiable delay function (VDF) and verifiable random function (VRF)

  • The idea is to use VDF to simulate the PoW puzzle solving, and VRF to create puzzle difficulty variations for different validator nodes. Combining the VDF puzzle with the Nakamoto longest chain rule, validator nodes are effectively chosen at random as the block proposer for each block height. Compared to BFT based consensus which usually poses an upper limit on the number of validator nodes, this approach can achieve a high level of decentralization like Bitcoin, and yet does not burn nearly as much electricity for potentially the same level of security
  • Chainlink already has an implementation of VRF, this project implements a VDF library

Challenges I ran into

  • The current VDF implementation is available only in Rust(https://github.com/poanetwork/vdf), this project creates a wrapper in Go. One of the challanges was using CGo to interact with the underlying Rust library

Technologies used

Discussion