-
El protocolo de encriptación SHA-256 es sólo un método matemático que puede ser recreado a lápiz.
-
La Agencia de Seguridad Nacional (NSA) lo publicó en 2001.
Minar bitcoins, para la mayoría de las personas, es una suerte de magia que hacen computadoras especializadas donde entran números y letras que son procesadas y salen más números y letras con un añadido en valor que va a tu monedero.
Pero el proceso de añadir “bloques” a las blockchains no tiene nada de mágico, es sólo matemáticas. El protocolo que calcula cada nuevo valor para ser añadido a una blockchain es conocido y puede ser replicado a mano. El usuario mark_ablov, del blog colaborativo ruso Habrahabr se preguntó cuánto le tomaría a un humano hacer el proceso a mano y decidió averiguarlo.
Es lento, tedioso y requiere un montón de papel pero se puede hacer sin problemas.
Spoiler alert: Para terminar la primera ronda de cálculos necesitó 16 minutos y 46 segundos. Para completar las 128 rondas haría falta un día y medio (café más, sandwiches menos). Considerando que el primero que entregue el valor gana y que las máquinas son capaces de llegar al resultado un quintillión de veces más rápido, lo más probable es que termines con un valor obsoleto (huérfano, en términos de Bitcoin). Pero eso no le quita lo divertido.
Empecemos por lo básico: cifrado. Bitcoin usa el protocolo SHA-256, uno más de la familia de SHA, creados en 1993 y que han venido evolucionando con el tiempo. El que nos ocupa usa hashes de 256 bits. Es decir: todo lo que quieras cifrar, termina viéndose en paquetes de datos de ese tamaño. Ingresas toda la información de wikipedia: 256 bits; ingresas la lista de compras de tu casa: lo mismo.
El proceso inicia transformando los datos provistos por la Agencia de Seguridad Nacional de los Estados Unidos -desarrolladores del protocolo SHA-256- desde valores hexadecimales, es decir con base a 16 números en vez de los 10 a los que estamos acostumbrados, a binario. Luego de varios cálculos basados en unos y ceros, que incluyen el número original, una serie de sumas tomando siempre los resultados más altos y otros cálculos no lineales, terminas con valores nuevos que deberán pasar por las siguientes 128 rondas.
El objetivo no es el número en si, sino incrementar la dificultad de cálculo y que el número resultante cumpla una serie de parámetros. Para ser válido debe tener el nivel de dificultad especificado en el sistema, por ejemplo.
Otras criptomonedas usan diferentes protocolos de cifrado e incluso en bitcoin no es el único método de llegar al resultado. De modo que ya lo tienes, minar bitcoins no es cosa (solo) de computadoras.
Te dejamos el proceso en todo su esplendor. El autor ya aceleró las partes menos interesantes y puedes ver cada paso con detalle: