Introducción

Cuando se le solicita que actualice su aplicación de banca digital en su teléfono inteligente, probablemente ni siquiera lo piense dos veces. Tal vez tu teléfono se actualice automáticamente sin que te des cuenta. Después de todo, es un proceso necesario: si no instala la última versión del software, corre el riesgo de que se le niegue el acceso a sus servicios.

En las criptomonedas de código abierto, las cosas son muy diferentes. No es necesario leer cada línea de código que sustenta Bitcoin para usarlo, pero es importante tener la opción de hacerlo. Verá, aquí no existe una jerarquía ni un banco que pueda simplemente impulsar actualizaciones y cambiar las cosas como le plazca. Como resultado, implementar nuevas funciones en las redes blockchain puede ser un desafío.

En este artículo, exploraremos cómo se pueden actualizar las redes de criptomonedas, a pesar de la falta de una autoridad central. Para ello utilizan dos mecanismos diferentes: hard fork y soft fork.


¿Quién toma las decisiones en una red blockchain?

Para comprender cómo funcionan las bifurcaciones, es importante primero comprender a los participantes involucrados en el proceso de toma de decisiones (o gobernanza) de la red.

En Bitcoin, en términos generales se puede hacer una distinción entre tres subconjuntos de participantes: desarrolladores, mineros y usuarios de nodo completo. Estos son los partidos que realmente contribuyen a la red. Los nodos ligeros (es decir, las billeteras de sus teléfonos, computadoras portátiles, etc.) se usan ampliamente, pero en realidad no son "participantes" en lo que respecta a la red.


Desarrolladores

Los desarrolladores son responsables de crear y actualizar el código. Para su moneda típica, cualquiera puede contribuir a este proceso. El código está disponible públicamente, por lo que pueden enviar cambios para que otros desarrolladores los revisen.


mineros

Los mineros son los que aseguran la red. Ejecutan el código de la criptomoneda y dedican recursos para agregar nuevos bloques a la cadena de bloques. En la red Bitcoin, por ejemplo, lo hacen mediante Prueba de Trabajo. Son recompensados ​​por sus esfuerzos en forma de recompensa en bloque.


Usuarios de nodo completo

Los nodos completos son la columna vertebral de la red de criptomonedas. Validan, envían y reciben bloques y transacciones y mantienen una copia de la cadena de bloques.


A menudo encontrarás superposiciones en estas categorías. Podrías, por ejemplo, ser desarrollador y usuario de nodo completo, o minero y usuario de nodo completo. Podrías ser los tres o ninguno. De hecho, muchos de los que consideramos usuarios de criptomonedas no asumen ninguno de estos roles. En cambio, optan por utilizar nodos ligeros o servicios centralizados.

Al observar las descripciones anteriores, podría presentar argumentos sólidos para que los desarrolladores y mineros tomen decisiones para la red. Los desarrolladores crean el código; sin ellos, no tendría ningún software que ejecutar ni nadie para corregir errores o agregar nuevas funciones. Los mineros aseguran la red: sin una competencia minera sana, la cadena podría ser secuestrada o podría detenerse.

Sin embargo, si estas dos categorías intentaran obligar al resto de la red a seguir su voluntad, no terminaría demasiado bien. Para muchos, el poder real se concentra en los nodos completos. Esto se debe en gran medida a que la red está habilitada, lo que significa que los usuarios pueden elegir qué software están ejecutando.

Los desarrolladores no irrumpen en tu casa ni te obligan a descargar los binarios de Bitcoin Core a punta de pistola. Si los mineros adoptan una actitud de “a mi manera o la autopista” para forzar un cambio no deseado en los usuarios, bueno, los usuarios simplemente tomarán la autopista.

Estos partidos no son señores todopoderosos: son proveedores de servicios. Si la gente decide no utilizar la red, la moneda perderá valor. La pérdida de valor impacta directamente a los mineros (sus recompensas valen menos cuando están denominadas en dólares). En cuanto a los desarrolladores, los usuarios pueden simplemente ignorarlos.

Verá, no es que el software sea propietario. Puede realizar las modificaciones que desee y, si otros ejecutan su software modificado, todos pueden comunicarse. En ese caso, bifurca el software y crea una nueva red en el proceso.


¿Qué es un tenedor?

Una bifurcación de software ocurre en un punto donde el software se copia y modifica. El proyecto original sigue vivo, pero ahora está separado del nuevo, que toma una dirección diferente. Supongamos que el equipo de su sitio web favorito de contenido sobre criptomonedas tuviera un gran desacuerdo sobre cómo proceder. Una parte del equipo podría replicar el sitio en un dominio diferente. Pero en el futuro, publicarían tipos de contenido diferentes al original.

Los proyectos se basan en un terreno común y comparten una historia. Como un solo camino que luego se divide en dos, ahora hay una divergencia permanente en sus caminos.

Tenga en cuenta que este tipo de cosas suceden mucho en proyectos de código abierto y han estado sucediendo durante mucho tiempo antes de la aparición de Bitcoin o Ethereum. Sin embargo, la distinción entre hard forks y soft forks es casi exclusiva del espacio blockchain. Analicemos esto un poco más.


➠ ¿Quieres empezar con las criptomonedas? ¡Compre Bitcoin en Binance!


Bifurcaciones duras versus bifurcaciones blandas

A pesar de tener nombres similares y, en última instancia, tener el mismo propósito, los hard forks y los soft forks difieren significativamente. Echemos un vistazo a cada uno.


¿Qué es un hard fork?

