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 permiten seguir operando a los usuarios aunque estos no se actualicen.
La blockchain como cualquier tipo de software requiere de actualizaciones para seguir funcionando. Con las actualizaciones pueden implementarse nuevas mejoras en la red. Estas actualizaciones, si no alteran las reglas que rompan con el funcionamiento de la anterior versión 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 blockchain para añadir un cambio, normalmente una funcionalidad nueva o corrección de algún error. Pero para ser un soft fork debe seguir siendo compatible con la blockchain antigua.
Permite 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 proceso 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 aprobado, 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 Soft fork activado 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 viejos. De no ser así, corren el riesgo de alterar de forma errónea 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 de 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.