Bloque candidato
En pocas palabras, un bloque candidato es un bloque que un
nodo de minería (minero) está intentando minar para recibir la recompensa del bloque. Por lo tanto, un bloque candidato se puede describir como un bloque temporal que será validado o descartado por la red. Los mineros compiten entre sí para validar el siguiente bloque y agregarlo a la blockchain, pero antes tienen que crear el bloque candidato para participar en la competencia de
minería.
Los mineros crean los bloques candidatos al recopilar y organizar múltiples transacciones sin confirmar del pool de memoria (mempool). Luego, se aplica la función de hash a las transacciones para formar una estructura de
árbol de Merkle, que eventualmente producirá una raíz de Merkle (o hash raíz). La raíz de Merkle es un único hash que representa todos los hashes anteriores de ese árbol y, por lo tanto, todas las transacciones que se incluyeron en ese bloque en particular.
El hash raíz, junto con el hash del bloque anterior y un número aleatorio llamado
nonce, se colocan en el encabezado del bloque. A continuación, el encabezado del bloque pasa por el proceso de hash del minero y se genera una salida (output) basada en esos componentes (hash raíz, hash del bloque anterior y nonce), además de otros elementos. La salida resultante es el hash del bloque y funcionará como identificador único del bloque recién generado (bloque candidato).
Para que sea considerada válida, la salida (el hash del bloque), debe empezar con una determinada cantidad de ceros (inferior a un valor objetivo que define el protocolo). Esto significa que el proceso de minería se basa en múltiples intentos (prueba y error), ya que los nodos de minería tienen que realizar una miríada de funciones de hash con diferentes valores de nonce hasta que se produzca un hash válido del bloque. El hash del bloque producido es lo que prueba que el minero hizo su trabajo, de allí el nombre de
Proof of Work (prueba de trabajo).
Después de que un minero encuentra el hash válido del bloque, su bloque candidato se transmitirá al resto de los nodos de la red, que verificarán la autenticidad del hash. Si todo está bien, el bloque candidato se registrará en la
blockchain. En este punto, cada nodo de validación actualiza su copia de los datos de la blockchain para reflejar el bloque recién minado y el minero obtendrá su recompensa del bloque.