Me gustaría hacer dos afirmaciones:
Esto representa un desafío tanto para la visión modular como para la monolítica de la escalabilidad de la cadena de bloques. (1) es un desafío a la visión monolítica, que sostiene que una sola cadena de alto rendimiento es la mejor manera de escalar. (2) es un desafío para la visión modular, porque significa que un ecosistema multicadena o multi-rollup no es suficiente para escalar en un sentido significativo: aumentar el acceso al estado compartido y la liquidez.
Si (1) y (2) son verdaderos, entonces resolver el problema de escalabilidad requiere escalar el acceso al estado compartido y la liquidez en muchas cadenas. La solución de Polygon es la capa de agregación o "AggLayer". AggLayer proporciona seguridad para transacciones entre cadenas casi instantáneas y permite unificar el estado y la liquidez en todas las cadenas.
Esta publicación profundizará en qué es AggLayer, cómo funciona y en qué se diferencia de un secuenciador o probador compartido.
Hay un problema con las L2: la liquidez y el estado están fragmentados entre los rollups y la L1.
Esto es malo desde el punto de vista de la usabilidad porque introduce complejidad, pero también es caro. La liquidez fragmentada significa un mayor deslizamiento y una peor ejecución. Los Optimistic Rollups (OR) requieren que los usuarios paguen costosos puentes de terceros para evitar el retraso de siete días en el retiro. Incluso los ZK Rollups (ZKR) requieren que los usuarios viajen de ida y vuelta a Ethereum para realizar transacciones entre cadenas sin confianza.
Esta es la razón por la que actualmente no son posibles las transacciones entre cadenas de baja latencia y sin confianza.
Supongamos que hay dos rollups, la cadena A y la cadena B, que comparten un puente a L1. A Alice en la Cadena A le gustaría pagarle a Bob en la Cadena B, por lo que Alice bloquea o quema tokens en la Cadena A para transferirlos a la Cadena B.
Se requieren dos cosas para que la Cadena B acredite de manera segura esos tokens a Bob.
Si el lote que contiene las transacciones de Alice no está finalizado en Ethereum, entonces la Cadena A podría confundirse con la Cadena B y gastar dos veces manteniendo los fondos de Alice en la Cadena A y acuñando los fondos de Bob en la Cadena B. Del mismo modo, si la Cadena B no verifica una prueba de validez para A, entonces la Cadena A podría incluir una transacción no válida y robar fondos de B.
(1) y (2) significan que las transacciones entre cadenas sin confianza no pueden tener baja latencia. (1) actualmente requiere 12 minutos, mientras que (2) requiere esperar la duración del período de desafío en las OR y unos minutos para la generación de pruebas en ZKR.
Una buena experiencia de usuario es incompatible con una latencia de 20 minutos. La capa de agregación está diseñada para resolver este problema.
Polygon es un ecosistema de L2 impulsados por ZK que se asientan en Ethereum. La capa de agregación es un protocolo descentralizado operado por nodos apostados que garantiza la seguridad de las transacciones entre cadenas de baja latencia y un puente unificado [1].
En este contexto, se entiende por "seguridad" lo siguiente:
Es imposible que el estado de un rollup se finalice/liquide en Ethereum si ese estado de la cadena se basa en un estado no válido o no finalizado de otra cadena, o si incluye una transacción de un paquete atómico [2] que no se ha ejecutado con éxito en todas las demás cadenas.
En otras palabras, un estado de la Cadena B no se puede finalizar en Ethereum si depende de un estado no válido o no finalizado de la Cadena A.
Esta garantía es importante. Permite que la cadena B interopere de forma segura con la cadena A con una latencia súper baja, antes de que el estado de la cadena A haya finalizado en Ethereum o se haya generado una prueba.
La capa de agregación funciona en tres fases. Supongamos que la cadena A es una cadena impulsada por ZK que se ejecuta en el ecosistema Polygon.
Las cadenas pueden navegar por sí mismas en el espacio de compensación entre la latencia y las garantías de vida. Una cadena puede optar por interoperar con otra cadena después del paso de preconfirmación para transacciones de cadena cruzada de latencia súper baja, pero fundamentalmente, este modelo es compatible con cadenas que esperan confirmación o incluso finalización.
La garantía de seguridad para las transacciones entre cadenas se aplica en el tercer paso. Profundicemos más en cómo este diseño permite una interacción segura entre cadenas.
Tomemos el primer ejemplo de una transferencia entre cadenas. Alice en la Cadena A quiere bloquear o quemar algunos tokens en el bloque A1 para acuñar y transferir tokens a Bob en la Cadena B. Si la cadena B no espera hasta que A1 esté finalizada en Ethereum con una prueba válida, entonces la cadena A podría equivocarse o dar a la cadena B un estado no válido.
La capa de agregación resuelve esto de una manera sencilla. La cadena B puede asumir temporalmente que A1 es válido y se finalizará en Ethereum, sin siquiera esperar una prueba. El secuenciador de la cadena B se compromete con la raíz de estado A1 del estado de la cadena A reclamada como una dependencia en el encabezado de B1 (como B1A1 ) antes de enviarlo a la capa de agregación. La latencia necesaria para que la cadena B construya B1 disminuye de 20 minutos a, como máximo, unos pocos segundos.
En el paso Confirmación, la capa de agregación crea un gráfico de dependencias para cada bloque/lote enviado. Por ejemplo, si A1 depende de B1, que a su vez depende de B1, C1 se confirma tan pronto como se presenta una prueba πC1. Pero, incluso si se recibe πA1, πA1 solo se confirma con πC1 y πB1.El aspecto crítico de este diseño es que el circuito de agregación de prueba aplica consistencia entre dependencias. Si B1A1 es inconsistente con el bloque A1 que presenta la cadena A, o falta una prueba para A1′, entonces B1 no se puede incluir en el lote agregado finalizado en Ethereum.
Este mecanismo garantiza que si la cadena A se equivoca o envía un bloque no válido, digamos A1′, entonces cualquier lote que dependa de una raíz de estado no válida o equívoca para la cadena A no se puede finalizar/liquidar en Ethereum. Incluso si el propio AggLayer se equivoca, las cadenas tienen una garantía criptográfica de que cualquier bloque que dependa de un bloque no válido o equívoco no se puede finalizar, porque dos pruebas para los estados de la cadena que son inconsistentes o no válidos no se pueden agregar juntas en el circuito de agregación de pruebas. Esto garantiza que se conserve la propiedad de seguridad descrita anteriormente.
El mecanismo de seguridad se puede extender a la caja atómica. Supongamos que un usuario envía un paquete atómico de transacciones a varias cadenas. Este paquete se ordena, por lo que el resultado de ejecutar la transacción en la cadena A se pasa a la cadena B, y del mismo modo el estado actualizado de la cadena B se pasa a la cadena C, etc. Si todas las transacciones se ejecutan correctamente en todas las cadenas, se incluye el paquete; de lo contrario, se rechaza.
Sería ideal proporcionar la capacidad de incluir transacciones atómicas sin:
Esto plantea un problema de seguridad similar al del caso asincrónico: la cadena A podría equivocarse y enviar un lote que en realidad no incluye el paquete atómico, o enviar un resultado no válido a la cadena B.
Afortunadamente, el mismo mecanismo del caso asíncrono se puede reutilizar para el caso atómico. La cadena B se compromete con los paquetes y recibe los resultados de las transacciones de otras cadenas. La capa de agregación (y el circuito de agregación de prueba) comprueba que los paquetes sean coherentes en todas las cadenas. Un lote que contiene un paquete de la Cadena B solo se puede finalizar/liquidar en Ethereum si todas las transacciones del paquete se ejecutan con éxito.
La capa de agregación permite la componibilidad entre cadenas de latencia muy baja a través de llamadas asíncronas entre cadenas. Esta es una primitiva increíblemente poderosa: los contratos pueden llamar contratos de forma segura en otras cadenas con una latencia súper baja, sin esperar a la finalización de Ethereum. Un usuario podría acceder a través de la cadena OKX en Polygon y depositar inmediatamente en un mercado de préstamos de alta liquidez en Aave en una cadena diferente con un solo clic, sin necesidad de cambiar un activo sintético envuelto.
AggregationLayer garantiza que las interacciones entre cadenas casi instantáneas serán seguras [3]. Pero esto es solo la mitad de la batalla. ¿Cómo comparten y confían los operadores de la cadena los estados de la cadena de los demás? ¿Cómo coordinan la producción de haces atómicos?
Un objetivo de diseño para AggLayer es que sea mínimo. Su propósito es garantizar la seguridad y proporcionar una base que permita a cualquier persona construir una infraestructura de coordinación que ofrezca vida en una variedad de entornos diferentes.
Los operadores de cadenas pueden elegir libremente entre mecanismos de coordinación emergentes en función de sus supuestos de confianza, entre los que se pueden incluir relés, infraestructura de probadores compartida o clústeres de secuenciadores de validez compartida [4]. Estos protegen las cadenas contra problemas de vida cuando dependen de otros estados o paquetes de cadenas.
El ecosistema de Polygon prioriza la elección y la soberanía de las cadenas. Las cadenas pueden ejecutar sus propios entornos de ejecución modificados, usar sus propios tokens para las tarifas de staking y gas, elegir sus propios mecanismos de disponibilidad de datos, etc. Del mismo modo, las cadenas deben decidir cómo manejar las compensaciones entre la interoperabilidad y el riesgo de fallas de vida. Hay varias opciones:
Una cosa importante a tener en cuenta es que los usuarios no pueden causar fallas de vida, solo cadenas que se comportan mal o funcionan mal. El equívoco y el envío de un bloque no válido pueden ser fuertemente penalizados, ya sea a través de cortes o expulsando cadenas de AggLayer e impidiendo su capacidad para interoperar sin problemas. Por lo tanto, una falla de vida debería ser extremadamente rara.
Las cadenas pueden tomar precauciones adicionales para minimizar el riesgo de problemas de vida, manteniendo listas blancas o negras de otras cadenas con las que interoperan y estableciendo límites en el número de cadenas que pueden participar colectivamente en cualquier lote. Podrían confiar en terceros que ejecuten nodos completos para garantizar que, si una cadena se desconecta antes de que pueda producir una prueba, haya un probador de respaldo.
El mecanismo por el cual las cadenas se coordinan para aceptar haces atómicos también es flexible. Por ejemplo, un subconjunto de cadenas podría interoperar en un clúster de secuenciación de validez compartida para una latencia extremadamente baja, o podrían depender de relés.
Un repetidor criptoeconómicamente protegido podría permitir la interoperabilidad entre las cadenas A y B ejecutando un nodo completo para ambas cadenas y atestiguando que los estados de cada cadena son válidos. Incluso si la cadena A o B preconfirma un nuevo lote y luego se desconecta, la infraestructura de probadores compartida puede intervenir para generar una prueba.
Puede imaginar una nueva infraestructura de coordinación emergiendo sobre la base de la seguridad proporcionada por AggLayer, permitiendo nuevas y mejores formas de interoperabilidad y liquidez compartida. Y lo que es más importante, no es necesario que todo el ecosistema de Polygon comparta la misma infraestructura o los mismos supuestos de confianza. No es necesario que funcione con un único secuenciador o probador de validez compartida. Esta es una ventaja extremadamente importante en relación con los quirófanos.
La capa de agregación nos permite fundamentalmente crear un ecosistema multicadena que se siente como usar una sola cadena. Es la síntesis de las tesis monolíticas y modulares: estado unificado, liquidez y composibilidad, con la escalabilidad ilimitada de un ecosistema multicadena.
Esta es una visión que fundamentalmente solo está disponible para los sistemas basados en ZK. Ampliaré este punto en una publicación futura, pero los ecosistemas optimistas que deseen permitir una interoperabilidad rápida deben confiar en secuenciadores de validez compartida. Este es un mal negocio para las cadenas: les restringe la redistribución de las tarifas de los secuenciadores y el MEV, los secuenciadores de validez compartida obligan a las cadenas a aceptar potencialmente restricciones en sus entornos de ejecución, y la interoperabilidad en los sistemas basados en OR obliga a las cadenas a aceptar suposiciones de confianza adicionales a cambio de una baja latencia.
Además, la interoperabilidad entre cadenas rompe una propiedad importante para los quirófanos. Con los OR de una sola cadena, cualquiera puede ejecutar un nodo completo para un OR y confirmar inmediatamente que las transacciones son válidas y finalizadas tan pronto como se publican en las L1. Esto ya no es cierto en el caso de las cadenas múltiples: ahora es necesario ejecutar un nodo completo para cada cadena con la que interopera el quirófano.
Por el contrario, la visión de Polygon es una en la que las cadenas son soberanas. Pueden utilizar cualquier entorno de ejecución, pueden confiar en cualquier secuenciador centralizado o descentralizado y pueden navegar por sí mismos entre la latencia entre cadenas y la vida.
Esta es una visión que refleja la Internet existente. Internet es un entorno unificado, sin permisos y escalable de forma elástica. Del mismo modo, AggLayer es escalable y sin permisos, no impone restricciones a las cadenas participantes, y permite a los usuarios mover activos y estados sin problemas a través del ecosistema, presentando una interfaz unificada para la capa de valor de Internet.
Este es el futuro de Polygon: no monolítico, no totalmente modular, sino agregado.
[1] Parte de garantizar la liquidez unificada es deshacerse de la terrible experiencia de usuario de los tokens sintéticos envueltos en los puentes. Los usuarios del puente LxLy de Polygon pueden transferir activos sin problemas a través de cadenas mientras preservan la fungibilidad. Sin embargo, para hacer esto de forma segura, debemos protegernos contra la seguridad del eslabón más débil, o un atacante que corrompe una sola cadena y drena todos los fondos en todas las cadenas del puente. Discutiré cómo hacer esto en una publicación futura, pero AggLayer puede aprovechar el paso de agregación de prueba para hacer cumplir la contabilidad a nivel de cadena, evitando la seguridad del eslabón más débil.
[2] Cuando hago referencia a las transacciones atómicas entre cadenas, me refiero a la capacidad de un usuario de enviar un "paquete" o conjunto de transacciones a través de múltiples cadenas. El paquete atómico tiene la propiedad de que sus transacciones se incluyen en cada cadena relevante si y solo si todas las transacciones se ejecutan correctamente. Si falla una sola transacción, el paquete no se puede incluir en ninguna cadena.
El ejemplo más básico es, de nuevo, nuestra transferencia entre cadenas. Digamos que Alice quiere enviar 1 ETH a Bob, pero Alice está en la Cadena A y Bob está en la Cadena B. Suponiendo un puente nativo compartido para ambos rollups, Alice puede quemar su ETH en la Cadena A y acuñar ETH en la Cadena B que se transfiere a Bob. Pero es fundamental garantizar que no pueda acuñar ETH sin quemarlo o viceversa, ya sea que pierda su ETH o que no colateralice el puente.
Esta es la razón por la que las transacciones atómicas son tan importantes. Para permitir interacciones de baja latencia entre cadenas y hacer que el uso del ecosistema Polygon se sienta como usar una sola cadena, se necesitan garantías atómicas.
[3] Este es un punto sutil, pero desde la perspectiva del ecosistema: el AggLayer proporciona seguridad, pero desde la perspectiva de una sola cadena, este diseño prioriza la vida sobre la seguridad, ya que la cadena B puede depender de un estado de cadena de la cadena A que no es válido. En este caso, la cadena B no será aceptada por AggLayer (impuesta por el circuito de agregación de prueba) y tendrá que construir un nuevo bloque sin la dependencia de A.
[4] Nuestro enfoque en su conjunto le debe mucho al diseño de Secuenciación de Validez Compartida de Umbra Research.
09/02/24 - Se actualizó este borrador para aclarar algunas comparaciones entre la agregación y la secuenciación compartida. La tesis agregada depende de mecanismos como secuenciadores compartidos, relés y constructores para facilitar la coordinación entre cadenas. A su vez, la capa agg garantiza la seguridad.
Me gustaría hacer dos afirmaciones:
Esto representa un desafío tanto para la visión modular como para la monolítica de la escalabilidad de la cadena de bloques. (1) es un desafío a la visión monolítica, que sostiene que una sola cadena de alto rendimiento es la mejor manera de escalar. (2) es un desafío para la visión modular, porque significa que un ecosistema multicadena o multi-rollup no es suficiente para escalar en un sentido significativo: aumentar el acceso al estado compartido y la liquidez.
Si (1) y (2) son verdaderos, entonces resolver el problema de escalabilidad requiere escalar el acceso al estado compartido y la liquidez en muchas cadenas. La solución de Polygon es la capa de agregación o "AggLayer". AggLayer proporciona seguridad para transacciones entre cadenas casi instantáneas y permite unificar el estado y la liquidez en todas las cadenas.
Esta publicación profundizará en qué es AggLayer, cómo funciona y en qué se diferencia de un secuenciador o probador compartido.
Hay un problema con las L2: la liquidez y el estado están fragmentados entre los rollups y la L1.
Esto es malo desde el punto de vista de la usabilidad porque introduce complejidad, pero también es caro. La liquidez fragmentada significa un mayor deslizamiento y una peor ejecución. Los Optimistic Rollups (OR) requieren que los usuarios paguen costosos puentes de terceros para evitar el retraso de siete días en el retiro. Incluso los ZK Rollups (ZKR) requieren que los usuarios viajen de ida y vuelta a Ethereum para realizar transacciones entre cadenas sin confianza.
Esta es la razón por la que actualmente no son posibles las transacciones entre cadenas de baja latencia y sin confianza.
Supongamos que hay dos rollups, la cadena A y la cadena B, que comparten un puente a L1. A Alice en la Cadena A le gustaría pagarle a Bob en la Cadena B, por lo que Alice bloquea o quema tokens en la Cadena A para transferirlos a la Cadena B.
Se requieren dos cosas para que la Cadena B acredite de manera segura esos tokens a Bob.
Si el lote que contiene las transacciones de Alice no está finalizado en Ethereum, entonces la Cadena A podría confundirse con la Cadena B y gastar dos veces manteniendo los fondos de Alice en la Cadena A y acuñando los fondos de Bob en la Cadena B. Del mismo modo, si la Cadena B no verifica una prueba de validez para A, entonces la Cadena A podría incluir una transacción no válida y robar fondos de B.
(1) y (2) significan que las transacciones entre cadenas sin confianza no pueden tener baja latencia. (1) actualmente requiere 12 minutos, mientras que (2) requiere esperar la duración del período de desafío en las OR y unos minutos para la generación de pruebas en ZKR.
Una buena experiencia de usuario es incompatible con una latencia de 20 minutos. La capa de agregación está diseñada para resolver este problema.
Polygon es un ecosistema de L2 impulsados por ZK que se asientan en Ethereum. La capa de agregación es un protocolo descentralizado operado por nodos apostados que garantiza la seguridad de las transacciones entre cadenas de baja latencia y un puente unificado [1].
En este contexto, se entiende por "seguridad" lo siguiente:
Es imposible que el estado de un rollup se finalice/liquide en Ethereum si ese estado de la cadena se basa en un estado no válido o no finalizado de otra cadena, o si incluye una transacción de un paquete atómico [2] que no se ha ejecutado con éxito en todas las demás cadenas.
En otras palabras, un estado de la Cadena B no se puede finalizar en Ethereum si depende de un estado no válido o no finalizado de la Cadena A.
Esta garantía es importante. Permite que la cadena B interopere de forma segura con la cadena A con una latencia súper baja, antes de que el estado de la cadena A haya finalizado en Ethereum o se haya generado una prueba.
La capa de agregación funciona en tres fases. Supongamos que la cadena A es una cadena impulsada por ZK que se ejecuta en el ecosistema Polygon.
Las cadenas pueden navegar por sí mismas en el espacio de compensación entre la latencia y las garantías de vida. Una cadena puede optar por interoperar con otra cadena después del paso de preconfirmación para transacciones de cadena cruzada de latencia súper baja, pero fundamentalmente, este modelo es compatible con cadenas que esperan confirmación o incluso finalización.
La garantía de seguridad para las transacciones entre cadenas se aplica en el tercer paso. Profundicemos más en cómo este diseño permite una interacción segura entre cadenas.
Tomemos el primer ejemplo de una transferencia entre cadenas. Alice en la Cadena A quiere bloquear o quemar algunos tokens en el bloque A1 para acuñar y transferir tokens a Bob en la Cadena B. Si la cadena B no espera hasta que A1 esté finalizada en Ethereum con una prueba válida, entonces la cadena A podría equivocarse o dar a la cadena B un estado no válido.
La capa de agregación resuelve esto de una manera sencilla. La cadena B puede asumir temporalmente que A1 es válido y se finalizará en Ethereum, sin siquiera esperar una prueba. El secuenciador de la cadena B se compromete con la raíz de estado A1 del estado de la cadena A reclamada como una dependencia en el encabezado de B1 (como B1A1 ) antes de enviarlo a la capa de agregación. La latencia necesaria para que la cadena B construya B1 disminuye de 20 minutos a, como máximo, unos pocos segundos.
En el paso Confirmación, la capa de agregación crea un gráfico de dependencias para cada bloque/lote enviado. Por ejemplo, si A1 depende de B1, que a su vez depende de B1, C1 se confirma tan pronto como se presenta una prueba πC1. Pero, incluso si se recibe πA1, πA1 solo se confirma con πC1 y πB1.El aspecto crítico de este diseño es que el circuito de agregación de prueba aplica consistencia entre dependencias. Si B1A1 es inconsistente con el bloque A1 que presenta la cadena A, o falta una prueba para A1′, entonces B1 no se puede incluir en el lote agregado finalizado en Ethereum.
Este mecanismo garantiza que si la cadena A se equivoca o envía un bloque no válido, digamos A1′, entonces cualquier lote que dependa de una raíz de estado no válida o equívoca para la cadena A no se puede finalizar/liquidar en Ethereum. Incluso si el propio AggLayer se equivoca, las cadenas tienen una garantía criptográfica de que cualquier bloque que dependa de un bloque no válido o equívoco no se puede finalizar, porque dos pruebas para los estados de la cadena que son inconsistentes o no válidos no se pueden agregar juntas en el circuito de agregación de pruebas. Esto garantiza que se conserve la propiedad de seguridad descrita anteriormente.
El mecanismo de seguridad se puede extender a la caja atómica. Supongamos que un usuario envía un paquete atómico de transacciones a varias cadenas. Este paquete se ordena, por lo que el resultado de ejecutar la transacción en la cadena A se pasa a la cadena B, y del mismo modo el estado actualizado de la cadena B se pasa a la cadena C, etc. Si todas las transacciones se ejecutan correctamente en todas las cadenas, se incluye el paquete; de lo contrario, se rechaza.
Sería ideal proporcionar la capacidad de incluir transacciones atómicas sin:
Esto plantea un problema de seguridad similar al del caso asincrónico: la cadena A podría equivocarse y enviar un lote que en realidad no incluye el paquete atómico, o enviar un resultado no válido a la cadena B.
Afortunadamente, el mismo mecanismo del caso asíncrono se puede reutilizar para el caso atómico. La cadena B se compromete con los paquetes y recibe los resultados de las transacciones de otras cadenas. La capa de agregación (y el circuito de agregación de prueba) comprueba que los paquetes sean coherentes en todas las cadenas. Un lote que contiene un paquete de la Cadena B solo se puede finalizar/liquidar en Ethereum si todas las transacciones del paquete se ejecutan con éxito.
La capa de agregación permite la componibilidad entre cadenas de latencia muy baja a través de llamadas asíncronas entre cadenas. Esta es una primitiva increíblemente poderosa: los contratos pueden llamar contratos de forma segura en otras cadenas con una latencia súper baja, sin esperar a la finalización de Ethereum. Un usuario podría acceder a través de la cadena OKX en Polygon y depositar inmediatamente en un mercado de préstamos de alta liquidez en Aave en una cadena diferente con un solo clic, sin necesidad de cambiar un activo sintético envuelto.
AggregationLayer garantiza que las interacciones entre cadenas casi instantáneas serán seguras [3]. Pero esto es solo la mitad de la batalla. ¿Cómo comparten y confían los operadores de la cadena los estados de la cadena de los demás? ¿Cómo coordinan la producción de haces atómicos?
Un objetivo de diseño para AggLayer es que sea mínimo. Su propósito es garantizar la seguridad y proporcionar una base que permita a cualquier persona construir una infraestructura de coordinación que ofrezca vida en una variedad de entornos diferentes.
Los operadores de cadenas pueden elegir libremente entre mecanismos de coordinación emergentes en función de sus supuestos de confianza, entre los que se pueden incluir relés, infraestructura de probadores compartida o clústeres de secuenciadores de validez compartida [4]. Estos protegen las cadenas contra problemas de vida cuando dependen de otros estados o paquetes de cadenas.
El ecosistema de Polygon prioriza la elección y la soberanía de las cadenas. Las cadenas pueden ejecutar sus propios entornos de ejecución modificados, usar sus propios tokens para las tarifas de staking y gas, elegir sus propios mecanismos de disponibilidad de datos, etc. Del mismo modo, las cadenas deben decidir cómo manejar las compensaciones entre la interoperabilidad y el riesgo de fallas de vida. Hay varias opciones:
Una cosa importante a tener en cuenta es que los usuarios no pueden causar fallas de vida, solo cadenas que se comportan mal o funcionan mal. El equívoco y el envío de un bloque no válido pueden ser fuertemente penalizados, ya sea a través de cortes o expulsando cadenas de AggLayer e impidiendo su capacidad para interoperar sin problemas. Por lo tanto, una falla de vida debería ser extremadamente rara.
Las cadenas pueden tomar precauciones adicionales para minimizar el riesgo de problemas de vida, manteniendo listas blancas o negras de otras cadenas con las que interoperan y estableciendo límites en el número de cadenas que pueden participar colectivamente en cualquier lote. Podrían confiar en terceros que ejecuten nodos completos para garantizar que, si una cadena se desconecta antes de que pueda producir una prueba, haya un probador de respaldo.
El mecanismo por el cual las cadenas se coordinan para aceptar haces atómicos también es flexible. Por ejemplo, un subconjunto de cadenas podría interoperar en un clúster de secuenciación de validez compartida para una latencia extremadamente baja, o podrían depender de relés.
Un repetidor criptoeconómicamente protegido podría permitir la interoperabilidad entre las cadenas A y B ejecutando un nodo completo para ambas cadenas y atestiguando que los estados de cada cadena son válidos. Incluso si la cadena A o B preconfirma un nuevo lote y luego se desconecta, la infraestructura de probadores compartida puede intervenir para generar una prueba.
Puede imaginar una nueva infraestructura de coordinación emergiendo sobre la base de la seguridad proporcionada por AggLayer, permitiendo nuevas y mejores formas de interoperabilidad y liquidez compartida. Y lo que es más importante, no es necesario que todo el ecosistema de Polygon comparta la misma infraestructura o los mismos supuestos de confianza. No es necesario que funcione con un único secuenciador o probador de validez compartida. Esta es una ventaja extremadamente importante en relación con los quirófanos.
La capa de agregación nos permite fundamentalmente crear un ecosistema multicadena que se siente como usar una sola cadena. Es la síntesis de las tesis monolíticas y modulares: estado unificado, liquidez y composibilidad, con la escalabilidad ilimitada de un ecosistema multicadena.
Esta es una visión que fundamentalmente solo está disponible para los sistemas basados en ZK. Ampliaré este punto en una publicación futura, pero los ecosistemas optimistas que deseen permitir una interoperabilidad rápida deben confiar en secuenciadores de validez compartida. Este es un mal negocio para las cadenas: les restringe la redistribución de las tarifas de los secuenciadores y el MEV, los secuenciadores de validez compartida obligan a las cadenas a aceptar potencialmente restricciones en sus entornos de ejecución, y la interoperabilidad en los sistemas basados en OR obliga a las cadenas a aceptar suposiciones de confianza adicionales a cambio de una baja latencia.
Además, la interoperabilidad entre cadenas rompe una propiedad importante para los quirófanos. Con los OR de una sola cadena, cualquiera puede ejecutar un nodo completo para un OR y confirmar inmediatamente que las transacciones son válidas y finalizadas tan pronto como se publican en las L1. Esto ya no es cierto en el caso de las cadenas múltiples: ahora es necesario ejecutar un nodo completo para cada cadena con la que interopera el quirófano.
Por el contrario, la visión de Polygon es una en la que las cadenas son soberanas. Pueden utilizar cualquier entorno de ejecución, pueden confiar en cualquier secuenciador centralizado o descentralizado y pueden navegar por sí mismos entre la latencia entre cadenas y la vida.
Esta es una visión que refleja la Internet existente. Internet es un entorno unificado, sin permisos y escalable de forma elástica. Del mismo modo, AggLayer es escalable y sin permisos, no impone restricciones a las cadenas participantes, y permite a los usuarios mover activos y estados sin problemas a través del ecosistema, presentando una interfaz unificada para la capa de valor de Internet.
Este es el futuro de Polygon: no monolítico, no totalmente modular, sino agregado.
[1] Parte de garantizar la liquidez unificada es deshacerse de la terrible experiencia de usuario de los tokens sintéticos envueltos en los puentes. Los usuarios del puente LxLy de Polygon pueden transferir activos sin problemas a través de cadenas mientras preservan la fungibilidad. Sin embargo, para hacer esto de forma segura, debemos protegernos contra la seguridad del eslabón más débil, o un atacante que corrompe una sola cadena y drena todos los fondos en todas las cadenas del puente. Discutiré cómo hacer esto en una publicación futura, pero AggLayer puede aprovechar el paso de agregación de prueba para hacer cumplir la contabilidad a nivel de cadena, evitando la seguridad del eslabón más débil.
[2] Cuando hago referencia a las transacciones atómicas entre cadenas, me refiero a la capacidad de un usuario de enviar un "paquete" o conjunto de transacciones a través de múltiples cadenas. El paquete atómico tiene la propiedad de que sus transacciones se incluyen en cada cadena relevante si y solo si todas las transacciones se ejecutan correctamente. Si falla una sola transacción, el paquete no se puede incluir en ninguna cadena.
El ejemplo más básico es, de nuevo, nuestra transferencia entre cadenas. Digamos que Alice quiere enviar 1 ETH a Bob, pero Alice está en la Cadena A y Bob está en la Cadena B. Suponiendo un puente nativo compartido para ambos rollups, Alice puede quemar su ETH en la Cadena A y acuñar ETH en la Cadena B que se transfiere a Bob. Pero es fundamental garantizar que no pueda acuñar ETH sin quemarlo o viceversa, ya sea que pierda su ETH o que no colateralice el puente.
Esta es la razón por la que las transacciones atómicas son tan importantes. Para permitir interacciones de baja latencia entre cadenas y hacer que el uso del ecosistema Polygon se sienta como usar una sola cadena, se necesitan garantías atómicas.
[3] Este es un punto sutil, pero desde la perspectiva del ecosistema: el AggLayer proporciona seguridad, pero desde la perspectiva de una sola cadena, este diseño prioriza la vida sobre la seguridad, ya que la cadena B puede depender de un estado de cadena de la cadena A que no es válido. En este caso, la cadena B no será aceptada por AggLayer (impuesta por el circuito de agregación de prueba) y tendrá que construir un nuevo bloque sin la dependencia de A.
[4] Nuestro enfoque en su conjunto le debe mucho al diseño de Secuenciación de Validez Compartida de Umbra Research.
09/02/24 - Se actualizó este borrador para aclarar algunas comparaciones entre la agregación y la secuenciación compartida. La tesis agregada depende de mecanismos como secuenciadores compartidos, relés y constructores para facilitar la coordinación entre cadenas. A su vez, la capa agg garantiza la seguridad.