Bloque Anterior
El campo que conecta los bloques en la blockchain
El campo bloque anterior (previous block) en el encabezado del bloque contiene el hash de un bloque anterior sobre el que el bloque se construye.
Cada bloque apunta a un bloque anterior, y eso crea una cadena de bloques. O, como se conoce más comúnmente, una blockchain.
Ejemplo
Cada bloque contiene, en su encabezado, el hash del bloque anterior sobre el que se construye. Si inspeccionas bloques consecutivos en la blockchain, verás que cada uno lleva, en el encabezado, el hash del bloque justo debajo de él.
Puedes visitar todos los bloques de la blockchain empezando por la punta (el bloque más reciente) y siguiendo los campos de bloque anterior hasta llegar al fondo (el bloque génesis).
Uso
Al construir un bloque candidato, un minero coloca el hash del bloque de la punta actual de la blockchain en el campo de bloque anterior. Todos los mineros quieren extender la cadena más larga conocida, porque es la que los nodos adoptan como la versión canónica de la blockchain, y solo pueden cobrar la recompensa si el bloque llega a 100 bloques de profundidad en esa cadena.
Puedes encontrar el bloque en la punta actual de la blockchain ejecutando bitcoin-cli getbestblockhash.
Cada bloque debe construirse sobre un bloque anterior existente. Si pones en el campo de bloque anterior el hash de un bloque que no existe, el bloque será inválido y rechazado por los nodos de la red.
Propósito
¿Por qué los bloques contienen el hash de un bloque anterior?
El campo de bloque anterior es lo que conecta los bloques en la blockchain.
Un hash de bloque es una referencia única para un bloque, determinada por el contenido del bloque. Así, al incluir el hash de un bloque anterior en el encabezado, creas una cadena de datos confiable, donde cada pieza (bloque de transacciones) está ligada a la anterior.
Si intentaras modificar el contenido de un bloque más antiguo (por ejemplo, sustituyendo o quitando una transacción), eso cambiaría el hash de ese bloque, y dejaría de formar parte de la misma cadena, porque el bloque que se construyó sobre él ya no estaría referenciándolo.
Así que, básicamente, esta cadena de hashes de bloque es lo que impide que cualquiera retroceda en el tiempo y cambie la blockchain. A eso se refieren las personas cuando llaman a la blockchain un "libro mayor inmutable".
inmutable – algo inmutable nunca cambia o no puede ser cambiado.
Bloque Génesis
¿Cuál es el bloque anterior del primer bloque?
El bloque génesis es único porque su campo de bloque anterior contiene solo ceros. Esto se debe a que es el primerísimo bloque de la blockchain, así que no hay un "bloque anterior" sobre el que pueda construirse.
Ese es el único dato interesante que tengo sobre el campo de bloque anterior en el encabezado del bloque.
Recursos
- https://en.wikipedia.org/wiki/Hash_chain
- Blockchain Demo — sitio interactivo genial que muestra cómo los bloques se conectan en una blockchain mediante los hashes de bloque.