Las blockchain necesitan mejoras y actualizaciones para mejorar sus características todo ello sin interrumpir el funcionamiento de la red o causar problemas de compatibilidad, para lograr esto, existen los Soft Fork una pequeña actualización del software que permite seguir operando a los usuarios aunque estos no se actualicen .
La blockchain como cualquier tipo de software requiere actualizaciones para seguir funcionando. Con las actualizaciones pueden implementarse nuevas mejoras en la red. Estas actualizaciones, si no alteran las reglas que rompen con el funcionamiento de la versión anterior del software, se denominan Soft Fork.
Un Soft Fork no es más que una actualización del código del programa que gestiona una cadena de bloques para añadir un cambio, normalmente una nueva funcionalidad o corrección de algún error. Pero para ser un soft fork debe seguir siendo compatible con la cadena de bloques antigua.
Permita que todos los participantes hayan implementado el nuevo código o no puedan operar en la red. Permitiéndoles operar con los nuevos bloques pero sin disponer de las nuevas mejoras implementadas por la actualización. Si uno de los participantes de la red no se actualizase a la nueva versión del programa podría seguir verificando bloques sin ningún problema.
Por ejemplo, los procesos de actualización en Bitcoin se dan a conocer en primer lugar en los BIP (Bitcoin Improvements Proposals – Propuestas de Mejora de Bitcoin). Una vez aprobada, la implementación posterior depende de los desarrolladores de los clientes de Bitcoin.
Tipos de Soft Fork
Existen dos tipos de Soft Fork que son:
- Cuando la mayoría de los mineros se actualizan para hacer cumplir las nuevas reglas. Este se denomina Horquilla blanda activada por minero (MASF).
- Cuando los nodos completos se coordinan para hacer cumplir las nuevas reglas, sin el apoyo de los mineros. Este se denomina Soft fork activado por el usuario (UASF).
¿Cómo funciona un Soft Fork?
Los Soft fork son una actualización a como se manejan ciertos parámetros de la blockchain. Todo ello sin alterar las reglas básicas de su funcionamiento. De esta forma, se cambian ciertas partes del protocolo de forma que los nodos actualizados rechazan transacciones previamente válidas. Pero los nodos con software viejo validan tanto las transacciones con formato viejo, como el nuevo. Esto facilita que los nodos actualizados puedan seguir con su trabajo en la red.
Sin embargo, este comportamiento hace más complejo la puesta en marcha de los soft fork. Los desarrolladores deben cuidar la compatibilidad con el software más antiguo. De no ser así, corren el riesgo de alterar de forma anómala toda la red.
Pongamos como ejemplo, la actualización de Bitcoin de Segregated Witness o SegWit. Esta se activó oficialmente en el bloque 481822 con una aceptación por parte de la red del 99.95%. Se calcula que en febrero de 2018 más del 30% de las transacciones se basan en SegWit.
SegWit era una propuesta de la empresa Blockstream y ha sido ampliamente implementada. No solo en Bitcoin sino también se ha implementado en Litecoin y Vertcoin, entre otros. Uno de los motivos para crear esta actualización es solucionar mínimamente los problemas de escalabilidad que presenta en la actualidad el Bitcoin.
Pese a que no todos los nodos de Bitcoin soportan SegWit aún, la red sigue funcionando perfectamente. Esto es gracias a que este soft fork es compatible con versiones más viejas de software de los nodos completos.
En resumen, las bifurcaciones suaves son difíciles de programar y no requieren consenso para su implementación. Esto muchas veces termina fragmentando el nivel de actualización de software en los nodos de la red, lo que resulta en un escenario poco deseable.