Cuando las personas hablan sobre posibles cambios en el funcionamiento de Bitcoin, a veces dicen que un cambio en particular puede implementarse como una bifurcación blanda. ¿Qué significa eso? ¿Cómo se compara esto con una bifurcación dura?
Una bifurcación en el desarrollo de software se refiere al evento de un proyecto independiente que se deriva de un proyecto de software. Tales bifurcaciones a veces ocurren en la esfera de código abierto, cuando hay planes/objetivos irreconciliables dentro de la comunidad de un proyecto, lo que a menudo conduce a una división en la comunidad y dos proyectos distintos a partir de entonces . En la práctica, esto toma forma en el código fuente que se copia y, en adelante, se desarrolla en una dirección diferente de forma independiente por parte de los bifurcadores. Por ejemplo, en este sentido convencional de bifurcación, Litecoin es una bifurcación de Bitcoin: Litecoin comenzó como una copia del código base de Bitcoin, pero se convirtió en un proyecto independiente (aunque aún estrechamente relacionado).
Los términos softfork y hardfork en Bitcoin describen cambios que rompen la compatibilidad en el protocolo de Bitcoin: si la comunidad se dividiera de manera irreconciliable sobre tal tema, la versión anterior y la nueva versión de Bitcoin podrían surgir como proyectos distintos a partir de entonces. Si bien ambas versiones del protocolo Bitcoin están en uso, las diferencias en la aceptación pueden causar una bifurcación de cadena de bloques duradera, es decir, dos cadenas más largas distintas que parte de la red considera válidas.
Softforks restringen las reglas de aceptación de bloques en comparación con versiones anteriores.
Las nuevas reglas permiten un subconjunto de los bloques válidos anteriores, por lo tanto, todos los bloques considerados válidos por la versión más nueva también son válidos en la versión anterior. Si al menos el 51% del poder de minería cambia a la nueva versión, el sistema se corrige automáticamente:
los bloques creados por versiones anteriores de Bitcoin Core que no son válidos según el nuevo paradigma podrían comenzar una "bifurcación de cadena de bloques solo antigua" a corto plazo. , pero eventualmente, serían superados por la bifurcación de la cadena creada bajo el nuevo paradigma, ya que el poder de hash que funciona en el antiguo paradigma sería más pequeño ("solo versiones antiguas") que en el nuevo paradigma ("aceptado por todas las versiones") .
Sin embargo, si menos del 51 % del poder de hash cambia a la nueva versión, la bifurcación de la cadena de bloques no se reparará automáticamente, ya que la cadena creada con las reglas anteriores tiene más poder de hash y es incompatible con las nuevas reglas. Esto puede ser remediado por los adoptantes de la bifurcación suave que renuncian a su cadena, o más poder de hash cambiando a la cadena de bifurcación suave. Esto último haría que la cadena de bifurcación blanda finalmente alcanzara y reorganizara la otra punta de la cadena.
Las bifurcaciones facilitan las reglas de aceptación de bloques , lo que hace que los bloques que antes no eran válidos sean válidos en la nueva versión. Obviamente, esto no es compatible con versiones anteriores, ya que las versiones anteriores no aceptarán los nuevos bloques, lo que hará que los usuarios del antiguo paradigma permanezcan en su propia cadena de bloques indefinidamente. Para implementar un hardfork, sin un blockchain-fork, todos los usuarios deben cambiar al nuevo protocolo de forma consensuada.
Últimamente, he visto que "hardfork" se usa indistintamente con "chain split". Se refieren a cosas diferentes. Una división de cadena es el estado de la red cuando la minería se basa en más de una punta de cadena al mismo tiempo. Esto puede suceder por varias razones, incluidas bifurcaciones duras, bifurcaciones blandas, software de nodo con errores y simplemente dos mineros que descubren un bloque a la misma altura.
Las bifurcaciones blandas son compatibles con versiones posteriores
Los nodos antiguos aceptarán bloques creados por nodos nuevos.
Con una bifurcación suave, solo los mineros tendrán que actualizar, o terminarán en la bifurcación perdedora. Los usuarios y comerciantes pueden seguir ejecutando nodos más antiguos, que aceptarán los bloques más nuevos.
Las bifurcaciones duras no son compatibles con versiones posteriores
Es posible que los nodos antiguos no acepten bloques creados por nodos nuevos.
Con una bifurcación dura, todos (mineros, usuarios y comerciantes) deberán actualizarse al nuevo código.
Encontré la mejor definición exacta en los primeros tres párrafos aquí: gavinandresen / BitcoinVersioning
Recientemente implementamos dos cambios en las reglas de aceptación de bloques de Bitcoin (BIP16 y BIP30); este documento registra las lecciones aprendidas y hace recomendaciones para manejar futuros cambios en las reglas de blockchain.
Nota: hay cambios de reglas "suaves" y cambios de reglas "duros". Los cambios "suaves" hacen más estrictas las reglas: el software antiguo aceptará todos los bloques y transacciones creados por el software nuevo, pero puede que no sea cierto lo contrario. Los cambios "suaves" no requieren que toda la red de mineros, comerciantes y usuarios se actualicen o se queden atrás.
Los cambios "duros" modifican las reglas de una manera que el software antiguo y sin actualizar considera ilegal. En este punto, es mucho, mucho más difícil (algunos dirían que imposible) implementar cambios "duros", porque requieren que todos los mineros, comerciantes y usuarios se actualicen.
Para citar a Andreas Antonopulous:
Diriges un restaurante solo vegetariano y si lo cambias para que sea un restaurante solo vegano, entonces lo estás bifurcando suavemente, si lo cambias para incluir carne, lo estás bifurcando duro.
En una bifurcación se introducen nuevos nodos en la red, creando una red 'sucia'. Me gusta imaginar nodos verdes (antiguos) y rojos (nuevos) manteniendo una sola cadena de bloques en el momento del lanzamiento.
En un tenedor suave:
Como con cada división de la cadena, los mineros deciden dónde ponen sus hashes. Dado que la dificultad del hash no cambia inmediatamente, la cadena respaldada con la mayor potencia de hash crecerá más rápido. Si la cadena 'redblock' tiene suficiente soporte de minería, ganan la carrera y los nodos antiguos adoptan su cadena, y el proceso se repite cada vez que se extrae un bloque antiguo.
Eventualmente ocurre uno de los siguientes:
En el caso de este último, puede producirse una confusión de marca, dos cadenas significan que una es una moneda alternativa. Cuando esto sucede, el software de billetera de buena calidad debería poder realizar transacciones en una cadena en particular. Cada usuario, fabricante de intercambio y billetera decidirá qué cadena obtiene el nombre de marca original (si corresponde), por lo general, esto está relacionado con elecciones filosóficas o políticas. Por ejemplo, la cadena con más nodos y usuarios frente a la cadena con más poder de hash.
Si se acuerda (~consenso) que la marca original es la cadena roja, se espera que gran parte del poder de hash retenido migre a esa cadena, ya que el valor de mercado está fuertemente relacionado con el nombre y no con la tecnología subyacente. La tecnología de altcoin tendría que ser significativamente mejor para evitar esta fuga de marca. Cuando una bifurcación no incluye protección de reproducción, promueve la confusión y evita la separación de transacciones; esto se ve como un intento hostil de adquisición de marca.
La naturaleza compatible con versiones anteriores de las bifurcaciones blandas significa que pueden tener éxito solo con el poder hash . Un solo nodo que produce suficientes bloques (51 %) puede dominar una red más antigua. Para evitar el dominio del hash, la red anterior debe separarse. Esto se puede hacer introduciendo una incompatibilidad que no se puede parchear (es decir, una nueva versión de software) convirtiendo el SF en un hardfork. Tenga en cuenta que lo contrario no se sigue: solo porque un SF con suficiente poder de hash tiene garantizado el éxito, no significa que un SF con poco poder de hash esté condenado al fracaso. Esta es la teoría detrás del concepto de bifurcación suave activada por el usuario (UASF). El éxito de la teoría UASF simplemente depende de:
muro