•Guías de los vídeos

Guías / Cripto · Serie 1 · Parte 03 / 04

Bloque 0: un secreto

Cómo es un bloque de Bitcoin por dentro (cabecera de 80 bytes y árbol de Merkle) y el titular de periódico escondido en el primero.

Portada del vídeo «Bloque 0: un secreto»
2009 · titular oculto

En 30 segundos

Todos los bloques tienen dos partes: una cabecera y la lista de pagos. La cabecera ocupa solo 80 bytes: la huella del bloque anterior, la hora, el objetivo de la red, un número llamado nonce y otra huella que resume todos los pagos, la raíz de Merkle. Y el bloque 0, de 2009, lleva dentro un titular de The Times: «el ministro, al borde de un segundo rescate a los bancos».

La cabecera: 80 bytes

Un bloque puede ocupar hasta unos megabytes por sus miles de pagos, pero su «carné de identidad» es diminuto:

CampoTamañoQué es
Versión4 Bqué reglas sigue el bloque
Huella del bloque anterior32 Bel eslabón de la cadena (parte 1)
Raíz de Merkle32 Buna huella que resume todos los pagos
Hora4 Bsegundos desde el 1/1/1970 (la forma estándar de guardar fechas en informática)
Objetivo (bits)4 Blo pequeña que tiene que ser la huella del bloque, en formato comprimido
Nonce4 Bel número que los mineros van cambiando (parte 4)

4 + 32 + 32 + 4 + 4 + 4 = 80 bytes. La huella del bloque es:

huella = SHA-256( SHA-256( cabecera de 80 bytes ) )

Doble SHA-256, y solo sobre la cabecera. Por eso la cabecera tiene que «resumir» los pagos de alguna forma: para eso está la raíz de Merkle.

El árbol de Merkle

Se calcula la huella de cada pago, luego la de cada pareja de huellas, y así, nivel a nivel, hasta quedarse con una sola: la raíz. Con 4 pagos:

          raíz
        /      \
    h(AB)      h(CD)
    /   \      /   \
  h(A) h(B)  h(C) h(D)

(Si en un nivel queda un número impar, la última huella se empareja consigo misma.)

Dos consecuencias:

  1. Cambias un pago y cambia todo: cambia su huella, la de su pareja, la raíz… y por tanto la huella del bloque.
  2. Demostrar que un pago está dentro es baratísimo. No hace falta enseñar todos los pagos: basta con las huellas «hermanas» de cada nivel del camino hasta la raíz. En un bloque de 4.000 pagos son solo 12 huellas, porque el árbol tiene log₂ 4.000 ≈ 12 niveles. Así funcionan las carteras ligeras del móvil, que no descargan la cadena entera.

Este árbol lo describió el criptógrafo Ralph Merkle a finales de los años 70; Bitcoin lo usa tal cual.

El bloque 0

DatoValor
Fecha3 de enero de 2009, 18:15:05 UTC
Huella000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f
Nonce2083236893
Objetivo (bits)1d00ffff (el más fácil permitido)
Pagos1: la recompensa de 50 BTC al minero
Raíz de Merkle4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b

Fíjate en que la huella empieza por diez ceros: no es casualidad, es el trabajo de minado (parte 4).

El primer pago de cada bloque, el que crea las monedas nuevas, tiene un campo libre donde el minero puede escribir lo que quiera. En el bloque 0, Satoshi Nakamoto escribió:

The Times 03/Jan/2009 Chancellor on brink of second bailout for banks

Es el titular de portada de The Times de ese mismo día: el ministro de Hacienda británico, a punto de un segundo rescate a los bancos.

¿Por qué está ahí? Hay dos lecturas que no se excluyen:

  1. Sello de tiempo: un titular no se puede conocer antes de publicarse, así que demuestra que el bloque no se creó antes de esa fecha (y que Satoshi no se guardó una cadena minada en secreto).
  2. Mensaje: Bitcoin nació en plena crisis financiera, como dinero que no depende de los bancos.

Curiosidad: esos 50 BTC no se pueden gastar. El programa original no añadió ese primer pago a la lista de monedas disponibles, y así sigue.

Compruébalo tú: busca el bloque 0 en cualquier explorador de bloques y mira el texto del primer pago.

Datos

DatoCómo se ha comprobado
Huella del bloque 0doble SHA-256 de su cabecera de 80 bytes, calculada con un script propio
Titular auténticola huella de su único pago coincide con la raíz de Merkle 4a5e1e4b…
Estructura del bloquewhitepaper de Bitcoin (secciones 4 y 7) y documentación para desarrolladores

Lo que el vídeo simplifica

  • El árbol de Merkle del vídeo usa pagos de ejemplo (va rotulado); Bitcoin calcula las huellas de transacciones en binario con doble SHA-256.
  • «Objetivo» = el campo bits: la huella del bloque, leída como número, tiene que quedar por debajo de él. En la parte 4 lo traducimos a «ceros».
  • La traducción del titular es libre: Chancellor es el ministro de Hacienda británico.