Respuestas>Descubre los fundamentos de la seguridad de la cadena de bloques>¿Qué es una bifurcación de la cadena?
¿Qué es una horquilla de cadena?
// Tags
bifurcación de cadenabifurcación durabifurcación suave
En resumen: Una bifurcación de cadena se produce cuando las reglas del protocolo de una cadena de bloques divergen, creando dos o más caminos posibles que puede seguir la cadena. Las bifurcaciones suaves introducen cambios en las reglas compatibles con versiones anteriores que endurecen las normas existentes, de modo que los nodos que no se han actualizado siguen aceptando nuevos bloques y la red permanece unificada. Las bifurcaciones duras introducen cambios no compatibles con versiones anteriores, lo que significa que los nodos actualizados y los que no lo están siguen reglas diferentes y la cadena se divide de forma permanente en dos redes separadas si no todo el mundo se actualiza. Las bifurcaciones son el mecanismo principal mediante el cual las cadenas de bloques evolucionan, se actualizan y resuelven los desacuerdos de la comunidad, pero también generan riesgos relacionados con la duplicación de activos, los ataques de repetición y la fragmentación del ecosistema.
La explicación sencilla
Piensa en una bifurcación de una cadena de bloques como en una bifurcación en una carretera. Todo el mundo ha estado recorriendo el mismo camino, siguiendo las mismas reglas. En la bifurcación, se propone un nuevo conjunto de reglas. Si el cambio es compatible con versiones anteriores (una bifurcación suave), todo el mundo puede seguir por la misma carretera, independientemente de si adopta o no las nuevas reglas. El camino se estrecha ligeramente (normas más estrictas), pero todos los viajeros pueden seguir utilizándolo. Si el cambio no es compatible con versiones anteriores (una bifurcación dura), el camino se divide en dos senderos distintos. Los viajeros deben elegir qué camino seguir, y quienes se encuentren en caminos diferentes ya no podrán interactuar entre sí.
En términos de blockchain, «reglas» se refiere al protocolo de consenso: qué transacciones son válidas, cómo se estructuran los bloques, cuál es el tamaño máximo de los bloques, cómo se calcula el gas y cómo se distribuyen las recompensas. Todos los nodos de la red aplican estas reglas al validar los bloques. Cuando las reglas cambian, los nodos que han adoptado las nuevas reglas y los que siguen utilizando las antiguas pueden discrepar sobre qué bloques son válidos. La forma en que se resuelva este desacuerdo determina si la bifurcación es una bifurcación suave (la red permanece unida) o una bifurcación dura (la red se divide).
Soft forks
Un «soft fork» endurece las reglas existentes. Los bloques que son válidos según las nuevas reglas también lo son según las antiguas, pero algunos bloques que eran válidos según las antiguas ya no lo son según las nuevas. Esto significa que los nodos actualizados aplican una validación más estricta, mientras que los nodos no actualizados siguen aceptando los nuevos bloques, ya que estos no infringen las reglas antiguas.
BitcoinLa actualización «Segregated Witness» (SegWit) de 2017 es el ejemplo clásico de un «soft fork». SegWit modificó la forma en que se almacenaban las firmas de las transacciones, reduciendo el tamaño efectivo de estas y permitiendo el funcionamiento de la Red Lightning. Los nodos que no se habían actualizado seguían aceptando bloques SegWit, ya que estos eran válidos según las antiguas reglas de límite de tamaño. Los nodos actualizados aplicaban reglas adicionales sobre la organización de los datos de las firmas, pero esto resultaba invisible para los nodos antiguos.
Por lo general, se considera que los «soft forks» son más seguros que los «hard forks», ya que no entrañan el riesgo de que la cadena se divida. Siempre que la mayoría de los mineros o validadores adopten las nuevas reglas, la cadena permanece unificada. Es posible que los nodos que no se hayan actualizado no comprendan ni validen las nuevas características, pero no rechazan los bloques, por lo que la red sigue siendo una única cadena. La desventaja de las bifurcaciones suaves es que tienen limitaciones en cuanto a lo que pueden lograr. Dado que las nuevas reglas deben ser compatibles con versiones anteriores, los cambios fundamentales en el protocolo (como cambiar la estructura de los bloques, modificar el modelo de cuentas o alterar el mecanismo de consenso) suelen ser imposibles de implementar como bifurcaciones suaves.
Hard forks
Una bifurcación dura relaja o modifica de forma fundamental las reglas, lo que hace que los nuevos bloques no sean válidos según las reglas anteriores. Los nodos que no se han actualizado rechazan los nuevos bloques, y la red se divide en dos cadenas: una que sigue las nuevas reglas y otra que sigue las antiguas. Ambas cadenas comparten el mismo historial hasta el punto de la bifurcación y divergen a partir de ese momento.
La mayoría de las bifurcaciones duras son actualizaciones planificadas y coordinadas en las que toda la comunidad acuerda adoptar las nuevas reglas. La transición de Ethereum de la Prueba de Trabajo a la Prueba de Participación (The Merge, septiembre de 2022) fue una bifurcación dura. Todos los operadores de nodos, proveedores de staking, plataformas de intercambio y desarrolladores de aplicaciones se coordinaron para actualizar su software antes del bloque designado. Dado que la comunidad se mostró unida, la antigua cadena de Prueba de Trabajo (conocida brevemente como «EthereumPoW») atrajo un apoyo mínimo y rápidamente dejó de tener relevancia.
EthereumLas actualizaciones periódicas de la red (Shanghái, Dencun y otras) también son bifurcaciones duras, que se activan en números de bloque o marcas de tiempo predeterminados. Todo el ecosistema se actualiza con antelación y se abandonan las reglas antiguas. Estas bifurcaciones duras coordinadas forman parte del mantenimiento rutinario, no son eventos polémicos.
Hard forks polémicos
Las bifurcaciones más drásticas se producen cuando la comunidad no logra ponerse de acuerdo sobre la dirección que debe tomar el protocolo y ambas partes cuentan con el apoyo suficiente para mantener una cadena independiente. Estas bifurcaciones duras polémicas dan lugar a dos cadenas de bloques activas, cada una con su propia comunidad, mineros/validadores, valor del token y desarrollo equipe.
La bifurcación más famosa y polémica es la de « Ethereum Classic». En 2016, se aprovechó un error en el contrato inteligente de The DAO, lo que provocó la sustracción de millones de dólares en ETH. La comunidad de « Ethereum » debatió si realizar una bifurcación dura para revertir el robo. La mayoría apoyó la bifurcación, creando una nueva cadena (la actual Ethereum) en la que se devolvieron los fondos robados. Una minoría rechazó la bifurcación por motivos filosóficos (argumentando que «el código es la ley» y que la cadena de bloques nunca debería modificarse con carácter retroactivo), y continuó operando en la cadena original, que pasó a denominarse Ethereum Classic (ETC). Ambas cadenas persisten en la actualidad, siendo Ethereum abrumadoramente más grande y valiosa.
Bitcoin Cash es otra bifurcación muy polémica. En 2017, la comunidad de Bitcoin debatió cómo aumentar el rendimiento de las transacciones. Una facción estaba a favor de aumentar el tamaño de los bloques de 1 MB a 8 MB. Otra facción se oponía a los bloques más grandes y prefería la bifurcación blanda SegWit y soluciones de escalabilidad fuera de cadena, como Lightning Network. El desacuerdo era irreconciliable y, en agosto de 2017, la facción partidaria de los bloques grandes se separó de Bitcoin para crear Bitcoin Cash (BCH). Posteriormente, BCH se dividió de nuevo en 2018, separándose en Bitcoin Cash y Bitcoin SV.
¿Qué ocurre durante una bifurcación?
Cuando se produce un hard fork, todos los titulares de la criptomoneda original pasan a poseer de repente la misma cantidad en ambas cadenas. Si tenías 10 ETH antes de la escisión entre Ethereum yEthereum Classic, tenías 10 ETH en la nueva cadena y 10 ETC en la antigua. Esta duplicación de activos puede generar complejidad económica, incluyendo ataques de repetición en los que una transacción válida en una cadena se retransmite en la otra.
Para los desarrolladores, una bifurcación implica decidir qué cadena admitir (o si admitir ambas), actualizar el software de los nodos, verificar que los contratos inteligentes funcionen correctamente según las nuevas reglas y comunicar los cambios a los usuarios. Para los operadores de nodos, una bifurcación requiere actualizar el software de cliente antes del bloque de la bifurcación para seguir la cadena prevista. Los nodos que no se actualicen permanecerán en la cadena antigua, proporcionando datos obsoletos y pudiendo provocar fallos en las aplicaciones.
¿Cuál es la diferencia entre un «soft fork» y un «hard fork»?
La diferencia fundamental radica en la compatibilidad con versiones anteriores. Un «soft fork» endurece las reglas de tal forma que el software antiguo sigue aceptándolas, por lo que la red se mantiene como una sola cadena. Un «hard fork» cambia las reglas de tal forma que el software antiguo las rechaza, lo que puede dividir la red en dos cadenas. La tabla siguiente compara ambos conceptos uno al lado del otro.
Atributo
Soft fork
Bifurcación dura
Modificación del reglamento
Endurece la normativa vigente
Flexibiliza o redefine las normas
Compatible con versiones anteriores
Sí
No
Nodos sin actualizar
Sigue aceptando bloques nuevos
Rechazar nuevos bloques
Resultado en cadena
La red sigue unificada
La red puede dividirse en dos cadenas
Se ha creado un nuevo activo
No
Sí, los titulares reciben monedas en ambas cadenas
Ejemplo
Bitcoin SegWit (2017)
The Merge, una división clásica de « Ethereum »
Ambos tipos de bifurcación constituyen la forma en que una cadena de bloques se actualiza con el tiempo. Las bifurcaciones suaves (soft forks) entrañan un menor riesgo, pero tienen un alcance limitado, mientras que las bifurcaciones duras (hard forks) permiten cambios más profundos en el protocolo, a costa de que todos los usuarios deban actualizar sus sistemas al unísono.
¿Qué es una bifurcación accidental o temporal?
No todas las bifurcaciones suponen un cambio deliberado del protocolo. Las bifurcaciones accidentales se producen cuando dos validadores generan bloques rivales casi al mismo tiempo, lo que provoca que la red se divida brevemente a la hora de decidir qué bloque prolonga la cadena. La red resuelve esta situación en el plazo de uno o dos bloques, convergiendo en la cadena válida más pesada, y el bloque huérfano se descarta. Esta división de corta duración está estrechamente relacionada con una reorganización de la cadena de bloques.
Estas bifurcaciones temporales son normales y, por lo general, invisibles para los usuarios, pero las aplicaciones que tratan los bloques no confirmados como si estuvieran liquidados pueden mostrar transacciones que posteriormente desaparecen. Esperar a que se alcance la finalidad antes de considerar los fondos como definitivos es la medida de protección habitual para evitar actuar sobre un bloque que quede excluido tras una reorganización.
¿En qué consisten los ataques de repetición durante una bifurcación?
Cuando una bifurcación dura crea dos cadenas que comparten historial, una transacción firmada para una cadena también puede ser válida en la otra, ya que la cuenta, el saldo y el esquema de firma son idénticos en el punto de separación. Un atacante puede retransmitir (reproducir) tu transacción en la segunda cadena para mover fondos que no tenías intención de mover. Las bifurcaciones bien gestionadas incorporan protección contra la reproducción, como un identificador único de cadena, de modo que una transacción solo sea válida en la red prevista. Los operadores de carteras y nodos deben confirmar que la protección contra la reproducción está activa antes de realizar transacciones tras una bifurcación controvertida.
¿Cómo se preparan los desarrolladores para una bifurcación de la cadena de bloques?
La preparación para una bifurcación planificada consiste principalmente en coordinar los plazos y realizar pruebas. La siguiente lista de comprobación recoge los pasos que siguen la mayoría de los equipos antes de una bifurcación dura programada.
Paso
Qué hacer
Por qué es importante
Consulta el horario
Fíjate en el bloque de bifurcación o en la marca de tiempo
Si te lo pierdes, te quedas con la cadena antigua
Actualizar clientes
Actualiza el software del nodo con antelación
Los clientes antiguos rechazan los nuevos bloques
Prueba en testnet
Comprobar que los contratos se ajustan a la nueva normativa
Detecta a tiempo los cambios que afectan a la compatibilidad
Confirmar la protección contra la reproducción
Comprueba que el ID de la cadena sea único
Evita la repetición entre cadenas
Utilizar una infraestructura gestionada
Delegar las actualizaciones a un proveedor
Elimina los puntos únicos de fallo
Los equipos que utilizan RPC gestionado se ahorran gran parte de este trabajo, ya que el proveedor actualiza los nodos antes de su activación. En el caso de las aplicaciones basadas en eventos, Webhooks y Streams proporcionan datos posteriores al «fork» sin necesidad de una gestión manual por parte del cliente.
Preguntas frecuentes
¿Se obtienen monedas gratis con un hard fork?
Si una bifurcación dura crea una segunda cadena persistente, los titulares del activo original conservan un saldo equivalente en la nueva cadena en el momento de la bifurcación. Así es como los titulares de Ethereum Classic y Bitcoin Cash recibieron sus monedas. El nuevo activo solo tiene valor si la cadena bifurcada consigue un apoyo real por parte de la comunidad y del mercado, algo que la mayoría de las bifurcaciones nunca logran.
¿Qué es más seguro, un «soft fork» o un «hard fork»?
Las bifurcaciones suaves suelen entrañar un menor riesgo, ya que mantienen la unidad de la red y no exigen que todos los participantes actualicen sus sistemas al mismo tiempo. Las bifurcaciones duras son más potentes, pero también más arriesgadas, ya que los nodos que no se actualizan quedan aislados en la cadena antigua y las divisiones controvertidas pueden fragmentar a la comunidad.
¿Cuál es la diferencia entre una bifurcación y una reorganización?
Una bifurcación es una divergencia en las reglas del protocolo o en el historial de la cadena, mientras que una reorganización consiste en que la red sustituya bloques añadidos recientemente por una rama competidora. Una bifurcación accidental breve se resuelve mediante una reorganización, mientras que una bifurcación dura es un cambio permanente en las reglas que puede dar lugar a dos cadenas duraderas.
¿Se puede revertir una bifurcación de una cadena de bloques?
Una bifurcación dura planificada o controvertida es permanente una vez que ambas cadenas cuentan con un soporte independiente, ya que cada red sigue generando bloques según sus propias reglas. Las bifurcaciones accidentales, por el contrario, se resuelven automáticamente en uno o dos bloques, a medida que la red converge en una única cadena canónica.
¿Cómo afecta una bifurcación a mi aplicación?
Durante una bifurcación planificada, tu nodo debe ejecutar el software actualizado para seguir la cadena canónica; de lo contrario, proporcionará datos obsoletos. El uso de un proveedor de RPC gestionado que se encarga de las transiciones entre bifurcaciones garantiza que tus puntos finales sigan devolviendo datos canónicos durante la actualización sin que tengas que hacer nada.
Cómo gestiona « Quicknode » las bifurcaciones
QuicknodeLa infraestructura de equipe supervisa todas las bifurcaciones duras previstas en más de 80 redes compatibles y garantiza que los nodos se actualicen antes de que se active la bifurcación. Esto significa que los desarrolladores que utilizan Quicknode no tienen que gestionar ellos mismos las actualizaciones de los clientes ni corren el riesgo de que sus aplicaciones se queden en el lado equivocado de una bifurcación. Cuando una cadena sufre una bifurcación dura prevista, Quicknode gestiona la transición sin problemas, y tus puntos finales RPC siguen sirviendo datos desde la cadena canónica y actualizada.
En el caso de bifurcaciones polémicas en las que ambas cadenas siguen funcionando, Quicknode evalúa el apoyo de la comunidad, la seguridad y la demanda de los desarrolladores antes de decidir si añadir la nueva cadena como red compatible. La infraestructura multicadena de Quicknode hace que añadir compatibilidad con una cadena recién bifurcada sea una decisión de infraestructura, y no una carga de desarrollo para los clientes.
Quicknode Streams gestiona las transiciones de bifurcación de forma fluida al entregar los datos en orden de finalidad, lo que garantiza que cualquier ambigüedad temporal en la cadena durante el periodo de activación de la bifurcación no provoque que se envíen datos incorrectos a tu canalización. La gestión integrada de la reorganización cubre los casos extremos que pueden surgir durante los bloqueos de activación de la bifurcación.