Hoy revisamos qué son las Funciones Aleatorias Verificables y cuáles sus características principales. Sigue con nosotros para conocer toda la información relativa a las VRF que puede interesarte conocer. Una Verifiable Random Function o Función Aleatoria Verificable, mejor conocida por sus siglas VRF, no es una más que una función criptográfica especial que nos permite generar números pseudoaletorios que pueden ser verificados de forma formal, mediante el uso de técnicas criptográficas, por cualquier persona, en todo momento. El diseño de estas funciones ha sido posible gracias al trabajo de Silvio Micali, Michael Rabin y Salil Vadhan, quienes en 1999 presentaron su trabajo «Verifiable Random Functions«. El nombre de Silvio Micali, seguramente te resultará conocido, ya que es quien ha creado la blockchain Algorand, la cual usa un sistema VRF en su mecanismo de consenso Proof of Stake (PoS).
Con esto, básicamente podemos definir a una VRF como un generador pseudoaleatorio cuya salida se puede verificar en todo momento, dando así como resultado la capacidad de auditar y confiar en que los datos son realmente confiables y no han sido manipulados de ninguna manera. Esto resulta de extrema importancia en el mundo de la informática y de la blockchain, porque garantiza que los números proporcionados son seguros, y que por tanto, el uso correcto de los mismos dará como resultado un resultado seguro.
La utilidad de los números pseudoaleatorios en informática resulta especialmente relevante, y más cuando hablamos de criptografía, donde toda la seguridad del sistema se asienta en la premisa de que los generadores pseudoaleatorios, sean hardware o software, son seguros en todo momento. De hecho, un PRNG (Pseudoaleatory Random Number Generator) o también como se les suele llamar (RNG o Random Number Generator) que haya sido manipulado de alguna manera puede romperse fácilmente, teniendo como consecuencia graves fallos en la seguridad de los dispositivos que dependen del mismo. Por ejemplo, la PlayStation 3 de Sony, pudo ser hackeada debido a un fallo en su sistema de generación de números pseudoaleatorios, ya que estos números eran predecidables.
En blockchain, donde la criptografía es la base de la seguridad de las redes, la generación y uso de algoritmos seguros para PRNGs es vital, y en este punto, las VRF vienen a complementar una necesidad que no solo está en la blockchain, sino también en los smart contracts y otras funciones no-blockchain que pueden aprovechar esta tecnología.
Características de una VRF
Como su nombre indica, una función aleatoria verificable se define por dos características principales:
- Es verificable. Esto significa que cualquiera puede verificar que el número aleatorio generado por una VRF es válido. Todo lo que tienen que hacer es inspeccionar la prueba criptográfica generada junto al número dado y con ello serán capaces de verificar la corrección de la salida del hash. Por otro lado, sólo el poseedor de la clave secreta del VRF puede calcular el hash, cualquiera que tenga la clave pública puede verificar la exactitud del hash.
- Aleatorio. La salida de una VRF es un número impredecible (estadísticamente distribuido de forma uniforme en el universo de posibilidades del sistema). Dicha aleatoriedad se genera combinando la semilla y la clave privada de forma única, aunque también se pueden usar otras fuentes que alimenten la entropía del sistema y que serán añadidos a la prueba para su posterior verificación.
Así, las VRF tratan de hacer que los algoritmos PRNG produzcan pruebas criptográficas que formalmente puedan generar una prueba de su veracidad, y que estas pruebas permitan su verificación posterior por quienes consumen dichos números.
Casos de uso del VRF
Los VRF tienen un amplio número de usos entre los que podemos destacar:
- Mejoras en los sistemas de seguridad en Internet. Por ejemplo, un generador de certificados TLS, infraestructuras PKI o los certificados para cifrado DNS pueden usar VRF para generar medios de comunicación seguros entre las partes, siendo que dichos certificados pueden ser verificados en todo su proceso por todas las partes involucradas.
- La generación de dispositivos conectados (ej: IoT) capaces de mantener conexiones seguras por medio de comunicaciones cifradas cuya entropía parte de funciones VRF.
- Generación segura de nuevos esquemas criptográficos. Este es el caso de las pruebas de conocimiento cero (ZKP) que pueden valerse de las VRF para generar los conjuntos de datos que necesitan y que pueden posteriormente verificarse por las partes. Este caso de uso está completamente explicado en el trabajo de 1999 de Silvio Micali, Michael Rabin y Salil Vadhan.
- Generación de esquemas de seguridad blockchain. Por ejemplo, las VRF se pueden usar para generar cadenas de custodia de transacciones verificables seguras. Asimismo, también pueden ser usadas en oráculos blockchain para verificar las operaciones (como pasa en Chainlink) o incluso en protocolos de consenso (como pasa en Algorand).