fork

¿Qué es un “Fork” en blockchain y para qué sirve?

Como en todo software, las redes blockchain experimentan actualizaciones en pro de implementar mejoras en su funcionamiento. Estas actualizaciones dan lugar a un concepto conocido como “fork”, que hacen de estas mejoras algo mucho más complejo, y hasta polémico, frente a las actualizaciones convencionales que todos conocen.

¿Fork?

Un fork (o “bifurcación”) es como se denomina al cambio en los protocolos de una blockchain que da lugar a una nueva versión de la misma. Estos cambios suelen aplicarse como actualizaciones para mejorar la red, pero también se emplean para crear nuevos proyectos a partir de la red existente.

Sin embargo, como las blockchain necesitan estar en consenso para operar (sus reglas son fijas), el que se modifiquen implica, en la práctica, tener que crear una nueva red. 

Para entenderlo mejor, visualiza a la blockchain como un río que se bifurca (se parte en dos) generando dos corrientes: una antigua y una nueva. Así, dependiendo de lo que ocurra con estas dos corrientes, es que se generan los tipos de fork: Suaves (Soft) y Duros (Hard).

ilustración de fork en blockchain

Soft Fork

Un tipo de bifurcación que permite que la red nueva sea compatible con la antigua.

Esto quiere decir que los nodos no actualizados no son excluidos y pueden continuar validando transacciones nuevas, mientras que los actualizados solo validan aquellos a partir del cambio. 

Esto es posible gracias a que las nuevas reglas impuestas no contradicen a las anteriores, implicando, por supuesto, una mayor dificultad a la hora de programar. De ahí que no siempre sea aplicable.

Aquí nos encontramos con el término “umbral de adopción”, refiriéndose al porcentaje de nodos que se han actualizado con respecto al total. Es necesario alcanzar cierto mínimo acordado para que el soft fork tenga lugar, luego de ello, se espera que el tiempo logre incrementarlo.

Es por eso que el soft fork se considera un mecanismo de actualización gradual, pues se espera que la falta de nuevas funcionalidades incentive a los usuarios restantes a incorporarse. Por ejemplo, la famosa actualización “Segwit” de Bitcoin fue un soft fork que requirió la aceptación del 95% de los nodos.

Hard Fork

En contraste a la anterior, este tipo de actualización es obligatoria para todos los nodos.

Todo aquel que no lo adopte será “excluido” debido a la incompatibilidad de la nueva red con la antigua.

Sin embargo, esto no necesariamente implica que la red antigua quede inoperativa, en algunos casos, puede resultar en la existencia de dos redes completamente independientes.

Así ocurrió con Ethereum, por ejemplo. Actualmente existe “Ethereum Classic” (ETC), la primera versión de la red de Ethereum en donde quedaron todos aquellos que no aceptaron el hard fork luego del polémico caso de The DAO.

Por ello los Hard Fork son menos frecuentes y suelen emplearse en situaciones muy puntuales, en donde no queda más remedio que alterar las reglas en beneficio de la red. De ahí que los desacuerdos puedan dar lugar a nuevas redes.

Por ejemplo, Bitcoin Cash (BCH) nació en 2017 a partir de un Hard Fork de Bitcoin, por considerar que la criptomoneda se había desviado de la visión original de Satoshi Nakamoto.

hard fork de bitcoin a bitcoin cash