Hash del Bloque
La referencia única de un bloque
Un hash de bloque (o ID del bloque) es una referencia única para un bloque en la blockchain.
Cada hash de bloque es único y está determinado por el contenido del bloque. Puedes usar el hash del bloque para buscar un bloque específico en un explorador. Por ejemplo:
- Bloque 123.456:
0000000000002917ed80650c6174aac8dfc46f5fe36480aaef682ff6cd83c3ca - Bloque Génesis:
000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f
No hay nada especialmente interesante en esos hashes, ya que al final no son más que un montón de bytes con apariencia aleatoria. Sin embargo, notarás que todos los hashes de bloque empiezan con muchos ceros. Eso ocurre porque, para que un bloque sea añadido a la blockchain, el minero debe obtener un hash por debajo del valor objetivo actual, y si el hash está por debajo de ese valor, naturalmente tendrá varios ceros al inicio.
Creación
¿Cómo se crea un hash de bloque?
Un hash de bloque se crea haciendo el hash del encabezado del bloque:
Los pasos para crear un hash de bloque son:
- Construir un bloque de transacciones.
- Construir un encabezado de bloque para ese bloque.
- Hacer HASH256 del encabezado para obtener el hash del bloque. (HASH256 = SHA-256 doble: pasas el encabezado por SHA-256 y luego vuelves a pasar el resultado por SHA-256.)
Transacciones. Notarás que no estamos hasheando directamente las transacciones del bloque. Sin embargo, el encabezado contiene una raíz de Merkle, que sí es el hash de las transacciones, así que las transacciones forman parte del encabezado.
Orden de bytes. El resultado de hashear el encabezado produce un hash en orden natural. Sin embargo, al buscar bloques en un explorador, el hash aparece en orden invertido.
Uso
¿Dónde se usan los hashes de bloque en bitcoin?
- Se usan para buscar un bloque específico en la blockchain.
- Se colocan en el campo de bloque anterior del encabezado para conectar los bloques en la blockchain.
Preguntas frecuentes
¿El hash del bloque es solo bytes o es un número?
Es ambas cosas.
Todo lo que sale de la función de hash SHA-256 no es más que un montón de bytes sin significado. Pero son únicos (para ese dato específico), así que son perfectos como referencia única. Sin embargo, en bitcoin, durante la minería, esos hashes también se interpretan como números. Por ejemplo, el hash del bloque génesis, convertido de hexadecimal a decimal, es:
10628944869218562084050143519444549580389464591454674019345556079 Haciendo eso, puedes verificar si el hash del bloque está por debajo del objetivo y, si lo está, el bloque puede añadirse a la blockchain.