Skip to main content

Nonce | Bitcoin Glossary | Mapping Bitcoin

Nonce

Minería

Also known as: number used once

Número que los mineros modifican para encontrar un hash de bloque que cumpla el requisito de dificultad. Parte esencial del algoritmo de prueba de trabajo.

Descripción General

El nonce ("número usado una vez") es un campo de 32 bits en la cabecera del bloque de Bitcoin que los mineros manipulan al buscar una prueba de trabajo válida. Al cambiar el nonce y recalcular el hash de la cabecera del bloque, los mineros producen diferentes salidas de hash, buscando una que caiga por debajo del objetivo de dificultad actual.

El Nonce en la Cabecera del Bloque

Cabecera de Bloque (80 bytes):
┌──────────────┬──────────────────┬──────────────┐
│ Versión (4B) │ Hash Bloque Prev │ Raíz Merkle  │
│              │    (32B)         │    (32B)     │
├──────────────┼──────────────────┼──────────────┤
│ Marca Tiempo │ Bits Dificultad  │   Nonce      │
│   (4B)       │     (4B)         │   (4B)       │
└──────────────┴──────────────────┴──────────────┘
                                      ↑
                              Los mineros varían esto

El Problema del Espacio de Nonce

El nonce es solo de 32 bits, lo que significa que proporciona 2^32 (alrededor de 4.300 millones) valores posibles. Los modernos mineros ASIC pueden agotar todo el espacio de nonce en menos de un segundo. Cuando esto ocurre, los mineros deben cambiar otros campos para obtener un nuevo conjunto de hashes a probar:

  • Marca de tiempo: Puede ajustarse dentro de un rango válido
  • Transacción coinbase: Cambiar los datos coinbase altera la raíz Merkle, produciendo un espacio de nonce completamente nuevo
  • Extra nonce: Un campo dentro de la transacción coinbase usado específicamente para este propósito

Bucle de Minería

while true:
    for nonce in 0 to 2^32 - 1:
        hash = SHA256(SHA256(cabecera_con_nonce))
        if hash < objetivo:
            return bloque  // ¡Bloque válido encontrado!
    // Espacio de nonce agotado
    modificar_extra_nonce_coinbase()
    recalcular_raiz_merkle()

Conceptos Erróneos Comunes

El nonce no es un valor secreto o criptográfico — es simplemente un contador que los mineros iteran. No hay nada especial en el nonce ganador; cualquier valor que produzca un hash por debajo del objetivo es igualmente válido. El proceso es pura fuerza bruta sin atajos matemáticos.