Informes

¿Qué es Hard y Soft Fork?

DecentraLAB.tech

Cada criptomoneda funciona a base de consenso, pero a veces ese acuerdo se rompe y existen distintas posturas sobre el protocolo que guía a la comunidad.

Un fork (bifurcación, escisión) es un cambio en el protocolo o una divergencia de la versión anterior de Blockchain. Cuando un minero genera un bloque alternativo con fines fraudulentos, el sistema consensúa la invalidez del bloque, de manera que el resto de mineros abandona éste “bloque huérfano” rápidamente.

Existen dos tipos de forks en blockchain: los Soft Fork y los Hard Fork.

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.

Esto implica que los participantes no están obligados a actualizar el software para seguir participando en la validación y verificación de transacciones.

Un punto a tener en cuenta, sin embargo, es que la funcionalidad del participante se ve afectada por la omisión de la actualización. Un ejemplo de soft fork sería la implantación de una nueva regla estipulando un cambio de tamaño de bloque del 1MB actual (1.000KB) a 800 KB.

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).

Funcionamiento

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 compleja 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.

Por lo tanto, los soft forks representan un mecanismo de actualización gradual, 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. Su objeto es incentivar a los participantes a ejecutar la actualización para no ver reducidas sus funcionalidades.

Hard Fork

Un hard fork es una actualización de software no compatible con versiones anteriores.

Por lo tanto, para seguir participando y validando nuevas transacciones sería imprescindible actualizar a la nueva versión del software . Aquellos participantes que rechacen la actualización se separan de la red, con lo cual no podrán validar nuevas transacciones. Esta separación tiene como resultado una divergencia permanente de la cadena de bloques.

En tanto la cadena minoritaria siga recibiendo soporte – esto es, que siga habiendo participantes llevando a cabo operaciones de minado en la dicha cadena – las dos cadenas coexistirán de manera simultánea. (Por ejemplo: Ethereum Classic y Bitcoin Cash)

A diferencia de un Soft Fork, en un hard fork se produce un cambio en el código de una criptomoneda que hace incompatible la nueva versión con las versiones anteriores. Este proceso provoca lo que denominamos  ‘bifurcación de la red’; hay que elegir entre usar la nueva versión del software o la anterior.

Motivos por los que se puede producir un Hard Fork

Los motivos por lo que se produce,  pueden ser o bien “accidentales” debido a una corrección de algún error en el código. O bien premeditados creando una nueva propuesta de protocolo y aplicándolos en una nueva versión de código.

Para entender mejor qué es un Hard Fork imaginemos un viaje con amigos por el bosque. Mientras sigan juntos, haciendo el mismo camino, todos verán lo mismo. Pero si en un determinado momento una parte del grupo decide seguir por una ruta diferente, la experiencia no será la misma. Cuando se produce un hard fork, se comparte el conocimiento pasado del camino pero no el conocimiento de los caminos futuros.

Un hard fork puede originar dos tipos de cadenas (la original y la nueva) dando lugar a dos redes y monedas diferentes.

EJEMPLOS DE HARD FORKS

Ethereum Classic

En Ethereum se hizo un hard fork para resolver los efectos de un ataque malicioso que tuvo como objetivo una de sus aplicaciones (la llamada Organización Autónoma Descentralizada, o DAO).

Sin embargo, una parte minoritaria de la comunidad se opuso a los cambios propuestos de la cadena bloques, por motivos filosóficos, alegando que dichos cambios afectarían a su naturaleza inmutable.

Debido a que tanto los desarrolladores ‘core’ de Ethereum como la mayoría de la comunidad llevó a cabo el hard fork, este grupo minoritario quedó atrás y siguió desarrollando tareas de minado sin actualizar el software, dando origen a la red ahora conocida como Ethereum Classic (ETC).

Cabe destacar que dado que la mayoría de participantes llevó a cabo la transición, esta mayoría ha mantenido el símbolo ETH original, mientras que a la minoría que soporta la versión anterior pasó a denominarse Ethereum Classic, ETC.

Bitcoin Cash

Bitcoin Cash es una criptomoneda que es una bifurcación buscada de Bitcoin con el objetivo de mejorar algunas características. Bitcoin Cash es una secuela o moneda alternativa creada en 2017. En 2018 Bitcoin Cash se escindió en dos monedas virtuales: Bitcoin Cash, y Bitcoin. A Bitcoin Cash también se le conoce como Bcash.

El fork de Bitcoin, Bitcoin Cash, se produjo a raíz del anuncio de una serie de cambios a Bitcoin por parte de sus desarrolladores. Los desarrolladores de la comunidad Bitcoin no pudieron llegar a un acuerdo sobre los cambios que querían realizar. De manera que un grupo reducido de desarrolladores creó un fork de Bitcoin para desarrollar una nueva versión ligeramente modificada. Heredando casi todo el código de Bitcoin (utilizan SHA-256, los dos generan bloques cada 10 minutos). Las diferencias están en que Bitcoin tiene bloques de 1MB y admite 3.5 transacciones por segundo entre otras cosas, mientras que en Bitcoin Cash los bloques son de hasta 32MB y admite unas 24 transacciones por segundo.

Las diferencias:

  • Las comisiones por transferencia de Bitcoin Cash son menores, con lo cual BCH ofrece una operativa más económica en comparación con BTC.
  • Menores tiempos de transferencia con BCH.
  • BCH puede gestionar más transacciones por segundo. Permitiendo una mayor interacción de usuarios simultáneamente que BTC.

¿Qué opina sobre HARD Y SOFT FORK? ¡Comparta sus ideas y comentarios en nuestro chat de Telegram!