Una de las funciones más elementales dentro de la tecnología blockchain está relacionada con la aleatoriedad o simplemente «random» como se le conoce técnicamente.
La razón de su importancia es bastante simple: sin la aleatoriedad no existiría la criptografía asimétrica que hace posible el esquema de seguridad de las criptomonedas. De hecho, sin aleatoriedad las computadoras, Internet y hasta tu móvil serían muy distintos a lo que son actualmente, y muy posiblemente, también serían dispositivos inseguros.
Pero ¿Cómo es esto posible? ¿Por qué es tan importante la aleatoriedad en el mundo digital y de las criptomonedas? Eso y más podrás saberlo a continuación.
Inicios de la aleatoriedad en el mundo digital
La aleatoriedad ha sido usada por la humanidad desde hace mucho tiempo. Desde el lanzamiento de dados, huesos o la lectura de cartas para saber tu futuro hasta otros usos rituales. Sin embargo, no fue sino hasta la Edad Media (Siglo XVI), cuando la aleatoriedad fue estudiada de manera formal.
De hecho, uno de los principales usos de la aleatoriedad estuvo relacionado con el estudio del número pi y la forma aleatoria e infinita de sus números decimales. Los matemáticos interesados por este hecho comenzaron a ver cómo este fenómeno se repetía en otros espacios.
Pero, a principios del Siglo XX, con la llegada de los fundamentos matemáticos de la probabilidad y los fundamentos algorítmicos, la utilidad de la aleatoriedad creció exponencialmente. Por ejemplo, la aleatoriedad es elemental para los estudios en física, especialmente en física cuántica. En informática, el uso de la aleatoriedad es elemental para la construcción de algoritmos, chips y, por supuesto, criptografía, una de las tecnologías básicas en la creación del mundo digital y su seguridad.
Aleatoriedad y su importancia
Ahora bien ¿Por qué generar números aleatorios es tan importante? ¿Qué uso tiene todo esto en tecnología blockchain? Pues bien, la verdad es que generar un número aleatorio es algo muy habitual y necesario en lo que respecta a seguridad informática.
Por ejemplo, cada vez que te conectas a una Web en Internet usando una conexión HTTPS (Conexión HTTP Segura), lo que pasa es que tu computador/móvil se conecta al servidor Web e intercambian mensajes para crear una conexión asegurada entre esos dos equipos. Ese proceso es posible gracias al uso de números aleatorios y su implementación en la criptografía que protege nuestras comunicaciones digitales.
Por supuesto, esto es solo un ejemplo de la importancia de la aleatoriedad en nuestro mundo digital. La aleatoriedad está presente en cosas tan sencillas como tu tarjeta de crédito/débito (creando los tokens de autenticación que autorizan los gastos que realizas), la conexión inalámbrica de tu móvil (las conexiones 2G, 3G y 5G usan criptografía asimétrica).
Aleatoriedad en Blockchain
Ahora, siendo blockchain una tecnología digital diseñada para brindar seguridad a sus usuarios, la aleatoriedad se hace presente. Podemos ver el uso de la aleatoriedad en blockchain en uno de los puntos básicos de esta tecnología: la criptografía, ya que la criptografía asimétrica usada por las criptomonedas se construye gracias al uso de números aleatorios. Por ejemplo, al crear una clave de Bitcoin usando el esquema ECDSA y la curva secp256k1, lo que hace un monedero de Bitcoin es elegir un número aleatorio (un número muy grande) y usar ese número dentro de esta formulación matemática:
y^2 = x^3 + ax + b
Asegurarse de que la aleatoriedad sea lo suficientemente «caótica y única», es algo que las computadoras pueden hacer bastante bien. Y al mismo tiempo, pueden realizar el cálculo necesario para resolver esta formulación en muy poco tiempo, lo que nos brinda acceso a una de las formas de criptografía más seguras conocidas hasta la actualidad.
Todo esto con un fin: crear dos claves (pública y privada) para manejar nuestros BTC de forma segura en una red sin confianza y con la certeza de que nuestros BTC están protegidos por principios computacionales y matemáticas ampliamente probados.
La evolución de la aleatoriedad de blockchain
Por supuesto, la tecnología blockchain también evoluciona y su uso de la aleatoriedad también. Conociendo que las computadoras no pueden representar un verdadero generador aleatorio (el caos y el orden no pueden coexistir en un mismo algoritmo), una de esas evoluciones de la aleatoriedad en blockchain, es usar la misma blockchain para asegurar la generación de «números aleatorios» para que puedan ser usados en distintos espacios.
Expliquemos un poco esto:
Para los computadores es casi imposible representar verdaderos números aleatorios. Un desarrollador puede crear un algoritmo de generación de números aleatorios. Pero este generador seguirá «parámetros» establecidos (un algoritmo), que al final pueden ser estudiados por medios matemáticos y probabilísticos. Esto significa que estos algoritmos de generación de números aleatorios (o pseudo-aleatorios) pueden ser analizados y rotos, dando origen a los conocidos ataques a generadores de números aleatorios (Random number generator attack).
Teniendo en cuenta esto, muchos desarrolladores de blockchain buscan transformar los datos dentro de estas redes en generadores de aleatoriedad, que pueden usarse en otras aplicaciones.
Pero ¿Cómo es esto posible? Pues bien, algunos de estos modelos son:
Block-hash
Uno de los medios para lograr esto es el Block-hash, en el que los hashes de los bloques, transacciones o combinaciones de los mismos, se utilizan como fuente de aleatoriedad. Como el hash es determinista, todo el mundo obtendrá el mismo resultado. Un bloque, una vez añadido a la blockchain, permanecerá allí para siempre, por lo tanto, todo el mundo puede verificar la corrección de los números generados.
Sin embargo, este método tiene un grave problema de seguridad: los hashes pueden ser manipulados por los mineros. Si bien este problema es pequeño y detectable, dentro de un generador de números aleatorios seguro es intolerable. Por esta razón, este sistema se usa de forma muy reducida.
Oráculos
Otro posible camino para generar aleatoriedad en blockchain para terceras aplicaciones se da por medio de los oráculos. Proyectos como Provable, TWAP de Uniswap o Chainlink VRF, son solo algunos ejemplos de este sistema.
El funcionamiento es sencillo. Estos sistemas recogen datos de fuentes externas, los procesan dentro de su red y generan un enorme conjunto de datos aleatorios. Estos datos luego pueden ser usados por los usuarios del sistema. Lo mejor es que este sistema no es solo descentralizado, sino que usa una gran cantidad de fuentes generadoras de aleatoriedad en forma paralela. Adicionalmente, todo ese trabajo va acompañado de una prueba criptográfica para verificar los datos aleatorios generados.
Sin duda, la aleatoriedad tiene un papel fundamental en nuestro mundo digital y en la blockchain. Gracias a la misma podemos contar con medios para comunicarnos de forma segura por Internet. Y, al mismo tiempo, nos permite crear tecnología que nos ayuda a mejorar esta capacidad. Así, blockchain se transforma en un ejemplo de lo que la aleatoriedad nos permite alcanzar, y nos ofrece herramientas para seguir mejorando estos sistemas de los que depende nuestra privacidad y seguridad en el mundo digital.