Al calcular el hash, ¿necesita algo después de la cantidad de bits de dificultad?

Voy a arruinar mucho la terminología aquí. Estoy tratando de entender el algoritmo de Bitcoin y quería usar este minero JS: https://github.com/howardchung/jsminer . Específicamente, estoy tratando de entender cómo construir los datos que alguien intenta hacer hash. Intentan hacer esto en el minero JS de la siguiente manera

    var header = version + prevhash + merkle_root + ntime + nbits + '00000000' + '000000800000000000000000000000000000000000000000000000000000000000000000000000000000000080020000';
    curr_block.data = header;

Estoy siguiendo la mayor parte de esto, usando la wiki de Bitcoin como referencia, pero lo que no puedo entender en absoluto es cuáles son estas dos últimas constantes numéricas: '00000000' y la más grande que comienza con "0000008". Los he visto aparecer en otros ejemplos, pero no puedo entender por qué son necesarios o si estos son valores codificados en el minero JS que no deberían estar allí en la vida real. Cualquier ayuda es apreciada.

Respuestas (1)

El primero 00000000es por el momento. El nonce se cambia para obtener un encabezado de bloque diferente sin volver a seleccionar transacciones. Es lo que se usa principalmente para encontrar un hash de bloque válido.

La cadena larga de bytes que comienza con 0000008es el relleno SHA-256. En realidad, no es parte del encabezado del bloque y lo que sea que esté haciendo el hash SHA-256 debería descubrir y agregar este relleno por usted. Es parte del paso de preprocesamiento para SHA-256.

Sí, saqué este fragmento de la sección del código donde están haciendo ese preprocesamiento. Dado que la cadena que comienza con "0000008" es un relleno, ¿puede ser cualquier cosa? ¿Tiene que ser esa secuencia específica?
Sí. El relleno es fijo y debe ser el mismo para todos los bloques. Realmente debería ser calculado dinámicamente por la función SHA-256 en lugar de algo que está codificando de forma rígida.
Para aclarar su "Sí", ¿quiere decir "Sí, puede ser cualquier cosa" o "sí, debe ser esa secuencia específica"?
Sí, debe ser esa secuencia específica.