¿Un nuevo bloque incluye necesariamente todas las transacciones que ocurrieron antes de su generación? ¿Qué pasa con la latencia de la red?

Leí ¿Qué es exactamente la Minería? y ¿Qué están resolviendo realmente los mineros de bitcoin? , pero me quedé pensando: ¿Qué sucede si entra una nueva transacción durante la minería? Para responder a eso, encontré ¿Afectan las transacciones el descubrimiento de un bloque? , que, si entiendo correctamente, dice que la minería debe "comenzar de nuevo" (pero las posibilidades de encontrar el "nonce" en el primer intento son casi las mismas que en cualquier intento posterior, por lo que no hay "pérdida de trabajo").

Pero, ¿qué pasa con la latencia de la red? Debe tomar una cantidad finita de tiempo para que una nueva transacción llegue a los mineros, entonces, ¿qué sucede si un minero resuelve un bloque, pero luego recibe una transacción con marca de tiempo antes de que se resolviera el bloque?

Respuestas (2)

Los mineros tienen total libertad para elegir qué transacciones incluirán en sus bloques. La mayoría de los mineros incluirán cualquier transacción que les llegue (suponiendo que incluya una tarifa adecuada), pero nada los obliga a hacerlo.

Pero si un minero decide, por cualquier motivo, omitir una transacción en particular, o si se omite por un accidente de tiempo, no se produce ningún daño permanente. Otro minero puede incluir esa transacción en un bloque posterior sin problema. Las transacciones ni siquiera tienen una marca de tiempo, por lo que no es un problema si lleva mucho tiempo (aparte de las molestias para las partes involucradas). (Blockchain.info y sus similares pueden registrar la hora en que vieron por primera vez la transacción en la red, pero esa marca de tiempo no es parte de la transacción en sí, que yo sepa).

Ya veo, gracias. Sin embargo, una pregunta de seguimiento para asegurarme de que entiendo esto. ¿Significa eso que un minero puede, teóricamente, resolver un bloque sin incluir nuevas transacciones? Es decir, ¿el mismo conjunto de transacciones que el bloque anterior? (Según tengo entendido, el nuevo bloque debe incluir el hash del bloque anterior, por lo que es un problema igual de difícil). Si es así, la única razón por la que esto no sucede es que los mineros no cobrarían tarifas de transacción al hacerlo. ?
@acheong: Sí, de hecho, un bloque sin transacciones sigue siendo válido. Hubo una pregunta anterior que abordaba esto, pero no puedo encontrarla convenientemente en este momento.

Depende de los grupos de minería individuales decidir qué tan rápido incluir las transacciones recién recibidas. No hay reglas estrictas aquí y los retrasos de unos pocos minutos suelen ser aceptables. Las transacciones con tarifas más altas pueden alentar a los mineros a incluirlas en un bloque lo antes posible.

Entonces, ¿un bloque generado a las 09:53:28 sigue siendo válido incluso si no incluye una transacción que se realizó a las 09:53:27?
Sí. De hecho, los mineros no tienen la obligación de incluir ninguna transacción antes de una "fecha límite"; solo se hace en base al mejor esfuerzo. Es perfectamente aceptable que un grupo de minería agregue nuevas transacciones en una cola y solo las incluya, por ejemplo, cada 5 minutos.
Si hubiera una manera de garantizar que todos estuvieran de acuerdo cuando se realizó una transacción y la vieran cuando tuvieran que decidir si un bloque era válido, no habría necesidad de minar.