Este artículo es un completo viaje que te permitirá conocer el proceso de creación de un bloque de Bitcoin y los pormenores que hacen posible la minería de Bitcoin.
En artículos anteriores hemos analizado la tecnología blockchain y cómo está constituida. También disponemos de un artículo dedicado a los bloques que conforman la blockchain y otro dedicado a las transacciones, que conforman a su vez los bloques. Si no conoces estos términos, te invitamos a que des un vistazo a estos tres artículos antes de continuar para tener un conocimiento más claro y amplio sobre estos elementos que te ayudarán a entender: ¿cómo se mina un bloque?
En la blockchain, los mineros son los encargados de generar los nuevos bloques añadiéndolos al final de la cadena. Y como establece el protocolo Bitcoin, deben efectuar dicho proceso cada 10 minutos aproximadamente. Cada bloque minado contiene un registro detallado de las diferentes transacciones realizadas en cada periodo. Y que al ser añadidos al final de la blockchain actualizan su registro.
Proceso de minado de un bloque
Para crear un nuevo bloque, los mineros deben realizar un proceso para resolver un problema matemático. Al encontrar una solución válida para la red, puede darse por minado un nuevo bloque que será añadido a la blockchain en consenso. Y por el cual, el minero que encontró la solución, recibirá una recompensa por el nuevo bloque. Esta recompensa es conocida como la recompensa de bloque.
Cada 10 minutos aproximadamente se genera un nuevo bloque en Bitcoin. Por lo que cada vez que se encuentra uno, significa el inicio del minado para otro. Ya que estos estén relacionados matemáticamente o encadenados entre sí. Pero veamos con más detalle cómo se realiza este proceso:
Primera etapa: Transacción
El proceso de minado de un nuevo bloque inicia cuando un usuario desea enviar una cierta cantidad de criptomonedas a otra persona. Entonces, envía dicha transacción con los datos desde su wallet, a la espera de que la red la realice y confirme. Allí permanecen hasta que sea minado un bloque donde puedan incluirse y validarse.
Segunda etapa: Compilación
Estas transacciones pendientes en la red, son recopiladas y agrupadas en un bloque de transacciones por los nodos mineros. Es muy probable que varios mineros recojan las mismas transacciones. Y todas estarán sin confirmar hasta que no se mine el bloque.
Tercera etapa: Formación
Cada minero seleccionará las transacciones que desea incluir y construirá su propio bloque. Si existen transacciones ya validadas e incluidas en el bloque anterior serán eliminadas de este. Este nuevo bloque se conoce como candidato, ya que aún no es válido porque no cuenta con una prueba de trabajo válida.
En la formación de este nuevo bloque, se debe incluir un encabezado que contenga el hash del bloque anterior, la raíz de Merkle y los datos para la competencia minera. Es decir, la marca de tiempo, el objetivo del algoritmo de PoW para dicho bloque (los bits), la versión del software y el nonce.
Cuarta etapa: Prueba de trabajo
Una vez que cada minero haya conformado su propio bloque de transacciones, deberá encontrar una firma válida para dicho bloque. Es decir, realizar una prueba de trabajo. Cada minero debe realizar un proceso de cálculo matemático que es único para cada bloque que formaron. Por lo que, aunque el procedimiento sea el mismo, el resultado será totalmente diferente para cada uno. Este complejo cálculo implica mucho poder computacional, y por ende, un gran gasto de energía eléctrica. Que también dependerá de la dificultad del sistema para el momento del minado.
La solución que deben encontrar los mineros es conocida como hash. Esta función es muy difícil de encontrar, pero una vez hallada, es fácil de verificar por los otros nodos. Para que así puedan comprobar que el hash de salida cumpla con las condiciones establecidas del sistema.
Para encontrar un hash de salida válido los mineros realizan los cálculos matemáticos de forma repetitiva una y otra vez a través de un nonce. Que es un número aleatorio que utilizan y cambian constantemente hasta encontrar una firma o hash de salida que sea válido según la condición. No hay forma de predecir que nonce resolverá el problema, por lo que deben emplear tantos como sea necesario. Y estamos hablando de ¡miles de millones de valores!, increíble ¿no?
En caso de la red Bitcoin, el sistema condiciona que el hash de salida debe contener un determinado número de ceros al inicio del hash.
Quinta etapa: Transmisión
Cuando un nodo minero logra encontrar un hash de salida válido para un bloque, transmite dicho bloque junto con la firma a los demás nodos de la red para que estos puedan validarlo.
En este momento, siempre y cuando no se hayan emitido los 21 millones de bitcoins, el minero recibe la recompensa establecida por el minado, poniendo bitcoins nuevos en circulación. Esto se registra en su propio nodo, el resto de nodos de la red lo hará en el siguiente paso.
Además, independientemente de que se hayan emitido todos los bitcoins o no, el minero también recibe todas las comisiones de minado que los usuarios hayan puesto en las transacciones que componen este bloque.
Sexta etapa: Verificación
Los demás nodos de la red se encargan de validar y verificar que el bloque y el hash cumplen con las condiciones del sistema, verificando su legitimidad y si realmente contiene la cantidad de ceros establecida.
Aquí también se confirma la prueba de trabajo, es decir, el poder computacional que se gastó para encontrar la solución, y se anota que el minero que descubrió el bloque efectivamente puede hacer uso de los bitcoins recién recibidos.
Séptima etapa: Confirmación
Una vez añadido el nuevo bloque a la blockchain, todos los demás que sean añadidos sobre él contarán como una confirmación. En este punto, podemos llegar a pensar que como cada minero inició el proceso con su propio bloque, pueden continuar con el minado. Pero no es así. Una vez que se genere un bloque, todos los nodos mineros deben comenzar el proceso formando un nuevo bloque de transacciones. No pueden continuar minando el bloque anterior debido a que cada bloque debe añadir el hash de salida del bloque que le precede.
Por esto conocemos esta tecnología como cadena de bloques o blockchain. Entonces, cuando el minero consiga un hash válido pueden haberse minado otra cantidad de nuevos bloques. Con lo que el hash de salida de su bloque extraído no coincidirá con el hash de salida del último bloque añadido en la cadena. Será rechazado.
Además, es muy probable que todas o la mayoría de las transacciones incluidas en ese bloque, ya hayan sido añadidas a otros. Incluso si logra minar el bloque la mayoría de sus transacciones incluidas no podrán ser validadas ni confirmadas.
Características de los bloques minados
Los bloques minados en el sistema Bitcoin deben cumplir con ciertas características y condiciones para ser considerados como válidos. Veamos cuales son:
- El hash del encabezado del bloque minado debe ser menor que el objetivo. Si es mayor, no se considerará como válido.
- El tamaño del bloque debe estar dentro de los límites aceptables. En Bitcoin, un bloque debe tener un tamaño máximo de 2 MB.
- La marca de tiempo (timestamp) del bloque debe ser inferior a dos horas en el futuro.
- La primera transacción añadida al bloque será la transacción de coinbase. Que le otorgará al nodo minero la recompensa de la red. Y solo existirá una transacción coinbase por bloque.
- Todas las transacciones añadidas al bloque son válidas.
- El encabezado de cada bloque contendrá el hash del bloque anterior y la altura del bloque del mismo.
Todas estas características son revisadas para confirmar un bloque. Y cada nodo minero valida independientemente los nuevos bloques siguiendo exactamente las mismas reglas. Así, se asegura de que ningún nodo minero pueda hacer trampa. Lo que le brinda robustez y seguridad a la red. Una vez validado el bloque, los demás nodos de la red lo añadirán en su copia de la blockchain. Y cuando esto ocurra, no podrá ser modificado o cambiado.
Ahora ya sabes el proceso de creación que han seguido todos y cada uno de los bitcoin que existen en circulación. Todos y cada uno de los bitcoins que existen, han sido emitidos siguiendo este proceso, para posteriormente ser usados o vendidos por el minero a otras personas, hasta llegar a tus manos.