Nombre:  Capturar 1.PNG
Visitas: 21
Tamaño: 329.2 KB

La lección:

• La mayor parte del ecosistema DeFi de Ethereum se apagó hoy temprano después de que un error latente en el código de Ethereum dividiera el historial de transacciones de la red en dos.
• La división resultó de un cambio de código que se insertó subrepticiamente en una actualización anterior de Geth; algunos operadores de nodos de Ethereum ignoraron la actualización, que irónicamente estaba destinada a evitar la división que se produjo.
• Los nodos que no se actualizaron tenían la impresión de que la actualización era menor y no sabían que incluía un cambio en el diseño de consenso de Ethereum.
• Una autopsia publicada hoy por Geth indica que el error se activó intencionalmente. El caso es quizás el mayor desafío de Ethereum desde la bifurcación DAO de 2016, y plantea preguntas sobre la descentralización a menudo promocionada de Ethereum y la efectividad de su coordinación de desarrolladores en Ethereum 2.0.
Al principio, fue un problema aparente con Infura, los servidores ejecutados por ConsenSys que mantienen la mayoría de las aplicaciones de finanzas descentralizadas (DeFi) sincronizadas con la red Ethereum.
Infura bajó alrededor de las 8:00 UTC del miércoles, y con él, algunas de las aplicaciones más populares de Ethereum como Metamask, MakerDAO, Uniswap, Compound y MyCrypto, entre otras. Poco después, Binance detuvo el comercio de Ethereum después de notar transacciones conflictivas en su nodo Ethereum. Cuando otros intercambios suspendieron el comercio también, el problema real quedó claro: un error en el cliente Go Ethereum (Geth), cuyo código sustenta el 80% de las aplicaciones de Ethereum, había dividido la cadena de bloques de Ethereum en dos.
Suscríbete a Blockchain Bites, nuestra actualización diaria con las últimas historias.
SUSCRIBIR
Al registrarse, recibirá correos electrónicos sobre los productos de CoinDesk y acepta nuestros términos y condiciones y nuestra política de privacidad.
Leer más: Los desarrolladores de Ethereum retrasan la bifurcación de Berlín para resolver las preocupaciones de centralización del cliente
Los dos historiales de transacciones en conflicto significaron que los usuarios de Etheruem estaban interactuando temporalmente con diferentes versiones de la cadena de bloques Ethereum. Más que causar retrasos, esto puso en riesgo los fondos de los usuarios al eliminar la mayoría de las aplicaciones DeFi de Ethereum durante unas horas.
Infura ha solucionado el problema, al igual que otros proveedores de servicios que se vieron afectados por el problema, actualizando sus nodos. Estas partes interesadas estaban ejecutando una versión anterior de Geth, que contenía un error que los desarrolladores de Ethereum parchearon silenciosamente en una actualización reciente, una actualización que Infura y Blockchair, entre otros, ignoraron.
Además de estos dos proveedores de servicios, otros usuarios de Ethereum y proveedores de billeteras también se vieron afectados porque no actualizaron su código, le dijeron los desarrolladores a CoinDesk.
El fiasco tiene críticos que desafían la descentralización percibida de Ethereum, mientras que las partes interesadas se preguntan por qué el cambio se impulsó en secreto sin coordinación entre Geth y otros equipos de desarrollo.


