Nonce
Un nonce —abreviatura de «number used once» (número usado una vez)— es un valor que se incluye en los datos precisamente para poder variarlos u ordenarlos, y en las blockchains aparece en dos lugares distintos que los principiantes suelen confundir. En la minería de proof of work, el nonce es un campo de la cabecera del bloque que los mineros cambian una y otra vez, volviendo a calcular el hash del bloque cada vez, hasta que el hash resultante cae por debajo del objetivo de dificultad. El nonce en sí no tiene sentido; existe únicamente para darles a los mineros algo que variar. Por ejemplo, un minero de Bitcoin puede recorrer miles de millones de valores de nonce por segundo y, cuando se agotan los demás campos de la cabecera del bloque, también ajusta un nonce adicional en la transacción coinbase para seguir buscando.
El segundo uso es el nonce de cuenta en cadenas como Ethereum: un contador asociado a cada cuenta que se incrementa con cada transacción enviada. Garantiza que las transacciones se ejecuten en orden e impide los ataques de repetición (replay attacks): sin él, un mensaje firmado «paga 1 ETH a Alice» podría retransmitirse y ejecutarse repetidamente. Si envías la transacción con nonce 7 con una comisión baja y se atasca, las transacciones 8 y 9 esperan detrás de ella, y por eso las billeteras te permiten «reemplazar» una transacción atascada reenviando el nonce 7 con una comisión más alta.
Un error común es creer que estos dos nonces son el mismo mecanismo; solo comparten el nombre: uno es una variable de búsqueda de la minería y el otro, un número de secuencia contra la repetición.