Encabezado del bloque
Un encabezado del bloque es la sección de resumen de un
bloque en una blockchain, que contiene los datos principales de identificación del bloque en lugar de su lista completa de transacciones.
El encabezado contiene los
metadatos que describen un bloque: cuándo se creó, cómo se conecta con el bloque anterior y un único hash que representa todas las transacciones que contiene. En esencia, el encabezado del bloque incluye todo sobre un bloque, excepto la lista sin procesar de transacciones en sí.
En Bitcoin, el encabezado del bloque es una estructura fija de 80 bytes compuesta por seis campos:
Versión: indica qué reglas de consenso sigue el bloque y puede usarse para señalar compatibilidad con actualizaciones del protocolo.
Hash del bloque anterior: el
hash del encabezado del bloque previo, que es lo que enlaza los bloques entre sí en una cadena.
Raíz de Merkle: un único hash derivado de todas las transacciones del bloque, generado a partir de una estructura de
raíz de Merkle, de modo que cualquier cambio en una transacción modifica este valor.
Registro de tiempo: registra la hora aproximada en que se creó el bloque, expresada como un registro de tiempo Unix.
Objetivo de dificultad (nBits): codifica el umbral por debajo del cual debe estar el hash del encabezado. La dificultad de la red se deriva de este objetivo en lugar de almacenarse directamente.
Nonce: un contador que los mineros cambian repetidamente mediante el campo
nonce mientras buscan un hash válido.
Un encabezado del bloque es lo que los mineros hashean cuando intentan hacer que un bloque sea válido. Como el encabezado solo tiene 80 bytes, esto es mucho más eficiente que hashear cada transacción del bloque, que pueden llegar a ser miles. Cuando un bloque se
mina, el encabezado pasa por un doble hash SHA-256 y el resultado se convierte en el identificador del bloque.
Su tamaño reducido también hace que los encabezados del bloque sean útiles para los clientes ligeros. Almacenar la blockchain completa de
Bitcoin puede requerir grandes cantidades de almacenamiento, pero un dispositivo que conserva solo los encabezados del bloque usa una fracción mínima de ese espacio. Como cada encabezado se compromete con sus transacciones mediante la raíz de Merkle, un cliente ligero puede comprobar más adelante si una transacción específica se incluyó en un bloque, sin tener que descargar toda la cadena. Este enfoque aún depende en parte de terceros para obtener datos, pero permite cierto grado de verificación en dispositivos con recursos limitados.