Saltar al contenido

Qué es un Nonce

Qué es un Nonce

¿Qué es un Nonce?

El “uso único” de un bloque Bitcoin es un campo de 32 bits (4 bytes), cuyo valor se establece de forma que el hash del bloque contenga una cadena de ceros. El resto de los campos no se pueden modificar porque tienen un significado definido.

Cualquier cambio en el bloque de datos (como el uso único) hará que el bloque de hash sea completamente diferente. Dado que es imposible predecir qué combinación de bits dará como resultado el hash correcto, se están intentando muchos tipos diferentes de hash y se vuelve a calcular el hash para cada valor hasta un hash que contenga el número de bits necesario para que sea cero. Dado que este cálculo iterativo requiere tiempo y recursos, la presentación del bloque con el valor correcto de nonce constituye una prueba de trabajo.

Qué es un Nonce

En una línea, una encriptación es una encriptación:

  1. Un número aleatorio único destinado a la autenticación de la transferencia de datos entre dos o más partes.
  2. Normalmente, nonce también implementa una marca de tiempo o una marca de tiempo.
  3. También puede añadir un cliente de nonce o’cnonce’, que mejorará la seguridad al implementar la autenticación de acceso.
  4. Debe asegurarse que el nonce se utilice sólo una vez, por lo que debe añadirse una variante temporal para evitar la repetición.
  5. Para asegurarse de que también puede generar aleatoriamente un número suficiente de bits que reduzca la probabilidad (a un nivel insignificante) que no deje un valor generado previamente.

Esto añade seguridad y hace que todos los cambios dentro del bloque, sean los que sean, sean imposibles, ya que al cambiar cualquier elemento dentro de un bloque se modifica todo el hash y la estructura del bloque.

El cálculo de la diferencia se hace por la fuerza, o lo que es lo mismo: requieren grandes cantidades de recursos y tiempo de cálculo, para obtener este valor es necesario realizar un trabajo de prueba o PoW.

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

Qué es un Nonce

¿Cómo crear un nonce?

Algunas descripciones nos dicen que es un número aleatorio o pseudo-aleatorio, ya que para el usuario parece ser totalmente aleatorio, pero en realidad puede ser recreado por nosotros de nuevo. Por lo tanto, si se puede recrear, es posible determinar lo que hemos creado, siendo esto una capa extra de seguridad. Como mínimo, se debe construir una unidad con los siguientes valores:

  1. Nombre de la acción
  2. Un valor único para el elemento que inicia la acción (puede no ser posible en ciertas acciones).
  3. Un valor único para el usuario actual.
  4. La marca de tiempo actual.
  5. Sal, cuyo valor es único para su aplicación.