Bitcoin forks (I)

4 diciembre, 2017

(Trobareu la versió en català més avall)

Todo aquel que últimamente haya estado un poco atento al mundo de las criptomonedas, sin duda, habrá oído hablar de forks y creación de nuevas monedas a partir de bitcoin. Hoy empezamos una serie de dos artículos donde intentaremos explicar de forma divulgativa en qué consisten los forks y también responder algunas preguntas que suelen salir al tratar este tema: ¿qué es un fork?, ¿cuál es la diferencia entre hard fork y soft fork?, ¿se crean nuevas monedas con cada fork? y ¿tengo el doble de dinero después de un fork?

Aunque estos artículos pueden entenderse con mínimos conocimientos de bitcoin y blockchain, antes de empezar a responder a estas preguntas, emplazamos a todo aquél que todavía desconozca completamente de qué va esta tecnología a que lea la serie de tres artículos que publicamos anteriormente en este blog, donde explicamos las bases de blockchain (Descentralizando el mundo con blockchain I, II, III).   

También, antes de responder a ninguna de las preguntas, vamos a recordar brevemente y de forma simplificada algunas características importantes de bitcoin para poder entender el resto del artículo. Para empezar recordemos que básicamente bitcoin son unos apuntes contables que se guardan en una cadena de bloques (blockchain). Donde las blockchain son estructuras de datos para guardar información de forma distribuida entre múltiples nodos de una red P2P. Las blockchain, como las de bitcoin, están diseñadas para que la información pueda ser consultada y para que los usuarios puedan añadir nuevas entradas, pero que en ningún caso se pueda modificar o eliminar información ya entrada. Por este motivo, se hace un símil entre una blockchain y un libro contable. En un libro contable, al hacer una transacción no modificamos una entrada ya hecha, sino que añadimos una nueva entrada secuencialmente después de las entradas ya hechas en una página y que modifica cierto balance. Una vez una página está llena, pasamos a la siguiente página del libro contable y los balances se van modificando mediante nuevos apuntes. En este símil, la blockchain sería el libro contable, los bloques serían las páginas y las transacciones serían los apuntes contables.

Además, también tenemos que recordar que bitcoin y la mayoría de criptomonedas han sido programadas en open source. Esto implica que cualquier interesado puede coger el código, revisarlo y modificarlo para desplegar una variante de bitcoin. Con esto empiezan las posibilidades de crear forks. De forma intuitiva y muy simplificada, un fork se produce cuando un grupo lo suficientemente importante despliega una nueva versión del protocolo. Si la nueva versión incluye una modificación que hace el protocolo más restrictivo se produce un soft fork. Por ejemplo, si reducimos el tamaño de los bloques. Este tipo de fork tiene la propiedad de ser backwards compatible, o sea, que antes del fork todos los nodos de la red aceptarían los bloques generados con el nuevo protocolo, y por lo tanto, después del fork, los nodos que no se actualicen también aceptarán estos bloques. Sin embargo, los nodos actualizados no aceptarán los bloques de los nodos no actualizados, ya que los nuevos nodos ejecutan un protocolo más restrictivo. Esto hace que sólo con que la mayoría de los nodos adopte el nuevo protocolo, el fork tenga éxito y no se cree una nueva moneda, ya que a la larga, solo las cadenas de bloques con bloques generados con el nuevo protocolo serán aceptados por todos los nodos.   

Por otro lado, si al hacer actualizaciones ampliamos las capacidades del protocolo haciéndolo menos restrictivo, entonces se producirá un hard fork. Por ejemplo, ampliando el tamaño de los bloques. En estos casos, los nodos que no se actualicen nunca aceptarán bloques generados por el nuevo protocolo, así que estos seguirán minando bloques ignorando cualquier transacción incluida en bloques minados con el nuevo protocolo. De esta forma, mientras haya nodos con el protocolo antiguo, se mantendrán y se irán haciendo más largas dos cadenas de bloques diferentes, una mantenida por nodos actualizados y una mantenida por nodos no actualizados. De esta forma nace una nueva criptomoneda.

Además, como las dos ramas creadas compartirán la cadena con los datos hasta el momento del fork, también tendremos que, en ese momento, los usuarios tendrán un número idéntico de monedas antiguas y de nuevas. A partir del fork, cuando un usuario haga una transacción en una de las cadenas, la transacción no deberá registrarse en la otra cadena, y por lo tanto será como si tuviera dos monedas diferentes. A continuación incluimos un par de imagen con una representación de lo que pasa con las cadenas en el caso de los dos tipos de fork.
 

Representación de un soft fork (Fuente de datos bitcoin.org).

Representación de un hard fork (Fuente de datos bitcoin.org).

 
Para los lectores menos interesados en las consecuencias tecnológicas que producen los forks sobre las cadenas de bloques, vamos a volver al símil del libro contable. En este caso podemos decir que un soft fork simplemente actualiza las normas sobre cómo escribimos en el libro y el tipo de apuntes contables que podemos hacer. En cambio, un hard fork primero hace una copia de todo el libro y luego aplica nuevas normas al libro nuevo. A partir de aquí, los impulsores del fork pueden olvidarse completamente del libro original. Evidentemente, como el nuevo libro es una copia del original, este nuevo libro, que representará una nueva moneda, mantendrá los balances originales.

En el siguiente artículo, que publicaremos el próximo jueves, explicaremos los forks que se han producido recientemente a partir de bitcoin y cuáles son las monedas nuevas que se han creado.
 
Víctor Garcia-Font es profesor de los Estudios de Informática, Multimedia y Telecomunicación de la Universitat Oberta de Catalunya e investigador de la cátedra UOC-IBM en ciberseguridad.
 

Bitcoin forks (I)

