Compartir este artículo

La bifurcación dura no anunciada de Ethereum buscaba evitar la misma disrupción que causó.

Una bifurcación dura que dividió la cadena de Ethereum en dos se activó a propósito, poniendo en duda la coordinación de los clientes de Ethereum.

facepalm1

La conclusión:

CONTINÚA MÁS ABAJO
No te pierdas otra historia.Suscríbete al boletín de The Protocol hoy. Ver Todos Los Boletines

  • La mayor parte del ecosistema DeFi de Ethereum quedó sin actividad hoy 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 fue resultado 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 ocurrió.
  • Los nodos que no se actualizaron creían 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 Un informe publicado hoy por Geth indica que el error se activó intencionalmente. Este caso representa quizás el mayor desafío de Ethereum desde la bifurcación DAO de 2016 y plantea interrogantes sobre la tan promocionada descentralización de Ethereum y la eficacia de la coordinación entre sus desarrolladores de cara a Ethereum 2.0.

En primer lugar, Era un problema aparente con Infura, los servidores administrados por ConsenSys que KEEP la mayoría de las aplicaciones de Finanzas descentralizadas (DeFi) sincronizadas con la red Ethereum .

InfuraBajó alrededor8:00 UTC del miércolesY, con él, algunas de las aplicaciones más populares de Ethereum, como Metamask, MakerDAO, Uniswap, Compound y MyCrypto, entre otras. Poco después, Binance... comercio de Ethereum detenido Tras detectar transacciones conflictivas en su nodo Ethereum , otras plataformas de intercambio también suspendieron sus operaciones, y el verdadero problema se hizo evidente: 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 Ethereum en dos.

Sigue leyendo: Los desarrolladores de Ethereum retrasan la bifurcación dura de Berlín para frenar las preocupaciones sobre la centralización de clientes.

Los dos historiales de transacciones contradictorios implicaron que los usuarios de Ethereum interactuaban temporalmente con diferentes versiones de la blockchain de Ethereum . Esto, más que causar retrasos, puso en riesgo los fondos de los usuarios al bloquear la mayoría de las aplicaciones DeFi de Ethereum durante unas horas.

Infura ha solucionado el problema, al igual que otros proveedores de servicios afectados por el problema, actualizando sus nodos. Estos participantes utilizaban una versión anterior de Geth, que contenía un error que los desarrolladores de Ethereum corrigieron discretamente 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, dijeron los desarrolladores a CoinDesk.

El fiascotiene críticos desafiando La descentralización percibida de Ethereum, mientras las partes interesadas se preguntan por qué el cambio se impulsó en Secret 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 hackeo de DAO de 2016.

La división de la cadena Ethereum: cómo ocurrió

En un artículo recién publicadoautopsia, Péter Szilágyi, líder del equipo de Ethereum, escribió que una bifurcación "se activó (deliberadamente) en la red Ethereum ".

Un representante deOptimism, un proyecto de escalamiento de Ethereum , publicado recientementeque el proyecto activó intencionalmente el error que solucionó la actualización de Geth, lo que desencadenó la bifurcación.

Cuando se produjo la bifurcación, se crearon dos versiones del libro de transacciones de Ethereum : una con transacciones de clientes Geth actualizados y ONE 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, desarrollador principal de Blockchair, un explorador de bloques de Ethereum que se vio afectado por la bifurcación.

Sigue leyendo: ¿ Aprende Ethereum algo del ataque DAO de 55 millones de dólares?

Pensando 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 penaEl tiempo de inactividad de sus servicios. Pero, además de ser un cambio menor, los desarrolladores aparentemente también implementaron un cambio discreto en el mecanismo de consenso de Geth en la actualización.

“El equipo Geth de hecho cambió el consensoimplementación en la versión v1.9.17, sin embargo, el equipo no creó ninguna regla nueva que la comunidad Ethereum no conociera o aceptara”, escribe Szilágyi en la publicación, diciendo que estas reglas se establecieron en un Propuesta de mejora de EthereumHace tres años.

"Si no se considera que la introducción accidental de un error es una 'actualización por consenso', entonces tampoco se debería considerar que arreglar dicho error unos meses más tarde sea una 'actualización por consenso'", argumentó.

Otra autopsiaUn informe publicado por la Fundación Ethereum el 12 de noviembre afirma que el exploit ocurrió “en el bloque 11234873, transacción 0x57f7f9”, y agrega que la cadena minoritaria para los nodos desincronizados tenía aproximadamente 30 bloques de longitud.

Un llamado a la transparencia

Irónicamente, la bifurcación fue causada por el mismo error de consenso que la actualización de Geth buscaba solucionar.

El programa de recompensas de Ethereumreconocido recientementeJuan Yang, recién llegado a la comunidad de código abierto de Ethereum, por descubrir esta y otra vulnerabilidad. Martin Swende, desarrollador de Geth y experto en seguridad de Ethereum. tuiteó Los cambios en la actualización corrigen los problemas detectados, lo que sugiere que el desastre es un "recordatorio para KEEP su(s) nodo(s) actualizado(s)".

Swende continúadecir en el hilo de tweetsLos desarrolladores no anunciaron el gran cambio para evitar llamar la atención sobre la falla. En su propia explicación, Szilágyi afirmó que corregir el error "silenciosamente" generó menos interrupciones.

