El ‘number that can only used once’, (número que solo puedes usar una vez) también conocido como nonce, es un número arbitrario que se emplea en criptografía dentro de los denominados protocolos de autenticación.

En una red blockchain basada en proof-of-work (prueba de trabajo) el nonce funciona en combinación con el hash como un elemento de control para evitar la manipulación de la información de los bloques.

Este número aleatorio garantiza que los hash antiguos no se pueden volver a utilizar en lo que se denominan ataques de repetición.

En una línea, un nonce en criptografía es:

Un número aleatorio usado una sola vez destinado a la autenticación de transferencia de datos entre dos o más partes.

Normalmente el nonce implementa también un timestamp o marca de tiempo.

Se podría añadir también un cliente nonce o ‘cnonce’, lo cual permitirá mejorar la seguridad implementando la autenticación de acceso.

Se debe garantizar que el nonce se utiliza una sola vez, por lo tanto se le debe añadir una variante de tiempo que impida la repetición.

Para garantizar eso también se puede generar de forma aleatoria un número suficiente de bits que reduzca la probabilidad (a un nivel prácticamente despreciable) de que no salga un valor generado previamente.

Esto añade seguridad y provoca que cualquier cambio dentro del bloque, sea cual sea, se convierta en imposible ya que la alteración de cualquier elemento dentro de un bloque altera todo el hash y toda la estructura del bloque.

El cálculo del nonce se realiza de manera forzada, o lo que es lo mismo: se requieren de grandes cantidades de recursos de cómputo y también de tiempo, por lo que conseguir este valor se necesita realizar una prueba de trabajo o PoW.

Es imposible predecir la combinación de bits, que normalmente es de 32 bits y que dará como resultado un hash correcto.

¿Te resultó útil este artículo?
Puntuación media: 3.4
➜ ¡Comparte el conocimiento y promueve la revolución descentralizada!