Cryptology Academy · Lección

Funciones aleatorias verificables en el consenso

Comprenda las VRF y cómo permiten obtener aleatoriedad impredecible pero verificable en la elección de líderes (Algorand, Cardano).

Lección 3 de 413 pasos

Funciones aleatorias verificables en el consenso es una lección gratuita de Cryptology Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Cryptology Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Cryptology Academy incluye 4 lecciones en total.

La necesidad de aleatoriedad verificable

Los protocolos de consenso requieren aleatoriedad para la elección del líder, la selección de comités y la asignación de shards. La aleatoriedad debe cumplir tres propiedades: impredecibilidad (nadie puede predecir el resultado antes de que se revele), imposibilidad de sesgo (ningún participante puede manipular el resultado en su beneficio) y verificabilidad pública (cualquiera puede verificar que el resultado es correcto sin confiar en quien lo genera). Los enfoques ingenuos fallan: el número aleatorio de un único nodo se puede manipular y los esquemas de commit-reveal permiten que el último en revelar introduzca un sesgo. Las funciones aleatorias verificables (VRF) resuelven los tres requisitos.

Definición formal de VRF

Una función aleatoria verificable (VRF), introducida por Micali, Rabin y Vadhan en 1999, es una función seudoaleatoria que proporciona una prueba de corrección. Una VRF tiene tres algoritmos: KeyGen genera un par de claves (SK, PK); Prove(SK, alpha) produce (beta, pi), donde beta es el resultado y pi es una prueba; y Verify(PK, alpha, beta, pi) devuelve valid o invalid. El resultado beta es indistinguible de uno aleatorio para cualquiera que no conozca SK (seudoaleatoriedad de VRF), y la prueba pi no se puede falsificar (unicidad de VRF). El tamaño de la prueba es O(1), constante independientemente de la entrada.

ECVRF: VRF sobre curvas elípticas

La construcción de VRF más ampliamente implementada es ECVRF (IETF RFC 9381), basada en la dificultad del logaritmo discreto sobre curvas elípticas. Dada una clave privada x y una entrada alpha, el demostrador calcula H = hash-to-curve(PK, alpha) (mapeando alpha a un punto de la curva) y después gamma = x * H (multiplicación escalar). El resultado de la VRF es beta = keccak(gamma). La prueba pi utiliza un argumento de conocimiento cero similar a Schnorr: el demostrador se compromete con un k aleatorio, calcula el desafío c = hash(H, gamma, k*G, k*H), obtiene la respuesta s = k - c*x y produce pi = (gamma, c, s). La verificación comprueba las ecuaciones de Schnorr y vuelve a calcular beta.

VRF en Algorand

Algorand (Silvio Micali et al., 2017) fue pionero en el uso de VRF en el consenso de cadenas de bloques. En cada ronda, cada validador evalúa de forma privada VRF(SK, round || seed) para obtener una salida aleatoria. La salida se compara con un umbral: si VRF_output < stake_fraction * threshold, el validador se selecciona como miembro del comité o proponente del bloque. Solo el validador conoce su selección hasta que difunde su bloque o voto junto con la prueba VRF. Esta autoselección criptográfica elimina la necesidad de una elección pública del líder, lo que hace que Algorand sea resistente a ataques de denegación de servicio dirigidos contra los próximos líderes conocidos.

VRF en Cardano Ouroboros

Ouroboros Praos de Cardano (la versión actualmente implementada) utiliza VRF para la elección del liderazgo de las ranuras. En cada época, se obtiene una nueva semilla aleatoria a partir de la cadena de bloques. Cada operador de un stake pool (SPO) evalúa VRF(SK, slot || epoch_seed) para cada ranura de la época. Si la salida queda por debajo de un umbral proporcional a su participación, se convierte en el líder de la ranura y puede producir un bloque. La prueba VRF se incluye en la cabecera del bloque, lo que permite a cualquiera verificar que el SPO fue elegido legítimamente. Esto proporciona a Cardano seguridad demostrable frente a adversarios adaptativos que descubren el calendario de líderes a mitad de la época.

VRF frente a RANDAO: ventajas y desventajas

Ethereum utiliza RANDAO (firmas BLS acumuladas) en lugar de VRF para su baliza de aleatoriedad. RANDAO es más sencillo —no requiere ninguna primitiva criptográfica adicional aparte de BLS—, pero es susceptible al sesgo del último revelador: un proponente de bloque que puede predecir que su contribución a RANDAO produciría un resultado desfavorable puede no publicar su bloque (a costa de la recompensa del bloque). La elección basada en VRF oculta quién ha sido elegido hasta que se da a conocer, eliminando por completo esta posibilidad de ataque. La contrapartida es que VRF añade complejidad criptográfica (hash-to-curve y generación de pruebas), mientras que RANDAO reutiliza la infraestructura BLS existente.

Chainlink VRF: aleatoriedad fuera de la cadena

Chainlink VRF proporciona aleatoriedad verificable como servicio para contratos inteligentes. Un contrato consumidor solicita aleatoriedad pagando tokens LINK. Un nodo de oráculo de Chainlink posee un par de claves VRF. El nodo evalúa ECVRF(SK, seed), donde seed se deriva del hash del bloque y de un nonce proporcionado por el usuario, y después envía (beta, pi) a la cadena. El contrato coordinador de VRF verifica la prueba antes de reenviar la salida aleatoria al consumidor. Esto permite que los contratos inteligentes accedan a una aleatoriedad resistente a la manipulación sin exigir que la cadena implemente una baliza VRF nativa, algo útil para la acuñación de NFT, las loterías y los juegos.

