¿Qué es el nonce y cómo se usa en minería?

En el artículo que hablamos sobre los bloques en la tecnología Blockchain hicimos una referencia rápida a nonce y su importancia para el bloque. En el artículo de hoy miraremos qué es el nonce  y cómo se usa en un programa de minería.

¿Qué es un nonce?

“Nonce” es un acrónimo de “number used only once”, o “número usado solo una vez”, en castellano. Es un número de cuatro bits que se agrega a un bloque cifrado o encriptado en una cadena de bloques.

El número que los mineros de blockchain resuelven es el nonce. El minero recibe la recompensa del bloque cuando encuentra la solución.

El nonce y la seguridad

La seguridad de una cadena de bloques se basa en su capacidad para crear y validar “hashes”. Los “hash” son  números largos y encriptados. La función criptográfica para generar un hash produce el mismo resultado cada vez que se utilice la misma entrada, es determinista.

Además, la función genera una entrada hash, de manera eficiente, que dificulta la determinación de la entrada (seguridad). Esto significa que pequeños cambios en la entrada dan como resultado un hash diferente, creando así la red de seguridad de una cadena de bloques.

Para mantener segura la cadena de bloques, los datos de los bloques anteriores se cifran en una serie de números que es el encabezado del bloque para el siguiente bloque. El encabezado son metadatos, que contienen el número de versión de blockchain, el hash del bloque anterior, la raíz de Merkle, la marca de tiempo, el objetivo de dificultad y el nonce.

El uso del nonce

El nonce se usa para validar la información contenida en un bloque. Después de generar un número aleatorio, y agregarlo al hash del encabezado actual, el programa de minería repite el valor y compara con el hash de destino.

Si el valor cumple con los requisitos, el minero recibe el bloque, pues ha creado una solución. Si no, el nonce se incrementa en uno y el proceso empieza de nuevo.

Adivinar el nonce en el primer intento es muy poco probable. Normalmente hay que probar muchas opciones de nonce. La dificultad de los bloques se mantiene igual en toda la red. Por eso, todos los mineros tienen las mismas posibilidades de averiguar el hash correcto.

Conclusión

Cómo has podido ver, el nonce no es más que un número agregado a un bloque cifrado en una cadena de bloques. Además, en criptomoneda, los nonces se usan como el número que se usa en un hash para verificar las transacciones y otros datos contenidos en un bloque.