Dado un bloque, ¿hay una lista de todos los valores hash para todos los valores posibles de 2^32 nonce?

Estoy trabajando en un laboratorio de investigación computacional y estamos analizando Bitcoin. Estoy tratando de desarrollar una simulación de minería de Bitcoin para una arquitectura informática inexistente.

Quiero simular la extracción de un solo bloque (digamos... el bloque Satoshi) sin hacer el trabajo. Según tengo entendido, cada bloque de la cadena tiene el nonce ganador que permitió al minero extraer el bloque, pero también quiero enumerar:

  • todos los hashes perdedores
  • otros posibles ganadores que podrían haber funcionado

Parte de nuestra simulación es que las matemáticas de nuestra simulación (y la arquitectura hipotética) podrían operar en todos los hashes posibles a la vez.

Un hash de 256 bits para todos los 2^32 valores nonce[1] de un bloque tiene solo 2^(8+32) bits, o alrededor de 137,4 gigabytes.

Sé que suena como una pregunta tonta, pero ¿hay algún lugar para descargar los 137,4 gigabytes de hash para el bloque Satoshi o algún otro bloque? De lo contrario, ¿cuál es la mejor manera de generarlos? ¿Puedo elegir un antiguo minero ASIC y hacer que escriba cada hash en un disco duro?

Notas al pie:

[1] Sé que hay fuentes adicionales de variación en la lista de transacciones, el nonce de la base de monedas, la marca de tiempo, etc., pero actualmente estamos limitando el alcance de nuestra simulación solo al nonce original mientras mantenemos todo lo demás constante.

" ¿Puedo tomar un antiguo minero ASIC y hacer que escriba cada hash en un disco duro? " No. Los ASIC solo hacen exactamente lo que fueron creados para hacer y generar hashes perdidos no era para lo que fueron creados, por lo que no pueden hacer eso.

Respuestas (1)

Sé que suena como una pregunta tonta, pero ¿hay algún lugar para descargar los 137,4 gigabytes de hash para el bloque Satoshi o algún otro bloque?

No.

De lo contrario, ¿cuál es la mejor manera de generarlos?

Aquí hay un programa que hace lo que le pediste. Es una modificación del programa de minería de ejemplo de Ken Shirrif . Mina el bloque de génesis.

Produce hashes a 2 MB/s en mi computadora portátil.

¿Puedo elegir un antiguo minero ASIC y hacer que escriba cada hash en un disco duro?

Tal vez, pero en realidad no sería más rápido que hacerlo con tu CPU.

¿La minería ASIC no sería más rápida que la minería CPU porque la tarea de escribir hashes en el disco limita el proceso de E/S?
@JamesMishra Sí.