Creando una nueva criptomoneda desde otra: ¿qué es un fork y qué sentido/utilidad tiene?




En la segunda mitad de 2017 surgió la moda de crear nuevas versiones de Bitcoin, utilizando su nombre, sólo que añadiendo un apellido diferenciador. En realidad, muchas de las criptomonedas más conocidas del momento como Litecoin o DASH son copias modificadas de Bitcoin, pero no surgieron como proyectos empresariales propios sino más bien para explorar los límites de lo posible con el modelo de Blockchain de Bitcoin o simplemente por probar modificaciones al protocolo que no se podían implementar por consenso en Bitcoin.
Pero como decimos, esto cambió en 2017 y desde entonces se han creado una infinidad de nuevas criptomonedas con el nombre de Bitcoin y un apellido distinto. El pistoletazo de salida a esta nueva moda tuvo lugar el pasado 1 de agosto con la aparición en escena de Bitcoin Cash. A este le siguió el tumultuoso lanzamiento de Bitcoin Gold -con prácticas cuestionables- y el posterior intento -fracasado- de SegWit2x. También podemos encontrar en esta nueva categoría a Bitcoin Diamond y otros similares que surgen en un contexto de burbuja de precios actuales que atrae a personas que ven el dinero fácil con esta moda de crear forks de Bitcoin. De esta forma pretenden ganar dinero con modelos de pre-minado u otras estrategias similares al amparo del nombre original de Bitcoin. Este nuevo escenario ha propiciado que incluso las personas que conocen un poco el mercado en el grupo de Telegram de Blockchain España confundan conceptos y por eso hemos preparado este repaso sobre el significado de un fork para tratar de evitar más malentendidos en el mercado.
Hoy charlamos con Jose Manuel Arenillas, administrador de sistemas, entusiasta de Blockchain y amigo de Blockchain España, para que nos aclare el concepto de bifurcación y cómo la serie de forks de Bitcoin del 2017 ha creado confusión en el mercado de las criptomonedas.

¿Qué es un fork en el mundo del código abierto o software libre?
El término fork se refiere a copiar el código de un proyecto existente y comenzar un desarrollo distinto partiendo de ese código.
El derecho a realizar un fork a un proyecto de código abierto viene implícito en la licencia de código abierto porque esta permite que tanto el código fuente como los archivos binarios sean modificados y redistribuidos libremente sin tener que pagar al autor original. Hay diferentes tipos de licencia de código abierto y en algunos hay condiciones a este derecho de fork como nombrar la fuente original.

¿En qué es diferente un fork en el mundo de las criptomonedas en comparación con el mundo del software libre?
En nada, siempre que su código sea abierto. El fork como he comentado en la respuesta anterior simplemente es aprovechar un código existente, copiarlo y seguir un desarrollo diferente al que sigue el código de origen.
Es común pensar que fork en el entorno de la criptomonedas tiene un significado diferente pero no es así. Creo que el error viene por dos términos que nacieron con blockchain: 'soft fork' y 'hard fork'.
Dicho todo esto sí que hay una diferencia importante. En el mundo del software libre, un fork no puede ser una iniciativa que tenga una recompensa monetaria en el corto plazo. En cambio, en el mundo de las criptomonedas, según como se estructure el fork, sí que se puede hacer dinero. Muchas de estas iniciativas en 2017 parecen haber estado motivadas por razones de hacer dinero fácil y no con la idea original de innovar en el mundo del software libre. Como vivimos en una burbuja especulativa de las criptomonedas, muchos especuladores invierten en proyectos independientemente del mérito que pueda tener el proyecto. Un proyecto de software libre clásico es fácil de bifurcar porque no necesita de una comunidad para poder funcionar, pero una criptomoneda necesita por definición una comunidad para poder funcionar porque sin ella no puede ser segura ni tener relevancia.

