Topics Blockchain
Bybit Learn
Bybit Learn
Beginner
10 de sep de 2021

Explicación: ¿Qué es una soft fork y cómo funciona?

Si tienes interés en las criptomonedas, quizás has escuchado hablar de algo llamado “bifurcaciones” o «forks» en ingles. En pocas palabras, una bifurcación es un cambio en el protocolo de una blockchain que ha sido acordado por sus participantes. Esto puede producirse por varias causas, y se pueden clasificar en soft fork (bifurcaciones suaves) y hard fork (bifurcaciones duras).

En este artículo, desarrollaremos el concepto de una soft fork en una blockchain: cómo funciona, cómo se activa, algunos ejemplos, y cómo una soft fork difiere de una hard fork.

Cuando se trata de Bitcoin, y de hecho otras criptomonedas, una soft fork se produce cuando la cadena de la criptomoneda experimenta una “divergencia temporal”. Una soft fork es un cambio en el protocolo de software que hace que solo los bloques o transacciones previamente válidos se vuelvan inválidos.

Con una soft fork, los cambios que se realizan son retrocompatibles, lo que significa que los nodos viejos pueden seguir añadiendo nuevos bloques a la blockchain, siempre que cumplan con las nuevas reglas. Las reglas de la blockchain se denominan protocolo de la blockchain.

Analizaremos y aclararemos el concepto de soft fork en relación con el protocolo de la blockchain.

¿Qué es un protocolo de blockchain?

Una blockchain puede definirse como un libro de contabilidad público y distribuido, que registra las transacciones en una red global conectada de computadoras conocidas como nodos. Todos los nodos son iguales y están conectados entre sí a través de Internet. En la red, todos los nodos participantes deben verificar una transacción antes de añadirla a la blockchain.

Una blockchain suele funcionar bajo reglas predefinidas, conocidas como protocolos de blockchain, que todos los pares (nodos) participantes en la red acuerdan. Estas reglas consisten en lo siguiente:

  1. Instrucciones para autentificar y reglamentar las transacciones en la red;
  2. Un algoritmo que define el mecanismo por el que todos los nodos participantes en la red interactúan entre sí;
  3. Una interfaz de programación de aplicaciones (en determinados casos).

Por lo tanto, en términos de este protocolo, una soft fork es una modificación hacia el protocolo de software de tal manera que solo se invalidan los bloques de transacciones previamente válidos. Dado que los nodos viejos reconocerán los nuevos bloques de la blockchain como válidos, una soft fork se considera compatible con la anterior. Las soft fork se han utilizado muchas veces como la opción más frecuente para actualizar una blockchain de Bitcoin, ya que presentan un riesgo reducido de interrumpir la red. Además, a diferencia de las hard fork, las soft fork solo requieren que la mayoría de los mineros se actualicen para imponer las nuevas reglas.

A veces, una soft fork también puede producirse debido a una diferencia momentánea en la blockchain, donde los mineros que utilizan nodos no actualizados infringen una nueva regla de consenso con la que sus nodos no están familiarizados. Si los nodos no actualizados siguen minando bloques, estos serán rechazados por los nodos actualizados.

El otro tipo de bifurcación que puede producirse se conoce como hard fork, que es una modificación del protocolo que requiere que todos los nodos de la red actualicen su software a la última versión para poder seguir participando en la red. A diferencia de la soft fork, la hard fork impide que los nodos de la versión actualizada de la blockchain acepten las reglas desactualizadas de la blockchain; solo se cumplen con las nuevas reglas.

Las soft fork en comparación con las hard fork

Las hard fork y las soft fork son similares en el sentido de que ambas cambian el código existente de la plataforma de criptomonedas. Y aunque tanto las hard fork como las soft fork son esenciales para el funcionamiento continuo y la gobernanza efectiva de las redes de blockchain, hay diferencias fundamentales entre estas bifurcaciones.

Para empezar, una soft fork hace que solo una blockchain siga siendo válida a medida que más y más usuarios pasan a utilizar la actualización. Es básicamente una actualización gradual de la blockchain. Sin embargo, con una hard fork, la vieja y la nueva blockchain existen simultáneamente, lo que significa que el software debe actualizarse para funcionar con las nuevas reglas. Es más que nada una división repentina de la blockchain. Por lo tanto, aunque ambas bifurcaciones resultan en una especie de división, una soft fork mantiene una blockchain, mientras que una hard fork resulta en una blockchain dividida en dos.

Por lo tanto, en este sentido, la principal diferencia entre una soft fork y una hard fork es lo indispensable que resulta actualizar el software de los nodos para poder seguir participando en la red.

La mayoría de los desarrolladores optan por una hard fork cuando se trata de realizar una actualización de seguridad importante en una blockchain. Aunque implique un mayor esfuerzo informático, una hard fork se considera mucho menos arriesgada en este sentido.

Las hard fork pueden ser el resultado de una división en la comunidad de una blockchain, como fue el caso de la hard fork de Bitcoin Cash en 2018. Se produjo como resultado de los desacuerdos en la comunidad de la blockchain de Bitcoin sobre el tamaño de los bloques y la escalabilidad. Por el contrario, las soft fork suelen resolverse de mutuo acuerdo e incluyen un sentimiento más coherente en la comunidad de una blockchain.

¿Cómo funcionan las soft fork?

