¿Por qué la dificultad se mide en los ceros iniciales de un hash?

Entiendo cómo generar un hash SHA-256 que contenga cualquier secuencia específica requiere muchas suposiciones y comprobaciones. Cuanto más larga sea la secuencia especificada, más raramente aparecerá.

Y entiendo cómo insertar nonces aleatorios en un bloque hasta que su hash comience con un cierto número de 0s es un proceso computacionalmente costoso y, en última instancia, aleatorio, que demuestra la prueba del trabajo.

Lo que me pregunto es: ¿por qué ceros y por qué liderar ?

¿Podría la minería funcionar igual de factible si el desafío fuera producir un hash con, por ejemplo, termina en un cierto número de Fs, o si los dígitos 314159265358979...comienzan en el índice 32?

¿O hay una razón técnica por la cual el objetivo de los mineros es producir un hash que comience con 0s, y no cualquier otro carácter en cualquier otra ubicación del hash?

Respuestas (2)

Los "ceros iniciales" son una simplificación. La dificultad está codificada como un objetivo que es esencialmente un número de 256 bits. Dado que SHA-256 produce hash de bloque, también son una cadena de 256 bits. Si el hash de un candidato a bloque interpretado como un número es numéricamente más pequeño que el objetivo, el candidato a bloque es un bloque válido.

¡Sensible! Entonces, si sé que un objetivo tiene nceros iniciales, eso es una forma abreviada de decir que el objetivo específico real se encuentra en algún lugar entre [ 16^(63-n), 16^(64-n) ), ¿sí?
Habría dicho [ 2^(255-n)-1, 2^(256-n)-1 ), pero además de eso, sí.

Los ceros iniciales o finales funcionarán tan bien como los ceros iniciales o finales, parece una elección aleatoria de cuatro casos equivalentes.

Comenzar el índice desde el punto medio podría limitar ese valor de dureza máxima de la minería, a menos que se usen algunos cambios de bits sofisticados para superar el límite, lo que puede ser un poco incómodo para soportar en el futuro. Los patrones no regulares, como las constantes matemáticas, pueden agregar aún más dolor para algunos tipos de desarrolladores y no serán obvios en absoluto al mirar la cadena de bits de la suma hash.