Mining Target es un umbral numérico no negativo para el hash de la cabecera al verificar la prueba de trabajo. Un objetivo válido de la red debe ser positivo y estar permitido; el hash no puede superarlo. Un objetivo menor hace más difícil la búsqueda.
Bitcoin Core v29.0 rechaza en la comprobación de trabajo un hash mayor que el objetivo derivado. La condición es hash ≤ target, no estrictamente menor. Se compara el hash numérico de toda la cabecera, no solo el nonce. [Bitcoin Core v29.0 — Proof-of-work checks]
Hashes de distinto valor pueden tener igual número de ceros iniciales. También importan los demás dígitos y su valor frente al objetivo. Los ceros ilustran la rareza, pero no sustituyen la comparación completa hash ≤ target. [Bitcoin Core v29.0 — Proof-of-work checks]
El campo nBits tiene 32 bits, mientras el objetivo se interpreta en un espacio de 256 bits. La codificación contiene exponente y coeficiente con bit de signo. Por ejemplo, 0x04123456 se decodifica como 0x12345600; ilustra el formato, no el objetivo actualmente exigido por la red. [Bitcoin Core v29.0 — Compact arithmetic]
En la cabecera de 80 bytes, nBits se serializa en cuatro bytes little-endian. El número 0x1d00ffff corresponde a ff ff 00 1d. No confundas el orden de bytes al leer datos con el orden de dígitos del número mostrado. [Bitcoin Developer Reference — Block headers and nBits]
DeriveTarget en Bitcoin Core v29.0 rechaza objetivos negativos, cero, desbordamientos y valores superiores al powLimit de la red. No basta aumentar arbitrariamente nBits. Descomprimir correctamente el formato no demuestra que el objetivo sea válido. [Bitcoin Core v29.0 — Proof-of-work checks]
La validación contextual compara nBits con GetNextWorkRequired para el bloque anterior y las reglas de la red. La discrepancia produce bad-diffbits. Ni un hash inferior a un objetivo más fácil elegido por cuenta propia justifica un nBits incorrecto. [Bitcoin Core v29.0 — Contextual and block validation]
Con un modelo de hash uniforme de 256 bits y objetivo permitido T, la probabilidad por intento es p = (T + 1) / 2^256: se aceptan los valores desde cero hasta T inclusive. Se deriva de la regla de comparación; el objetivo solo no determina el hashrate ni cuándo llegará exactamente el próximo bloque. [Bitcoin Core v29.0 — Proof-of-work checks]
Además de la cabecera, Bitcoin Core comprueba la raíz de transacciones, coinbase, límites del bloque y validez de las transacciones. Cumplir el objetivo correcto es necesario, pero no sustituye esas comprobaciones. Un hash bajo no arregla contenido inválido. [Bitcoin Core v29.0 — Contextual and block validation]
Para obtener la imagen más completa, lee esta entrada junto con Share Difficulty, Proof of Work, Nonce, Cabecera de bloque. También enlazan con esta entrada Nonce, Mining Share, Share Difficulty.