PoA 2.0: VeChain’s Verifiable Random Function Library in Golang

Before You Start

Github

What is VRF?

  • Unkeyed Hash Function: The hash is computed from the message directly. MD5/SHA256 for example.
  • Keyed Hash Function: A secret key is used, together with the message as inputs to be fed into the hash function. The sender and the receiver share the same secret key beforehand. HMAC for example.
  • VRF: Use a pair of public/private keys instead of sharing a common secret key.
  1. The sender computes a hash beta with original message alpha and his own secret key SK : beta = VRF_hash(SK, alpha)
  2. The sender computes a proof pi with original message alpha and his own secret key SK : pi = VRF_proof(SK, alpha)
  3. The receiver can verify the message and authenticity of the sender by verifying process: beta' = VRF_verify(PK, alpha, pi)
  4. If beta and beta' matches, then the message is trustworthy.

Where is VRF used in PoA 2.0?

Decide membership of the committee
Verify the membership of the committee

Join Us!

  • P256_SHA256_TAI
  • Secp256_K1_SHA256_TAI

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store