Genesis Block es el bloque inicial fijado para el mainnet de Bitcoin. Su cabecera está fechada el 3 de enero de 2009. Contiene una transacción que crea una salida de 50 BTC con tratamiento especial y que no puede gastarse.
Genesis no tiene bloque anterior: el campo correspondiente de la cabecera es cero. Bitcoin Core construye sus datos a partir de los parámetros de red y comprueba el hash esperado. Los nodos no comienzan con un bloque arbitrario suministrado por otro participante. El bloque de altura 1 referencia el hash de genesis; cambiar el inicio produciría otra historia. [Bitcoin Core v29.0 — chain parameters]
La hora de la cabecera es 1231006505: 3 de enero de 2009 a las 18:15:05 UTC. Es un valor introducido por el creador del bloque, no un registro independiente del final de la minería. El texto periodístico ayuda a situar su creación históricamente, pero no prueba por sí solo la hora exacta ni la identidad civil del autor. [Bitcoin Core v29.0 — chain parameters] [Bitcoin Developer Reference — Block Chain]
La entrada de la única transacción contiene el texto inglés de un titular de The Times sobre un posible segundo rescate bancario inminente. El mensaje pertenece a los datos de la transacción, no es una anotación del explorador. Leerlo como crítica de los rescates interpreta la elección del texto; el protocolo no deriva reglas políticas de él. [Bitcoin Core v29.0 — chain parameters]
Al conectar genesis, Bitcoin Core omite conectar sus transacciones, por lo que la salida original no entra en el conjunto UTXO. No es la espera normal de maduración de una recompensa minera y más confirmaciones no la desbloquean. Ni siquiera conocer la clave privada correspondiente crearía la salida gastable que falta. [Bitcoin Core v29.0 — genesis validation exception]
Un explorador puede mostrar pagos posteriores a una dirección asociada con genesis. No son la salida original del bloque 0: tienen sus propios identificadores de transacción y condiciones de gasto. La omisión especial de genesis no se les aplica automáticamente. El saldo de una dirección no debe confundirse con la posibilidad de gastar los 50 BTC originales. [Bitcoin Core v29.0 — genesis validation exception] [Bitcoin Developer Reference — Block Chain]
En un nodo propio de mainnet, getblockhash 0 devuelve un identificador que empieza por 000000000019d668. getblock con ese hash y nivel de detalle 2 muestra el bloque y su transacción decodificada. Los datos pueden compararse con los parámetros de Bitcoin Core; una captura del explorador no sustituye su comprobación. [Bitcoin Core — getblockhash RPC] [Bitcoin Core — getblock RPC]
Las redes de prueba y regtest tienen parámetros propios y hashes de genesis distintos. Antes de comparar hay que comprobar la red, no solo la altura 0. Un genesis coincidente establece un inicio común, pero no prueba por sí solo la validez de todos los bloques siguientes, la seguridad de una cartera o el control actual de claves. [Bitcoin Core v29.0 — chain parameters]
Para obtener la imagen más completa, lee esta entrada junto con Bitcoin, Satoshi Nakamoto, Bitcoin Whitepaper, Subsidio de bloque, Timechain. También enlazan con esta entrada Bitcoin, Satoshi Nakamoto, Timechain, Subsidio de bloque.