La complejidad detrás de las actualizaciones de una blockchain

in #blockchain6 years ago (edited)

Las actualizaciones de una cadena de bloques pública como Bitcoin o Ethereum siempre representan fuertes dolores de cabeza. La implementación de SegWit en la blockchain de Bitcoin tomó dos años de un serio y acalorado debate.

La primera pregunta que la mayoría de la gente normal se hace es: ¿cómo se planifican e implementan las actualizaciones en una organización descentralizada? Una de las características de estas organizaciones es la ausencia de una autoridad central que tome las decisiones a nombre de sus subordinados, dicho de otro modo, nadie realmente decide cómo deben funcionar. Las cadenas de bloques tienen reglas establecidas a través de un protocolo o algoritmo de consenso, estas reglas se definen en el código que establece su funcionamiento.

autopistas.jpg

Imagen: Nick Fewings – Unsplash

Los participantes de una blockchain —individuos, empresas, mineros— de hecho cumplen con las reglas de consenso, por tanto, están conscientes de que cualquier cambio en la red que se proponga requiere de una coordinación —en teoría— entre todos sus participantes que, en la mayoría de los casos no se conocen entre sí.

La complejidad detrás de las actualizaciones de una blockchain

En las cadenas de bloques como Bitcoin y Ethereum de las que, se podría decir, son realmente descentralizadas, los cambios ocurren de esta manera, más o menos:

  1. Si uno de los participantes tiene una idea que quisiera implementar con el fin de mejorar las características de la red, habla con otros participantes al respecto y, si su idea tiene aceptación, escribe una propuesta formal, por ejemplo, un BIP —Bitcoin Improvement Proposal, en inglés—, que es una propuesta de mejora de Bitcoin.

  2. Dicha propuesta se comparte en los diferentes canales digitales como listas de correo o foros en los que participan miembros de la comunidad.

  3. Si se considera que la propuesta es una buena idea, el trabajo empieza, generalmente, con planes para implementarla con otras mejoras similares. Las actualizaciones compatibles con versiones anteriores del software pueden implementarse —muy lentamente— como una bifurcación suave (soft fork, en inglés). Los cambios más grandes que no son compatibles con la versión actual, deben implementarse obligatoriamente a través de una bifurcación dura (hard fork, en inglés). Usualmente, la implementación de este proceso es muy polémico y muchos usuarios que no están de acuerdo con este deciden seguir usando la versión anterior del software y, eventualmente, crear una nueva cadena de bloques.

  4. Cada implementación de software se actualiza por separado. Se anuncia la fecha de actualización con la debida anticipación para que todos los nodos tengan el tiempo suficiente de actualizar a la versión más reciente del software. Llegada la fecha de actualización, las nuevas características de la implementación se activan.

Por lo pronto, en Bitcoin, las bifurcaciones duras son el último recurso. SegWit fue finalmente adoptado por la red después de que Peter Wuielle —desarrollador primario de Bitcoin y cofundador de Blockstream— descubrió la manera de implementarlo a través de una bifurcación suave.

A mediados del mes de enero de 2019, Ethereum había planificado implementar su próxima gran actualización, Constantinopla. Esta no pudo llegar a buen término porque, a último momento, se descubrió un error importante en el código. Muchos de los nodos que ya se habían actualizado tuvieron que instalar nuevamente la versión anterior. Aún no se ha definido precisamente la nueva fecha de actualización, sin embargo, muchos desarrolladores primarios de Ethereum han propuesto que sea llamada Estambul en lugar de Constantinopla.

Imagen: Pixabay.com

Esta actualización consideraba muchas mejoras de rendimiento entre las que se destaca la modificación de la bomba de dificultad siendo la que más tiempo tardó en acordarse. Los desarrolladores de Ethereum quieren migrar de PoW a PoS, por este motivo buscan alentar a los participantes de la red a través de la implementación de una serie de bombas predefinidas que irán reduciendo el incentivo económico que los mineros reciben por cada bloque creado. Lo que se logrará finalmente, es la transición de PoW a PoS por medio de una actualización del software que gobierna a esta cadena de bloques.

Teniendo en cuenta que la investigación y desarrollo de PoS ha tardado más de lo esperado, los desarrolladores de Ethereum necesitaban impulsar la implementación de la bomba de dificultad y, al mismo tiempo, requerían que los mineros permanezcan a bordo y no abandonen la red. Si bien casi el 50 % de los nodos ya se había actualizado al nuevo software, una empresa independiente de auditoría de seguridad de contratos inteligentes, ChainSecurity, encontró una vulnerabilidad que obliga a que la actualización se posponga hasta febrero.

