Laymans adivina para determinar cuántos hashes se deben calcular para encontrar un valor específico

Tengo una pregunta sobre bitcoin, digamos que la salida es uniformemente aleatoria y que tiene una longitud de 256 bits. La salida de la función hash y=H(t) comienza con 25 ceros. ¿Cuántas veces habría que llamar a la función hash para obtener algo que comience con 25 ceros?

En segundo lugar, ¿cómo se verifica la solución y cuántos hashes se intentarían para resolverla?

¿Los "ceros" significan cero bits o cero dígitos hexadecimales (que serían 100 bits)?
cero bits binarios como se indica.

Respuestas (1)

Es bastante simple. Dado que los valores hash se distribuyen uniformemente, 25 ceros es tan probable como cualquier otro valor posible para los primeros 25 dígitos hexadecimales. Hay 16 valores posibles para cada dígito hexadecimal, por lo que el número de combinaciones posibles es 16^25, o aproximadamente 1,2676506×10 30 . Esto también significa que, en promedio, uno de cada 1,2676506 × 10 30 hashes comenzará con 25 dígitos cero hexadecimales.

Para verificar la solución, solo calcula el hash una vez y verifica si comienza con la cantidad requerida de ceros. Entonces, es 10 30 veces más fácil verificar el hash que encontrarlo.

Debo reafirmar mi pregunta ya que parece que podría no estar completa. Si la salida es de 256 bits, sería binario {0,1} y no hexadecimal, ¿correcto? Si asumo lo último, entonces habría 2^25 hashes posibles que comienzan con veinticinco ceros. ¿Cuál sería aproximadamente el número de hashes que necesitaría calcular para encontrar uno que satisfaga esto? (2^25)/(2^256)???
Además de la confusión de bits versus dígitos hexadecimales, ¿parece que 25 se convirtió en 15 en algún lugar a lo largo de la línea?
Si está buscando 25 bits cero, sería (2^25). El hecho de que haya 256 bits en total es irrelevante.