Tot aquell que últimament hagi estat una mica atent al món de les criptomonedes, sens dubte, haurà sentit parlar de forks i de creació de noves monedes a partir de bitcoin. Avui comencem una sèrie de dos articles on intentarem explicar de manera divulgativa en què consisteixen els forks i també respondre algunes preguntes que solen sortir en tractar aquest tema: quina és la diferència entre hard fork i soft fork? Es creen noves monedes amb cada fork? Tinc el doble de diners després d’un fork?

Encara que aquests articles es poden entendre amb mínims coneixements de bitcoin i blockchain, abans de començar a respondre a aquestes preguntes, emplacem a tot aquell que desconegui completament de què va aquesta tecnologia a què llegeixi la sèrie de tres articles que vam publicar anteriorment en aquest blog, on expliquem les bases de blockchain (Descentralitzant el món amb blockchain I, II, III).

També, abans de respondre a cap de les preguntes, recordarem breument i de forma simplificada algunes característiques de bitcoin importants per poder entendre la resta de l’article. Per començar, recordem que bàsicament bitcoin són uns apunts comptables que es guarden en una cadena de blocs (blockchain). On una blockchain és una estructura de dades per a guardar informació de forma distribuïda entre múltiples nodes d’una xarxa P2P. Una blockchain com la de bitcoin està dissenyada perquè la informació pugui ser consultada i perquè els usuaris puguin afegir noves entrades, però que en cap cas es pugui modificar o eliminar informació ja entrada. Per aquest motiu, es fa un símil entre una blockchain i un llibre comptable. En un llibre comptable, en fer una transacció no modifiquem una entrada ja feta, sinó que afegim una nova entrada que modifica cert balanç de forma seqüencial després de les entrades ja fetes en una pàgina.

Un cop una pàgina està plena, es passa a la següent pàgina del llibre comptable i els balanços es van modificant mitjançant nous apunts. En aquest símil, la blockchain seria el llibre comptable, els blocs serien les pàgines i les transaccions serien els apunts comptables.

A més, també cal recordar que bitcoin i la majoria de criptomonedes han estat programades en codi obert. Això implica que qualsevol interessat pot agafar el codi, revisar-lo i modificar-lo per desplegar una variant de bitcoin.

Amb això comença la possibilitat de crear forks. De forma intuïtiva i molt simplificada, un fork es produeix quan un grup prou important desplega una nova versió del protocol. Si la nova versió inclou una modificació que fa el protocol més restrictiu es produeix un soft fork. Per exemple, si reduïm la mida dels blocs. Aquest tipus de fork té la propietat de ser backwards compatible, és a dir, que abans del fork tots els nodes de la xarxa de bitcoin acceptarien els blocs generats amb el nou protocol, i per tant, després del fork, els nodes que no s’actualitzin també acceptaran aquests blocs. No obstant això, els nodes actualitzats no acceptaran els blocs dels nodes no actualitzats, ja que els nodes actualitzats executen un protocol més restrictiu. Això fa que només amb que la majoria dels nodes adopti el nou protocol, el fork tingui èxit i no es creï una nova moneda, ja que, a la llarga, només les cadenes de blocs amb blocs generats amb el nou protocol seran acceptats per tots els nodes.

D’altra banda, si en fer actualitzacions ampliem les capacitats del protocol fent-lo menys restrictiu, llavors es produirà un hard fork. Per exemple, ampliant la mida dels blocs. En aquests casos, els nodes que no s’actualitzin mai acceptaran blocs generats pel nou protocol, així que aquests seguiran minant blocs ignorant qualsevol transacció inclosa en blocs minats amb la nova versió del protocol. D’aquesta manera, mentre hi hagi nodes amb el protocol antic, es mantindran i s’aniran fent més llargues dues cadenes de blocs diferents, una mantinguda per nodes actualitzats i una mantinguda per nodes no actualitzades. D’aquesta manera neix una nova moneda digital. A més, com que les dues branques creades compartiran la cadena amb les dades fins al moment del fork, també tindrem que, en aquest moment, els usuaris tindran un nombre idèntic de monedes antigues i de noves. A partir del fork, quan un usuari faci una transacció en una de les cadenes, la transacció no s’haurà de registrar en l’altra cadena, i per tant serà com si tingués dues monedes diferents. A continuació incloem un parell d’imatges amb una representació del que passa amb les cadenes en el cas dels dos tipus de fork.
 

Representació d’un soft fork (Font de dades bitcoin.org).

Representació d’un hard fork (Font de dades bitcoin.org).

 
Per als lectors menys interessats en les conseqüències tecnològiques que produeixen els forks sobre les cadenes de blocs, tornem al símil del llibre comptable: en aquest cas podem dir que en un soft fork simplement s’actualitzen les normes sobre com escrivim en el llibre i el tipus d’apunts comptables que podem fer. En canvi, en un hard fork, primer es fa una còpia de tot el llibre, les noves normes s’apliquen només al llibre nou i, a partir d’aquí, els impulsors del fork es poden oblidar completament del llibre original. Evidentment, com que el nou llibre és una còpia de l’original, aquest nou llibre, que representarà una nova moneda, mantindrà els balanços originals en el moment del fork.

A la segona part de l’article, que publicarem el proper dijous, explicarem els forks que s’han produït recentment a partir de bitcoin i quines han estat les monedes noves que s’han creat.
 
Víctor Garcia-Font és professor dels Estudis d’Informàtica, Multimèdia i Telecomunicació de la Universitat Oberta de Catalunya i investigador de la càtedra UOC-IBM en ciberseguretat.

(Visited 22 times, 1 visits today)
Autor / Autora
Victor Garcia-Font
Profesor de los Estudios de Informática, Multimedia y Telecomunicación e investigador del grupo KISON del IN3 de la UOC.
Comentarios
Deja un comentario