Esta situación ha generado un debate entre los desarrolladores de Ethereum y los programadores de contratos inteligentes que, como no puede ser de otra manera, quieren que sus contratos sean inmutables tal y como lo garantizó Ethereum desde el principio, argumentando que los cambios en la manera en que se interpreta el código a través de las nuevas actualizaciones podrían afectar significativamente la inmutabilidad de los contratos inteligentes. Del mismo modo, este debate se ha extendido hacia la comunidad criptográfica la que ha comentado que hacer cambios en una cadena de bloques es más parecido a la ciencia espacial que a la creación de una aplicación para compartir fotos. Los errores pueden ser fatales e incluso más difíciles de corregir luego de la ejecución de las implementaciones.

¿Qué garantías deben dar los desarrolladores de los protocolos a quienes crean aplicaciones en la parte superior de su cadena? ¿Es posible que un pequeño grupo de desarrolladores o algunas empresas tengan el control sobre la hoja de ruta de Ethereum?

Es indiscutible que las blockchains públicas enfrentan complejos problemas de escalabilidad teniendo en cuenta que dependen del acuerdo entre sus participantes. Las cadenas de bloques públicas sacrifican la toma eficiente de decisiones en favor de la autonomía, libertad, independencia y empoderamiento que se logran a través del consenso generalizado. Aún estamos lejos de descubrir si esta visión que pretende modificar radicalmente el paradigma del orden social y modificar el balance de poder tendrá éxito.

avatar_jfbt_steemit_120x120.png
Juan Francisco Bolaños
@criptoEstratega
steemit_divider.png

Referencias:

  • Block, The. (20 de enero de 2019). Special Edition - Money 2.0 Stuff: Upgrading Blockchains Is Like Cleaning a Pig. [Correo electrónico al autor].
  • Bolaños, J. F. (Marzo de 2018). Explicación acerca de las bifurcaciones de una blockchain - Steemit. Recuperado de http://bit.ly/2GiaRme
  • Bolaños, J. F. (28 de octubre de 2018). La bomba de dificultad de Ethereum alteraría su política monetaria - Steemit. Recuperado de http://bit.ly/2FIT0VF
    steemit_divider.png

Lecturas que vas a disfrutar

Una selección de mis mejores artículos:

Academia Blockchain

Academia Blockchain es una iniciativa que crea un espacio para la difusión y conocimiento de la cadena de bloques y las criptomonedas en Latinoamérica.
academiablockchain.jpg
Amigos, están cordialmente invitados a visitarnos en nuestros canales digitales:
Web | YouTube | Twitter | Facebook | Instagram | Telegram | Patreon | Steemit
steemit_divider.png

Compra en Amazon y paga con bitcoin

Compra lo que más te gusta en Amazon y paga con bitcoin y otras criptodivisas a través de Purse.io. Recibe descuentos del 5 al 15 % en tus compras. Regístrate aquí.
steemit_divider.png

Sort:  

Muchas gracias por tus palabras.

¡Felicitaciones!



Estás participando para optar a la mención especial que se efectuará el domingo 27 de enero del 2019 a las 8:00 pm (hora de Venezuela), gracias a la cual el autor del artículo seleccionado recibirá la cantidad de 1 STEEM transferida a su cuenta.

Te participamos que puedes invertir en el PROYECTO ENTROPÍA mediante tu delegación de Steem Power y así comenzar a recibir ganancias de forma semanal transferidas automáticamente a tu monedero todos los lunes. Entra aquí para más información sobre cómo invertir en ENTROPÍA.

Contáctanos en Discord: https://discord.gg/hkCjFeb

Apoya al trail de @Entropia y así podrás ganar recompensas de curación de forma automática. Entra aquí para más información sobre nuestro trail.

Puedes consultar el reporte diario de curación visitando @entropia.

Atentamente

El equipo de curación del PROYECTO ENTROPÍA

Muy agradecido por el apoyo, es un gusto para mí aportar mis conocimientos a la comunidad.

Gracias a tí por las publicaciones que nos brindas. Te invitamos este domingo a las 4:00 pm hora venezuela a un webinar titulado: Nuestra experiencia en STEEMIT. Consejos para la redacción de artículos. Adjunto el link de discord: https://discord.gg/hkCjFeb para que te unas a nuestra comunidad, y si ya lo estás pases a la voz a tus compañeros. Saludos! Responsable del Comentario: @vjap55 - Miembro del Equipo de Curación del PROYECTO ENTROPIA

Congratulations @juanfb! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

You made more than 9000 upvotes. Your next target is to reach 10000 upvotes.

Click here to view your Board
If you no longer want to receive notifications, reply to this comment with the word STOP

Support SteemitBoard's project! Vote for its witness and get one more award!