Seleccionar página

Bifurcaciones suaves y fuertes: conceptos, diferencias y algunos ejemplos

  • Un ejemplo de bifurcación suave fue la implementación de SegWit en Bitcoin.
  • Las bifurcaciones duras pueden ser contenciosas o no contenciosas.
Bifurcaciones suaves y fuertes: conceptos, diferencias y algunos ejemplos

Las cadenas de bloques descentralizadas como Bitcoin requieren de reglas de consenso entre sus participantes para mantener una compatibilidad de software entre sí. Como software de código abierto, ningún participante está obligado a utilizar una determinada versión, y ningún desarrollador a estar de acuerdo con el consenso, además de que este último no puede forzar un cambio.

Pero, cualquiera puede copiar el código abierto de Bitcoin y desarrollar una nueva versión con determinadas características. Además, como tecnología experimental, continuamente se proponen y realizan mejoras a los proyectos ya existentes, de código o de estructura que, en algunos casos, presentan incompatibilidades con versiones anteriores del software.

Un nuevo software, distinto e independiente, desarrollado a partir de una copia del código fuente, es lo que en ingeniería de software denominan bifurcación de un proyecto o fork. En el ecosistema de criptoactivos se hace uso de bifurcaciones no solo para crear nuevos proyectos, sino para actualizar los ya existentes.

En el ecosistema de criptoactivos es común leer noticias acerca de hardforks y softforks o bifurcaciones duras y suaves, respectivamente. Estas ocurren no solo en Bitcoin, sino en los demás proyectos de criptoactivos que existen. De hecho, se puede afirmar que todos ellos, según el concepto anteriormente presentado, son bifurcaciones de la cadena de bloques de Bitcoin.

Incluso dentro de Bitcoin ocurren bifurcaciones temporales durante la gestión de la red, cuando los mineros detectan cuál es la cadena más larga y la siguen, lo que da origen a cadenas de bloques más cortas que quedan en el limbo. También existen bifurcaciones permanentes. A continuación, abordaremos en palabras sencillas qué son los hardforks, los softforks y las diferencias entre ellos.

Bifurcación suave o softfork

Una bifurcación suave es una mejora o versión actualizada del software que no tiene incompatibilidades con versiones anteriores, es decir, son actualizaciones opcionales. Los nodos con versiones anteriores pueden no implementarla y aún así continuarán siendo compatibles con los nodos que sí se actualizaron a dicha versión. Esto debido a que las bifurcaciones suaves mejoran el código, mas no cambian su estructura.

Este tipo de bifurcaciones puede ser por cambios estéticos, para agregar funciones que no afecten su estructura, entre otros, y no requiere que todos los nodos y mineros se actualicen a ella, sino solo parte de ellos para que lleven a cabo las nuevas reglas.

Un aspecto a resaltar de este tipo de bifurcación es que si bien se mantiene la compatibilidad entre todos los nodos, los nodos heredados podrán aceptar bloques de la versión anterior y de la versión actual, mientras que los nuevos nodos no aceptarán los bloques de las versiones anteriores, sin que esto implique una ruptura en el consenso.

En otras palabras, en una bifurcación suave la cadena de bloques respetará las nuevas reglas de consenso sin dejar de cumplir las reglas anteriores, y sin generar una nueva cadena bloques.

Bifurcación dura o hardfork

Una bifurcación dura es una mejora al software que presenta incompatibilidades con versiones anteriores, por lo que todos los participantes deben implementarla si quieren formar parte de la nueva cadena de bloques. En este tipo de actualizaciones los bloques de las versiones anteriores serán considerados como inválidos en la nueva versión y viceversa. Asimismo, la nueva cadena mantendrá una historia común con la original. En esta categoría podemos clasificar dos tipos: contenciosas y no contenciosas.

En las bifurcaciones duras contenciosas o controvertidas, ocurre una división de la cadena de bloques, además de una división en la comunidad de desarrolladores, entre quienes deciden quedarse en la cadena anterior y quienes prefieren migrar a la nueva blockchain. Por lo general, el grupo más grande de desarrolladores o el que tenga el control de la blockchain es el que conserva el nombre de la cadena original y su respectiva comunidad.

Las bifurcaciones duras contenciosas se pueden implementar para cambios como aumento del tamaño de los bloques de una blockchain o cuando existen desacuerdos en temas decisivos dentro de la comunidad de desarrolladores, que pueden implicar cambios significativos en la estructura de una blockchain; así como también cuando existen visiones de proyectos que son opuestas.

A raíz de las bifurcaciones duras contenciosas es que se crean nuevos proyectos blockchain con sus respectivas criptomonedas, con su propia visión, grupo de desarrolladores, usuarios, mineros y sus propias reglas de consenso. El código para la cadenas bifurcada empieza a desarrollarse cuando hay suficiente apoyo de la comunidad de mineros.

