En el 2017 cuando SegWit (Segregated Witness) y Bitcoin Unlimited competían por quien ganaba más seguidores del Bitcoin, ocasionó una gran duda entre ellos: ¿Qué ocurriría con sus ganancias en el caso que sucediese un hard fork?

Es habitual que cada vez que va a suceder un “fork” o en español “bifurcación”, genere una gran confusión entre las personas que pertenecen a este mundo, es por ello que en este artículo se definirá qué es un fork, así como los tipos de bifurcaciones que existen, como los: hard forks, soft forks y forks accidentales.

¿Qué es un fork?

Para entender qué es un hard fork y un soft fork es necesario entender qué es un fork. Un fork o bifurcación, en programación, es un término que hace alusión al despligue de cambios en el código del Bitcoin y significa clonar un código fuente, cuyo código, en el caso del Bitcoin, sería la plataforma del mismo. En el caso de la criptomoneda mencionada, un fork o bifurcación, sucede cuando los desarrolladores buscan implementar cambios en el código fuente, creando una copia del mismo para utilizarla como base, con la finalidad de introducir los cambios en la plataforma.

Las bifurcaciones pueden ser realizadas con dos finalidades distintas, ya sea para crear una nueva criptomoneda a partir del mismo o para realizar una actualización al código existente. Para llevar a cabo un proyecto blockchain sobre el código mismo no hay limitaciones a diferencia de cuando se quiere realizar una actualización del código fuente e implementarlo de manera definitiva, su ejecución dependería de un previo consenso.

¿Qué es un hard fork y un soft fork?

Entendiendo el fork como una actualización sobre el código fuente a través de la cual sucede la bifurcación de la cadena de bloques y se originan dos cadenas de bloques distintas. Estos forks pueden tener una raíz accidental o intencional. Si la raíz es accidental se estaría en presencia de una “bifurcación accidental”, si la raíz es intencional se estaría en presencia de un “bifurcación dura” o una “bifurcación suave”.

  • Fork o bifurcación accidental.

Un fork accidentado sucede cuando los desarrolladores principales del Bitcoin introducen por error cambios en una actualización del código fuente de la plataforma. Y si dicha actualización no es compatible con versiones anteriores del código, la cadena de bloques se divide en dos, creando una cadena de bloques que funciona con la versión del código original y otra que funciona con la versión más reciente. Bitcoin puede funcionar nada más con una cadena de bloques, entonces cuando ocurre un fork, una cadena de bloques es aceptada como la correcta y otra es rechazada.

Hace 5 años la red de Bitcoin padeció de una bifurcación accidentada, cuando un minero que utilizaba la versión 0.8.0 del Bitcoin Core aumentó el tamaño de los bloques, creando una blockchain que era incompatible con la versión anterior del Bitcoin Core, distintos mineros rechazaron esta nueva cadena de bloques y otros la aceptaron a la misma. Finalmente, Bitcoin Core emitió la versión 0.8.1 que solventaba este problema, evitando que esta dificultad derivara en pérdidas de Bitcoins por parte de los usuarios.

  • Hard fork o bifurcación dura.

Un hard fork es una bifurcación intencionada y consensada de la cadena de bloques con el objetivo de actualizar el código fuente, de tal manera que la versión del código actualizado no es compatible con versiones anteriores. Los hard forks tienen por finalidad aumentar el tamaño de los bloques hasta un cambio en las reglas de consenso. Ya que un hard fork no permite la existencia de versiones anteriores del código, es necesario que cuando ocurra la migración todos los usuarios (mineros y wallets) actualicen el software. De no ocurrir esto, podría traer como consecuencia una bifurcación de la cadena de bloques junto con el riesgo de doble gasto de bitcoins que esto supone.

  • Soft fork o bifurcación suave.

Al igual que un hard fork, un soft fork es una bifurcación intencionada y consensada de la cadena de bloques con el objetivo de actualizar el código fuente. La diferencia es que en una bifurcación suave la actualización del software si es compatible con versiones anteriores. Un bifurcación blanda tiene por objetivo la introducción de nuevas funcionalidades sin que estas representen un cambio con mayores repercusiones en el sistema. Por lo tanto, ante una bifurcación de este tipo solo es necesario que la mayoría de los usuarios, para poder usar estas nuevas funciones, actualicen el software sin que el resto lo haga también, porque deja la posibilidad al usuario de seguir usando la versión anterior.

Entonces, por un fork se entiende que es una bifurcación de la cadena de bloques como consecuencia de una actualización en el código fuente, esta actualización puede ocurrir accidentalmente, que correspondería al caso de un fork accidentado y si es intencionalmente, la bifurcación correspondería a un hard fork o soft fork, cuya diferencia entre los dos consiste en que, en la primera, la actualización no acepta versiones anteriores mientras que la otra sí.