VXEdDSA y el protocolo Signal

El protocolo Signal utiliza VXEdDSA (Verifiable X25519 EdDSA), una construcción de VRF sobre Curve25519. Cuando un remitente genera una firma de una preclave de un solo uso, la VRF se utiliza para producir un nonce determinista pero impredecible a partir del mensaje y de la clave del remitente. Esto evita reutilizar el nonce (lo que rompería la seguridad de EdDSA) y, al mismo tiempo, mantiene las firmas verificables. La prueba VRF permite al destinatario verificar que el nonce se derivó correctamente, lo que impide que el remitente elija un nonce malicioso que podría permitir ataques de recuperación de claves. VXEdDSA demuestra que las VRF son una herramienta criptográfica de uso general que va más allá del consenso.

Funciones de retardo verificables frente a VRF

Las funciones de retardo verificables (VDF) a veces se confunden con las VRF. Una VDF exige un cálculo secuencial durante al menos T pasos (propiedad de bloqueo temporal) y produce una salida con una prueba breve de corrección. Las VDF se utilizan para mitigar el sesgo del último revelador en RANDAO: la capa VDF planificada de Ethereum haría que cualquier intento de manipulación exigiera ejecutar una VDF con antelación, lo que tarda más que la ventana de ataque. Las VRF permiten una evaluación privada instantánea; las VDF, una evaluación pública lenta. Son complementarias: las VDF impiden el sesgo del último revelador y las VRF impiden predecir al líder.

Modelo de seguridad: adversarios adaptativos frente a estáticos

La selección mediante VRF proporciona una mejora de seguridad importante frente a los adversarios adaptativos. En PBFT y Tendermint, la identidad del líder se conoce de antemano (calendario round-robin), lo que permite a un adversario lanzar un ataque DDoS contra el próximo líder antes de que proponga un bloque. La selección basada en VRF (Algorand, Cardano) mantiene en secreto la identidad del líder hasta que se difunde el bloque; para entonces, el bloque ya se ha propuesto, por lo que el DDoS llega demasiado tarde. Esto se denomina seguridad adaptativa o elección impredecible del líder. La propiedad criptográfica que lo permite es que la salida de VRF es pseudoaleatoria para cualquiera que no tenga la clave privada.

Notas de implementación para VRF

Implementar VRF correctamente requiere prestar atención a varios aspectos. Hash-to-curve debe utilizar un algoritmo uniforme y de tiempo constante (IETF RFC 9380 define métodos estandarizados para evitar filtraciones de tiempo). El nonce k de VRF en la prueba debe derivarse determinísticamente de (SK, alpha) usando RFC 6979; reutilizar k o usar un k aleatorio débil filtra la clave secreta (la misma vulnerabilidad que la reutilización del nonce en ECDSA). El tamaño de la prueba para ECVRF-P256-SHA256-TAI es de 80 bytes; para ECVRF-ED25519-SHA512-ELL2 también es de 80 bytes; ambos tamaños son adecuados para incluirse en la cadena. La propiedad de unicidad de VRF garantiza que no existan dos pruebas válidas para el mismo par (SK, alpha).

Cuestionario sobre selección impredecible con VRF

¿Por qué la elección del líder basada en VRF proporciona mayor seguridad que la planificación de líderes round-robin?

Resumen de las VRF en el consenso

Las VRF producen salidas pseudoaleatorias con pruebas criptográficas de corrección, lo que satisface las propiedades de impredecibilidad, resistencia al sesgo y verificabilidad pública. ECVRF (RFC 9381) es la construcción estándar sobre curvas elípticas. Algorand utiliza la autoselección criptográfica mediante VRF para resistir a los adversarios adaptativos. Cardano Ouroboros Praos utiliza VRF para la elección del líder de cada ranura. Chainlink VRF proporciona aleatoriedad verificable a los contratos inteligentes. Las VRF complementan a las VDF (que abordan el sesgo del último revelador) y se diferencian de RANDAO (que utiliza firmas BLS acumuladas y presenta la conocida debilidad del último revelador).

Gratis para empezar

Aprende Cryptology Academy con un tutor de IA — gratis

Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.

Cursos
67
Lecciones
261

Preguntas frecuentes

¿La lección «Funciones aleatorias verificables en el consenso» es gratis?

Sí — el texto completo de «Funciones aleatorias verificables en el consenso» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Cryptology Academy, actualiza a CoddyKit PRO. El curso de Cryptology Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Funciones aleatorias verificables en el consenso»?

Comprenda las VRF y cómo permiten obtener aleatoriedad impredecible pero verificable en la elección de líderes (Algorand, Cardano). Practicas Cryptology Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Cryptology Academy?

No se requiere experiencia previa. Cryptology Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «Funciones aleatorias verificables en el consenso»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Cryptology Academy?

Sí. Cada lección de Cryptology Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Mecanismos criptográficos de Proof-of-Stake
  2. Protocolos BFT: PBFT y Tendermint
  3. Funciones aleatorias verificables en el consenso
  4. Firmas BLS y esquemas de firmas agregadas
← Volver a Cryptology Academy