WEB3DEV Español

Cover image for Escalando Ethereum utilizando Rollups de Capa 2
Juliana Cabeza
Juliana Cabeza

Posted on

Escalando Ethereum utilizando Rollups de Capa 2

10 de febrero de 2023

Por Sumi Maria Abraham, ingeniera de investigación y desarrollo de Kerala Blockchain Academy.

En los últimos años, hemos sido testigos de un aumento exponencial en la demanda de transacciones en Ethereum, lo que ha llevado a un aumento vertiginoso en los precios del gas (aumento de las tarifas de transacción). Los rollups ofrecen una solución para realizar transacciones protegidas por blockchain a un costo más bajo. La idea básica se asemeja fuertemente al concepto de "cadenas sombra"(shadow chains) propuesto por Vitalik Buterin en 2014.

¿Qué es un Rollup?

Rollup es una solución de escalado de capa 2 (L2) que amplía el concepto de sidechains. Ayudan a reducir la carga de Ethereum al realizar ejecuciones de transacciones en la capa 2 (fuera de la cadena). A diferencia del ejemplo de sidechain que discutimos, los rollups guardan ciertos datos correspondientes a cada transacción en Ethereum. Los rollups agrupan las transacciones en lotes, las ejecutan fuera de la cadena y almacenan algunos datos relacionados con cada transacción en la cadena principal. Vamos a descubrir más sobre los rollups.

Rollup x Sidechain

Las sidechains son blockchains secundarias que ocasionalmente se comunican con la cadena principal (capa 1 - L1). Las sidechains tienen mecanismos y protocolos de consenso independientes; por lo tanto, Ethereum no puede garantizar la seguridad de una sidechain. Dado que un rollup depende de la seguridad de la blockchain de capa 1, funcionará correctamente mientras Ethereum esté activa. Todas las transacciones se almacenan en la blockchain y se ejecutan fuera de la cadena por una entidad central. Los rollups agrupan transacciones en lotes y las compactan. Esto aumenta el rendimiento al reducir el tamaño de cada transacción y eliminar la necesidad de ejecución en la capa 1. La parte de verificación se realiza en la blockchain.

¿Cómo funcionan los rollups?

Veamos un ejemplo.

En la red Ethereum, las transacciones de una cuenta solo pueden ocurrir de forma secuencial. Alice desea transferir algunos tokens a Bob, Carol y David. Ella debe primero realizar la transacción con Bob, esperar la confirmación, luego realizar la transacción con Carol y así sucesivamente. Cuando termine las transacciones, llevará aproximadamente 36 segundos (suponiendo una situación ideal) o más.

Los rollups ofrecen una solución para reducir el tiempo total y el costo total de realizar estas transacciones, eliminando la necesidad de que Ethereum realice la ejecución.

Image description

Para comprender este concepto, revisemos lo que sucede cuando un usuario envía una transacción.

Ethereum mantiene el estado de la blockchain, que se refiere al saldo actual que posee cada cuenta (cuentas de contrato y de usuario), así como los valores actuales asignados a las variables de estado en el contrato. Estos datos se representan utilizando Merkle Patricia Tries, que se almacenan en bases de datos de clave-valor como LevelDB o CouchDB. Una transacción es una solicitud para cambiar el estado. Cuando se procesa la transacción "Alice transfiere 10 ETH a Bob", Ethereum verificará si Alice tiene suficiente saldo para pagar a Bob, debitará el saldo de su cuenta y acreditará la cuenta de Bob. Esto modificará los datos almacenados en el trie, lo que generará una nueva raíz.

Supongamos que tenemos un rollup. El Rollup mantendrá un estado que registra las direcciones y los estados de las cuentas que están siendo gestionadas por él. El estado de un rollup se almacena en la cadena de capa 1 (L1) a través de un contrato inteligente de rollup.

Alice enviará las tres transacciones al rollup. Cada transacción requerirá un cambio de estado.

El rollup procesará las transacciones en un lote (bloque). Esto generará una nueva raíz de estado.

El conjunto compacto de lote de transacciones, la raíz del estado anterior y la raíz del estado actual se enviarán al contrato inteligente.

_El contrato de rollup en la capa 1 verifica si la raíz del estado anterior en el lote coincide con su raíz del estado actual. Si hay coincidencia, actualizará la raíz del estado al nuevo valor.
_

¿Cómo puede Ethereum proteger los rollups sin ejecutar transacciones en la capa 1?

Este es el factor que hace que los rollups sean diferentes de una sidechain. Ethereum garantiza la autenticidad de las actualizaciones de estado. Esta aprobación se representa en forma de prueba. Los rollups demuestran su corrección a Ethereum utilizando pruebas específicas que permiten a Ethereum verificar el procesamiento de las transacciones sin ejecutarlas efectivamente.

¿Cuál es el papel de la prueba?

Los rollups se categorizan según la naturaleza de la prueba.

