Verifying the Elliptic Curve Verifiable Random Function Secp256r1 on Blockchain
Randomness is a critical issue in peer-to-peer networks because random numbers allow us to fairly select the candidates, resolve the lotteries, select block producers, etc. The difficulty is that each participant wants to verify that the random number was randomly generated, this led to the invention of verifiable random functions (VRF). The VRF is a pseudo-random function that provides a solution to blockchain-based random number generation.
This paper focuses on the implementation of an elliptic curve-based VRF introduced by NIST called ECVRF-secp256r1 in Solidity. The algorithm verifies the randomness on-chain, tests the gas consumption at each stage, and compares it to the ECVRF-secp256k1.
Ethereum.org (2022), “ethereum.org,“. https://ethereum.org/en/what-is-ethereum/. [Accessed 14-03-2022].
Brown, D. R. (2010). Sec 2: Recommended elliptic curve domain parameters. Standars for Efficient Cryptography
Micali, S., Rabin, M., & Vadhan, S. (1999, October). Verifiable random functions. In 40th annual sym-posium on foundations of computer science (cat. No. 99CB37039) (pp. 120-130). IEEE.
S. G. L. R. J. V. Dimitrios Papadopoulos (2021): "Verifiable Random Funtions (VRFs),". https://datatracker.ietf.org/doc/pdf/draft-irtf-cfrg-vrf-06. [Accessed 05-01-2022]
Cao, M. (2021): “Announcing our Verifiable Random Function (VRF) library in Solidi-ty”. https://medium.com/witnet/announcing-our-verifiable-random-function-vrf-library-in-solidity-c847edf123f7. [Accessed 12-02-2022]
Chainlink Developers: “Introduction to chainlink VRF”. https://docs.chain.link/docs/chainlink-vrf/ [Accessed 19-04-2022]
How to Cite
Copyright (c) 2022 Nomana Ayesha Majeed, Alex Kemloh Kouyem
This work is licensed under a Creative Commons Attribution 4.0 International License.