0Pricing
Cryptology Academy · Lezione

Verifiable Random Functions nel consenso

Comprenda le VRF e come consentano di ottenere casualità imprevedibile ma verificabile nell'elezione del leader (Algorand, Cardano).

Verifiable Random Functions nel consenso è una lezione Cryptology Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Cryptology Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cryptology Academy include 4 lezioni in totale.

La necessità della casualità verificabile

I protocolli di consenso richiedono casualità per l'elezione dei leader, la selezione dei comitati e l'assegnazione degli shard. La casualità deve soddisfare tre proprietà: imprevedibilità (nessuno può prevedere l'output prima che venga rivelato), assenza di distorsione (nessun partecipante può manipolare l'output a proprio vantaggio) e verificabilità pubblica (chiunque può verificare che l'output sia corretto senza fidarsi del generatore). Gli approcci ingenui falliscono: il numero casuale di un singolo nodo è manipolabile e gli schemi commit-reveal consentono distorsioni da parte dell'ultimo rivelatore. Le Verifiable Random Functions (VRF) soddisfano tutti e tre i requisiti.

Definizione formale di VRF

Una Verifiable Random Function (VRF), introdotta da Micali, Rabin e Vadhan nel 1999, è una funzione pseudocasuale che fornisce una prova di correttezza. Una VRF dispone di tre algoritmi: KeyGen genera una coppia di chiavi (SK, PK); Prove(SK, alpha) produce (beta, pi), dove beta è l'output e pi è una prova; Verify(PK, alpha, beta, pi) restituisce valid o invalid. L'output beta è indistinguibile da un valore casuale per chiunque non conosca SK (pseudocasualità della VRF), e la prova pi non è falsificabile (unicità della VRF). La dimensione della prova è O(1), cioè costante indipendentemente dall'input.

ECVRF: VRF su curve ellittiche

La costruzione VRF più utilizzata è ECVRF (IETF RFC 9381), basata sulla difficoltà del problema del logaritmo discreto su curve ellittiche. Data una chiave privata x e un input alpha, il prover calcola H = hash-to-curve(PK, alpha) (mappando alpha in un punto della curva), quindi gamma = x * H (moltiplicazione scalare). L'output VRF beta = keccak(gamma). La prova pi usa un argomento a conoscenza zero simile a Schnorr: il prover si impegna su un k casuale, calcola la challenge c = hash(H, gamma, k*G, k*H), la risposta s = k - c*x e restituisce pi = (gamma, c, s). La verifica controlla le equazioni di Schnorr e ricalcola beta.

VRF in Algorand

Algorand (Silvio Micali et al., 2017) ha introdotto per primo l'uso delle VRF nel consenso blockchain. In ogni round, ogni validatore valuta privatamente VRF(SK, round || seed) per ottenere un output casuale. L'output viene confrontato con una soglia: se VRF_output < stake_fraction * threshold, il validatore viene selezionato come membro del comitato o propositore del blocco. Solo il validatore conosce la propria selezione finché non trasmette il blocco/voto insieme alla prova VRF. Questa autoselezione crittografica elimina la necessità di un'elezione pubblica del leader, rendendo Algorand resistente agli attacchi denial-of-service mirati contro i leader imminenti noti.

VRF in Cardano Ouroboros

Ouroboros Praos di Cardano (la versione attualmente distribuita) utilizza le VRF per l'elezione dei leader degli slot. A ogni epoca, dalla blockchain viene derivato un nuovo seed casuale. Ogni operatore di stake pool (SPO) valuta VRF(SK, slot || epoch_seed) per ogni slot dell'epoca. Se l'output è inferiore a una soglia proporzionale alla propria quota, l'operatore diventa il leader dello slot e può produrre un blocco. La prova VRF è inclusa nell'intestazione del blocco, consentendo a chiunque di verificare che l'SPO sia stato eletto legittimamente. Questo offre a Cardano una sicurezza dimostrabile contro avversari adattivi che apprendono il calendario dei leader a metà epoca.

VRF vs RANDAO: compromessi

Ethereum usa RANDAO (firme BLS accumulate) anziché le VRF per il proprio beacon di casualità. RANDAO è più semplice — non richiede primitive crittografiche aggiuntive oltre a BLS — ma è vulnerabile al bias dell'ultimo rivelatore: un propositore di blocco che può prevedere che il proprio contributo a RANDAO produrrà un risultato sfavorevole può trattenere il blocco (al costo della ricompensa del blocco). L'elezione basata su VRF nasconde chi è stato eletto finché non si rivela, eliminando completamente questa possibilità di attacco. Il compromesso è il seguente: le VRF aggiungono complessità crittografica (hash-to-curve, generazione delle prove), mentre RANDAO riutilizza l'infrastruttura BLS esistente.

Chainlink VRF: casualità off-chain

Chainlink VRF fornisce casualità verificabile come servizio agli smart contract. Un contratto consumer richiede casualità pagando token LINK. Un nodo oracle Chainlink possiede una coppia di chiavi VRF. Il nodo valuta ECVRF(SK, seed), dove il seed è derivato dall'hash del blocco e da un nonce fornito dall'utente, quindi invia (beta, pi) on-chain. Il contratto coordinatore VRF verifica la prova prima di inoltrare l'output casuale al consumer. In questo modo gli smart contract possono accedere a una casualità resistente alla manipolazione senza richiedere alla catena di implementare un beacon VRF nativo — una soluzione utile per il minting di NFT, le lotterie e i giochi.

VXEdDSA e Signal Protocol

Signal Protocol usa VXEdDSA (Verifiable X25519 EdDSA), una costruzione VRF su Curve25519. Quando un mittente genera una firma per una prechiave monouso, la VRF viene utilizzata per produrre un nonce deterministico ma imprevedibile a partire dal messaggio e dalla chiave del mittente. Questo impedisce il riutilizzo del nonce (che comprometterebbe la sicurezza di EdDSA), mantenendo al contempo verificabili le firme. La prova VRF consente al destinatario di verificare che il nonce sia stato derivato correttamente, impedendo al mittente di scegliere un nonce malevolo che potrebbe consentire attacchi di recupero della chiave. VXEdDSA dimostra che le VRF sono uno strumento crittografico generale, non limitato al consenso.

Funzioni di ritardo verificabili vs VRF

Le funzioni di ritardo verificabili (VDF) vengono talvolta confuse con le VRF. Una VDF richiede un calcolo sequenziale di almeno T passaggi (proprietà di time-lock) e produce un output con una prova breve di correttezza. Le VDF vengono utilizzate per mitigare il bias dell'ultimo rivelatore in RANDAO: il livello VDF pianificato per Ethereum farebbe sì che ogni tentativo di manipolazione richiedesse l'esecuzione anticipata di una VDF, che richiede più tempo della finestra utile per l'attacco. Le VRF forniscono una valutazione privata istantanea; le VDF forniscono una valutazione pubblica lenta. Sono complementari: le VDF impediscono il bias dell'ultimo rivelatore, mentre le VRF impediscono la previsione del leader.

Modello di sicurezza: avversari adattivi e statici

La selezione tramite VRF offre un importante miglioramento della sicurezza contro gli avversari adattivi. In PBFT e Tendermint, l'identità del leader è nota in anticipo (calendario round-robin), consentendo a un avversario di eseguire un attacco DDoS contro il leader successivo prima che proponga il blocco. La selezione basata su VRF mantiene segreta l'identità del leader finché il blocco non viene trasmesso — a quel punto il blocco è già stato proposto, quindi un attacco DDoS arriverebbe troppo tardi. Questa proprietà è chiamata sicurezza adattiva o elezione imprevedibile del leader. La proprietà crittografica che la rende possibile è che l'output VRF appare pseudocasuale a chiunque non disponga della chiave privata.

Note sull'implementazione delle VRF

Implementare correttamente le VRF richiede attenzione a diversi aspetti. Hash-to-curve deve utilizzare un algoritmo uniforme e a tempo costante (IETF RFC 9380 definisce metodi standardizzati per prevenire fughe di informazioni temporali). Il nonce k della VRF nella prova deve essere derivato deterministicamente da (SK, alpha) usando RFC 6979 — riutilizzare k o usare un k casuale debole espone la chiave segreta (la stessa vulnerabilità del riutilizzo del nonce in ECDSA). La dimensione della prova per ECVRF-P256-SHA256-TAI è di 80 byte; per ECVRF-ED25519-SHA512-ELL2 è di 80 byte — entrambe sono adatte all'inclusione on-chain. La proprietà di unicità delle VRF garantisce che non esistano due prove valide per la stessa coppia (SK, alpha).

Quiz sulla selezione imprevedibile con VRF

Perché l'elezione del leader basata su VRF offre una sicurezza maggiore rispetto alla pianificazione round-robin dei leader?

Riepilogo delle VRF nel consenso

Le VRF producono output pseudocasuali con prove crittografiche di correttezza, garantendo imprevedibilità, assenza di bias e verificabilità pubblica. ECVRF (RFC 9381) è la costruzione standard su curve ellittiche. Algorand usa l'autoselezione crittografica tramite VRF per resistere agli avversari adattivi. Cardano Ouroboros Praos usa le VRF per l'elezione della leadership di ogni slot. Chainlink VRF fornisce casualità verificabile agli smart contract. Le VRF completano le VDF (che affrontano il bias dell'ultimo rivelatore) e si distinguono da RANDAO (che usa firme BLS accumulate ed è soggetto alla nota vulnerabilità dell'ultimo rivelatore).

Domande Frequenti

La lezione «Verifiable Random Functions nel consenso» è gratuita?

Sì — il testo completo di «Verifiable Random Functions nel consenso» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Cryptology Academy, passa a CoddyKit PRO. Il corso Cryptology Academy include 4 lezioni in totale.

Cosa imparerò in «Verifiable Random Functions nel consenso»?

Comprenda le VRF e come consentano di ottenere casualità imprevedibile ma verificabile nell'elezione del leader (Algorand, Cardano). Eserciti Cryptology Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Cryptology Academy?

Non è richiesta alcuna esperienza precedente. Cryptology Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «Verifiable Random Functions nel consenso»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Cryptology Academy?

Sì. Ogni lezione Cryptology Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Meccanismi crittografici del Proof-of-Stake
  2. Protocolli BFT: PBFT e Tendermint
  3. Verifiable Random Functions nel consenso
  4. Firme BLS e schemi di firma aggregata
← Torna a Cryptology Academy