-
Un ejemplo de bifurcaciรณn suave fue la implementaciรณn de SegWit en Bitcoin.
-
Las bifurcaciones duras pueden ser contenciosas o no contenciosas.
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