Saltar al contenido
0%

Cómo funcionan los rollups optimistas (la guía completa)

Alchemy team headshot

Escrito por Alchemy

Publicado el 9 de agosto de 202310 min de lectura

Considerada alguna vez una idea marginal, Ethereum —la primera plataforma de contratos inteligentes del mundo— ha crecido considerablemente a lo largo de los años, y ahora aloja casi 3,000 aplicaciones descentralizadas, más de 4,000 contratos inteligentes, y más de 90,000 transacciones diarias.

Pero el aumento de actividad en Ethereum ha tenido un costo: la escalabilidad.

Los límites en el tamaño de los bloques y el tiempo entre bloques, aunque necesarios para la descentralización y la seguridad, reducen la capacidad de Ethereum para escalar y aceptar más usuarios. El resultado es un conjunto de problemas que la mayoría de los usuarios de Ethereum conocen bien: comisiones de gas altas y transacciones lentas.

Escalar Ethereum de forma segura requiere aumentar su capacidad de escalar el throughput y la latencia de la red sin introducir supuestos de confianza. Esto es lo que varias soluciones de escalabilidad, como los Rollups y sidechains de Layer 2, intentan lograr.

Este artículo explora los Optimistic Rollups (ORUs), una clase de soluciones de Rollups L2 diseñadas para hacer que usar Ethereum sea más barato y rápido.

¿Qué son los optimistic rollups?

‍Los optimistic rollups son una construcción de layer 2 (L2) que mejora el throughput y la latencia en la capa base de Ethereum al mover el cómputo y el almacenamiento de datos fuera de la cadena. Un optimistic rollup procesa transacciones fuera de Ethereum Mainnet, reduciendo la congestión en la capa base y mejorando la escalabilidad.

La etiqueta "optimista" señala una característica distintiva de los optimistic rollups: publican poca información sobre las transacciones on-chain y asumen automáticamente que todas las transacciones son válidas. Se les llama "rollups" porque agrupan ("roll up") miles de transacciones en lotes antes de enviarlas a Mainnet.

La arquitectura de un optimistic rollup

1. Ingresar al optimistic rollup

Los optimistic rollups usan contratos inteligentes desplegados en Ethereum para gestionar la interacción entre la cadena L2 y la blockchain L1 (Ethereum). Los usuarios del rollup deben depositar fondos en uno de estos contratos inteligentes antes de que se les desbloquee una cantidad equivalente en el rollup.

Un tercero, conocido como sequencer, acredita al usuario con fondos en el rollup después de recibir prueba del depósito de este en el contrato del rollup. Luego, el usuario queda libre para hacer transacciones en el rollup hasta agotar su saldo.

La arquitectura de un optimistic rollup
Fuente

2. Usar el optimistic rollup

En el rollup, los usuarios firman transacciones y las envían al sequencer, quien es responsable de ordenar y ejecutar las transacciones. El sequencer verifica las transacciones, comprime los datos en un bloque y envía el lote a Ethereum como una sola transacción.

Esta es otra área donde entra en juego el contrato del rollup. El contrato on-chain almacena un "state root", que es una raíz de Merkle del estado del rollup. Analicemos esto más a fondo:

State (estado)

State es un concepto que se refiere a la información disponible sobre una red en un momento específico. El "estado del rollup" describe la condición actual de la cadena L2 y especifica detalles como cuentas existentes, saldos, contratos inteligentes, etcétera.

Cada transacción realizada en el rollup provoca un cambio en su estado; por ejemplo, el saldo de Alice disminuirá después de que envíe 5 ETH a Bob. Por eso, las transacciones se llaman state transitions, ya que el rollup pasa de un estado anterior a un estado nuevo después de ejecutar una transacción.

Merkle root

Un Merkle root permite a los usuarios codificar grandes cantidades de información usando hashes criptográficos. Los Merkle roots también facilitan verificar si un dato (por ejemplo, una transacción) forma parte de un conjunto de datos más grande (por ejemplo, un lote de transacciones).