Para algunos, la división es el desafío más urgente para Ethereum desde el infame hack de DAO de 2016.
La cadena de Ethereum se dividió: cómo sucedió
En una autopsia recién publicada, Péter Szilágyi, líder del equipo de Ethereum, escribió que una bifurcación "se activó (deliberadamente) en la red Ethereum".
Un representante de Optimism, un proyecto de escalado de Ethereum, publicó recientemente que el proyecto desencadenó intencionalmente el error que la actualización de Geth solucionó, lo que provocó la bifurcación.
Cuando ocurrió la bifurcación, creó dos versiones del libro mayor de transacciones de Ethereum: una con transacciones de clientes Geth actualizados y otra con transacciones de clientes Geth más antiguos (como Infura).
"La solución se implementó hace varios meses y solo hoy llegó una transacción que causó esa división", dijo a CoinDesk en un mensaje directo Nikitia Zhavoronkov, el desarrollador principal de Blockchair, un explorador de bloques de Ethereum que se vio afectado por la bifurcación.
Leer más: ¿Ethereum aprendió algo del ataque DAO de $ 55 millones?
Al pensar que la actualización era "un cambio menor en el código", Blockchair no se molestó con la actualización porque no valdría la pena el tiempo de inactividad de sus servicios. Pero más que menor, los desarrolladores aparentemente también hicieron un cambio silencioso en el mecanismo de consenso de Geth en la actualización.
"El equipo de Geth de hecho cambió la implementación de consenso en la versión v1.9.17, sin embargo, el equipo no creó ninguna regla nueva que la comunidad de Ethereum no conociera o no estuviera de acuerdo", escribe Szilágyi en la publicación, diciendo que se establecieron estas reglas. en una propuesta de mejora de Ethereum hace tres años.
“Si no considera introducir accidentalmente un error como una 'actualización por consenso', tampoco debería considerar corregir dicho error unos meses después como una 'actualización por consenso'”, argumentó.
Otra autopsia publicada por la Fundación Ethereum el 12 de noviembre establece que el exploit ocurrió "en el bloque 11234873, transacción 0x57f7f9", y agregó que la cadena minoritaria para los nodos no sincronizados tenía aproximadamente 30 bloques de longitud.
Un llamado a la transparencia
Irónicamente, la bifurcación fue causada por el error de consenso que la actualización de Geth buscaba solucionar.
El programa de recompensas Ethereum reconoció recientemente a John Yang, un recién llegado a la comunidad de código abierto de Ethereum, por descubrir esta y otra vulnerabilidad. El desarrollador de Geth y experto en seguridad de Ethereum, Martin Swende, tuiteó que los cambios en la actualización solucionan los problemas revelados, dando a entender que la debacle es un "recordatorio para mantener sus nodos actualizados".
Swende continúa diciendo en el hilo del tweet que los desarrolladores no anunciaron el gran cambio para evitar llamar la atención sobre la falla. En su propia explicación, Szilágyi dijo que arreglar el error "silenciosamente" invitaba a menos "interrupciones".
Aún así, otras partes interesadas de Ethereum se preguntan por qué el error no se pudo haber revelado en privado con los equipos que están construyendo sobre Geth.
Leer más: Error de gravedad "alta" en el software de Bitcoin revelado 2 años después de la corrección
“Cada proyecto importante con el que el equipo de desarrollo está en estrecho contacto debe tener un contacto de seguridad que pueda ayudar a administrar y coordinar una actualización sin problemas, y debemos trabajar juntos”, dijo Matt Luongo, fundador de Thesis, a CoinDesk.
“Cuando las bifurcaciones son sorpresas, cualquiera que haya construido sobre Ethereum como nosotros podría perder dinero”, continuó.
Thesis construye Keep Network, que emite tBTC, una forma de bitcoin tokenizado para la cadena de bloques Ethereum. Luongo dijo que la bifurcación puso en riesgo los fondos de los usuarios de tBTC, pero no debido a la división de la cadena, que se resolvió después de que Infura y otros actualizaron sus clientes de Geth.
Es porque el tiempo de inactividad significó que los usuarios que apuestan Ethereum en Keep Network no podían coordinarse con la cadena principal de Ethereum; como resultado, corrieron el riesgo de que se “redujera” parte de sus apuestas por no cumplir con sus requisitos fiduciarios. Thesis le dijo a CoinDesk que ninguno de los bitcoins que colateraliza los tokens tBTC estuvo en riesgo.
Además, el caso de Thesis es solo un ejemplo de la interrupción que creó la bifurcación para cualquiera que intentara utilizar la "cadena minoritaria" durante la división.
A pesar de los problemas que causó la división, los precios del éter, la criptomoneda nativa de la cadena de bloques Ethereum, subieron un 4,6% el miércoles después de que surgió la noticia, lo que sugiere que los comerciantes ven poca amenaza sistémica o a largo plazo por el problema.
Recogiendo los pedazos
Zhavoronkov dijo que el error no fue malicioso, pero que "si [Geth] supiera que tal cosa podría suceder, deberían haber preparado una guía para los operadores de nodos". Luongo compartió frustraciones similares y dijo que el equipo de Geth son "buenos desarrolladores" pero que carecen de "experiencia en la ejecución de infraestructura" y no tienen "fondos suficientes".
Los comentarios se centran en una frustración que comparten algunas partes interesadas de Ethereum sobre por qué Geth mantuvo en secreto el cambio de consenso. Yendo más allá, ¿por qué Infura, la columna vertebral del ecosistema financiero descentralizado de Ethereum, entre otros, no conocía un error que rompía el consenso en el código de Ethereum antes de que se activara?
“Esta es un área un poco gris y requiere una discusión caso por caso”, explica Szilágyi en su publicación. “Todos estamos de acuerdo en que la transparencia es el rey y que debemos esforzarnos tanto como sea posible por lograrla, pero también es importante mirar todos los detalles antes de que empiecen a rodar cabezas.
Leer más: La cuenta atrás de Ethereum 2.0 comienza con la liberación del contrato de depósito
“En el caso de Ethereum, se necesita mucho tiempo (semanas, meses) para que los operadores de nodos se actualicen incluso a un hard fork programado. Resaltar que una versión contiene un consenso importante o correcciones de DoS siempre corre el riesgo de que alguien intente adelantar a los actualizadores hasta el final y derribar la red. La seguridad a través de la oscuridad definitivamente no es algo a lo que aspirar, pero retrasar un ataque potencial lo suficiente para que la mayoría de los operadores de nodos sean inmunes puede valer la pena el 'golpe' temporal a la transparencia ", continuó.
En última instancia, el equipo de Geth creía que había demasiado riesgo al revelar la vulnerabilidad, por lo que decidieron que impulsar la actualización subrepticiamente invitaba al menor riesgo.
“Diríamos que realmente funcionó”, dice Szilágyi. Aunque la actualización "dio un giro inesperado con la división de la red de ayer", el equipo de Geth todavía cree que mantener el problema en secreto "fue la decisión correcta"
A medida que Ethereum se acerca a su mayor actualización en Eth 2.0, el caso podría ser un estudio crítico en la coordinación del cliente para el ecosistema Ethereum.
“Lo más importante aquí, en mi opinión, es que las personas que hicieron esta llamada sean transparentes sobre el razonamiento, reconozcan los errores y crezcan”, dijo Luongo. “Monero se ha ocupado [de los errores de consenso] bien en el pasado, al igual que Bitcoin y Zcash. Hay muchos ejemplos y, si bien siempre es complicado coordinar en una industria, evitar cualquier tipo de coordinación es extremadamente peligroso.
"Espero que esta bifurcación conduzca a relaciones más estrechas y a repensar cómo los proyectos en Ethereum interactúan con el desarrollo del cliente".
Actualización 00:36 UTC del 12 de noviembre: este artículo se ha actualizado para transmitir mejor que la "bifurcación dura" no fue un cambio de código deliberado, sino una división de la cadena que se desencadenó por el error de consenso que los desarrolladores de Ethereum parchearon silenciosamente en Geth v1. Versión 9.17.
Actualización a las 21:02 UTC del 12 de noviembre: este artículo se actualizó para incluir información de una autopsia de la fundación Ethererum sobre la división.