¿Qué significa el término "Cadena más larga", ya que solo existe una cadena de bloques "correcta"? ¿Cómo otra cadena más larga invalidaría la cadena 'correcta'?
El sistema de cadena de bloques de Bitcoin es en realidad dos sistemas bastante separados, y se confunden fácilmente. El primero es el árbol de bloques y el segundo es la cadena activa .
El árbol de bloques consta de todos los bloques válidos cuya ascendencia completa se conoce, hasta el bloque de génesis. Las reglas de validez incluyen no duplicar gastos, firmas válidas, no introducir más moneda de la permitida,... Estas son las reglas de la red, y cada nodo completo de Bitcoin las verifica.
La cadena activa es un camino desde el bloque de génesis en la parte superior hasta algún nodo hoja en la parte inferior del árbol de bloques. Cada uno de esos caminos es una opción válida, pero se espera que los nodos elijan el que tenga más "trabajo" que conozcan (donde el trabajo se define vagamente como la suma de las dificultades). La relatividad y las restricciones tecnológicas nos impiden realizar una comunicación instantánea en todo el mundo, por lo que no se puede esperar que dos nodos elijan la misma cadena que el activo. Esto no es un problema: el mecanismo de minería se asegura de que la posibilidad de que dos nodos no estén de acuerdo sobre los bloques en el pasado disminuya exponencialmente a medida que son más antiguos.
Entonces no, no hay una "cadena derecha", hay muchas. Los nodos eligen por sí mismos, pero el sistema está diseñado para garantizar que el consenso surja rápidamente.
Las reglas en la práctica son las siguientes: cuando llega un nuevo bloque y extiende la cadena activa anterior, simplemente lo agregamos a la cadena activa. Si no, depende de si la rama que extiende ahora tiene más trabajo que la rama actualmente activa. Si no, guardamos el bloque y paramos. Si tiene más trabajo, hacemos una "reorganización": desactivamos bloques de la rama anterior y activamos bloques de la nueva rama.
Imagine que la cadena de bloques tiene 210000 bloques de largo y DOS mineros encuentran bloques válidos con unos pocos segundos de diferencia y los transmiten a la red.
Esto es perfectamente normal ya que la red Bitcoin es global y de igual a igual.
Ahora tiene dos cadenas, cada una de longitud 210001. Ninguna de estas es más larga que la otra. Algunos nodos bitcoind verán el bloque del primer minero y algunos nodos bitcoind verán el segundo.
Temporalmente, tiene dos bifurcaciones de la cadena de bloques, cada una de 210001 bloques de longitud. Son idénticos para los bloques 210000, pero el 210001 es diferente en las dos horquillas.
Algún tiempo después, otro minero encuentra otro bloque válido, el bloque 210002nd, y se adjuntará exactamente a una de las bifurcaciones.
Esta cadena es ahora la más larga con 210002 bloques y se convierte en la cadena más larga. Se convierte en la cadena de bloques "definitiva".
(Las transacciones en la bifurcación alternativa no desaparecen, simplemente se vuelven a colocar en el grupo de transacciones no confirmadas y los mineros las colocarán en un bloque posterior).
Nur
pieter wuille
Daira Hopwood
Chan Ho Suh