¿Cómo sabe cada minero cuándo crear un bloque?

He estado tratando de entender el protocolo y leyendo documentos relacionados, hay un punto en el que me quedo atascado.

Según tengo entendido (corríjame si no), cuando ocurre una transacción, se transmite a la red y algunos mineros la reciben. Cuando se alcanza un cierto número de transacciones, se empaquetan en un bloque y comienza la carrera hash.

Lo que no entiendo es; En este esquema, ¿no tienen que estar todos los mineros en perfecta coherencia de memoria y sincronización de tiempo, para que sepan cuándo se debe sellar un bloque y comenzar a iterar en busca de hashes? ¿O no necesitan minar y hacer hash del mismo bloque global, pero tienen bloques separados que luego son validados por otros mineros y las colisiones de transacciones entre bloques no importan?

Sé que entiendo mal un punto muy básico en el protocolo, pero no puedo entender qué.

Respuestas (2)

Un minero comienza a crear un nuevo bloque tan pronto como recibe un bloque válido de otro minero. Luego comienza a construir y codificar el siguiente bloque encima del bloque que acaba de recibir.

Tenías razón cuando pensabas que cada minero tiene un bloque separado del resto. No lo mire como si todos los mineros cooperaran para encontrar un hash para el mismo bloque, sino que compitieran entre sí para hacer que su propio bloque sea el siguiente en la cadena. Si encuentran un bloque válido, lo difunden y otros mineros abandonan sus esfuerzos y, en cambio, concentran su poder de hash en el siguiente bloque.

Muy bien... Entonces, por ejemplo, las transacciones a, b, c y d se enviaron al minero M1; Las transacciones c, d, e, f y g se han enviado al minero M2. Tanto M1 como M2 están en la cabeza BC1. M1 encuentra un hash legítimo y anuncia la nueva cadena de bloques BC2. Ahora, ¿qué pasa con M2? BC2 actual no contiene e, f y g. M2 podría iniciar un nuevo bloque candidato B3, pero esto hará que las transacciones c y d se dupliquen. El ex-bloque B2' de M2 ​​tampoco puede eliminarse por completo, eso haría que e, fyg desaparecieran.
@corsel: M2 genera un nuevo encabezado de bloque B4 que e,f,gsolo contiene transacciones y comienza a buscar un nonce coincidente para él.
Ah, entonces la cadena de bloques siempre está sincronizada y debe ser validada por la mayoría de la red, mientras que los candidatos de bloque son locales y están completamente a la voluntad de los mineros... Si aparece una cadena de bloques maliciosa, será probada y rechazada por otros mineros. o intentar manipular la historia mediante hash en niveles profundos falla, ya que en menos tiempo se anunciará una nueva cadena.

Parte de su concepto erróneo es este: "cuando se alcanza un cierto número de transacciones". La minería no necesita un número particular de transacciones; es legal tener un bloque sin ninguna transacción (a excepción de la transacción de recompensa del bloque "coinbase"). La "carrera de hachís" siempre está en marcha; no arranca y se detiene. Cuando un minero obtiene una nueva transacción, simplemente la incluye con las transacciones que ya tiene, genera un nuevo encabezado de bloque y continúa procesando el nuevo encabezado. No existe el requisito de que todos los mineros trabajen con el mismo conjunto de transacciones.