¿Por qué la dificultad afecta el rango de nonce del encabezado del bloque?

La Sección 4.3.4, artículo 48 del papel amarillo establece que el nonce, n, debe ser lte 2^256/ current difficulty. El efecto de esto, suponiendo current difficultyque es < 2^256, el rango del nonce se vuelve más pequeño, lo que facilita la validación de un bloque debido a la menor cantidad de valores de nonce posibles para probar. Esto parece contrario a la intuición para el propósito de aumentar el current difficulty. ¿Me estoy perdiendo de algo?

Respuestas (2)

En esa ecuación, la fantasía nno se refiere a la nonce. Hnse refiere a nonce.

Aquí está la ecuación completa y conjunta que podría aclararlo:

ecuación


Más información sobre la dificultad:

Dada una distribución aproximadamente uniforme en el rango [0,2^64), el tiempo esperado para encontrar una solución es proporcional a la dificultad, Hd.

o dicho más francamente:

Este mecanismo impone una homeostasis en términos de tiempo entre bloques; un período más pequeño entre los dos últimos bloques da como resultado un aumento en el nivel de dificultad y, por lo tanto, se requiere un cálculo adicional, lo que alarga el próximo período probable. Por el contrario, si el período es demasiado largo, se reduce la dificultad y el tiempo esperado para el siguiente bloque.

Asi que. Menos tiempo entre bloques = más dificultad.


El PoW se evalúa como una matriz donde...

  • Primer elemento: Hn with the strikethru thingy= mix-hash para probar que dse ha utilizado un DAG ( ) correcto. Hn with the strikethru thingyes el encabezado del bloque Hpero sin los componentes nonce y mix-hash.

  • Segundo elemento: Hn(el nonce) que es un número pseudoaleatorio criptográficamente dependiente de H(nuevo encabezado de bloques) y d(DAG)

  • Tercer elemento: d= DAG actual.

En un lenguaje más comprensible, Vitalik cubrió mucho sobre la minería en esta publicación de blog .

La idea es que el minero calcule repetidamente una función pseudoaleatoria en un bloque y un nonce, probando un nonce diferente cada vez, hasta que eventualmente algún nonce produzca un resultado que comience con una gran cantidad de ceros.

Entonces... sé que esto no responde exactamente a su pregunta, pero creo que la base de su pregunta original era una suposición incorrecta, por lo que la pregunta realmente no se puede responder. (Creo. Solo estoy captando la mayor parte de esto).

Para simplificar la respuesta, usaré números decimales en lugar de números hexadecimales. Y en lugar de 2^256 en el numerador, usaré 10^10 (= 10,000,000,000).

(A) Cuando la dificultad se establece en 1,000,000, el "objetivo" es encontrar un número por debajo de 10^10/1,000,000. Esto es 10 000 000 000 / 1 000 000 = 10 000 . Tenemos que encontrar un resultado de función hash en el rango entre 0 y 10,000,000,000 que cae por debajo de 10,000.

(B) Aumentemos ahora la dificultad cien veces hasta 100.000.000. El "objetivo" es encontrar un número por debajo de 10 ^ 10 / 100,000,000. Esto es 10 000 000 000 / 100 000 000 = 100 . Ahora tenemos que encontrar un resultado de función hash en el rango entre 0 y 10,000,000,000 que cae por debajo de 100.

El nonce es un número aleatorio que se procesa con otra información de datos de bloque para generar un resultado de función hash en el rango entre 0 y 10,000,000,000.

En (A) anterior, la probabilidad de encontrar un resultado de función hash (del número aleatorio nonce + datos de bloque) por debajo del objetivo es 10,000/10,000,000,000, que es uno en un millón.

En (B) arriba con la mayor dificultad, la probabilidad de obtener un resultado de función hash (del número aleatorio nonce + datos de bloque) por debajo del objetivo es 100/10,000,000,000 que es uno en 100,000,000, o uno en cien millones.

Una mayor dificultad da como resultado una menor probabilidad de encontrar un resultado de función hash (del número aleatorio nonce + datos de bloque) que esté por debajo del objetivo.