Ethereum: Cómo generar números aleatorios


Conseguir un número realmente aleatorio es uno de los grandes problemas de cualquier tecnología informática, la resolución de este problema es todavía más complicado cuando hablamos de Blockchain, ya que las operaciones de minado al tener que ser realizados en instancias diferentes que deben llegar al mismo resultado convierte este objetivo casi en misión imposible.

Ha habido muchos intentos de buscar alternativas para generar números pseudo-aleatorios, pero hasta ahora los resultados nunca han sido verdaderamente aleatorios y han sido vulnerables a la manipulación.

La solución viene de manos de la red Chainlink que permite acceder a datos fuera del ecosistema de Ethereum a través de unos oráculos. Chainlink dispone de VRF (Verifiable Random Function), disponible para integrar en cualquier DApps permitiendo números aleatorios verificables por varios nodos de la red.

¿Cómo funciona VRF? Os explico la secuencia:
  1. Nuestro smart contract solicita un número aleatorio vía VRF
  2. VRF genera el número y lo verifica
  3. VRF prepara la respuesta
  4. VRF envía de vuelta a nuestro contrato vía transacción el número aleatorio
Chainlink dispone de un contrato de ejemplo llamado CRFConsumerBase. En este enlace tenéis la documentación oficial.

Todo este sistema funciona en las redes de pruebas de Ethereum, con ayuda del Remix IDE y la extensión Metamask es muy fácil hacerlas.

Tengo que animarme de una vez a crear un canal en YouTube de tutoriales, a ver si saco tiempo y me lanzo, porque si pongo aquí los pasos concretos puede ser muy pesado.

Espero que os sea de utilidad ^_^.




Comentarios