Como se ha descrito detalladamente en la sección anterior, una soft fork se produce debido a una modificación retroactiva del protocolo de software. Como resultado, la nueva cadena bifurcada sigue las nuevas reglas y también respeta las desactualizadas. Básicamente, la cadena original continúa siguiendo las reglas desactualizadas.

Las nuevas transacciones son por lo general soft fork suplementarias, que requieren sólo a los participantes (receptor y remitente) junto con los mineros para aprehender el nuevo tipo de transacción. Esto implica que el nuevo tipo de transacción aparezca a los clientes anteriores (transacción de pago a todo el mundo) y convencer a los mineros para que rechacen los bloques desactualizados, incluidas estas transacciones, excepto cuando la transacción se corrobore con las nuevas reglas.

Para que se produzca una soft fork, la mayoría de los mineros deben ejecutar un cliente que reconozca la bifurcación. En resumen, cuantos más mineros cumplan con las nuevas reglas, más segura será la red después de la bifurcación. Por ejemplo, si ¾ de los mineros reconocen la bifurcación, no se garantiza que los ¼ bloques restantes cumplan con las nuevas reglas. Sin embargo, seguirán siendo válidos para los nodos desactualizados que sigan sin conocer las nuevas reglas, pero serán ignorados por los nuevos nodos.

En cuanto a las actualizaciones, las soft fork no necesitan que los nodos se actualicen para mantener el consenso. Esto se debe a que todos los bloques con las nuevas reglas de soft fork también cumplen con las reglas anteriores. De ahí que los clientes anteriores las acepten.

Sin embargo, para revertir las soft fork es necesaria una hard fork. Esto se debe a que una soft fork solo certifica que los conjuntos de bloques válidos son un subconjunto adecuado de lo que era válido antes de la bifurcación. Si los usuarios se actualizan con un cliente posterior a la soft fork, y más tarde la mayoría decide volver al cliente anterior a la soft fork, los usuarios del cliente posterior a la soft fork interrumpirán la armonía de la blockchain en el momento en que se ingrese un bloque que no cumpla con las nuevas reglas de sus clientes.

¿Por qué se producen las soft fork?

Probablemente ya haya entendido que la soft fork es un cambio estético. Altera o añade funciones sin interferir realmente en la estructura de la blockchain y puede producirse debido a varias causas: como un cambio en el algoritmo de consenso o algunos cambios o actualizaciones de software.

Cuando la mayoría de los mineros de una red actualizan su poder de hashing para hacer cumplir las nuevas reglas, se llama una soft fork activada por los mineros (miner-activated soft fork, MASF).

También existe una soft fork activada por el usuario (user-activated soft fork, UASF). En este caso, los nodos completos se coordinan para aplicar las nuevas reglas, sin el respaldo de los mineros.

Una soft fork también puede producirse debido a alguna divergencia temporal en la blockchain, donde los mineros que utilizan nodos desactualizados infringen una nueva regla de acuerdo con la que sus nodos no están familiarizados.

Ejemplos de soft fork

Las soft fork se han utilizado como la opción más común para actualizar las blockchain de Bitcoin, ya que se cree que presentan una menor posibilidad de dividir la red. Ejemplos anteriores de soft fork exitosas incluyen actualizaciones de software como la BIP 66 (que trata de la validación de firmas) y el P2SH (alteración en el formato de direcciones de Bitcoin).

  1. Las BIP (propuestas de mejora de Bitcoin, BIP) (34, 65 y 66) se instalaron en la blockchain de Bitcoin a través de la señalización de los mineros utilizando el número de versiones de bloques. Básicamente, se propusieron nuevas reglas de consenso para su uso en bloques con un número de versión superior al de la versión de bloque predominante ya en uso en la red.
  2. P2SH o PAY-TO-SCRIPT-HASH fue un parche añadido a la blockchain de Bitcoin en 2012, que modificó la forma de validar las transacciones. Se reconoce más comúnmente como direcciones en Bitcoin, que comienzan con un ‘3’ en lugar de una T.
  3. SegWit, o SEGREGATED WITNESS, fue una soft fork utilizada para aumentar la velocidad de las transacciones de Bitcoin. Dado que un nuevo bloque de transacciones se mina cada 10 minutos de media, la idea básica era aumentar la cantidad de transacciones que podían incluirse en cada bloque. SegWit liberaría algo de espacio en cada bloque que podría utilizarse para incluir más transacciones. Esto se hizo eliminando la clave pública del bloque, junto con la firma asociada a cada transacción, y enviándolas por un canal de mensajería diferente. Dado que la clave pública y la firma ocupan casi el 60 % del tamaño total de la transacción, enviarlas por separado podría duplicar la cantidad de transacciones en cada bloque. Por este motivo, el enfoque se denominó testigo segregado, ya que el “testigo” (la firma) se segregaba (se enviaba por separado) de la transacción.

Conclusión

Las bifurcaciones ofrecen a una red de blockchain la oportunidad de actualizarse a sí misma, al mismo tiempo que añaden mayores características a las criptomonedas existentes, como funcionalidades de escalado que son igualmente importantes para el uso.

Las soft fork (bifurcaciones suaves) se han utilizado muchas veces en las blockchain de Bitcoin para implementar reglas nuevas y actualizadas y algoritmos compatibles con los anteriores.

Pero los desafíos están más en la ejecución de la bifurcación que en su principio. Por lo tanto, los procesos de gobernanza eficaces son la clave para su implementación.