¿Qué diferencias hay entre un soft fork y un hard fork en Bitcoin u otras criptomonedas?
Un soft fork es un cambio en el protocolo en el que sólo los bloques/transacciones anteriores a dicho fork, son inválidas. Los nodos no actualizados darán como válidos los nuevos bloques. Por eso se dice que es retrocompatible. Este tipo de fork sólo requiere que actualicen el software la mayoría de los mineros para aplicar las nuevas reglas.
Cuando se propone un soft fork, se produce una división temporal de la cadena de bloques. La cadena original contendrá los bloques de los nodos no actualizados y aceptará también los bloques de aquellos nodos actualizados mientras que la nueva cadena sólo admitirá los bloques de los nodos actualizados.
Una vez implementado el soft fork, normalmente se fija un número de bloque en el que, si no hay los suficientes nodos actualizados o no tiene la suficiente potencia de minería, el soft fork se considera rechazado y la cadena original continua sin los cambios, pero si es aceptado se aplican las nuevas reglas a la cadena. En este caso, los nodos que no actualicen seguirán confirmando transacciones de la cadena anterior al soft fork.
Un hard fork implica un cambio en el protocolo y los bloques generados tras su aplicación no serán válidos para los nodos no actualizados. En este supuesto, y porque conlleva un cambio en el protocolo, debe haber consenso para realizar dicho cambio para evitar una bifurcación de la cadena de bloques (chain split o blockchain fork).

¿Qué es un fork en una cadena de bloques como Bitcoin cuando se crean dos cadena paralelas temporalmente?
La blockchain de Bitcoin sufre un fork de este tipo 2 a 3 veces por semana, es algo conocido y natural. Como ya sabemos, para minar un bloque el minero debe resolver un problema matemático. Se da el caso en el que dicho problema es solucionado a la vez por más de un minero, en ese momento ambos mineros propagan sus bloques por la red Bitcoin y su bloque con sus transacciones se añaden al final de la blockchain. En este caso tenemos un 'chain fork' porque la blockchain está dividida. Sin embargo, la solución a este 'problema' es sencilla y es una de las máximas de Bitcoin, la cadena con más prueba de trabajo, la más larga, es la válida. Es decir, el fork continuará hasta que se mine el siguiente bloque, en el momento en que se mina el siguiente bloque, el minero incluirá en el mismo el hash del bloque válido anterior y lo propagará a la red. Los nodos detectarán la cadena más larga y el fork finalizará de forma natural.