Por lo tanto, el "state root" almacenado en el contrato del rollup es un compromiso criptográfico que verifica el estado del rollup en distintos momentos. Cuando un sequencer envía un lote de transacciones al contrato del rollup, debe incluir un state root previo y un state root posterior.

  1. Pre-state root: El state root anterior, que describe la condición del rollup antes de que se ejecutaran las transacciones enviadas.

  2. Post-state root: El nuevo state root, que describe la condición del rollup después de que se ejecutaron las transacciones enviadas.

Una vez que el sequencer envía el lote, el contrato verifica que el pre-state root coincida con el state root existente. Si ambos coinciden, el contrato descarta el state root anterior y almacena el nuevo state root propuesto por el sequencer.

Esto significa que las transacciones referenciadas en el post-state root se vuelven finales y no pueden revertirse. Cabe notar que el sequencer no tiene que enviar prueba de la validez de las transacciones agrupadas.

La única vez que se requiere una prueba es si un verificador reporta una transacción fraudulenta del rollup mediante un fraud proof. Explicaremos la mecánica de un fraud proof en una sección posterior de este artículo.

Diagrama de un Merkle tree que produce el state root en un optimistic rollup
Fuente

3. Salir del optimistic rollup

Digamos que Alice (la usuaria) ya tuvo suficiente de este negocio de rollups y quiere retirar sus fondos del contrato del rollup en Ethereum Mainnet. Para hacerlo, necesita una prueba de Merkle que —sí, adivinaste— demuestre que su transacción está incluida en el state root del rollup.

Construir la prueba de Merkle requiere tener acceso a los datos de la transacción inicial, que se espera que provea el sequencer. Si todo sale bien, Alice obtiene los datos, crea la prueba de Merkle y la envía al contrato del rollup.

Pero depender del sequencer para obtener los datos de las transacciones introduce supuestos de confianza. Un sequencer podría volverse malicioso, ejecutar una transacción que transfiera el token de Alice a su propia wallet, y negarle los datos que necesita para demostrar la propiedad de los fondos. Incluso algo menos malicioso, como que un sequencer se desconecte, puede amenazar la descentralización y seguridad de los optimistic rollups.

Los optimistic rollups resuelven este problema exigiendo a los sequencers que publiquen los datos completos de las transacciones en la capa de ejecución principal de Ethereum. Esta información se publica en Ethereum Mainnet como "calldata", lo cual es más barato que almacenarla en la memoria o el almacenamiento de la Ethereum Virtual Machine (lo que reduce aún más las comisiones del rollup).

Esto logra dos objetivos:

  1. Si un sequencer se desconecta, otro sequencer puede usar los datos de las transacciones para reconstruir el estado del rollup y continuar produciendo bloques.

  2. Alice (la usuaria) puede descargar los datos ella misma y usarlos para crear una prueba de Merkle.

El uso de disponibilidad de datos on-chain es lo que hace que los optimistic rollups sean considerablemente más seguros que otras soluciones de escalabilidad. Con los datos de las transacciones almacenados en Ethereum, los fondos de los usuarios siempre están seguros, siempre que Ethereum siga operativo.

Así, de una forma u otra, Alice logra crear una prueba de Merkle para demostrar la propiedad de los fondos. Sin embargo, debe esperar a que transcurra el dispute period antes de retirar sus fondos. En los optimistic rollups, el dispute period es un intervalo de 1 a 2 semanas entre el envío de una solicitud de retiro y la obtención de los fondos solicitados.

Durante este período, cualquiera puede publicar un fraud proof alegando que una transacción particular, o un lote de transacciones, es inválido. Si el fraud proof tiene éxito, la garantía (bond) del sequencer (provista como garantía de comportamiento honesto) se penaliza (slash), los "fondos" de Alice se revierten, y el "denunciante" (llamado verifier) es recompensado por su esfuerzo.

Si nadie impugna la solicitud de retiro de Alice, entonces puede obtener sus fondos del contrato del rollup después de 1 a 2 semanas.

¿Qué es un fraud proof?

Un fraud proof es una afirmación de que una state transition (es decir, una transacción) es inválida y que, como resultado, todo el lote debe revertirse. Aunque son complejos, los fraud proofs dependen en gran medida de los state roots (mencionados antes) para funcionar.

El proceso comienza cuando una parte (verifier) detecta una discrepancia entre el estado del rollup referenciado en el state root en la cadena L1 y el estado real de la cadena del rollup.

Un ejemplo sería que el sequencer envíe un post-state root que reduce el saldo de Alice en 5 ETH y aumenta el saldo de Bob en la misma cantidad, aunque Alice nunca hizo una transferencia.

El verifier puede "impugnar" esta state transition y demostrar su invalidez. Esto es posible porque el verifier descarga los datos de cada transacción, los aplica a su propia copia del estado del rollup, y calcula el post-state root.

Si el post-state root del sequencer coincide con el del verifier, no pasa nada. Si, en cambio, el post-state root del sequencer es distinto —probablemente porque incluye una transacción falsa, como en el caso de Alice—, entonces el verifier puede activar un cómputo de fraud proof.

Diagrama del proceso de fraud proof para disputar una transacción en un optimistic rollup
Source: https://ethereum.org/en/developers/docs/scaling/optimistic-rollups/#disputing-transactions

¿Cómo funcionan los fraud proofs?

Aquí hay una descripción de alto nivel del proceso de fraud proof:

  1. El verifier inicia una impugnación y proporciona la siguiente información:

    a. La state transition disputada

    b. El pre-state root

    c. Datos del estado del rollup

    d. Su versión del post-state root.

    1. La transacción se reproduce en un entorno aislado (sandboxed) en la cadena L1, usando, entre otras cosas, la información proporcionada por quien impugna.

Este "entorno aislado" es un contrato inteligente que corre en Ethereum, el cual también funciona como una máquina virtual (VM).

  1. Si el cómputo resulta en un post-state root que coincide con el de quien impugna, entonces sabemos que el sequencer efectivamente publicó un lote con una state transition inválida.

El lote inválido (y otros) publicados posteriormente se revertirán, restaurando el rollup a su estado anterior.

Cabe señalar que el mecanismo de fraud proof es más complicado de lo que se describe aquí.

Este artículo sobre fraud proofs en rollups puede ofrecer contexto adicional.

¿Cuál es la diferencia entre fraud proofs y validity proofs?

Un fraud proof se diferencia de un validity proof principalmente porque se calcula on-chain. Los validity proofs (también llamados zero-knowledge proofs) se calculan off-chain (es decir, en el rollup) y se verifican en Ethereum.

Como se explica en nuestro artículo que compara diferentes tipos de zero-knowledge proofs, un validity proof, como un SNARK o un STARK, se usa para demostrar la validez de transacciones realizadas off-chain. Esta es la base de un zero-knowledge rollup.

En un ZK-rollup, se produce un validity proof para cada lote usando los datos de las transacciones como entrada. Este validity proof se envía junto con el lote a Ethereum Mainnet y es verificado por un contrato on-chain. Esto significa que las transacciones pueden declararse válidas de inmediato, sin esperar una impugnación (como en los optimistic rollups).

Otra diferencia entre los fraud proofs y los ZK proofs es que estos últimos son algo más fáciles de verificar on-chain. Todo lo que el contrato inteligente necesita hacer es ejecutar el validity proof para determinar la validez de las transacciones agrupadas. Con un fraud proof, toda la state transition debe reproducirse antes de completar el cómputo del fraud proof.

¿Cuáles son las diferencias entre optimistic rollups y zk rollups?

La principal diferencia entre los optimistic rollups y los ZK rollups proviene del soporte de los primeros para contratos inteligentes, los retiros diferidos, la dependencia de incentivos cripto-económicos y las propiedades de seguridad.

Aquí hay una comparación detallada entre optimistic rollups y ZK rollups:

