verifiable random functions and verifiable delay functions
play

Verifiable Random Functions and Verifiable Delay Functions Caleb - PowerPoint PPT Presentation

Verifiable Random Functions and Verifiable Delay Functions Caleb Smith University of Virginia Why do these matter? Alternative consensus protocols Applications to public randomness generation Leader election Bitcoin Proof of Work


  1. Verifiable Random Functions 
 and 
 Verifiable Delay Functions Caleb Smith University of Virginia

  2. Why do these matter? Alternative consensus protocols Applications to public randomness generation

  3. Leader election Bitcoin Proof of Work style Everyone generates a random number, and the largest is the leader?

  4. Generate random numbers Assume we have a hash function, , and we have a public challenge, h 𝑦 𝑙𝑓𝑧 ← {0,1} π‘œ 𝑙𝑓𝑧 ← {0,1} π‘œ 𝑙𝑓𝑧 ← {0,1} π‘œ 𝑙𝑓𝑧 ← {0,1} π‘œ 𝑙𝑓𝑧 ← {0,1} π‘œ 𝑙𝑓𝑧 ← {0,1} π‘œ 𝑧 = h ( 𝑙𝑓𝑧 || 𝑦 ) 𝑧 = h ( 𝑙𝑓𝑧 || 𝑦 ) 𝑧 = h ( 𝑙𝑓𝑧 || 𝑦 ) 𝑧 = h ( 𝑙𝑓𝑧 || 𝑦 ) 𝑧 = h ( 𝑙𝑓𝑧 || 𝑦 ) 𝑧 = h ( 𝑙𝑓𝑧 || 𝑦 )

  5. Generate random numbers Assume we have a hash function, , and we have a public challenge, h 𝑦 ? 𝑙𝑓𝑧 ← {0,1} π‘œ 𝑙𝑓𝑧 ← {0,1} π‘œ 𝑙𝑓𝑧 ← {0,1} π‘œ 𝑙𝑓𝑧 ← {0,1} π‘œ 𝑙𝑓𝑧 ← {0,1} π‘œ 𝑙𝑓𝑧 ← {0,1} π‘œ 𝑧 = h ( 𝑙𝑓𝑧 || 𝑦 ) 𝑧 = h ( 𝑙𝑓𝑧 || 𝑦 ) 𝑧 = h ( 𝑙𝑓𝑧 || 𝑦 ) 𝑧 = h ( 𝑙𝑓𝑧 || 𝑦 ) 𝑧 = h ( 𝑙𝑓𝑧 || 𝑦 ) 𝑧 = h ( 𝑙𝑓𝑧 || 𝑦 )

  6. Verifiable Random Function Introduced by Micali, Rabin, and Vadhan in 1999 πΏπ‘“π‘§π»π‘“π‘œ ( 1 πœ‡ ) β†’ ( 𝑑𝑙 , π‘žπ‘™ ) 𝑄𝑠𝑝𝑀𝑓 ( 𝑑𝑙 , 𝑦 ) β†’ ( 𝑧 , 𝜌 ) Proof Pseudorandom π‘Šπ‘“π‘ π‘—π‘”π‘§ ( π‘žπ‘™ , 𝑦 , 𝑧 , 𝜌 ) β†’ {0,1} Security Property: 𝐺𝑝𝑠 π‘π‘šπ‘š 𝑦 , π‘π‘œ 𝑏𝑒𝑀𝑓𝑠𝑑𝑏𝑠𝑧 π‘‘π‘π‘œπ‘œπ‘π‘’ π‘”π‘—π‘œπ‘’ 𝑧 0 β‰  𝑧 1 𝑑𝑣𝑑 h 𝑒 h 𝑏𝑒 π‘Šπ‘“π‘ π‘—π‘”π‘§ ( π‘žπ‘™ , 𝑦 , 𝑧 0 , 𝜌 0 ) = 1 = π‘Šπ‘“π‘ π‘—π‘”π‘§ ( π‘žπ‘™ , 𝑦 , 𝑧 1 , 𝜌 1 )

  7. Generate random numbers Assume we have a hash function, , and we have a public challenge, h 𝑦 ? 𝑑𝑙 , π‘žπ‘™ ← πΏπ‘“π‘§π»π‘“π‘œ 𝑑𝑙 , π‘žπ‘™ ← πΏπ‘“π‘§π»π‘“π‘œ 𝑑𝑙 , π‘žπ‘™ ← πΏπ‘“π‘§π»π‘“π‘œ 𝑑𝑙 , π‘žπ‘™ ← πΏπ‘“π‘§π»π‘“π‘œ 𝑑𝑙 , π‘žπ‘™ ← πΏπ‘“π‘§π»π‘“π‘œ 𝑑𝑙 , π‘žπ‘™ ← πΏπ‘“π‘§π»π‘“π‘œ 𝑧 , 𝜌 = 𝑄 𝑠𝑝𝑀𝑓 ( 𝑑𝑙 , 𝑦 ) 𝑧 , 𝜌 = 𝑄 𝑠𝑝𝑀𝑓 ( 𝑑𝑙 , 𝑦 ) 𝑧 , 𝜌 = 𝑄 𝑠𝑝𝑀𝑓 ( 𝑑𝑙 , 𝑦 ) 𝑧 , 𝜌 = 𝑄 𝑠𝑝𝑀𝑓 ( 𝑑𝑙 , 𝑦 ) 𝑧 , 𝜌 = 𝑄 𝑠𝑝𝑀𝑓 ( 𝑑𝑙 , 𝑦 ) 𝑧 , 𝜌 = 𝑄 𝑠𝑝𝑀𝑓 ( 𝑑𝑙 , 𝑦 )

  8. Verifiable Random Function Assumptions RSA + Random Oracle [Micali, Rabin, and Vadhan 1999] Decisional Bilinear Diffie Hellman Inversion [Dodis and Yampolski 2004] Decisional Diffie Hellman + Random Oracle [Papadopoulos et al 2017]

  9. Verifiable Delay Functions Introduced by Boneh, Bonneau, BΓΌnz, and Fisch in 2018 Delay – Takes a minimum amount of parallel time to compute Function – Unique outputs Verifiable – Third parties can verify that it was evaluated correctly

  10. Verifiable Delay Function Alice wants to require Bob to spend solving a challenge π‘ˆ π‘žπ‘π‘ π‘π‘šπ‘šπ‘“π‘š 𝑒𝑗𝑛𝑓 Unique solution Takes parallel time, π‘ˆ 10

  11. Verifiable Delay Function Syntax A function that takes a long time to compute, has unique outputs, and can be verified quickly π‘‡π‘“π‘’π‘£π‘ž ( πœ‡ , π‘ˆ ) β†’ 𝑄𝑄 = ( 𝑓𝑙 , 𝑀𝑙 ) , specifies input and output space πΉπ‘€π‘π‘š ( 𝑓𝑙 , 𝑦 ) β†’ ( 𝑧 , 𝜌 ) , runs in at least π‘žπ‘π‘ π‘π‘šπ‘šπ‘“π‘š 𝑒𝑗𝑛𝑓 π‘ˆ Proof from the Evaluator to help the Verifier , runs in time π‘Šπ‘“π‘ π‘—π‘”π‘§ ( 𝑀𝑙 , 𝑦 , 𝑧 , 𝜌 ) β†’ { π΅π‘‘π‘‘π‘“π‘žπ‘’ , π‘†π‘“π‘˜π‘“π‘‘π‘’ } 𝑒 β‰ͺ π‘ˆ 11

  12. Verifiable Delay Function Properties Sequentiality – Eval( 𝑦 ) cannot be solved in less than , π‘žπ‘π‘ π‘π‘šπ‘šπ‘“π‘š 𝑒𝑗𝑛𝑓 π‘ˆ with π‘žπ‘π‘šπ‘§ ( π‘ˆ ) number of processors Uniqueness – If the adversary runs in time 𝑃 ( π‘žπ‘π‘šπ‘§ ( π‘ˆ , πœ‡ )) , then they are unable to find a 𝑧 β‰  πΉπ‘€π‘π‘š ( 𝑦 ) that passes verification 12

  13. Application - Randomness Beacon Generate a stream of public random values 𝑔 ( 𝑠 1 , 𝑠 2 , …, 𝑠 π‘œ ) = r 1 r 2 r 3 r 4 r 5 r 6 … r n 𝑠 1 βŠ• 𝑠 2 βŠ• … βŠ• 𝑠 π‘œ Can submit values from 1:00pm to 1:10pm 13

  14. Application - Randomness Beacon Generate a stream of public random values h ( 𝑠 1 , 𝑠 2 , …, 𝑠 π‘œ ) = 𝑦 r 1 r 2 r 3 r 4 r 5 r 6 … r n π‘ŠπΈπΊ . πΉπ‘€π‘π‘š ( 𝑦 ) β†’ ( 𝑧 , 𝜌 ) Can submit values from 1:00pm to 1:10pm 𝐹𝑦𝑒𝑠𝑏𝑑𝑒 ( 𝑧 ) β†’ 𝑀 14

  15. Application – Proof of Space and Time Cohen and Pietrzak from Chia Change the assumption from majority of computing power is honest to 2/3 of committed disk space is honest Proofs of Space will populate some disk space with some function and 𝑔 given a challenge, will find their β€œbest” solution almost instantly

  16. Why not just chain Proofs of Space? The next Proof of Space challenge is the hash of the previous Proof of Space solution and proof There are attacks where an adversary can β€œtweak” elements in their control to bias the next challenge This does not occur in Bitcoin because of the cost to split resources

  17. Adding Verifiable Delay Functions Take the solution and proof of the Proof of Space, ( 𝑧 , 𝜌 𝑄𝑝𝑇 ) , and 𝑦 = h ( 𝑧 | 𝜌 𝑄𝑝𝑇 ) , π‘ŠπΈπΊ . πΉπ‘€π‘π‘š ( 𝑦 ) β†’ ( 𝑧 , 𝜌 π‘ŠπΈπΊ ) compute 𝑔 ( 𝑧 ) Then determines the next Proof of Space challenge We can now argue that an adversary cannot determine how to β€œtweak” anything to bias the next challenge

  18. Verifiable Delay Function Assumptions Repeated squaring in group of unknown order is inherently sequential Let be an RSA modulus where nobody knows the factorization 𝑂 𝑦 2 π‘ˆ 𝑛𝑝𝑒 𝑂 Conjectured to take sequential squarings π‘ˆ

  19. Questions? 19

Recommend


More recommend