¿Cuáles son las diferencias entre hard fork y soft fork?

Tiempo de lectura: 7 minutos Diferencias entre hard fork y soft fork

En el mundo de las criptomonedas, un hard fork o bifurcación dura es una rama de la blockchain causada por un cambio en las reglas de consenso. Por extensión, el término también se utiliza para referirse a cualquier cambio no compatible con versiones anteriores en el protocolo que pueda causar una duplicación permanente de la cadena.

Un soft fork o bifurcación suave es una modificación compatible con versiones anteriores de las reglas de consenso, que no causa separación si es aplicada por la mayoría del poder de validación. El soft fork es esencialmente restrictivo (agregando nuevas reglas).

En este artículo, nos centraremos en las bifurcaciones relacionadas con los cambios en las reglas de consenso. De hecho, hay otro tipo de fork de la que no hablaremos aquí: el fork común, que no está relacionada con tal cambio y simplemente es causada por un conflicto entre bloques. Si quieres saber más sobre esto, te recomendamos que leas nuestro artículo sobre el tema: ¿Qué es un fork?

¿Qué son las reglas de consenso?

Cualquier criptomoneda funciona a través de un protocolo, es decir, un conjunto de reglas de comunicación para llegar a un acuerdo de forma descentralizada. Las reglas que componen este protocolo se denominan reglas de consenso. En el caso de una blockchain, se utilizan para definir la validez de las transacciones y los bloques.

Por ejemplo, las siguientes reglas se utilizan en Bitcoin (BTC):

  • El importe de entrada de una transacción debe ser mayor (o igual a) el importe de salida.
  • El peso de los bloques está limitado a 4 millones de unidades de peso, según lo definido por SegWit. Esto permite que Bitcoin tenga una capacidad transaccional que oscila entre 5 y 15 transacciones por segundo.
  • Cada bloque debe tener una prueba de trabajo, producida por hashes repetidos de la cabecera por la función SHA-256.
  • La creación de nuevos bitcoins por bloque está restringida por un cierto límite, que actualmente es de 6,25 bitcoins por bloque.
  • La dificultad de minería se ajusta cada bloque de 2016 (aproximadamente 2 semanas), para garantizar un tiempo promedio de 10 minutos entre cada bloque.
  • El límite de nuevos bitcoins que se pueden crear se reduce a la mitad cada 210,000 bloques (aproximadamente cada 4 años), de modo que no hay más de 21 millones de bitcoins.

Si estas reglas han de permanecer constantes a corto plazo, pueden cambiar con el tiempo. Aquí es donde entran en juego las horquillas duras y las horquillas blandas.

¿Qué es un hard fork o bifurcación dura?

Un hard fork es una rama de la blockchain causada por una divergencia en las reglas de consenso.

El hard fork también se refiere a una modificación del protocolo no compatible con versiones anteriores que probablemente cause dicha ramificación. Por lo general, tenemos dos ramas: una siguiendo las reglas antiguas y la otra siguiendo las nuevas.

Reglas anteriores vs reglas nuevas en hard fork

Un hard fork puede ser extenso y corresponder a una ampliación de las reglas de consenso: el aumento en el límite de tamaño de bloque en Bitcoin, por ejemplo. Pero también puede ser bilateral creando una incompatibilidad total entre las nuevas reglas y las antiguas: el cambio del algoritmo para firmar transacciones, por ejemplo.

Aparte del caso de accidentes (resueltos rápidamente), los hard forks se pueden dividir en dos categorías.

La primera categoría son las actualizaciones. Esta es una modificación del protocolo que es aceptada casi unánimemente por todos los actores involucrados en la criptomoneda (desarrolladores, validadores, usuarios). En este caso, solo la cadena que aplica las nuevas reglas sobrevive y la otra muere por desinterés: el resultado es, por lo tanto, generalmente lineal y no causa una ramificación real.

Tales hard forks de actualización son legión en el mundo de las criptomonedas. El primer hard fork de actualización conocido es probablemente la adición de Satoshi Nakamoto de los códigos de operación OP_NOP a la versión 0.3.6 de Bitcoin en julio de 2010. Bitcoin también se sometió a un hard fork en 2013 debido a la migración del sistema de base de datos de Berkeley DB a LevelDB.

