Últimamente, la posibilidad de aplicar un hardfork para Bitcoin se escucha con más fuerza. Pero, ¿qué es un hardfork? Seguramente el traductor automático no ayuda demasiado traduciéndolo al español como ‘tenedor duro’. Pues bien, no tiene nada que ver con cubiertos, sino más bien con software.
Para ponernos en contexto, recordemos que tanto Bitcoin como las demás criptomonedas son, de hecho, software: programas informáticos. Y como todo software están propensos a sufrir cambios en pro de su mejoramiento; aunque, en su caso, esta propensión es mucho más elevada dado que se trata de software de código abierto. Esto quiere decir que, literalmente, cualquiera puede acceder a su código fuente y utilizarlo de forma libre. Así lo determinó desde un principio su gran creador, Satoshi Nakamoto, y de esa forma es que Bitcoin —y las demás criptomonedas— han logrado crecer hasta convertirse en lo que son hoy.
Pues bien, la cuestión es que en el software de código abierto son bastante comunes los forks o bifurcaciones. Esto es, sencillamente, tomar una copia del código original y empezar a desarrollar implementaciones o proyectos propios a partir de allí. Todos tendrían el mismo comienzo, la misma base, pero un futuro ligera o completamente distinto. Por eso se le llama bifurcación: de una sola pieza de software pueden salir muchas más, con distintas funciones y características.
De esta forma se han creado todas las altcoins —tomando su código base de Bitcoin—, así que, en esencia, los forks no son algo negativo, sino que permiten ampliar y mejorar el ecosistema. De hecho, para Juho Lindman y Linus Nyman de la Escuela de Economía Hanken en Helsinki, las bifurcaciones son un derecho fundamental para conseguir un ecosistema abierto como el que, desde el principio, pretendió crear Bitcoin.
El derecho a la bifurcación del código fuente abierto es el núcleo de la licencia de código abierto. Todas las licencias otorgan el derecho de bifurcar su código, es decir, iniciar un nuevo esfuerzo de desarrollo utilizando un código existente como base. Por lo tanto, la bifurcación representa la herramienta más grande disponible para garantizar la sostenibilidad en software de código abierto.
Juho Lindman y Linus Nyman
Sin embargo, cuando lo que se quiere no es crear una nueva pieza de software a partir de la primera (una nueva criptomoneda, por ejemplo), sino encontrar la mejor forma de actualizar la plataforma original para introducir cambios que la ayuden a seguir creciendo (como es el caso de Bitcoin), es donde la polémica surge y los tipos de forks aparecen.
Antes de pasar al porqué de la polémica, veamos de qué se tratan exactamente los tipos de bifurcaciones.
HARDFORK O BIFURCACIÓN DURA
Sí, es lo es lo que propone hacer Bitcoin Unlimited para impulsar la escalabilidad de la primera criptomoneda. Se trata de cambiar el protocolo para lograr que los bloques o transacciones previas que eran inválidos cambien a válidos. Esto incluye cambios en la estructura de bloque y reglas de dificultad en su resolución. Requiere que todos los participantes de la red se actualicen, pues la vieja versión ya no será compatible con la nueva.
De este modo, quien se quede en la versión desactualizada, notará que todas sus transacciones se vuelven inválidas y no serán incluidas en la cadena de bloques. A menos claro que la vieja versión tenga el suficiente apoyo como para separarse por completo de la nueva, creando así una nueva blockchain —y una nueva criptomoneda— en la que se mantienen las mismas reglas y se traza otro plan de desarrollo distinto a la actualización planteada por el hardfork.
Esto ya lo hemos visto: a raíz del incidente de DAO, la red Ethereum debatió junto a su comunidad qué podría hacerse. Un hardfork ganó por mayoría, pero esto no significó que la vieja red desapareció. Muchos usuarios decidieron quedarse en la blockchain original y seguir brindándole su apoyo, por lo que la plataforma se dividió en Ethereum y Ethereum Classic, que, pese a conservar como principal oferta los contratos inteligentes, ostentan una criptomoneda distinta (ETH Y ETC) y un plan de desarrollo diferente.
Cabe mencionar, además, que en el caso de llevarse a cabo un hardfork existen ciertos riesgos. Este es un cambio un tanto drástico del código, por lo que se abre la posibilidad de algunos errores o hackeos como el ataque de repetición, en el que una transmisión de datos válida es repetida de forma maliciosa, lo que, en el caso de las criptomonedas, podría originar un doble gasto: el hacker se aprovecharía de que existen dos blockchain para reproducir en ambas sus fondos y gastar varias veces las mismas criptomonedas.
Por otro lado, está el riesgo de una bifurcación accidental, donde la cadena vuelve a dividirse por un error en la actualización y sólo la nueva bifurcación es considerada como válida, dejando en el limbo las transacciones que se realicen en la versión anterior y por tanto abriendo la posibilidad de que los usuarios pierdan sus fondos. Esto ya le ocurrió a Bitcoin en 2013, aunque, por fortuna, sólo se tuvo que regresar a la versión anterior y no hubo pérdidas.
Es por ello que al umbral de una bifurcación dura, las casas de cambio pueden decidir congelar todas las transacciones hasta estabilizar la red.
SOFTFORK O BIFURCACIÓN SUAVE
Este un tipo de bifurcación menos drástico, y es lo se propone con el SegWit de Bitcoin Core. Consiste en un cambio en el protocolo donde los bloques o transacciones anteriores pasan de válidos a inválidos, pero los viejos nodos seguirán siendo compatibles con la red. Esto significa que un softfork permite cambios menores a los de un hardfork, razón por la cual sólo requiere para su activación el apoyo de la mayoría de los mineros; y actualizar a la nueva versión es opcional para los usuarios, aunque no para los mineros, que no podrán minar nuevos bloques válidos sin actualizar.
Pese a ello, el softfork también plantea algunos riesgos, incluida la bifurcación accidental; aunque en este caso la probabilidad de ese error en específico es mucho menor, y por ello muchas veces se prefiere sobre un hardfork. La principal preocupación que se plantea aquí es la vulnerabilidad de la falsa confirmación, donde el hacker podría crear una transacción sobre un bloque que no siga las nuevas reglas y sobornar al minero para mantenerlo incompatible, de modo que su transacción no entre en la cadena de bloques principal y le permita el doble gasto. Por tal motivo, ante un softfork, se busca que la gran mayoría de los mineros estén decididos a actualizar sus clientes.
BIFURCACIÓN SUAVE ACTIVADA POR LOS USUARIOS (UASF)
Esta es una tercera opción teórica, pues aún no ha sido aplicada en ninguna cadena de bloques. Se trata básicamente de un softfork, pero este deja de lado el requisito de conseguir consenso por parte de gran mayoría de los mineros, ya que sería implementado directamente por los usuarios que corran nodos completos de la red, como las casas de cambio y los servicios de carteras digitales; esperando que los mineros se vean atraídos por las nuevas medidas económicas.
Claro está, la UASF también tiene sus riesgos e inconvenientes. Para empezar, como los usuarios de nodos no tienen la mayoría del poder de la red, este fork se tardaría mucho más que los otros en implementarse: se cree que, tras el acuerdo público, el proceso podría alcanzar un año. Y, para terminar, los mineros continuarán teniendo la mayoría del poder en la red, por lo que podrían atacarla o provocar un hardfork si no están de acuerdo con las medidas implementadas por el UASF.
LA POLÉMICA
A pesar de las afirmaciones de Lindman y Nyman sobre los forks en el código abierto que mencionamos al principio, cuando se trata más bien de aplicar una bifurcación para decidir el camino que debe seguir una misma plataforma, la decisión se vuelve polémica de una u otra manera.
Tal como menciona Vitalik Buterin, creador de Ethereum, todos los forks en este caso son en realidad coercitivos a su propio modo. En el hardfork, la situación que se presenta para los usuarios es que, aunque no estén de acuerdo, si quieren permanecer en la plataforma deben cambiar a la nueva cadena si la mayoría decide seguir por ese camino. En el softfork esta situación puede parecer más dócil, pero en realidad ni siquiera existe el escape de dividir la red y crear una nueva blockchain, como en el hardfork, pues todos los mineros deben adaptarse a la mayoría de votos si quieren seguir minando.
Se siente que un hardfork ‘obliga’ al usuario a instalar una actualización de software, mientras que en el softfork los usuarios no ‘tienen’ que hacer nada en absoluto. Sin embargo, esta intuición (que el softfork es menos coercitivo) es desacertada. Lo que importa no es si los usuarios individuales tienen o no que cumplir con el requisito burocrático de clickear el botón “Descargar”, sino que el usuario esté siendo o no obligado a aceptar un cambio en las reglas del protocolo que de otro modo no aceptaría.
Vitalik Buterin
De cualquier forma, encontrar un consenso absoluto es una tarea casi imposible por pura probabilidad estadística, así que hallar un equilibrio entre la libertad de los usuarios y el mejor camino para un protocolo no resulta fácil. Muchas veces el desenlace de este tipo de debates es una división definitiva, tal como le pasó a Ethereum. Pero, en ese caso, existe otra desventaja peligrosa: se crearán dos proyectos que perderán inevitablemente el apoyo y valor que tenían antes de su división, y, además, competirán entre sí dividiendo también a toda la comunidad.
Cuál será más auténtico que el otro es otro tema de polémica. Por ejemplo, en el caso de que Bitcoin se dividiera en dos criptomonedas, cabría preguntarse cuál sería el original y cuál una altcoin. Y esa competencia podría volverse bastante agria en todo aspecto, según vemos en el diccionario de programación Jargon File:
La bifurcación se considera algo negativo, no sólo porque implica mucho esfuerzo perdido en el futuro, sino porque tiende a ser acompañada por una gran cantidad de luchas y acritud entre los grupos sucesores sobre cuestiones de legitimidad, sucesión y dirección del diseño. Hay una seria presión social contra la bifurcación.
Jargon File
Los desenlaces para estos debates, según el científico computacional David Wheeler, sólo pueden ser cuatro: la muerte de la bifurcación por falta de apoyo, su absorción posterior por parte del original, la muerte del original y una división exitosa. No obstante, saber el resultado de antemano es tan imposible como conseguir un consenso absoluto. Por ello, ante el fork de una plataforma, sólo queda la incertidumbre de lo que podría ocurrir en lo próximo.