Los rollups optimistas, como Arbitrum y Optimism, se basan en pruebas de fraude. Siguen una perspectiva optimista y asumen que las transacciones son válidas a menos que alguien las impugne. Publican el estado actualizado en Ethereum sin publicar ninguna prueba. Cualquier persona puede publicar un lote de transacciones. Para impugnarlo, es necesario ejecutar las mismas transacciones y enviar una prueba de cálculo incorrecto, llamada prueba de fraude, al contrato inteligente de rollup. El contrato verificará esto. Si se detecta un cálculo incorrecto, ese lote de transacciones y los lotes subsiguientes serán revertidos. El contrato mantiene un historial de actualizaciones de raíz de estado anteriores y los hashes de lote correspondientes. Un mecanismo de incentivo recompensa a las entidades participantes para que se sientan tentadas a producir reclamaciones correctas y a impugnar reclamaciones incorrectas.

Los ZK Rollups (Rollups de conocimiento cero) envían una prueba de validez junto con cada lote de transacciones. La prueba de validez es una prueba criptográfica que demuestra que la nueva raíz fue calculada correctamente a partir del lote de transacciones enviado. Esta prueba es verificada por el contrato. La prueba ZK (ZK-proof) representa la certeza matemática de que todo lo que se publica en la capa 1 es válido y ocurrió en el rollup. Si la prueba se evalúa como verdadera, la transacción puede considerarse finalizada. StarkWare y Zksync están trabajando en ZK-rollups en Ethereum.

Los rollups optimistas son menos costosos y adecuados para cálculos de uso general. Generalmente, los rollups optimistas son compatibles con la Máquina Virtual Ethereum (EVM, por sus siglas en inglés). Sin embargo, tienen un rendimiento limitado. Aunque el cálculo de la prueba sea técnicamente desafiante y costoso, los ZK-rollups ofrecen una mejor compresión de datos y una finalización más rápida. Esto hace que los ZK-rollups sean adecuados para aplicaciones financieras. La compatibilidad de los zk-rollups con la EVM es un área de investigación activa.

Las pruebas garantizan que incluso si los validadores u operadores del rollup actúan de manera incorrecta, no pueden robar dinero alguno, ya que las garantías de seguridad finales se derivan de Ethereum.

¿Cómo comprime los datos el rollup?

Muchos campos típicos de una transacción de Ethereum pueden omitirse o representarse de manera eficiente en términos de almacenamiento en transacciones de rollup. Por ejemplo, todas las transacciones de Ethereum tienen un valor nonce que se incrementa para cada transacción subsiguiente del remitente. Pero una transacción de rollup no requiere un valor nonce, ya que puede calcularse a partir del estado anterior. Otro ejemplo es la dirección del destinatario. En los rollups, la dirección se sustituye por un valor de índice mucho menor.

Un análisis detallado de la economía de almacenamiento se puede encontrar aquí.

Los rollups intentan reemplazar los datos con cálculos siempre que sea posible. Pueden reducir el tamaño total de una transacción a casi una décima parte de su equivalente en Ethereum.

¿Cómo pueden los rollups reducir los costos?

La agrupación de múltiples transacciones reduce las tarifas generales de transacción al distribuir los costos fijos entre todas las transacciones dentro de un lote determinado. Los operadores de capa 2 también aplican algunas técnicas de compresión para minimizar los datos enviados a Ethereum.

Los rollups transmiten sus raíces de estado de vuelta a Ethereum utilizando calldata para almacenamiento. Calldata es actualmente la forma más económica de almacenamiento en Ethereum.

Resumiendo

Los rollups ejecutan transacciones "fuera de la cadena" de la red principal (L1), agrupan ("rollup") estas transacciones en un solo bloque y luego envían ese bloque a la capa 1 (L1) como una única transacción. En resumen, miles de transacciones pueden procesarse fuera de la cadena y representarse mediante el envío de una única transacción a la red principal. De esta manera, los rollups pueden aumentar significativamente la escalabilidad y el rendimiento de la blockchain de capa 1 subyacente.

Referencias

[1] Cosimo Sguanci, Roberto Spatafora, Andrea Mario Vergani, “Layer 2 Blockchain Scaling: a Survey”.

[2] Gangwal, Ankit & Gangavalli, Haripriya & Thirupathi, Apoorva. (2022). A Survey of Layer-Two Blockchain Protocols.

[3] https://ethereum.org/en/layer-2/

[4]https://vitalik.ca/general/2021/01/05/rollup.html

[5] https://www.preethikasireddy.com/post/a-normies-guide-to-rollups

[6] https://medium.com/blockchain-biz/a-comprehensive-guide-for-those-with-zero-knowledge-on-rollups-79a592fb96a4

Imagen de cortesía: https://www.flaticon.com/

Este artículo fue escrito por Sumi María Abraham y traducido por Juliana Cabeza. Su original se puede leer aquí.

Discussion (0)