Creación de bloques mientras llegan más transacciones y mecánicas de prueba de trabajo

Tengo dificultades para comprender los detalles de cómo los mineros crean bloques mientras varios nodos reciben muchas transacciones en momentos ligeramente diferentes y qué información de estas transmisiones se combina con un nonce para encontrar el objetivo para satisfacer la prueba de trabajar.

Digamos que Alice le envía a Bob 1 BTC. Esta transacción se transmite a toda la red de mineros, quienes luego verificarán que la transacción sea correcta y procederán a intentar encontrar un nonce para crear un bloque con todas las demás transacciones que han recibido.

Sin embargo, hay muchas transmisiones de transacciones que ocurren simultáneamente. Las transacciones pueden llegar a diferentes nodos en diferentes momentos debido a la latencia. ¿Cómo sabe cada nodo individual cuántas y qué transacciones incluir en el bloque? ¿Qué sucede con las transacciones que llegan al nodo mientras se "mina" el bloque? ¿O se agregan nuevas transacciones al bloque mientras se extrae? ¿Qué datos de las transacciones se combinan con un nonce y se procesan para encontrar el objetivo?

Respuestas (1)

El minero elige qué transacciones quiere incluir en el bloque, de las que ha recibido cuando comienza a trabajar en ese bloque, sí. Una vez que comienzan a minar un bloque candidato, generalmente es ineficiente para ellos agregar más transacciones, por lo que es más probable que las transacciones recibidas durante el proceso de minería se incluyan un bloque más tarde. Una vez que se extrae el bloque, la lista de transacciones incluidas en él se transmite a través de la red para que todos los nodos puedan ver cuáles se incluyeron, solicitar las que no tienen y verificar que sea un bloque válido.

El encabezado del bloque es lo que se codifica, contiene un número de versión, la raíz Merkle de las transacciones (básicamente, un resumen criptográfico de todas ellas para confirmar cuáles están incluidas), la marca de tiempo, el objetivo de dificultad y el hash del bloque anterior. Ver: https://en.bitcoin.it/wiki/Block_hashing_algorithm

¿Es posible que una o varias transacciones puedan ser seleccionadas por diferentes mineros?
Sí, diferentes mineros pueden elegir diferentes transacciones u ordenar las transacciones de manera diferente dentro de un bloque.