Un agradecimiento especial a Karl Floersch por sus comentarios y revisión.
El ecosistema de capa 2 de Ethereum se ha expandido rápidamente durante el último año. El ecosistema acumulativo de EVM, que tradicionalmente presenta Arbitrum, Optimism y Scroll, y más recientemente Kakarot y Taiko, ha progresado rápidamente y ha logrado grandes avances en la mejora de su seguridad; la página L2beat hace un buen trabajo al resumir el estado de cada proyecto. Además, hemos visto equipos que crean cadenas laterales y que también comienzan a crear acumulaciones (Polygon), proyectos de capa 1 que buscan avanzar hacia validiums (Celo) y esfuerzos totalmente nuevos (Linea, Zeth…). Finalmente, está el ecosistema que no es solo EVM: “casi-EVM” como Zksync, extensiones como Arbitrum Stylus y esfuerzos más amplios como el ecosistema Starknet, Fuel y otros.
Una de las consecuencias inevitables de esto es que estamos viendo una tendencia a que los proyectos de capa 2 se vuelvan más heterogéneos. Espero que esta tendencia continúe, por algunas razones clave:
Un gran tema es que, si bien las aplicaciones y los usuarios que se encuentran hoy en la capa 1 de Ethereum estarán bien pagando tarifas acumulativas más pequeñas pero aún visibles en el corto plazo, los usuarios del mundo que no es blockchain no lo harán: es más fácil justificar el pago de $0,10 si pagaba $1 antes que si pagaba $0 antes. Esto se aplica tanto a las aplicaciones que hoy están centralizadas como a las capas 1 más pequeñas, que normalmente tienen tarifas muy bajas mientras su base de usuarios sigue siendo pequeña.
Una pregunta natural que surge es: ¿cuál de estas complicadas compensaciones entre resúmenes, validiums y otros sistemas tiene sentido para una aplicación determinada?
La primera dimensión de seguridad versus escala que exploraremos se puede describir de la siguiente manera: si tiene un activo que se emite en L1, luego se deposita en L2 y luego se le transfiere, ¿qué nivel de garantía tiene de que será ¿Podrá llevar el activo de vuelta a la L1?
También existe una pregunta paralela: ¿cuál es la elección tecnológica que da como resultado ese nivel de garantía y cuáles son las ventajas y desventajas de esa elección tecnológica?
Podemos describir esto simplemente usando un gráfico:
Vale la pena mencionar que este es un esquema simplificado y hay muchas opciones intermedias. Por ejemplo:
Estas opciones intermedias pueden considerarse como parte de un espectro entre un rollup y un validium. Pero, ¿qué motiva a las aplicaciones a elegir un punto particular de ese espectro y no algún punto más a la izquierda o más a la derecha? Aquí hay dos factores principales:
Aproximadamente, esta compensación se parece a esto:
Otro tipo de garantía parcial a destacar son las preconfirmaciones. Las preconfirmaciones son mensajes firmados por un conjunto de participantes en un rollup o validium que dicen "damos fe de que estas transacciones están incluidas en este orden, y la raíz posterior al estado es esta". Es posible que estos participantes firmen una preconfirmación que no se corresponda con alguna realidad posterior, pero si lo hacen, se quema un depósito. Esto es útil para aplicaciones de bajo valor, como pagos de consumidores, mientras que aplicaciones de mayor valor, como transferencias financieras multimillonarias, probablemente esperarán una confirmación "regular" respaldada por la seguridad total del sistema.
Las confirmaciones previas pueden verse como otro ejemplo de un sistema híbrido, similar al “híbrido plasma/validium” mencionado anteriormente, pero esta vez hibridando entre un rollup (o validium) que tiene seguridad total pero alta latencia, y un sistema con una nivel de seguridad mucho más bajo que tiene baja latencia. Las aplicaciones que necesitan una latencia más baja obtienen una seguridad menor, pero pueden vivir en el mismo ecosistema que las aplicaciones que aceptan una latencia más alta a cambio de la máxima seguridad.
Otra forma de conexión menos considerada, pero aún muy importante, tiene que ver con la capacidad de un sistema para leer la cadena de bloques Ethereum. En particular, esto incluye poder revertir si Ethereum se revierte. Para ver por qué esto es valioso, considere la siguiente situación:
Supongamos que, como se muestra en el diagrama, la cadena Ethereum se revierte. Esto podría ser un problema temporal dentro de una época, mientras la cadena no ha finalizado, o podría ser un período de fuga de inactividad en el que la cadena no finaliza durante un período prolongado porque hay demasiados validadores fuera de línea.
El peor escenario que puede surgir de esto es el siguiente. Supongamos que el primer bloque de la cadena superior lee algunos datos del bloque más a la izquierda de la cadena Ethereum. Por ejemplo, alguien en Ethereum deposita 100 ETH en la cadena superior. Entonces, Ethereum se revierte. Sin embargo, la cadena superior no se revierte. Como resultado, los bloques futuros de la cadena superior siguen correctamente a los nuevos bloques de la cadena Ethereum recientemente correcta, pero las consecuencias del enlace antiguo ahora erróneo (es decir, el depósito de 100 ETH) siguen siendo parte de la cadena superior. Este exploit podría permitir imprimir dinero, convirtiendo el ETH puenteado en la cadena superior en una reserva fraccionaria.
Hay dos formas de resolver este problema:
Tenga en cuenta que (1) tiene un caso límite. Si un ataque del 51% a Ethereum crea dos nuevos bloques incompatibles y ambos parecen finalizados al mismo tiempo, entonces la cadena superior puede bloquearse en la incorrecta (es decir, el que el consenso social de Ethereum finalmente no favorece), y tendría que revertir para cambiar al correcto. Podría decirse que no es necesario escribir código para manejar este caso con anticipación; simplemente podría manejarse bifurcando la cadena superior.
La capacidad de una cadena para leer Ethereum sin confianza es valiosa por dos razones:
Supongamos que la cadena superior comienza como una cadena separada y luego alguien coloca en Ethereum un contrato puente. Un contrato puente es simplemente un contrato que acepta encabezados de bloque de la cadena superior, verifica que cualquier encabezado enviado venga con un certificado válido que demuestre que fue aceptado por el consenso de la cadena superior y agrega ese encabezado a una lista. Las aplicaciones pueden aprovechar esto para implementar funciones como depositar y retirar tokens. Una vez que dicho puente esté instalado, ¿ofrece alguna de las garantías de seguridad de activos que mencionamos anteriormente?
¡Hasta ahora, todavía no! Por dos razones:
Ahora, hagamos del puente un puente de validación: verifica no solo el consenso, sino también un ZK-SNARK que demuestra que el estado de cualquier bloque nuevo se calculó correctamente.
Una vez hecho esto, los validadores de la cadena superior ya no podrán robar sus fondos. Pueden publicar un bloque con datos no disponibles, impidiendo que todos puedan realizar retiros, pero no pueden robar (excepto intentando extraer un rescate para los usuarios a cambio de revelar los datos que les permiten realizar retiros). Este es el mismo modelo de seguridad que un validium.
Sin embargo, todavía no hemos resuelto el segundo problema: la cadena superior no puede leer Ethereum.
Para hacer eso, necesitamos hacer una de dos cosas:
Los enlaces morados pueden ser enlaces hash o un contrato puente que verifica el consenso de Ethereum.
¿Es suficiente? Resulta que todavía no, debido a algunos pequeños casos extremos:
Un ataque del 51% a Ethereum tendría consecuencias similares a un ataque del 51% a la cadena superior, pero a la inversa. Una bifurcación dura de Ethereum corre el riesgo de hacer que el puente de Ethereum dentro de la cadena superior ya no sea válido. Un compromiso social de revertir si Ethereum revierte un bloque finalizado, y de realizar una bifurcación dura si Ethereum se bifurca, es la forma más limpia de resolver esto. Es posible que nunca sea necesario ejecutar tal compromiso: se podría activar un dispositivo de gobernanza en la cadena superior si ve pruebas de un posible ataque o bifurcación dura, y solo realizar una bifurcación dura en la cadena superior si el dispositivo de gobernanza falla.
Desafortunadamente, la única respuesta viable a (3) es tener algún tipo de dispositivo de gobernanza en Ethereum que pueda hacer que el contrato puente en Ethereum sea consciente de las actualizaciones de la cadena superior.
Resumen: los puentes de validación bidireccionales son casi suficientes para hacer de una cadena un validium. El principal ingrediente restante es el compromiso social de que si sucede algo excepcional en Ethereum que haga que el puente ya no funcione, la otra cadena se bifurcará en respuesta.
Hay dos dimensiones clave para la "conexión con Ethereum":
Ambos son importantes y tienen diferentes consideraciones. Hay un espectro en ambos casos:
Tenga en cuenta que ambas dimensiones tienen dos formas distintas de medirlas (¿entonces realmente hay cuatro dimensiones?): la seguridad del retiro se puede medir mediante (i) el nivel de seguridad y (ii) qué porcentaje de usuarios o casos de uso se benefician de la seguridad más alta. nivel, y la seguridad de la lectura se puede medir por (i) la rapidez con la que la cadena puede leer los bloques de Ethereum, particularmente los bloques finalizados versus cualquier bloque, y (ii) la fuerza del compromiso social de la cadena para manejar casos extremos como ataques del 51% y bifurcaciones duras.
Hay valor en proyectos en muchas regiones de este espacio de diseño. Para algunas aplicaciones, son importantes una alta seguridad y una conexión estrecha. Para otros, algo más flexible es aceptable a cambio de una mayor escalabilidad. En muchos casos, comenzar con algo más flexible hoy y pasar a un acoplamiento más estrecho durante la próxima década a medida que la tecnología mejore, puede ser lo óptimo.
Mời người khác bỏ phiếu
Un agradecimiento especial a Karl Floersch por sus comentarios y revisión.
El ecosistema de capa 2 de Ethereum se ha expandido rápidamente durante el último año. El ecosistema acumulativo de EVM, que tradicionalmente presenta Arbitrum, Optimism y Scroll, y más recientemente Kakarot y Taiko, ha progresado rápidamente y ha logrado grandes avances en la mejora de su seguridad; la página L2beat hace un buen trabajo al resumir el estado de cada proyecto. Además, hemos visto equipos que crean cadenas laterales y que también comienzan a crear acumulaciones (Polygon), proyectos de capa 1 que buscan avanzar hacia validiums (Celo) y esfuerzos totalmente nuevos (Linea, Zeth…). Finalmente, está el ecosistema que no es solo EVM: “casi-EVM” como Zksync, extensiones como Arbitrum Stylus y esfuerzos más amplios como el ecosistema Starknet, Fuel y otros.
Una de las consecuencias inevitables de esto es que estamos viendo una tendencia a que los proyectos de capa 2 se vuelvan más heterogéneos. Espero que esta tendencia continúe, por algunas razones clave:
Un gran tema es que, si bien las aplicaciones y los usuarios que se encuentran hoy en la capa 1 de Ethereum estarán bien pagando tarifas acumulativas más pequeñas pero aún visibles en el corto plazo, los usuarios del mundo que no es blockchain no lo harán: es más fácil justificar el pago de $0,10 si pagaba $1 antes que si pagaba $0 antes. Esto se aplica tanto a las aplicaciones que hoy están centralizadas como a las capas 1 más pequeñas, que normalmente tienen tarifas muy bajas mientras su base de usuarios sigue siendo pequeña.
Una pregunta natural que surge es: ¿cuál de estas complicadas compensaciones entre resúmenes, validiums y otros sistemas tiene sentido para una aplicación determinada?
La primera dimensión de seguridad versus escala que exploraremos se puede describir de la siguiente manera: si tiene un activo que se emite en L1, luego se deposita en L2 y luego se le transfiere, ¿qué nivel de garantía tiene de que será ¿Podrá llevar el activo de vuelta a la L1?
También existe una pregunta paralela: ¿cuál es la elección tecnológica que da como resultado ese nivel de garantía y cuáles son las ventajas y desventajas de esa elección tecnológica?
Podemos describir esto simplemente usando un gráfico:
Vale la pena mencionar que este es un esquema simplificado y hay muchas opciones intermedias. Por ejemplo:
Estas opciones intermedias pueden considerarse como parte de un espectro entre un rollup y un validium. Pero, ¿qué motiva a las aplicaciones a elegir un punto particular de ese espectro y no algún punto más a la izquierda o más a la derecha? Aquí hay dos factores principales:
Aproximadamente, esta compensación se parece a esto:
Otro tipo de garantía parcial a destacar son las preconfirmaciones. Las preconfirmaciones son mensajes firmados por un conjunto de participantes en un rollup o validium que dicen "damos fe de que estas transacciones están incluidas en este orden, y la raíz posterior al estado es esta". Es posible que estos participantes firmen una preconfirmación que no se corresponda con alguna realidad posterior, pero si lo hacen, se quema un depósito. Esto es útil para aplicaciones de bajo valor, como pagos de consumidores, mientras que aplicaciones de mayor valor, como transferencias financieras multimillonarias, probablemente esperarán una confirmación "regular" respaldada por la seguridad total del sistema.
Las confirmaciones previas pueden verse como otro ejemplo de un sistema híbrido, similar al “híbrido plasma/validium” mencionado anteriormente, pero esta vez hibridando entre un rollup (o validium) que tiene seguridad total pero alta latencia, y un sistema con una nivel de seguridad mucho más bajo que tiene baja latencia. Las aplicaciones que necesitan una latencia más baja obtienen una seguridad menor, pero pueden vivir en el mismo ecosistema que las aplicaciones que aceptan una latencia más alta a cambio de la máxima seguridad.
Otra forma de conexión menos considerada, pero aún muy importante, tiene que ver con la capacidad de un sistema para leer la cadena de bloques Ethereum. En particular, esto incluye poder revertir si Ethereum se revierte. Para ver por qué esto es valioso, considere la siguiente situación:
Supongamos que, como se muestra en el diagrama, la cadena Ethereum se revierte. Esto podría ser un problema temporal dentro de una época, mientras la cadena no ha finalizado, o podría ser un período de fuga de inactividad en el que la cadena no finaliza durante un período prolongado porque hay demasiados validadores fuera de línea.
El peor escenario que puede surgir de esto es el siguiente. Supongamos que el primer bloque de la cadena superior lee algunos datos del bloque más a la izquierda de la cadena Ethereum. Por ejemplo, alguien en Ethereum deposita 100 ETH en la cadena superior. Entonces, Ethereum se revierte. Sin embargo, la cadena superior no se revierte. Como resultado, los bloques futuros de la cadena superior siguen correctamente a los nuevos bloques de la cadena Ethereum recientemente correcta, pero las consecuencias del enlace antiguo ahora erróneo (es decir, el depósito de 100 ETH) siguen siendo parte de la cadena superior. Este exploit podría permitir imprimir dinero, convirtiendo el ETH puenteado en la cadena superior en una reserva fraccionaria.
Hay dos formas de resolver este problema:
Tenga en cuenta que (1) tiene un caso límite. Si un ataque del 51% a Ethereum crea dos nuevos bloques incompatibles y ambos parecen finalizados al mismo tiempo, entonces la cadena superior puede bloquearse en la incorrecta (es decir, el que el consenso social de Ethereum finalmente no favorece), y tendría que revertir para cambiar al correcto. Podría decirse que no es necesario escribir código para manejar este caso con anticipación; simplemente podría manejarse bifurcando la cadena superior.
La capacidad de una cadena para leer Ethereum sin confianza es valiosa por dos razones:
Supongamos que la cadena superior comienza como una cadena separada y luego alguien coloca en Ethereum un contrato puente. Un contrato puente es simplemente un contrato que acepta encabezados de bloque de la cadena superior, verifica que cualquier encabezado enviado venga con un certificado válido que demuestre que fue aceptado por el consenso de la cadena superior y agrega ese encabezado a una lista. Las aplicaciones pueden aprovechar esto para implementar funciones como depositar y retirar tokens. Una vez que dicho puente esté instalado, ¿ofrece alguna de las garantías de seguridad de activos que mencionamos anteriormente?
¡Hasta ahora, todavía no! Por dos razones:
Ahora, hagamos del puente un puente de validación: verifica no solo el consenso, sino también un ZK-SNARK que demuestra que el estado de cualquier bloque nuevo se calculó correctamente.
Una vez hecho esto, los validadores de la cadena superior ya no podrán robar sus fondos. Pueden publicar un bloque con datos no disponibles, impidiendo que todos puedan realizar retiros, pero no pueden robar (excepto intentando extraer un rescate para los usuarios a cambio de revelar los datos que les permiten realizar retiros). Este es el mismo modelo de seguridad que un validium.
Sin embargo, todavía no hemos resuelto el segundo problema: la cadena superior no puede leer Ethereum.
Para hacer eso, necesitamos hacer una de dos cosas:
Los enlaces morados pueden ser enlaces hash o un contrato puente que verifica el consenso de Ethereum.
¿Es suficiente? Resulta que todavía no, debido a algunos pequeños casos extremos:
Un ataque del 51% a Ethereum tendría consecuencias similares a un ataque del 51% a la cadena superior, pero a la inversa. Una bifurcación dura de Ethereum corre el riesgo de hacer que el puente de Ethereum dentro de la cadena superior ya no sea válido. Un compromiso social de revertir si Ethereum revierte un bloque finalizado, y de realizar una bifurcación dura si Ethereum se bifurca, es la forma más limpia de resolver esto. Es posible que nunca sea necesario ejecutar tal compromiso: se podría activar un dispositivo de gobernanza en la cadena superior si ve pruebas de un posible ataque o bifurcación dura, y solo realizar una bifurcación dura en la cadena superior si el dispositivo de gobernanza falla.
Desafortunadamente, la única respuesta viable a (3) es tener algún tipo de dispositivo de gobernanza en Ethereum que pueda hacer que el contrato puente en Ethereum sea consciente de las actualizaciones de la cadena superior.
Resumen: los puentes de validación bidireccionales son casi suficientes para hacer de una cadena un validium. El principal ingrediente restante es el compromiso social de que si sucede algo excepcional en Ethereum que haga que el puente ya no funcione, la otra cadena se bifurcará en respuesta.
Hay dos dimensiones clave para la "conexión con Ethereum":
Ambos son importantes y tienen diferentes consideraciones. Hay un espectro en ambos casos:
Tenga en cuenta que ambas dimensiones tienen dos formas distintas de medirlas (¿entonces realmente hay cuatro dimensiones?): la seguridad del retiro se puede medir mediante (i) el nivel de seguridad y (ii) qué porcentaje de usuarios o casos de uso se benefician de la seguridad más alta. nivel, y la seguridad de la lectura se puede medir por (i) la rapidez con la que la cadena puede leer los bloques de Ethereum, particularmente los bloques finalizados versus cualquier bloque, y (ii) la fuerza del compromiso social de la cadena para manejar casos extremos como ataques del 51% y bifurcaciones duras.
Hay valor en proyectos en muchas regiones de este espacio de diseño. Para algunas aplicaciones, son importantes una alta seguridad y una conexión estrecha. Para otros, algo más flexible es aceptable a cambio de una mayor escalabilidad. En muchos casos, comenzar con algo más flexible hoy y pasar a un acoplamiento más estrecho durante la próxima década a medida que la tecnología mejore, puede ser lo óptimo.