Nonce es la abreviatura de “Number used once”. En criptografía y protocolos de comunicación, hace referencia a un número aleatorio o pseudoaleatorio generado para asegurar la unicidad en las comunicaciones. Los atributos esenciales del nonce son:
• Unicidad: como indica su nombre, este número se emplea una sola vez en una comunicación cifrada concreta y no se reutiliza.
• Imprevisibilidad: en el ámbito criptográfico, el nonce debe ser aleatorio para evitar que los atacantes puedan anticipar su valor.
En el mecanismo Proof of Work (PoW) de Bitcoin, el nonce es la única variable que los mineros pueden modificar manualmente durante el cálculo del hash. Los mineros no pueden alterar los datos de transacción; deben probar distintos valores de nonce y recalcular el hash en cada intento. Cuando un minero encuentra un nonce que genera un hash de bloque que cumple la dificultad exigida, ese nonce constituye la prueba de trabajo.
Este proceso se asemeja a comprar boletos de lotería: los datos del bloque equivalen a tu nombre y el nonce es el número aleatorio que eliges. Vas cambiando el número (nonce) hasta que ganas (alcanzas la dificultad del hash).
En Ethereum, el nonce cumple dos funciones principales, siendo la más habitual el nonce de cuenta:
La función principal del nonce es reforzar la seguridad e integridad del sistema:
• Prevención de ataques de repetición: esta es la función esencial del nonce. Un atacante puede interceptar comunicaciones legítimas e intentar reenviarlas para obtener acceso no autorizado. El nonce garantiza que, aunque se intercepte, el servidor rechace la solicitud porque el número ya ha expirado.
Es similar al número de serie de un cheque: si alguien cobra el cheque con número #001, el banco invalida ese número. Aunque se copie el cheque, no podrá cobrarse de nuevo.
• Garantía de frescura de los datos: con el uso de nonce, el destinatario puede comprobar que los datos se han generado en tiempo real y no son una repetición de información antigua. Así se evita que los atacantes usen registros de sesiones anteriores para suplantar identidades.
• Imprevisibilidad reforzada: el nonce introduce una variable en el proceso de cifrado, dificultando el análisis de patrones y la vulneración del sistema por parte de atacantes.
Según el método de generación y los requisitos de aplicación, los nonces se clasifican principalmente en dos tipos:
• Nonce aleatorio: generado mediante un generador de números pseudoaleatorios criptográficamente seguro (CSPRNG), ofrece alta entropía y máxima imprevisibilidad. Es habitual en firmas digitales y esquemas avanzados de cifrado.
• Nonce secuencial: obtenido incrementando un contador. Aunque es menos imprevisible, garantiza la unicidad absoluta y resulta adecuado para mecanismos de autenticación.
El uso de nonce abarca desde la navegación web diaria hasta transacciones con monedas digitales, pasando por protocolos de seguridad y nuevas tecnologías. Su lógica esencial siempre está centrada en la unicidad y la imprevisibilidad.
• Gestión de identidad y autenticación: en HTTP Digest Authentication, Single Sign-On (SSO) y autenticación en dos factores (2FA), los nonces validan la identidad del usuario y la autenticidad de la solicitud.
• Protocolos criptográficos y firmas digitales:
◦ Durante el handshake SSL/TLS, clientes y servidores intercambian nonces para verificar identidades.
◦ En algoritmos como AES-GCM, el nonce actúa como Initialization Vector (IV), asegurando que textos planos idénticos no generen textos cifrados idénticos.
• Blockchain y registro distribuido
Hoy en día, esta es la aplicación más relevante del nonce, resolviendo cuestiones como “quién registra las transacciones” y “el orden de las transacciones”.
Por ejemplo, en la minería Proof of Work (PoW) de Bitcoin, el nonce es un campo de 32 bits. Los mineros ajustan este número hasta que el hash del encabezado del bloque es inferior a la dificultad objetivo.
En la gestión de cuentas de Ethereum, cada cuenta mantiene un nonce incremental. Esto no solo evita ataques de repetición (duplicar transacciones), sino que permite a los usuarios “reemplazar” o “cancelar” transacciones bloqueadas enviando una nueva transacción con el mismo nonce y una tarifa superior.
Aunque nonce y hash suelen aparecer juntos en el ámbito blockchain, son conceptos fundamentalmente diferentes:
El valor hash es una “huella digital” de los datos, determinada por los datos de entrada y de tamaño fijo. El nonce, en cambio, es una variable temporal que modifica el resultado del hash.
Desde el punto de vista temporal, el hash es un identificador fijo de un conjunto de datos, mientras que el nonce se descarta tras un solo uso.
Si la generación o gestión del nonce es deficiente, los sistemas pueden enfrentarse a graves riesgos. Los ataques habituales son:
◦ Ataque por reutilización de nonce: los atacantes aprovechan nonces repetidos para vulnerar la protección criptográfica. Por ejemplo, en julio de 2021, el protocolo cross-chain Anyswap Multichain Router V3 firmó dos transacciones con el mismo valor (un componente de la firma), permitiendo a los atacantes deducir la clave privada y provocando pérdidas cercanas a 8 millones de dólares.
◦ Ataque de predicción de nonce: si el patrón de generación del nonce es predecible, los atacantes pueden manipular procesos de minería o autenticación.
◦ Ataque de fuerza bruta: los atacantes prueban exhaustivamente valores de nonce para encontrar un hash que cumpla los criterios. Por ejemplo, en 2018, Bitcoin Gold (BTG) sufrió varios ataques del 51 %. Los atacantes alquilaron una gran cantidad de potencia computacional para forzar nonces, robando finalmente 388 200 BTG y causando pérdidas de unos 18 millones de dólares.

Fuente de la captura: Bitcoin Gold Explorer
Para evitar estos ataques, los desarrolladores y proyectos deben emplear algoritmos de generación altamente aleatorios (como CSPRNG), aplicar controles estrictos de unicidad y actualizar periódicamente las librerías criptográficas.
Como elemento esencial de la tecnología criptográfica, la propiedad de “uso único” del nonce aporta seguridad robusta a las comunicaciones complejas en internet y a los registros distribuidos. Comprender e implementar correctamente los mecanismos de nonce es fundamental para garantizar la seguridad, transparencia e integridad del entorno digital.
Lecturas recomendadas:





