La complejidad detrás de las actualizaciones de una blockchain

¿Cómo se planifican e implementan las actualizaciones en una organización descentralizada?

Juan F. Bolaños
5 min readJan 22, 2019

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.

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í.

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.

Este artículo fue publicado originalmente en Busy.org el 22 de enero de 2019.

Juan Francisco Bolaños
@criptoEstratega

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

--

--

Juan F. Bolaños

Consultor, asesor, capacitador y desarrollador de negocios blockchain | Autor del libro Criptoeconomía | Conferencista TEDx y LaBitConf | AcademiaBlockchain.com