Oggi esaminiamo cosa sono le funzioni casuali verificabili e quali sono le loro caratteristiche principali. Seguici per conoscere tutte le informazioni relative al VRF che potresti essere interessato a conoscere. Una Verifiable Random Function o Verifiable Random Function, meglio conosciuta con il suo acronimo VRF, non è altro che una speciale funzione crittografica che permette di generare numeri pseudo-casuali che possono essere verificati formalmente, attraverso l'uso di tecniche crittografiche, da qualsiasi persona, sempre. La progettazione di queste funzioni è stata possibile grazie al lavoro di Silvio Micali, Michael Rabin e Salil Vadhan, che nel 1999 hanno presentato il loro lavoro «Funzioni casuali verificabili«. Il nome di Silvio Micali vi sarà sicuramente familiare, poiché è lui che ha creato la blockchain Algorand, che utilizza un sistema VRF nel suo meccanismo di consenso Proof of Stake (PoS).
Con questo, possiamo sostanzialmente definire un VRF come un generatore pseudo-casuale il cui output può essere verificato in ogni momento, risultando così nella capacità di controllare e fidarsi che i dati siano davvero affidabili e non siano stati manomessi in alcun modo. Questo è di estrema importanza nel mondo dell'informatica e della blockchain, perché garantisce che i numeri forniti siano sicuri, e che quindi il loro corretto utilizzo si tradurrà in un risultato sicuro.
L'utilità dei numeri pseudocasuali nell'informatica è particolarmente rilevante, e ancor di più quando si parla di crittografia, dove l'intera sicurezza del sistema si basa sul presupposto che i generatori pseudocasuali, siano essi hardware o software, sono sempre al sicuro. Infatti un PRNG (Pseudorandom Random Number Generator) o anche come vengono solitamente chiamati (RNG o Random Number Generator) che è stato manipolato in qualsiasi modo può essere facilmente violato, provocando gravi falle di sicurezza nei dispositivi che dipendono dallo stesso. Ad esempio, la PlayStation 3 di Sony potrebbe essere stata violata a causa di un difetto nel suo sistema di generazione di numeri pseudo-casuali, poiché questi numeri erano prevedibili.
Nella blockchain, dove la crittografia è la base della sicurezza della rete, la generazione e l'uso di algoritmi sicuri per i PRNG è vitale, e a questo punto i VRF vengono a completare un'esigenza che non è solo nella blockchain, ma anche negli smart contract e in altri funzioni non blockchain che possono trarre vantaggio da questa tecnologia.
Caratteristiche di un VRF
Come suggerisce il nome, una funzione casuale verificabile è definita da due caratteristiche principali:
- È verificabile. Ciò significa che chiunque può verificare che il numero casuale generato da un VRF sia valido. Tutto quello che devono fare è ispezionare la prova crittografica generata accanto al numero dato e con ciò saranno in grado di verificare la correttezza dell'output hash. D'altra parte solo il titolare della chiave segreta del VRF può calcolare l'hash, chiunque abbia la chiave pubblica può verificare la correttezza dell'hash.
- A caso. L'output di un VRF è un numero imprevedibile (distribuito statisticamente uniformemente nell'universo delle possibilità del sistema). Detta casualità viene generata combinando il seme e la chiave privata in un modo univoco, sebbene possano essere utilizzate anche altre fonti che alimentano l'entropia del sistema e verranno aggiunte al test per una verifica successiva.
Pertanto, i VRF cercano di fare in modo che gli algoritmi PRNG producano prove crittografiche che possano generare formalmente prove della loro veridicità e che queste prove consentano la loro successiva verifica da parte di coloro che consumano detti numeri.
Casi d'uso VRF
I VRF hanno un ampio numero di usi, tra i quali possiamo evidenziare:
- Miglioramenti nei sistemi di sicurezza Internet. Ad esempio, un generatore di certificati TLS, infrastrutture PKI o certificati per la crittografia DNS può utilizzare VRF per generare mezzi di comunicazione sicuri tra le parti, poiché tali certificati possono essere verificati durante tutto il processo da tutte le parti coinvolte.
- La generazione di dispositivi connessi (es. IoT) in grado di mantenere connessioni sicure attraverso comunicazioni crittografate la cui entropia si basa su funzioni VRF.
- Generazione sicura di nuovi schemi crittografici. Questo è il caso di Zero Knowledge Proofs (ZKP) che può utilizzare i VRF per generare i set di dati di cui ha bisogno e che possono quindi essere verificati dalle parti. Questo caso d'uso è ampiamente spiegato nell'articolo del 1999 di Silvio Micali, Michael Rabin e Salil Vadhan.
- Generazione di schemi di sicurezza blockchain. Ad esempio, i VRF possono essere utilizzati per generare catene di custodia delle transazioni sicure e verificabili. Allo stesso modo, possono essere utilizzati anche negli oracoli blockchain per verificare le operazioni (come in Chainlink) o anche nei protocolli di consenso (come in Algorand).