¿Los grupos distribuyen "trabajos" a los mineros en función de las soluciones "fallidas" que ya se han enviado?

Mi pregunta es la siguiente: ¿Cómo distribuye exactamente el protocolo de estrato el "trabajo" a los mineros? Más específicamente, dado que la minería se puede comparar (en muchos aspectos) con la "fuerza bruta" de un hash criptográfico (es decir, hacer hash de entradas aleatorias hasta que, por suerte, una entrada aleatoria coincida con una salida deseada), ¿no tendría sentido hacer un seguimiento de ¿Soluciones potenciales enviadas y confirmadas como inválidas para un bloque en particular, y de alguna manera comunicar eso a los mineros para que no se haga el mismo trabajo una y otra vez?

Me doy cuenta de que esto requeriría una gran cantidad de gastos generales, pero parece que vale la pena. ¿Existe algún mecanismo para garantizar que dos mineros independientes no pierdan el tiempo trabajando en los mismos insumos? ¿Podría tener efecto enviar una semilla diferente para la generación de números aleatorios a cada minero al comienzo de una nueva ronda de minería? He leído descripciones simplistas de la minería como simplemente incrementar el nonce hasta que se encuentra una solución, pero también he leído explicaciones mucho más detalladas que implicarían mucho más. Incluso si solo se cambia el nonce en la entrada, el grupo aún necesitaría asignar a cada minero un nonce único para probar después de cada envío, ¿no?

Como pregunta final, semi-no relacionada, con respecto a las implicaciones de almacenar soluciones: digamos que un grupo almacenó todas las soluciones que había recibido, considerando el tamaño masivo de la red bitcoin, ¿no se convertiría finalmente en una base de datos estadísticamente significativa (en términos de usabilidad)? de colisiones sha256? Y eventualmente, ¿podrían recopilarse suficientes datos para llegar a una derivación de SHA256? Como mínimo, ¿podría un grupo con intenciones maliciosas desviar temporalmente el poder de cómputo de los mineros desprevenidos para descifrar firmas TLS basadas en SHA256 o claves públicas PGP? Especialmente un grupo que también controlaba el hardware y el software en la mayoría de sus dispositivos (por ejemplo, Antpool).

El mismo trabajo nunca se entrega dos veces. Tampoco es necesario realizar un seguimiento, ya que hay un espacio infinito de bloques candidatos para elegir.

Respuestas (1)

He leído descripciones simplistas de la minería como simplemente incrementar el nonce hasta que se encuentra una solución, pero también he leído explicaciones mucho más detalladas que implicarían mucho más. Incluso si solo se cambia el nonce en la entrada, el grupo aún necesitaría asignar a cada minero un nonce único para probar después de cada envío, ¿no?

Los mineros cambian más que solo el nonce, y es este hecho lo que permite que un pool de minería asegure que dos mineros no produzcan el mismo trabajo dos veces.

Debido a que la minería siempre involucra las transacciones utilizadas en el bloque, cambiar esas transacciones afectará la raíz merkle y, por lo tanto, el resultado. Una de esas transacciones es la transacción de base de monedas, que es algo sobre lo que los mineros tienen control. En particular, el script de entrada para la entrada de la transacción coinbase puede contener hasta 100 bytes de datos arbitrarios. Entonces, los mineros usarán este espacio como un nonce extra (conocido como extranonce). También tendrán un nonce allí para producir nuevas transacciones de base de monedas que les permitan producir diferentes raíces de merkle y, por lo tanto, diferentes encabezados de bloque. El extranonce permite a los mineros tener más nonces que solo el nonce de 32 bits en el encabezado del bloque.

Los pools de minería hacen uso de esta extranoncia para garantizar un trabajo único. Le darán a un minero parte de un extranonce (por ejemplo, la primera mitad). Luego, el minero puede usar el resto de la extranoncia como una extranoncia para sí mismo. Esto permite que los mineros aún tengan un gran espacio de búsqueda para que no estén constantemente pidiendo más trabajo al grupo. Al dar a los mineros diferentes mitades extranonce, el grupo puede estar seguro de que dos mineros no harán hash de lo mismo varias veces.

Digamos que un grupo almacenó todas las soluciones que había recibido, considerando el tamaño masivo de la red bitcoin, ¿no se convertiría eventualmente en una base de datos estadísticamente significativa (en términos de usabilidad) de colisiones sha256?

Eventualmente, sí. Pero va a pasar mucho tiempo antes de que eso suceda. Toda la red de Bitcoin ha hecho ~2^90 hashes en total. Sin embargo, para llegar al 50 % de probabilidad de colisión, necesita ~2^128 hashes. 2^90 es 1/274877906944 de 2^128. Entonces, la cantidad de tiempo para llegar a 2^128 hashes es muchas veces la cantidad de años que el universo ha existido. Entonces, en teoría, sí, podría haber suficientes hashes calculados para encontrar una colisión por pura fuerza bruta. Pero para todos los efectos, no va a suceder.