block header
La cabecera de bloque es la sección de metadatos de 80 bytes de cada bloque Bitcoin. Contiene seis campos: el hash del bloque anterior, la raíz Merkle de todas las transacciones, una marca de tiempo, el objetivo de dificultad, la versión y el nonce.
La cabecera de bloque es una estructura de datos de 80 bytes que encabeza cada bloque de Bitcoin. Contiene exactamente seis campos: el número de versión del protocolo, el hash de la cabecera del bloque anterior (que lo vincula a la cadena), la raíz Merkle (un único hash que confirma cada transacción del bloque), una marca de tiempo Unix, el objetivo de dificultad codificado (llamado bits) y el nonce. Estos seis campos son los que los mineros hashean repetidamente durante el proceso de minería.
La raíz Merkle es especialmente importante: se obtiene hasheando las transacciones en pares hasta que queda un único hash raíz. Esto significa que si se altera cualquier transacción del bloque, la raíz Merkle cambia, lo que cambia el hash de la cabecera del bloque e invalida el bloque. Todo el conjunto de transacciones queda así confirmado en solo 32 bytes dentro de la cabecera.
Los mineros hashean únicamente la cabecera de 80 bytes, no el bloque completo, que puede tener varios megabytes. Esto es eficiente: el algoritmo de hash SHA-256 puede procesar la cabecera de 80 bytes muy rápidamente, permitiendo a los ASICs modernos realizar billones de intentos de hash por segundo. Cuando un minero ajusta el nonce y agota los cuatro mil millones de valores posibles sin encontrar un hash válido, modifica otros campos como la marca de tiempo o la transacción coinbase para reiniciar el espacio del nonce.