Por otro lado, las bifurcaciones duras no contenciosas también se conocen como bifurcaciones planificadas, programadas o consensuales. En ella no ocurre una ruptura en el núcleo de desarrolladores: todos comparten la misma visión del proyecto. Este tipo de bifurcaciones se realizan para mejorar el código central de una blockchain.

Este tipo de bifurcación (no contenciosa) se considera como dura porque cuando se implementa, ocurre una incompatibilidad con las versiones anteriores del cliente, como si se tratara de una cadena de bloques distinta, y quienes intenten enviar criptomonedas de una versión a la otra pueden perder sus fondos. Además, si bien no generan un nuevo proyecto blockchain como tal, con otra criptomoneda, no se pueden considerar como bifurcaciones suaves porque no son opcionales: todos los usuarios y clientes deben actualizarse.

Algunas semejanzas y diferencias

Considerando el punto de vista de las consecuencias que acarrean, se podrían establecer algunas diferencias entre los tipos de bifurcaciones. Entre bifurcaciones suaves y bifurcaciones duras, la diferencia radica en que en las primeras la nueva versión del software es compatible con versiones anteriores, mientras que en las bifurcaciones duras existe incompatibilidad de dicha actualización respecto a las anteriores.

Cabe destacar que las bifurcaciones suaves y bifurcaciones duras no contenciosas tienen en común que no generan una nueva cadena de bloques y consecuentemente, una nueva criptomoneda, porque las mejoras apuntan al proyecto actual y en ambos casos hay consenso entre desarrolladores y mineros.

Por otro lado, la principal diferencia entre una bifurcación suave y una dura contenciosa es que esta última da inicio a un nuevo proyecto blockchain. A su vez, entre bifurcaciones duras, la diferencia radica en sí hay o no acuerdo entre desarrolladores en la visión del proyecto.

Algunos ejemplos de bifurcaciones

Podría decirse que el lanzamientos de nuevas versiones de clientes de Bitcoin Core compatibles con versiones anteriores constituyen bifurcaciones suaves. Asimismo, un ejemplo clásico de este tipo de bifurcación es SegWit, una actualización de software opcional que perseguía implementar mejoras a Bitcoin sin generar incompatibilidad entre nodos heredados y nodos SegWit. Para ello, continuaron cumpliendo la regla de consenso del tamaño del bloque hasta 1 MB, y se introdujo una nueva regla: el peso del bloque hasta máximo 4 MB.

Un ejemplo de bifurcaciones duras no contenciosas son las actualizaciones del cliente de Monero. En este proyecto blockchain llevan a cabo bifurcaciones programadas para la mejora de su red (2 cada año), sin que ello implique una división en la comunidad de desarrolladores de Monero: todos ellos siguen trabajando en la misma blockchain. Además, como explican en su web, los usuarios pueden perder sus fondos si no se actualizan: “Si fallas en actualizar tu monedero después de las bifurcaciones programadas y envías tus XMR, podrías términar perdiéndolos en una cadena diferente o tendrás que gastar un buen tiempo tratando de recuperarlos”.

Por otro lado, ejemplos de bifurcaciones duras contenciosas son Bitcoin-Bitcoin Cash, Ethereum-Ethereum Classic, y recientemente la bifurcación de Bitcoin Cash. En cada uno de esos casos, el principal motor fue el desacuerdo en reglas centrales del software.

En el caso de Bitcoin-Bitcoin Cash, la razón que motivó a la creación de una nueva blockchain fue que un grupo defendía la idea de aumentar el tamaño de bloques a 8 MB; la división Ethereum-Ethereum Classic ocurrió porque una gran mayoría quería implementar una bifurcación para recuperar fondos robados de DAO, mientras que una minoría defendió la filosofía de inmutabilidad, y crearon Ethereum Classic. Más recientemente, lo ocurrido con Bitcoin Cash, que dio origen a Bitcoin Cash ABC y Bitcoin Cash SV (Satoshi Vision), fue una división potenciada principalmente por desacuerdos entre desarrolladores para el futuro del proyecto.

Si bien la naturaleza del código Bitcoin permite realizar bifurcaciones a las cadenas de bloques, estas carecen de sentido si el nuevo proyecto no tiene utilidad alguna, además de que podrían tratarse más bien de proyectos centralizados que en vez de estar impulsados por ofrecer una mejor tecnología, algunos parecieran verse más bien impulsados por el enriquecimiento económico.

 

Imagen destacada por andredusK / stock.adobe.com

¿Disfrutaste leyendo este artículo?
Agradece a con una propina:

Acerca del autor

Emily Faria

Ingeniera sumergida en el mundo Bitcoin.

Mercado Latino

Bitcoin
110.716,20 UYU
23.811,21 BOB
1.961.999,98 VES

¡Mantente al día!

Tweets de @CriptoNoticias

Publicidad