A pesar de que BTC ahora se actualiza mediante soft fork, muchos otros proyectos usan hard fork para evolucionar. Por lo tanto, Ethereum se puede actualizar varias veces al año de esta manera. El método también es utilizado regularmente por Bitcoin Cash y Monero.

La segunda categoría es la de los hard forks de litigio. Esta situación ocurre cuando una comunidad está muy en desacuerdo sobre los cambios de reglas que se adoptarán. Esto generalmente resulta en la supervivencia de dos cadenas de bloques separadas y la separación de los usuarios en dos campos. Todo está así duplicado: estamos ante dos protocolos, dos redes, dos cadenas, dos conjuntos de desarrolladores, validadores y usuarios.

El primer ejemplo de hard fork de litigio es el que tuvo lugar en Ethereum (ETH) y Ethereum Classic (ETC) en junio de 2016, en el contexto del hackeo de TheDAO. Este hackeo permitió a alguien apoderarse de 3,6 millones de ethers (150 millones de dólares en ese momento), lo que llevó a los líderes de la comunidad (incluido Vitalik Buterin) a decidir cancelar este robo por completo cambiando el estado del sistema (hard fork). Una porción más pequeña de la comunidad se opuso a este cambio, y la cadena original sobrevivió. Dado que la mayoría económica estaba en el lado de la cancelación, la cadena alterada mantuvo el nombre Ethereum, mientras que la otra cadena tomó el nombre Ethereum Classic.

Hard fork con Ethereum y Ethereum Classic

El hard fork de litigio más conocido es el que ocurrió entre Bitcoin (BTC) y Bitcoin Cash (BCH) en agosto de 2017, tras el debate sobre la escalabilidad de Bitcoin que duró años. Este hard fork era aproximadamente el límite de tamaño de bloque. Luego, 1 MB en Bitcoin, este límite evitó que todas las transacciones fueran procesadas por la red de manera oportuna, lo que alargó los tiempos de confirmación y aumentó las tarifas de transacción (esta situación se repite regularmente en la red bitcoin). Esta es la razón por la que se creó Bitcoin Cash: al aumentar el límite de tamaño a 8 MB por un hard fork (luego a 32 MB a partir de entonces), la criptomoneda pudo aumentar su capacidad transaccional. Este método de escalamiento no fue favorecido por la mayoría económica, la cadena que no cambió las reglas pudo mantener el nombre de Bitcoin, mientras que la nueva cadena tuvo que adoptar un nuevo nombre: Bitcoin Cash.

Hard fork con Bitcoin y Bitcoin Cash

¿Qué es un soft fork o una bifurcación suave?

Un soft fork o bifurcación suave es una modificación compatible con versiones anteriores (o postcompatibles) de las reglas de consenso, en el sentido de que los nodos que siguen las reglas antiguas continúan viendo los bloques producidos como válidos y, por lo tanto, permanecen conectados a la red. Esto es esencialmente una restricción de protocolo: las transacciones y los bloques previamente válidos se vuelven inválidos. Una ilustración típica del soft fork es la reducción del tamaño del bloque (de 1 MB a 300 KB, por ejemplo): los nodos antiguos ven los bloques pequeños como válidos a pesar de que la regla que aplican (límite a 1 MB) es más amplia.

El soft fork a menudo se prefiere al hard fork para actualizar el protocolo debido a su naturaleza opcional para nodos no mineros, lo que hace posible no alterar el efecto de red de la criptomoneda. Hoy en día es el método preferido para mejorar Bitcoin (BTC).

Si no es seguido por más de la mitad del poder de validación (poder de hash en el caso de prueba de trabajo, tokens involucrados en el caso de prueba de participación), es probable que el soft fork cause una ramificación permanente de la cadena. De hecho, de acuerdo con el principio de la cadena más larga, los nodos que aplican las reglas antiguas podrían seguir una cadena considerada inválida por los nodos que aplican las nuevas reglas, de ahí la creación de dos cadenas separadas.

