Définition
VRF : définition
Aussi appelé : Verifiable Random Function
Une VRF, ou Verifiable Random Function, est une fonction cryptographique qui produit un nombre aléatoire accompagné d'une preuve. Toute personne peut vérifier que ce nombre a été généré correctement et n'a pas été choisi ou manipulé par celui qui l'a produit.
Thème : Oracles et interopérabilité
Une blockchain est déterministe : chaque nœud doit obtenir exactement le même résultat, ce qui rend très difficile la génération d'un aléa fiable directement dans un smart contract. Utiliser des données comme l'horodatage ou le hash du bloc est risqué, car les producteurs de blocs peuvent les influencer. La VRF résout ce problème : à partir d'une clé secrète et d'une entrée, elle calcule une sortie imprévisible et une preuve que la sortie correspond bien à cette clé et à cette entrée.
Dans la pratique, un contrat envoie une demande, un oracle calcule la valeur aléatoire avec sa clé VRF hors chaîne, puis renvoie le résultat et la preuve. Le contrat vérifie la preuve on-chain avant d'utiliser le nombre. Les VRF servent aux tirages au sort, à l'attribution d'attributs de NFT, aux jeux, et dans certains protocoles de consensus pour sélectionner les producteurs de blocs de façon imprévisible.
Un exemple concret
Imaginons une loterie on-chain qui doit désigner un gagnant parmi 1 000 tickets. Le contrat demande un nombre aléatoire à un service VRF. Le résultat arrive avec sa preuve, le contrat la vérifie, puis calcule le ticket gagnant. Personne, pas même l'organisateur, n'a pu choisir ce résultat à l'avance.
Les risques à connaître
Une VRF garantit que le résultat n'est pas falsifié, mais l'opérateur peut refuser de répondre s'il n'aime pas le résultat, ou subir une panne. Les contrats doivent éviter qu'un utilisateur puisse annuler sa participation après avoir vu l'aléa. La sécurité dépend aussi de la protection de la clé secrète.
Questions fréquentes sur VRF
Pourquoi ne peut-on pas générer un nombre aléatoire directement dans un smart contract ?
Parce que tous les nœuds doivent obtenir le même résultat et que les données disponibles, comme le hash du bloc, peuvent être influencées par les producteurs de blocs.
À quoi sert une VRF dans les NFT ?
Elle permet d'attribuer des caractéristiques ou des raretés de façon équitable, avec une preuve que ni le créateur ni l'acheteur n'ont pu manipuler le tirage.