¿Qué significa nonce?

Estoy tratando de aprender cómo funcionan las litecoins (y aprender un nuevo lenguaje de programación al mismo tiempo escribiendo un pequeño minero de mierda).

Estoy atascado con getdata. Aquí http://litecoin.info/wiki/Scrypt dice que los datos tienen 160 caracteres. Pero no lo es. Es un poco más largo que eso.

Entonces mis preguntas son:

  • 1.) ¿Qué es noncey cómo lo uso?
  • 2.) ¿Qué es bits?
  • 3.) ¿Qué son todos los 0 después del bits.

EDITAR: Ok, creo que tengo que usar solo los primeros 160 caracteres datae ignorar el resto. ¿Correcto?

Respuestas (1)

Un nonce es solo un valor que sigues cambiando con la esperanza de que después de que hash todos los datos, el hash sea menor que el valor objetivo. Consulte https://en.bitcoin.it/wiki/Block_hashing_algorithm (litecoin es similar, solo usa scrypt en lugar de la función hash sha256).

También vale la pena señalar que nonce es un término general en criptografía, que se refiere a cualquier número o cadena de bits que se usa solo una vez. La palabra "nonce" todavía se usa fuera de los EE. UU. como una palabra simple en inglés que significa "tiempo". Por supuesto, en ciertas partes del mundo también es una jerga para un pedófilo, así que tal vez sea mejor si dejamos la etimología fuera de este...
De acuerdo, cuando trato de resolver un bloque, uso los primeros 160 caracteres hexadecimales de los datos en getdata y luego hago que el trabajador intente resolverlo haciendo un hash de scrypt. Entonces, ¿mi nonce comienza con 1 y sube en uno hasta que enriquezco el valor especificado en bits? Hash la versión little endian del bloque anterior hash+merkleroot+timestamp+nonce? Corrígeme si me equivoco, solo estoy tratando de averiguar cómo funciona esto.