En la tecnología blockchain, los hard forks y los soft forks son dos métodos distintos para actualizar y modificar los protocolos de red. Tienen diferencias significativas en su implementación, afectando la estructura y el funcionamiento de la red blockchain.
Hard Fork - Un "hard fork" se refiere a un cambio en las reglas donde la nueva versión de la red ya no es compatible con la versión anterior, lo que resulta en dos ramas de la blockchain (paralelas y no afectadas entre sí).
Soft Fork - Un "soft fork" se refiere a un cambio en las reglas donde los nodos que implementan las nuevas reglas aún pueden interactuar con los nodos que no han adoptado los cambios. La nueva versión de la red sigue siendo compatible con la versión anterior.
Hard Fork | Soft Fork |
p. ej., DAO de 2016 | p. ej., Segwit de 2017 |
La versión antigua no es compatible con la nueva red. | La nueva red es compatible con la antigua. |
Protocolos diferentes | Mismo |
Análisis de Situación
Hard Fork Soft Fork
Por ejemplo, si la mitad de los nodos de la red quieren expandir el tamaño del bloque de 2MB a 3MB, enviar un bloque de 3MB a los nodos de la versión antigua resultará en un rechazo, ya que los nodos de la versión antigua tienen una regla que especifica 2MB como tamaño máximo de bloque. En este escenario, el protocolo de red se divide en dos, cada uno utilizando diferentes monedas. Todos los saldos de cuentas se clonan de los registros originales a la nueva cadena. Los usuarios con 20BTC antes del fork tendrán una cuenta con 20BTC y otra con 20 BTC nuevos en ambas cadenas.
Por ejemplo, si el tamaño de bloque original es de 2MB y ahora la mitad de los nodos de la red implementan una nueva restricción de tamaño de bloque de 1MB y tratan los bloques más grandes como inválidos, los nodos de la versión antigua aún pueden recibir o transmitir bloques. En este caso, la nueva red puede cubrir todos los nodos sin estar limitada por versiones de reglas. El Segregated Witness (SegWit) de Bitcoin es un ejemplo de soft fork. Este fork introdujo ingeniosamente un nuevo formato para bloques y transacciones. Los nodos que no se han actualizado pueden seguir recibiendo información de bloques pero no participan en la validación de nuevas transacciones.
