Si dos mineros eligieron del mempool dos conjuntos diferentes de transacciones, no dependían el uno del otro.
Entonces, ¿podrían ambos mineros extraer ambos bloques y no crear una bifurcación?
Entonces, ¿el minero 1 termina el bloque y el minero dos ve que el bloque no tiene nada que ver con su bloque, por lo que continúa extrayendo y agrega ese bloque al bloque del minero 1 después de aproximadamente un segundo?
Supongo que las bifurcaciones solo ocurren cuando ambos bloques extraídos tienen transacciones que existen en ambos bloques.
No, cada bloque debe hacer referencia a su bloque predecesor en el encabezado, y la cadena de bloques tiene solo un bloque en cada altura. Por lo tanto, el segundo minero debe modificar la plantilla de bloque con la que está minando para construir sobre el bloque recién descubierto. Necesitan actualizar el hash del bloque predecesor y la altura de la cadena de bloques en la transacción de Coinbase. De lo contrario, el bloque que encontrarían estaría compitiendo con el recién publicado para su inclusión en lugar de escribir la cadena de bloques.
El resto de la plantilla de bloque podría permanecer igual, si ninguna de las transacciones se incluyera ya en la cadena de bloques.
Sin embargo, su pregunta me parece que está pensando que la búsqueda de un bloque ha progresado. La minería es un proceso sin progreso, cada intento puede o no tener éxito de forma independiente. Por lo tanto, sería una estrategia más rentable para cada minero intentar incluir las transacciones más jugosas (por la tasa de tarifa más alta) y cambiar a una nueva plantilla de bloque cada vez que se publique un bloque con las nuevas transacciones más jugosas.
Oh, la ironía... ACABA de responder exactamente la misma pregunta en Stackoverflow. Copio la respuesta aquí:
Puedes imaginarte a dos mineros compitiendo creando bloques. Si un minero no tiene el bloque N, seguirá intentando extraer ese bloque. Si recibe el bloque número N después de haberlo extraído, el minero simplemente lo ignora, y tenemos una bifurcación temporal en la cadena de bloques con dos ramas, y el bloque N+1 tendrá dos versiones diferentes. Ahora, lo que determina qué rama sobrevive es básicamente la rama que se extrae más rápido. Una regla de consenso arbitraria es que la cadena más larga es siempre la cadena correcta. Cuando existe una cadena más larga, todos los mineros están de acuerdo en que esta cadena es la correcta.
La razón por la que esto funciona es porque la probabilidad de extraer un bloque es lo suficientemente amplia durante 10 minutos en Bitcoin (o tiempo de bloque en general).
La siguiente imagen se puede ver como la probabilidad de minar un bloque a lo largo del tiempo (en bitcoin).
Es por eso que está mal crear cadenas de bloques con muy poco tiempo. Porque si el tiempo es muy corto (como 10 segundos), habrá toneladas de bifurcaciones antes de que la cadena de bloques se estabilice.
Después de leer el comentario de pebwindkraft, se me ocurrió una respuesta.
El extracto particular "Para resolver esto, cada nodo siempre selecciona e intenta extender la cadena de bloques que representa la mayor Prueba de trabajo, también conocida como la cadena más larga o la mayor cadena de trabajo acumulada"
Si la cadena de bloques fuera actualmente:
Bloque1 -> Bloque2 -> Bloque3
Y dos mineros eligen del mempool, transacciones que no se superponen. Entonces esto causará una bifurcación en la cadena de bloques, si ambos transmiten al mismo tiempo.
Esto se debe a que, aunque la transacción no se superponga, el blockhash sería diferente para cada minero, y si el blockhash es diferente, entonces se trata de dos versiones diferentes de la cadena de bloques. Incluso si las transacciones no se superponen.
Si miner1 transmite primero, entonces miner2 tendrá que comenzar su bloque nuevamente, aunque todas las transacciones en el bloque de miner1 no coincidieron con las de miner2. Esto se debe a que tan pronto como miner1 se agrega a la cadena de bloques. La cadena se convierte en:
Bloque1 -> Bloque2 -> Bloque3->Bloque4
Donde Block4 es el bloque miner1s.
Miner2 tiene que empezar de nuevo porque en su bloque estaba usando el hash anterior de block3, ahora tiene que cambiarlo por el hash de block4.
Si cometí un error, deje un comentario en lugar de votar negativamente, ya que me gustaría saber dónde me equivoqué.
No precisamente.
dos ve que el bloque no tiene nada que ver con su bloque, por lo que continúa minando y agrega ese bloque al mío
Una vez que un minero ve la llegada de un bloque a la misma altura por la que él mismo está minando, es el final de la competencia por ese bloque. No tiene sentido continuar con la minería.
Sin embargo, en caso de que los mineros creen bloques simultáneos, las bifurcaciones ocurrirían
Supongo que las bifurcaciones solo ocurren cuando ambos bloques extraídos tienen transacciones que existen en ambos bloques.
Miner debe eliminar las transacciones del grupo de memoria que ya están presentes en el bloque recién llegado y comenzar la extracción de un bloque nuevo
pebwindkraft
pebwindkraft
kyle graham