Descripción general
La cabecera de bloque es un resumen compacto de 80 bytes del contenido y contexto de un bloque. Es la estructura de datos que los mineros hacen hash miles de millones de veces por segundo en la búsqueda de una prueba de trabajo válida. A pesar de su pequeño tamaño, la cabecera compromete criptográficamente todos los datos del bloque a través de la raíz Merkle.
Campos de la cabecera
Offset Tamaño Campo Descripción
──────────────────────────────────────────────────────────────
0 4 bytes Versión Versión del protocolo / bits de señalización
4 32 bytes Hash del bloque previo Hash SHA-256d de la cabecera del bloque anterior
36 32 bytes Raíz Merkle Hash raíz de todas las transacciones del bloque
68 4 bytes Marca de tiempo Tiempo Unix en segundos
72 4 bytes Bits Objetivo de dificultad codificado
76 4 bytes Nonce Contador que los mineros iteran
──────────────────────────────────────────────────────────────
Total: 80 bytes
El proceso de minería
La minería implica hacer hash repetidamente de la cabecera del bloque con diferentes valores de nonce (y otros campos variables como el extra nonce de la transacción coinbase) hasta que el hash resultante sea numéricamente menor que el objetivo de dificultad codificado en el campo "Bits":
while true:
header.nonce += 1
hash = SHA256(SHA256(header))
if hash < target:
bloque válido!
break
Por qué importan los 80 bytes
El tamaño fijo y pequeño de la cabecera de bloque permite la verificación ligera. Los clientes de Verificación de Pago Simplificada (SPV) pueden descargar solo la cadena de cabeceras (80 bytes por bloque) en lugar de los bloques completos, reduciendo drásticamente los requisitos de ancho de banda y almacenamiento, mientras aún pueden verificar que una transacción está incluida en un bloque mediante pruebas Merkle.
Campo de versión y señalización
El campo de versión no es solo un número de protocolo estático. A través de BIP9, los bits individuales en el campo de versión son usados por los mineros para señalar su apoyo a bifurcaciones suaves propuestas. Este mecanismo de señalización permite a la red coordinar actualizaciones de protocolo sin una autoridad central.