Aún así, otras partes interesadas de Ethereum se preguntan por qué el error no pudo revelarse en privado con los equipos que están construyendo Geth.

Sigue leyendo: Se revela un error de gravedad "alta" en el software de Bitcoin dos años después de su solució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 gestionar y coordinar una actualización sin problemas, y debemos trabajar juntos”, dijo Matt Luongo, el fundador de Thesis, a CoinDesk.

“Cuando las bifurcaciones son sorpresa, cualquiera que haya construido sobre Ethereum como lo hemos hecho nosotros podría perder dinero”, continuó.

La tesis construye elKeep Network, que emite tBTC, una forma de tokenizadoBitcoin Para la blockchain de Ethereum . Luongo afirmó 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 otras empresas actualizaran sus clientes Geth.

Esto se debe a que el tiempo de inactividad impidió que los usuarios que apostaban Ethereum en Keep Network T coordinarse con la cadena principal de Ethereum ; como resultado, se arriesgaban a que se les redujera parte de su participación por no cumplir con sus requisitos fiduciarios. Thesis declaró a CoinDesk que ninguno de los Bitcoin que colateralizan los tokens tBTC estuvo en riesgo.

Es más, el caso de Thesis es sólo un ejemplo de la disrupción que la bifurcación creó para cualquiera que intentara usar la "cadena minoritaria" durante la división.

A pesar de los problemas que causó la división, los precios de ether, la Criptomonedas nativa de la cadena de bloques Ethereum , subieron un 4,6% el miércoles después de que surgiera la noticia, lo que sugiere que los operadores ven poca amenaza sistémica o de largo plazo por el problema.

Recogiendo los pedazos

Zhavoronkov afirmó que el error no fue malicioso, pero que «si [Geth] hubiera sabido que algo así podía ocurrir, debería haber preparado una guía para operadores de nodos». Luongo compartió frustraciones similares, afirmando que el equipo de Geth está formado por «buenos desarrolladores», pero carece de «experiencia en la gestión de infraestructura» y de financiación insuficiente.

Los comentarios se centran en la frustración que comparten algunos interesados ​​en Ethereum sobre por qué Geth mantuvo en Secret el cambio de consenso. Además, ¿por qué Infura, la columna vertebral del ecosistema Finanzas descentralizado de Ethereum, entre otros, desconocía un error que rompe el consenso en el código de Ethereum? antes ¿Se desencadenó?

“Esta es una zona un BIT ambigua y requiere un análisis caso por caso”, explica Szilágyi en su publicación. “Todos coincidimos en que la transparencia es fundamental y que debemos esforzarnos al máximo por lograrla, pero también es importante analizar todos los detalles antes de que empiecen a rodar cabezas”.

Sigue leyendo: La cuenta regresiva Ethereum 2.0 comienza con el lanzamiento del contrato de depósito

En el caso de Ethereum, conseguir que los operadores de nodos actualicen, incluso tras una bifurcación dura programada, lleva mucho tiempo (semanas, meses). Destacar que una versión contiene correcciones importantes de consenso o de denegación de servicio (DoS) siempre conlleva el riesgo de que alguien intente adelantarse a los actualizadores y derribar la red. La seguridad por opacidad definitivamente no es algo a lo que aspirar, pero retrasar un posible ataque lo suficiente como para que la mayoría de los operadores de nodos sean inmunes puede justificar el impacto temporal en la transparencia, continuó.

Finalmente, el equipo de Geth creyó que había demasiado riesgo en revelar la vulnerabilidad, por lo que decidieron que impulsar la actualización subrepticiamente invitaba al menor riesgo.

"Diríamos que realmente funcionó", afirma Szilágyi. Aunque la actualización "dio un giro inesperado con la división de la red de ayer", el equipo de Geth sigue creyendo que mantener el asunto en secreto "fue la decisión correcta".

A medida que Ethereum se acerca a su mayor actualización hasta la fecha en ETH 2.0, el caso podría ser un estudio crítico en la coordinación de clientes para el ecosistema Ethereum .

“En mi opinión, lo más importante aquí es que quienes tomaron esta decisión sean transparentes sobre el razonamiento, asuman cualquier error y crezcan”, dijo Luongo. “Monero ha gestionado bien [los errores de consenso] en el pasado, al igual que Bitcoin y Zcash. Hay muchos ejemplos, y si bien siempre es complicado coordinarse 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 un replanteamiento de cómo los proyectos en Ethereum interactúan con el desarrollo del cliente.

Actualizar 00:36 UTC 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 solucionaron silenciosamente en la versión Geth v1.9.17.

Actualizar 21:02 UTC 12 de noviembre- Este artículo fue actualizado para incluir información de un análisis post mortem de la fundación Ethererum con respecto a la división.

Colin Harper, Blockspace Media

Colin writes about Bitcoin. Formerly, he worked at CoinDesk as a tech reporter and Luxor Technology Corp. as head of research. Now, he is the Editor-in-Chief of Blockspace Media, and he also freelances for CoinDesk, Forbes and Bitcoin Magazine. He holds bitcoin.

Colin Harper