Features
Optimistic Rollups
ZK Rollups
Proof
Usa fraud proofs para demostrar la validez de las transacciones.
Usa validity (zero-knowledge) proofs para demostrar la validez de las transacciones.
Capital Efficieny
Requiere esperar una demora de 1 semana (dispute period) antes de retirar los fondos.
Los usuarios pueden retirar fondos de inmediato porque los validity proofs proveen evidencia incontrovertible de la autenticidad de las transacciones off-chain.
Data Compression
Publica los datos completos de las transacciones como calldata en Ethereum Mainnet, lo que incrementa los costos del rollup.
No necesita publicar los datos de las transacciones en Ethereum porque los ZK-SNARKs y ZK-STARKs ya garantizan la exactitud del estado del rollup.
EVM Compatibility
Usa una simulación de la Ethereum Virtual Machine (EVM), lo que le permite ejecutar lógica arbitraria y soportar contratos inteligentes.
No soporta ampliamente el cómputo de la EVM, aunque han aparecido algunos ZK-rollups compatibles con la EVM.
Rollup Costs
Reduce costos, ya que publica un mínimo de datos en Ethereum y no tiene que enviar pruebas de las transacciones, salvo en circunstancias especiales.
Enfrenta mayores costos generales debido a los costos involucrados en generar y verificar pruebas para cada bloque de transacciones. Los ZK proofs requieren hardware especializado y costoso para crearse, y tienen altos costos de verificación on-chain.
Trust Assumptions
No requiere un trusted setup.
Requiere un trusted setup para funcionar.
Liveness Requirements
Se necesitan verifiers para vigilar el estado real del rollup y el referenciado en el state root, con el fin de detectar fraude.
Los usuarios no necesitan que alguien vigile la cadena L2 para detectar fraude.
Security Properties
Depende de incentivos cripto-económicos para garantizar a los usuarios la seguridad del rollup.
Depende de garantías criptográficas para la seguridad.

¿Cuáles son las principales blockchains de optimistic rollup?

Las principales blockchains de optimistic rollup son Arbitrum, Optimism, Metis Andromeda y Boba Network en términos de Total Value Locked (TVL). A continuación, un resumen de los distintos optimistic rollups (ORUs):

1. Arbitrum

Arbitrum es un proyecto de optimistic rollup diseñado para mejorar los costos de los usuarios y la velocidad de las transacciones de Ethereum, moviendo el cómputo y el almacenamiento de datos fuera de la cadena. La Arbitrum Virtual Machine (AVM) soporta contratos inteligentes compatibles con la EVM, lo que permite a los usuarios usar sus aplicaciones favoritas por una fracción de los costos de Ethereum.

2. Optimism

Optimism es una cadena de optimistic rollup compatible con la EVM que aprovecha las garantías de seguridad de Ethereum. Optimism usa una construcción de optimistic rollup (OR) para agrupar miles de transacciones off-chain y ahorrarles comisiones de gas a los usuarios.

3. Metis andromeda

Metis Andromeda es un protocolo L2 escalable, de bajo costo y funcional basado en optimistic rollups. El stack único de Metis Andromeda puede aplicarse a distintos casos de uso, incluyendo apps, DAOs y DeFi.

4. Boba network

Boba Network es un L2 de Ethereum que escala el throughput con diseños de optimistic rollup. Boba Network ofrece un servicio de Liquidity Provider (LP) que permite a los usuarios retirar fondos de inmediato sin esperar a que transcurra un período de impugnación de siete días.

¿Qué blockchains o proyectos optimistic tienen tokens?

Los siguientes proyectos de optimistic rollup tienen tokens:

  • Optimism (OP)
  • Boba Network (BOBA)
  • Metis Andromeda (METIS)

Herramientas de optimistic rollup

Los optimistic rollups son soluciones útiles para escalar apps e interactuar con contratos inteligentes de manera más económica y eficiente. Pero antes, necesitarás varias herramientas para usar los optimistic rollups de forma fácil y segura.

A continuación, varias herramientas de optimistic rollup para desarrolladores y usuarios finales:

Puentes cross-chain hacia blockchains optimistic de layer 2

Si bien los optimistic rollups están construidos sobre la capa base de Ethereum, los activos en ambas cadenas no son compatibles de forma nativa. Sin embargo, puedes transferir fondos desde una cadena L1, como Ethereum, hacia un optimistic rollup usando puentes cross-chain:

A continuación, ejemplos de puentes que conectan cadenas L1 y distintos rollups L2:

Puentes hacia y desde Arbitrum

  • Arbitrum Token Bridge
  • cBridge
  • Hop Protocol
  • Synapse Protocol
  • Anyway Bridge
  • DeGate Bridge

Puentes hacia y desde Optimism

  • Connext
  • Celer Bridge
  • Li.Fi
  • Optimism Bridge
  • Poly Network
  • Via Protocol
  • Synapse Protocol
  • Across

Puentes hacia y desde metis andromeda

  • Metis Bridge
  • cBridge
  • AnySwap
  • Synapse Protocol

Puentes hacia y desde boba network

  • Across
  • Boba Standard Token Bridge/Fast Token Bridge
  • cBridge
  • Synapse Protocol

Testnets de optimistic rollup

Un testnet es una red blockchain pública que simula el comportamiento de una red principal asociada (Mainnet). Los testnets no usan fondos reales, a diferencia de una blockchain real, lo que permite a los desarrolladores desplegar y probar contratos inteligentes con un riesgo mínimo.

Optimism y Arbitrum hacen pruebas contra el testnet actual de Ethereum, Sepolia. Testnets de rollup más antiguos en Kovan y Rinkeby han quedado obsoletos.

Conclusión

Los optimistic rollups son una parte importante de los esfuerzos por escalar Ethereum usando una arquitectura de layer 2. Los optimistic rollups se apoyan en la seguridad y descentralización de Ethereum, a la vez que ofrecen comisiones más baratas y transacciones más rápidas.

Alchemy soporta dos proyectos líderes basados en optimistic rollups, Arbitrum y Optimism. Regístrate gratis hoy y descubre cómo puedes escalar tu dApp con optimistic rollups basados en Ethereum.

Preguntas frecuentes

¿Qué son los optimistic rollups?

Los optimistic rollups son soluciones de escalabilidad de layer 2 que mejoran el throughput y la latencia de Ethereum al mover el cómputo y el almacenamiento de datos fuera de la cadena, asumiendo que todas las transacciones son válidas a menos que se impugnen.

¿Cómo se depositan fondos en un optimistic rollup?

Los usuarios depositan fondos en contratos inteligentes desplegados en Ethereum, y un sequencer les acredita cantidades equivalentes en el rollup después de recibir prueba del depósito.

¿Qué es el challenge period en los optimistic rollups?

El challenge period es un intervalo de 1 a 2 semanas después de enviar una solicitud de retiro, durante el cual cualquiera puede publicar un fraud proof para impugnar transacciones inválidas antes de que se puedan retirar los fondos.

¿Qué papel cumple el sequencer?

El sequencer ordena y ejecuta las transacciones, comprime los datos de las transacciones en bloques, envía los lotes a Ethereum como transacciones individuales, y acredita a los usuarios con fondos después de los depósitos.

¿En qué se diferencian los optimistic rollups de los ZK rollups?

Los optimistic rollups asumen que las transacciones son válidas y solo usan fraud proofs cuando se impugnan, mientras que los ZK rollups usan validity proofs para cada lote y permiten retiros inmediatos sin períodos de espera.

¿Qué es un fraud proof?

Un fraud proof es una afirmación de que una state transition es inválida, que se activa cuando un verifier detecta una discrepancia entre el estado del rollup y presenta evidencia para revertir el lote fraudulento.

¿Por qué los optimistic rollups tienen demoras en los retiros?

La demora de retiro de 1 a 2 semanas da tiempo a los verifiers para detectar e impugnar cualquier transacción fraudulenta antes de que se liberen los fondos del contrato del rollup.

¿Cuáles son las principales blockchains de optimistic rollup?

Las principales blockchains de optimistic rollup por Total Value Locked son Arbitrum, Optimism, Metis Andromeda y Boba Network.

Background gradient

Construye magia blockchain

Alchemy combina los productos y herramientas de desarrollo Web3 más potentes con recursos, comunidad y un soporte legendario.