¿Qué es?
En criptografía, un nonce es un número que se usa una sola vez (a menudo se explica como «number used once», aunque la palabra inglesa ya existía). En la cabecera de cada bloque de Bitcoin hay un campo de 32 bits reservado para el nonce. El minero cambia este número una y otra vez, recalculando el hash de la cabecera cada vez, hasta encontrar uno que sea menor que el objetivo de dificultad actual.
¿Por qué importa?
El nonce es lo que hace que la prueba de trabajo funcione. No hay atajo para encontrar el nonce correcto: hay que probar valores uno a uno. Con 2³² posibilidades (unos 4.300 millones), los mineros modernos agotan todo el rango del nonce en fracciones de segundo, por lo que también cambian otros campos para ampliar el espacio de búsqueda: un número extra dentro de la transacción coinbase (que cambia la raíz Merkle), la hora o algunos bits de la versión.
Errores habituales
- Pensar que el nonce se calcula o se deduce (se encuentra por fuerza bruta)
- Creer que el rango de 32 bits del nonce es suficiente hoy (los ASICs lo agotan casi instantáneamente)
- Confundir el nonce del bloque con el nonce de una transacción (concepto distinto en otros protocolos)
Conceptos relacionados
Fuentes primarias
- Whitepaper de Bitcoin, sección 4
- Mastering Bitcoin, A. Antonopoulos