¿Qué es un chain split en el contexto de una criptomoneda?
Un 'chain split' o 'blockchain fork' es la división de la cadena de bloques. Es decir, en caso de que no haya consenso en la implantación de un hard fork en el protocolo y que dicho cambio finalmente se haga efectivo, si los dos grupos tienen la suficiente potencia como para continuar el minado de cada cadena, se produce una bifurcación. Recientemente hemos tenido varios ejemplos de chain split de Bitcoin, Bitcoin Cash, Bitcoin Gold y Bitcoin Diamond, Super Bitcoin - SBTC en el bloque 498.888 (17 de diciembre de 2017), Bitcoin Cash Plus - BCP en el bloque 501.407 (2 de enero de 2018) y otro intento de SegWit2x - B2X para el 28 de enero de 2018 después de abandonarse el primer intento en noviembre de 2017, pero por otro grupo promotor intentando monetizarlo.
¿Con qué intencionalidad se puede hacer un soft fork o hard fork? ¿Qué ejemplo sería Litecoin o Dogecoin en este contexto? ¿Qué tipos de ejemplo son Bitcoin Gold, Bitcoin Cash, Bitcoin Diamond en este contexto?
Recordemos que un soft fork y un hard fork se refieren a cambios en el código del proyecto. Estos cambios tienen siempre la intención de mejorar el proyecto. No obstante hay que tener en cuenta que cualquier cambio en el código puede traer consecuencias. IOTA (aunque no sea un proyecto Blockchain), por ejemplo, cambió la semilla de sus carteras lo que invalidó las carteras creadas antes de ese cambio. En este caso, el código es correcto, pero hubo usuarios que no realizaron los pasos que comunicó IOTA y hay millones de IOTA bloqueados en esas carteras.
En el caso de Litecoin volvemos al fork en el contexto de clonado de código. Litecoin clonó el código de Bitcoin y el desarrollador, Charlie Lee, cambió el código para crear Litecoin. El mismo caso se aplica a Dogecoin que partió, a su vez, del código de Litecoin y con un cariz cómico. Por eso se dice de Doge que es la primera criptodivisa con una religión paródica. Otro ejemplo sería PIVX, que es un fork de Dash y Dash a su vez es fork de Bitcoin.
Bitcoin Cash es un ejemplo de hard fork en los que no ha habido consenso tras someter un BIP (Bitcoin Improvement Proposal) a votación y se ha producido una bifurcación de la blockchain en la que una parte de la capacidad minera de Bitcoin se ha pasado a Bitcoin Cash.
En el caso de otros proyectos que aprovecharon el auge de Bitcoin Cash como Bitcoin Gold o Diamond, no hubo BIP ya que las propuestas hubieran sido claramente rechazadas, y se realizó el fork a la altura de un bloque determinado (llamado snapshot en inglés). Todos estos ejemplos son "chain splits" en los cuales se ha utilizado un bloque de referencia y a partir de ese bloque se ha implementado un hard fork de Bitcoin con otras reglas de juego. Dicho esto el más relevante ha sido Bitcoin Cash porque ha podido transferir parte de la capacidad minera de Bitcoin a su propia cadena, en los otros proyectos que han aprovechado el nombre de Bitcoin no ha ocurrido esto de forma relevante.
Desde un punto de vista especulativo lo importante ha sido que para cada uno de estos hard forks las direcciones mantienen el saldo en ambas versiones de la cadena. El reto para cada uno de estos proyectos ha sido conseguir que se listen sus tokens en las casas cambio (Exchanges) o tener el apoyo de carteras (wallets) para que los propietarios de bitcoins tuvieran acceso a ese nuevo token. Con la moda de crear nuevos bitcoins las casas de cambio y carteras están restringiendo el apoyo a esto proyectos por su carácter especulativo.
En el mundo de las blockchains públicas puedes tener tus propias ideas, implementarlas y la comunidad tiene la libertad de elegir la solución que consideren mejor. El tiempo y la comunidad dará o quitará razones.

En definitiva y de forma concisa podemos decir que existen estos tipos de forks (bifurcación):
1. Soft fork: compatible con la blockchain histórica de Bitcoin. Es una decisión de la comunidad (mineros, usuarios, desarrolladores, industria, etc).
2. Hard fork con consenso: no compatible con la blockchain histórica de Bitcoin. También es una decisión de la comunidad. Puede haber un hard fork cuando hay consenso de la comunidad Bitcoin para hacer cambios sobre el protocolo.
3. Hard fork sin consenso: Históricamente han sido proyectos que han querido mejorar Bitcoin o experimentar como Litecoin o Dash junto a muchos otros. Y en 2017 con Bitcoin Cash se ha dado el primer caso de hard fork por falta de consenso y a partir de ahí ha habido muchos proyectos que han querido aprovechar el nombre de Bitcoin para hacer copias de Bitcoin para enriquecerse en la mayoría de los casos. SegWit2x era otro ejemplo de falta de consenso que no tuvo éxito en noviembre de 2017.
4. Fork de cadena (chain fork): es cuando tenemos dos cadenas de forma simultánea que surgen desde el último bloque válido y en el que ganará la cadena más larga. Esto pasa de forma natural al crear bloques de forma simultánea por diferentes mineros.
Todos los forks son iguales en el mundo Blockchain, pero no todos se crean con las mismas intenciones.

Origen aquí.
Fuente de noticias: www.eleconomista.es

Comentarios