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:
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.
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.
david schwartz