Mastering Bitcoin

Mastering Bitcoin


9. La Cadena de Bloques » Identificadores de Bloque: Hash de Cabecera de Bloque y Altura de Bloque

Página 62 de 98

Identificadores de Bloque: Hash de Cabecera de Bloque y Altura de Bloque

El identificador primario de un bloque es su hash criptográfico, una huella digital, que se obtiene al hacer hash de la cabecera de bloque dos veces a través del algoritmo SHA256. El hash de 32 bytes resultante se llama hash de bloque; pero es más preciso llamarlo hash de cabecera de bloque, porque para calcularlo solo se utiliza la cabecera del bloque. Por ejemplo:

000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f

Es el hash de bloque del primer bloque bitcoin jamás creado. El hash de bloque identifica un bloque de forma única e inequívoca y se puede derivar de forma independiente por cualquier nodo simplemente haciendo hash de la cabecera del bloque.

Tenga en cuenta que el hash de bloque no está realmente incluido dentro de la estructura de datos del bloque, ni cuando el bloque es transmitido en la red, ni cuando se guarda en el almacenamiento persistente de un nodo como parte de la cadena de bloques. En cambio, cada nodo calcula el hash de bloque cuando recibe el bloque de la red. El hash de bloque podría ser almacenado en una tabla separada de la base de datos como parte de los metadatos del bloque, para facilitar la indexación y hacer más rápida la recuperación de los bloques desde el disco.

Una segunda manera de identificar un bloque es por su posición en la cadena de bloques, denominada la altura del bloque. El primer bloque jamás creado está a la altura del bloque 0 (cero) y es el mismo bloque que se ha referenciado anteriormente con el siguiente hash de bloque

000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f

Así, un bloque se puede identificar de dos maneras: haciendo referencia al hash de bloque o haciendo referencia a la altura del bloque. Cada bloque posterior que se añade «encima» de ese primer bloque está en una posición «superior» en la cadena de bloques, como cajas apiladas una encima de la otra. El 1 de enero de 2014 la altura del bloque era 278000 aproximadamente, lo que significa que había 278000 bloques apilados en la parte superior del primer bloque creado en enero de 2009.

A diferencia del hash de bloque, la altura del bloque no es un identificador único. Aunque cada bloque siempre tendrá una altura de bloque específica e invariante, lo contrario no es cierto, ya que la altura del bloque no siempre identifica a un solo bloque. Dos o más bloques que compiten por la misma posición en la cadena de bloques podrían tener la misma altura del bloque. Este escenario se discute en detalle en la sección (ver apartado sobre minería). Además, la altura del bloque no forma parte de la estructura de datos del bloque; no se almacena dentro del bloque. Cada nodo identifica dinámicamente la posición de un bloque (altura) en la cadena de bloques cuando se recibe desde la red bitcoin. La altura del bloque también podría almacenarse como metadatos en una tabla indexada de base de datos para recuperarlo más rápidamente.

El hash de bloque de un bloque siempre identifica un bloque de forma única. Un bloque también tiene siempre una altura del bloque específica. Sin embargo, no siempre una altura del bloque concreta identifica a un único bloque. Más bien, dos o más bloques pueden competir por una misma posición en la cadena de bloques.

Ir a la siguiente página

Report Page