Por ejemplo, la aplicación de una reducción en el límite de tamaño de bloque a 300 KB llevaría a la ramificación de la cadena en dos cadenas: la primera, más larga, según la antigua regla; el segundo, más corto, aplicando la nueva regla.

Soft fork en un grafico

Es por esta razón que es común realizar lo que se llama un soft fork activada por minero (MASF), en lugar de un soft fork activado por el usuario (UASF). UASF consiste en implementar el soft fork en el código fuente del software para que entre en vigor en una fecha y hora predefinidas. El MASF consiste en hacer que la activación del informe dependa de los menores que registran su acuerdo en un campo específico del bloque (ver BIP-9): el soft fork se activa por lo tanto cuando una cierta proporción de la potencia de cálculo (95% generalmente) ha dado su acuerdo durante un período determinado, lo que permite evitar una separación.

Como se ha dicho, los soft forks se utilizan en particular para actualizar el protocolo Bitcoin. Por lo tanto, este último ha experimentado muchos soft forks durante su historia.

Uno de los primeros soft forks fue la limitación explícita del tamaño del bloque a 1 MB, que entró en vigor en octubre de 2010. Esta horquilla blanda era una UASF, habiendo sido programada por Satoshi Nakamoto para ser activada en una fecha específica.

La adición de P2SH (Pay-to-Script-Hash) en 2012 fue el primer MASF. El propósito de esta actualización era facilitar el uso de contratos inteligentes en Bitcoin.

Por último, uno de los soft forks más conocidas es probablemente SegWit, aplicada el 24 de agosto de 2017, que permitió, entre otras cosas, corregir la maleabilidad de las transacciones y aumentar ligeramente la capacidad transaccional de Bitcoin. También era un MASF, aunque potencialmente podría haber sido un UASF.

Ventajas y desventajas de ambos forks

Hard fork y soft fork son, por lo tanto, dos métodos para actualizar un protocolo que administra una criptomoneda. Los dos métodos tienen diferentes ventajas y desventajas que deben mencionarse.

Ventajas del hard fork

  • Simplicidad: La actualización puede implementar mejoras de una manera lógica y ordenada para no complicar las cosas.
  • Claridad del consentimiento: Siempre se concede un hard fork si se adopta.

Desventajas del hard fork

  • Obligatorio de la actualización que requiere que todos los nodos de la red se sincronicen: esto lleva más a la expulsión de los nodos que no se actualizan.
  • Alta probabilidad de ramificación de la cadena.

Ventajas del soft fork

  • Naturaleza opcional de la actualización que permite que los nodos que no son de minería se actualicen gradualmente.
  • Baja probabilidad de ramificación de la cadena si el soft fork es reportado por la mayoría de los validadores.

Desventajas del soft fork

  • Complejidad: Debido a que el soft fork es restrictivo, la actualización a menudo requiere la adición de nuevas excepciones para implementar los cambios (P2SH, CLTV/CSV, SegWit).
  • Ambigüedad del consentimiento: un soft fork puede ser «forzado», es decir, impuesto por la mayoría de los validadores, sin que los usuarios puedan reaccionar, excepto para proceder a un hard fork. El soft fork es indistinguible de la censura de las transacciones.

Hasta aquí el artículo explicando las diferencias entre hard fork y soft fork. Espero que te haya gustado y si ha sido así házmelo saber con una valoración y un comentario 🥰

¿Cuál es tu opinión sobre este artículo?
(Votos: 0 Promedio: 0)

Últimas noticias sobre la Blockchain

Sobre la autora: Fátima Ruiz

Fátima Ruiz
Deja un comentario

Este sitio web utiliza cookies propias y de terceros para recopilar información que ayude a optimizar tu visita. No se utilizarán las cookies para recoger información de carácter personal. Puedes aceptar o rechazar su uso siempre que lo desees. Encontrarás más información en nuestra política de cookies. Más información

Los ajustes de cookies en esta web están configurados para «permitir las cookies» y ofrecerte la mejor experiencia de navegación posible. Si sigues usando esta web sin cambiar tus ajustes de cookies o haces clic en «Aceptar», estarás dando tu consentimiento a esto.

Cerrar