¿Por qué los mineros no pueden superar la dificultad eligiendo un número bajo para el hash del bloque?

En términos de 'prueba de trabajo', mi entendimiento de principiante es que los mineros intentan obtener un número hexadecimal de 64 dígitos, "hash", que es menor o igual que el hash objetivo.

¿No pueden los mineros siempre estar más abajo que el objetivo ingresando "63 ceros seguidos de un 1?

Principiante aquí, me disculpo por mi comprensión simplista.

Respuestas (2)

El hash es el resultado de calcular dos rondas de SHA256 en el encabezado del bloque. Si configura el hash usted mismo, cuando otros nodos intenten verificar el hash realizando el cálculo mencionado anteriormente, no resultará (sin embargo, hay una posibilidad infinitesimal) en "63 ceros seguidos de un 1". Sugiero leer sobre funciones hash .

La única forma confiable de crear un hash válido es calcular continuamente el hash en el encabezado del bloque real, mientras se modifica el contenido del bloque para que el bloque siga siendo válido (por ejemplo, nonce, transacciones, versión del bloque, etc.), pero da muchos intentos (conjeturas) hasta que obtenga un resultado que sea válido. Básicamente es fuerza bruta, por lo que tener un hardware de minería rápido y eficiente es una ventaja.

Ver también: Algoritmo hash de bloque

Como @stewbasic señaló sucintamente en un comentario:

El minero no recoge un hash. El minero elige un encabezado, desde el cual se calcula el hash.

El hash del bloque es el resumen del hash del encabezado del bloque con SHA-256d. Este resumen debe cumplir con el requisito de dificultad cuando se interpreta como un número y, dado que es único, también se usa como identificador del bloque.

El hash no se puede elegir arbitrariamente, ya que eso requeriría que revierta una función hash. Esto contradice la propiedad de resistencia previa a la imagen de las funciones hash criptográficas que establece:

Dado un hash h , es difícil encontrar un mensaje m para el que h = hash(m) .

De hecho, el acertijo de prueba de trabajo de tratar de encontrar un bloque que tiene un prefijo específico esencialmente requiere que los mineros resuelvan un subproblema mucho más fácil: encontrar una imagen previa parcial .

En conclusión, la única forma práctica para que un minero elija un hash de bloque es encontrando un encabezado de bloque cuyo resumen cumpla con la declaración de dificultad.

No soy un programador aquí, así que estoy tratando de entender esto en términos simples. Usemos los números del 0 al 9. El hash objetivo es 6. Un minero elige el número 2, que está por debajo del hash objetivo, ¿es suficiente?
¿Dónde se rompe esta simple analogía?
Sí, cualquier número que sea más pequeño que el hash objetivo cumple con la dificultad. Pero no pueden simplemente "elegir" 2. Tienen que probar muchas plantillas de bloques hasta que encuentren una que resulte ser un hash de 2. :)
@jack para ser más explícito, el minero no elige un hash. El minero elige un encabezado, desde el cual se calcula el hash.