¿Cómo se determinaron 59 días con 1 TH/seg de "Mastering Bitcoin"?

En Mastering Bitcoin en la sección sobre Dificultad Bits, Andreas señala:

Esto significa que un bloque válido para la altura 277,316 es aquel que tiene un hash de encabezado de bloque menor que el objetivo. En binario, ese número tendría más de los primeros 60 bits establecidos en cero. Con este nivel de dificultad, un solo minero que procese 1 billón de hashes por segundo (1 tera-hash por segundo o 1 TH/seg) solo encontraría una solución una vez cada 8496 bloques o una vez cada 59 días, en promedio.

¿Cómo se calcularon 59 días?

2 ^ 60 (1.15 x 10 ^ 18) sería la cantidad de valores posibles para recorrer y 1 TH / s = 1 x 10 ^ 12 intentos cada segundo, pero ¿qué me estoy perdiendo?

También recibo 13 días esperados, tal vez debería escribir un correo electrónico a Andreas o abrir un problema en GitHub .
@Murch El error es que el autor menciona los más de 60 bits de ceros iniciales al pasar, no como información que define el problema. No es un límite muy estrecho. Ver mi respuesta para más detalles.

Respuestas (2)

Hay 2^256 hashes posibles y su fuente proporciona un valor objetivo de 238348*2^176, lo que requiere más de 60 bits de ceros a la izquierda (61 de hecho, más el requisito un poco más estricto de que un hash válido debe ser menor que el valor objetivo y no comenzar simplemente con el mismo número de ceros a la izquierda). De hecho, la fracción de hashes aceptables de todos los hashes posibles es 238348*2^-80. Multiplicado con 10^12 hash probados por segundo, multiplicado con 24*60*60 segundos por día, obtiene una probabilidad de encontrar un hash válido de aproximadamente 1/58,70 por día, o (como recíproco) 58,70 días por hash válido en promedio .

Usted pregunta cómo se calculó 8496. Observo que 8496 = 59 * 24 * 6, por lo que suponiendo que redondea exactamente 59 días por hash válido y usa el objetivo nominal de tener un bloque nuevo registrado en la cadena de bloques cada 10 minutos (por lo tanto, 24 * 6 por día), luego con un objetivo constante y de estado estacionario que de hecho esperaría tener suerte, en promedio, una vez cada 8496 bloques al encontrar un bloque válido usted mismo. Obviamente, hay un problema con la precisión indicada; según mi cálculo, incluso el redondeo a 8500 bloques sería apenas correcto.

Gracias por señalar el valor objetivo de 238348*2^176. No había considerado eso. Y puedo derivar 59 días desde el punto de partida de 238348*2^-80. Sin embargo, ¿por qué es una fracción? Si 2 ^ 256 = valores máximos posibles, y el objetivo es 238 348 * 2 ^ 176, ¿no sería la diferencia la cantidad de valores posibles que tendría que recorrer? ¿O acabo de reprobar Matemáticas 101?
Dado que efectivamente no puede revertir la función hash (¡ese es el punto!), solo puede generar hashes esencialmente aleatorios, de los cuales hay 2 ^ 256. Solo 238348*2^176 son valores hash válidos. Entonces, la fracción de estos dos números, que también es la probabilidad de que cualquier hash generado sea válido, es 238348*2^176 / 2^256 = 238348*2^-80. Su recíproco es el número típico de intentos que tiene que, en sus palabras, "recorrer" (¡no se trata de una repetición real!).
¡Entiendo! Mi brecha no comprendía completamente el objetivo. Como usted indica, los hashes válidos van desde 1-> 238348 * 2 ^ 176. es decir, cualquier cosa en ese rango dará como resultado al menos 60 ceros a la izquierda. Por lo tanto, las posibilidades son de hecho 238348*2^176/2^256. Luego puedes multiplicar por velocidad para obtener tiempo. Para ayudar a los demás, es como lanzar un dado con un objetivo de 2, lo que significa lanzar cualquier número menor que 2. Las posibilidades son 2/6. (# de posibilidades/rango total de posibilidades).

Parece que primero calculó 59 días, usando el método que mencionas. Y luego, por alguna razón, 59 * 6 * 24 (1 bloque cada diez minutos) para llegar a 8496.

Estoy de acuerdo en que confunde más de lo que agrega.

¿Sabrías cómo se calcularon 59 días? Según mis cálculos, a 1 TH/s, se necesitarían 1 152 921 segundos para probar todos los valores posibles. es decir, 13 días.