¿Qué es minar un bitcoin? Todo lo que nunca te explicaron.
Cuando hablamos de bitcoin, blockchain y las criptomonedas en general, es frecuente oír hablar de la minería, de los mineros y de las historias de éxito referentes a ello. Pero, ¿qué significa minar un bitcoin?
¿Qué es eso de minado?
Para poder entender qué es, en términos generales, minar un bitcoin, comenzaremos con una explicación sencilla, basada en una respuesta de reddit.
Imagina que tienes un sombrero con 100 piezas de papel dentro, cada una con un número entre 1 y 100. Cada minuto, sacas una de las piezas y miras el número que has obtenido, volviendo a meterlo en el sombrero y agitando después. Si el número que sacas es menor que 20, ganas. De esta forma, de media, ganarás una vez cada cinco minutos (20/100). Por otro lado, si empiezas a sacar piezas de manera más rápida, las probabilidades de ganar disminuyen haciendo que, en vez de 20, el número ganador sea menor que 15.
Minar, especialmente en bitcoin, es parecido pero, en vez de un número del 1 al 100, hay 1.1579E+77 números posibles que puedes obtener cuando haces el hash de un dato. Bitcoin recompensa con una cierta cantidad de token de bitcoin si encuentras un hash del bloque actual de transacciones que sea 1.7248E+61 o más pequeño.
Un hash SHA es una fórmula matemática compleja que se ejecuta sobre el dato original y crea otro número, algo así como un “seudónimo” del dato original. Como ejecutar un hash sobre el mismo bloque de transacción una y otra vez siempre devolvería el mismo hash SHA, se añaden una serie de números aleatorios al final de un bloque de transacciones (conocidos como “nonce”) que establece su valor de modo que el hash contenga una ristra determinada de ceros.
El algoritmo SHA es criptográficamente seguro, la única manera de obtener el número exacto es probando billones de números distintos y comprobando el hash que se genera, hasta obtener el correcto.
Para aclararlo, vamos a ver un ejemplo:
Las funciones de hash cambian completamente el resultado obtenido a partir de minúsculas variaciones del valor inicial. Por ejemplo, utilizando la función SHA-256, y teniendo como variables iniciales “Test” y “test”, obtenemos resultados completamente distintos.
El SHA-256 de “Test” siempre nos dará:
«532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25»
Mientras que el SHA-256 de “test” resultará en: «9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08»
Como acabamos de ver, el simple cambio de una letra de mayúscula a minúscula nos lleva a resultados diferentes.
Entonces, imaginemos que María quiere darle a Jose 10 BTC. La red de bitcoin básicamente anota en el libro mayor público de transacciones lo siguiente: “María —> 10 BTC —> José”. Pero en este momento cualquier persona podría cambiar ese 10 por un 20 sin consecuencias. Tiene que existir, por tanto, una manera para que la red valide si la transacción es válida o no. Aquí es donde entra el minado.
Cuando María le paga a José esos 10 BTC, los mineros de la red de bitcoin intentarán hashear la transacción “María —> 10 BTC —> José”, que resultará en:
«aa314e08a642f5be3857276ecb4a4085a33b916f84aebef32a077df9c29949b3».
Sin embargo, hay un requisito adicional, y es que el hash válido debe empezar con un cierto número de 0’s. Esta cantidad 0’s dependerá de la velocidad de hash de la red. Los mineros variarán ligeramente la transacción, añadiendo un número al final, de manera similar a: “María —> 10 BTC —> José 12345”.
Ejecutarán la función de hash de nuevo y probarán si el hash obtenido empieza con el número adecuado de 0’s. Si no, cambiarán el número aleatorio hasta obtener un hash válido.
Una vez que se encuentra el hash correcto, la transacción y su correspondiente hash se almacenan en el libro mayor de transacciones y, si alguien intentara cambiar la transacción (cambiando de 10 al 20, por ejemplo),
el hash obtenido sería completamente distinto y la red sabría que la transacción es falsa y, por tanto, la rechazaría. El minero que calculó el hash correcto es recompensado con un cierto número de bitcoins, en agradecimiento por su contribución a la seguridad de la red.
Visto esto, más que de “minado de bitcoin” podríamos hablar de “aseguración de las transacciones de bitcoin”.
Proof of Work y la recompensa de los mineros.
Una “Proof of Work” (prueba de trabajo) es un dato que tiene un propósito pero es difícil de producir (en el sentido de consumidor, tiempo o coste). En bitcoin esta dificultad se ajusta automáticamente cada 2016 bloques (aproximadamente dos semanas), con el objetivo de que tarde 10 minutos en minar un bloque. Como la velocidad de minado aumenta continuamente debido a la potencia de los ordenadores dedicados a la tarea, puede llegar un punto en el que lleve menos de dos semanas minar los 2016 bloques. En este caso se aumentaría la dificultad (el número de ceros incluidos). De la misma manera, si sucede lo opuesto, la dificultad se reduciría.
Cuando se descubre un bloque, el primer minero en hacerlo recibe una serie de bitcoins, que es fruto de un consenso entre todos los miembros de la red, y que comenzó en 50 BTC/bloque en 2009, y se reduce de
manera continua en el comentado “halving”.
Este “halving” está diseñado para que la recompensa en la red de bitcoin sea dividida en dos cada 210000 bloques (aproximadamente 4 años). Echando cuentas, podemos ver que sólo se podrán generar unos 21 millones de bitcoins en total, de forma que los últimos bitcoins serán generados sobre 2140.
Los mineros reciben además una serie de comisiones sobre las transacciones, que son pagadas por los usuarios que las envían. Estas comisiones son un incentivo para que el minero incluya una transacción en el bloque.
ASICs y la evolución del minado.
A principios de la historia de bitcoin, los mineros podían ejecutar su “trabajo” en su PC utilizando la potencia de cálculo de sus CPU’s. Posteriormente, cuando la dificultad aumentó, se pasó a utilizar las GPU’s, por ser más eficientes y poder probar más hashes por unidad de tiempo que las CPU. Como cada vez más gente se pasó a minar por GPU, la dificultad de minado aumentó, haciendo que dejara de ser rentable minar por CPU.
Desde ese momento, se empezaron a desarrollar ordenadores específicos para el minado de bitcoin, los llamados ASICS (Application Specific Integrated Circuits). Estos tenían una potencia de minado muy superior a las GPUS. El incremento de potencia de minado de los nuevos ordenadores provocó que ya no fuera rentable minar en GPU’s en casa y, ahora, los minados se han llevado a grandes “granjas” en lugares con costos de energía favorables.
De esta manera, aunque sigue siendo posible minar a nivel particular, no es una opción rentable. Es por ello que se han creado los “pools de minado”, es decir, grupos de personas que se organizan para tratar de adivinar el siguiente bloque de manera que aumentan la probabilidad de obtener uno al sumar la potencia de cálculo de todos los individuos (aunque la recompensa es menor).
Esta es la explicación sencilla de lo que es minar bitcoin. Para más información sobre qué es bitcoin, blockchain o las criptomonedas, os dejamos una serie de entradas sobre el tema:
¿Qué es un Fork de Blockchain?
Conoce a las 10 startups seleccionadas para nuestro programa
Las 10 startups participarán en el bootcamp que se celebrará entre los días 26 y 30 de Octubre de manera remota.Hemos recibido muchas candidaturas para participar en la 4ª edición del programa para startups, provenientes de muchas partes diferentes del mundo, desde...
¿Tienes una idea? Desarróllala en nuestro programa de intraemprendimiento
En nuestro programa de intraemprendimiento tendrás 500€ y 8 semanas para dar vida a tus ideas. ¡Apúntate hasta el 22 de Octubre! Hay ideas que pueden cambiar el mundo o, por lo menos, simplificar los retos diarios que nos plantea el COVID-19. Es por eso que queremos...
Estaremos en el South Summit 2020
Estaremos en el South Summit 2020, buscando startups Fintech, Insurtech, Regtech o Cibersecurity. Ven a conocernosComo en ediciones anteriores de este evento, este año estaremos presente en el South Summit, en una edición especial del evento, pero que esperamos que...