Los hard forks son actualizaciones de software incompatibles con versiones anteriores. Normalmente, esto ocurre cuando los nodos agregan nuevas reglas de una manera que entra en conflicto con las reglas de los nodos antiguos. Los nuevos nodos sólo pueden comunicarse con otros que operen la nueva versión. Como resultado, la cadena de bloques se divide, creando dos redes separadas: una con las reglas antiguas y otra con las nuevas.

Nodes turn blue when they update. The older yellow nodes reject them, while blue ones connect to each other.

Los nodos se vuelven azules cuando se actualizan. Los nodos amarillos más antiguos los rechazan, mientras que los azules se conectan entre sí.


Ahora hay dos redes funcionando en paralelo. Ambos seguirán propagando bloques y transacciones, pero ya no trabajarán en la misma cadena de bloques. Todos los nodos tenían una cadena de bloques idéntica hasta el punto de la bifurcación (y esa historia permanece), pero después tendrán diferentes bloques y transacciones.

blockchain forking at block 600,000.


Debido a que existe ese historial compartido, terminarás con monedas en ambas redes si las tenías antes de la bifurcación. Supongamos que tenía 5 BTC cuando se produjo una bifurcación en el bloque 600.000. Podrías gastar esos 5 BTC en la cadena anterior en el Bloque 600,001, pero no se han gastado en el Bloque 600,001 de la nueva cadena de bloques. Suponiendo que la criptografía no haya cambiado, sus claves privadas aún contienen cinco monedas en la red bifurcada.

Un ejemplo de bifurcación dura fue la bifurcación de 2017 en la que Bitcoin se fragmentó en dos cadenas separadas: la original, Bitcoin (BTC), y una nueva, Bitcoin Cash (BCH). La bifurcación se produjo después de muchas discusiones sobre el mejor enfoque para escalar. Los defensores de Bitcoin Cash querían aumentar el tamaño del bloque, mientras que los defensores de Bitcoin se opusieron al cambio.

Un aumento en el tamaño del bloque requiere la modificación de las reglas. Esto fue antes de la bifurcación suave de SegWit (más sobre esto en breve), por lo que los nodos solo aceptarían bloques de menos de 1 MB. Si creó un bloque de 2 MB que por lo demás era válido, otros nodos aún lo rechazarían.

Solo los nodos que hayan cambiado su software para permitir bloques de más de 1 MB de tamaño podrían aceptar esos bloques. Por supuesto, eso los haría incompatibles con la versión anterior, por lo que sólo los nodos con las mismas modificaciones de protocolo podrían comunicarse.


¿Qué es un tenedor blando?

Una bifurcación suave es una actualización compatible con versiones anteriores, lo que significa que los nodos actualizados aún pueden comunicarse con los no actualizados. Lo que normalmente se ve en una bifurcación suave es la adición de una nueva regla que no choca con las reglas anteriores.

Por ejemplo, se puede implementar una disminución del tamaño del bloque mediante una bifurcación suave. Una vez más recurramos a Bitcoin para ilustrar este punto: aunque hay un límite en cuanto al tamaño que puede tener un bloque, no hay límite en cuanto a lo pequeño que puede ser. Si solo desea aceptar bloques por debajo de cierto tamaño, solo necesita rechazar los más grandes.

Sin embargo, hacerlo no te desconecta automáticamente de la red. Aún te comunicas con nodos que no implementan esas reglas, pero filtras parte de la información que te pasan.

Un buen ejemplo de la vida real de una bifurcación suave fue la bifurcación Segregated Witness (SegWit) antes mencionada, que ocurrió poco después de la división Bitcoin/Bitcoin Cash. SegWit fue una actualización que cambió el formato de bloques y transacciones, pero fue diseñada de manera inteligente. Los nodos antiguos aún podían validar bloques y transacciones (el formato no infringía las reglas), pero simplemente no los entenderían. Algunos campos solo se pueden leer cuando los nodos cambian al software más nuevo, lo que les permite analizar datos adicionales.

Even two years after SegWit activation, not all nodes have upgraded. There are advantages to doing so, but there’s no real urgency since there’s no network-breaking change.


Incluso dos años después de la activación de SegWit, no todos los nodos se han actualizado. Hay ventajas al hacerlo, pero no hay una urgencia real ya que no hay ningún cambio que rompa la red.


Bifurcaciones duras versus bifurcaciones blandas: ¿cuál es mejor?

Básicamente, los dos tipos de horquillas anteriores tienen propósitos diferentes. Las bifurcaciones duras polémicas pueden dividir a una comunidad, pero las planificadas permiten la libertad de modificar el software con todos de acuerdo.

Los tenedores blandos son una opción más suave. En términos generales, está más limitado en lo que puede hacer, ya que sus nuevos cambios no pueden entrar en conflicto con las reglas anteriores. Dicho esto, si su actualización puede diseñarse de tal manera que siga siendo compatible, no necesita preocuparse por fragmentar la red.


Pensamientos finales

Las bifurcaciones duras y blandas son cruciales para el éxito a largo plazo de las redes blockchain. Nos permiten realizar cambios y actualizaciones en sistemas descentralizados, a pesar de la falta de una autoridad central.

Las bifurcaciones hacen posible que las cadenas de bloques y las criptomonedas integren nuevas funciones a medida que se desarrollan. Sin estos mecanismos, necesitaríamos un sistema centralizado con control de arriba hacia abajo. De lo contrario, nos quedaríamos atrapados con exactamente las mismas reglas durante la vida útil del protocolo.