Introducción a la Arquitectura de Scroll

Introducción

Scroll es una solución de escalabilidad Layer 2 para Ethereum que utiliza la tecnología ZK. Funciona como un zkRollup equivalente a la EVM, permitiendo transacciones más rápidas y eficientes mientras mantiene la seguridad de la blockchain de Ethereum.

La pieza central de Scroll es la zkEVM, que se encarga de probar la corrección de la ejecución de EVM en la Layer 2. Este proyecto se ha estado construyendo abiertamente durante casi 2 años en colaboración con el grupo Privacy and Scaling Explorations de la Fundación Ethereum.

Sin embargo, para convertir zkEVM en un zkRollup completo en Ethereum, se necesita construir una arquitectura L2 completa alrededor de él. Este proceso ha requerido una gran cantidad de trabajo y esfuerzo por parte del equipo de desarrollo de Scroll.


Arquitectura de Scroll

En esencia la arquitectura de Scroll está compuesta de 3 piezas fundamentales.

Scroll Node: Construye los bloques L2 a partir de transacciones de usuarios, los consigna en la Layer base de Ethereum y pasa mensajes entre L1 y L2.

Roller Network: Genera las validity proofs (o pruebas de validez) de la zkEVM para demostrar que las transacciones se ejecutan correctamente.

Rollup and Bridge Contracts: Proporciona Data Availability (o disponibilidad de datos) para las transacciones de Scroll, verifica las pruebas de validez de zkEVM y permite a los usuarios mover activos entre Ethereum y Scroll.

Scroll Node

El Scroll Node es el componente principal para que aplicaciones y usuarios interactúen con Scroll. Este nodo esta conformado por tres módulos: Secuenciador, Coordinador y Relayer.

El Sequencer (o Secuenciador) se encarga de proporcionar una interfaz JSON-RPC para recibir transacciones L2. Cada pocos segundos, este módulo recupera un grupo de transacciones del mempool L2, luego las ejecuta para generar un nuevo bloque L2 y una nueva state root. Para lograr esto, se hizo un fork de Go-Ethereum (Geth), una de las implementaciones de nodos Ethereum más populares, lo que permite heredar la seguridad y compatibilidad de Ethereum.

Cuando se genera un nuevo bloque, el Coordinator (o Coordinador) es notificado y recibe un execution trace asociado al nuevo bloque desde el Secuenciador. A continuación, envía este execution trace a un Roller seleccionado aleatoriamente del Roller Network para la generación de pruebas de validez.

Por último, el Relayer se encarga de vigilar los contratos del Bridge y el Rollup desplegados tanto en Ethereum como en Scroll. Sus responsabilidades principales son supervisar el contrato rollup para hacer un seguimiento del estado de los bloques L2, incluyendo su disponibilidad de datos y prueba de validez, así como vigilar los eventos de depósito y retirada de los contratos del bridge desplegados tanto en Ethereum como en Scroll, y retransmitir los mensajes de un lado a otro.

Roller Network

La Roller Network es la responsable de generar las pruebas de validez para el zkRollup de Scroll. Los Roller actúan como provers y se espera que utilicen aceleradores como GPUs, FPGAs y ASICs para reducir el tiempo y el costo de las pruebas. El proceso consta de los siguientes pasos:

  1. El Roller convierte el execution trace recibida del Coordinador en testigos (Witness) de circuito.

  2. Se generan pruebas de validez para cada circuito zkEVM.

  3. Las pruebas de validez de varios circuitos zkEVM se agregan para formar una única prueba de validez del bloque.

Contratos del Rollup y el Bridge

Scroll se conecta a la base Layer de Ethereum mediante el uso de los smart contracts asociados al Rollup y el Bridge. Estos contratos trabajan en conjunto para garantizar la Data Availability en las transacciones L2, al mismo tiempo que permiten a los usuarios transferir activos y mensajes entre L1 y L2.

El contrato Rollup recibe bloques L2 y las state roots del Sequencer. Las state roots se almacenan en el state de Ethereum, mientras que los datos de bloque L2 se guardan como calldata de Ethereum. Esto proporciona disponibilidad de datos para los bloques Scroll y aprovecha la seguridad de Ethereum para garantizar que los indexers, incluido el Scroll Relayer, puedan reconstruir los bloques L2. Una vez que se ha verificado la validez de un bloque L2 a través de una prueba, este se considera finalizado en Scroll.

Por otro lado, los contratos Bridge en Ethereum y Scroll permiten a los usuarios enviar mensajes arbitrarios entre L1 y L2. Además, se ha creado un protocolo bridge Trustless para transferir activos ERC-20 en ambas direcciones. Para enviar un mensaje o fondos de Ethereum a Scroll, los usuarios deben llamar a una transacción sendMessage en el contrato Bridge. El Relayer indexará esta transacción en L1 y la enviará al Sequencer para que se incluya en un bloque L2. El envío de mensajes desde Scroll a Ethereum se realiza de manera similar a través del contrato Bridge L2.


¿Cómo funciona la zkEVM de Scroll?

Luego de todo lo explicado el diagrama de operación de la zkEVM de Scroll funciona siguiendo la secuencia de pasos presentada a continuación:

Paso 1:

El Secuenciador genera una secuencia de bloques. Para el bloque i, el Secuenciador genera una execution trace T y la envía al Coordinador. Mientras tanto, también envía los datos de transacción D como calldata al contrato Rollup en Ethereum para la disponibilidad de datos, las state roots resultantes y los compromisos con los datos de transacción al contrato Rollup como estado.

Paso 2:

El Coordinador selecciona aleatoriamente un Roller para generar una prueba de validez para cada execution trace T de bloque. Para acelerar el proceso de generación de pruebas, las pruebas para diferentes bloques se pueden generar en paralelo en diferentes Rollers.

Paso 3:

Después de generar la prueba de bloque P para el bloque i, el Roller la envía de vuelta al Coordinador. Cada k bloques, el Coordinador despacha todas las pruebas recolectadas a otro Roller aleatorio, el cual agrupa las k pruebas de bloque en una sola prueba agregada A y la envia de vuelta al Coordinador.

Paso 4:

Finalmente, el Coordinador envía la prueba agregada A al contrato Rollup para finalizar los bloques L2 i+1 a i+k verificando la prueba agregada A frente a las state roots y compromisos de datos de transacción previamente enviados al contrato Rollup.

En las imágenes se ilustra que los bloques de Scroll se finalizarán en L1 en un proceso de múltiples pasos. Cada bloque L2 avanzará a través de las siguientes tres etapas hasta que se finalice.

  • Pre-committed indica que un bloque ha sido propuesto por un Secuenciador y enviado a los Rollers. Aunque los bloques Precomprometidos aún no son una parte canónica de la cadena L2 de Scroll porque aún no se han publicado en la capa base de Ethereum, los usuarios que confían en el Secuenciador pueden optar por tomar medidas en anticipación.

  • Committed indica que los datos de transacción de este bloque se han publicado en el contrato Rollup en Ethereum. Esto garantiza que los datos del bloque estén disponibles, pero no prueba que se hayan ejecutado de manera válida.

  • Finalized indica que la ejecución correcta de las transacciones en este bloque se ha demostrado verificando una prueba de validez en la cadena en Ethereum. Los bloques Finalizados se consideran partes canónicas de la cadena L2 de Scroll.

Al poner todo esto junto, Scroll es capaz de ejecutar el bytecode nativo de EVM en L2 mientras hereda fuertes garantías de seguridad de la base layer de Ethereum.


Conclusión

En resumen, Scroll es una solución de escalabilidad Layer 2 para Ethereum que utiliza la tecnología ZK para permitir transacciones más rápidas y eficientes en la red.

La pieza central de Scroll es la zkEVM, que es como un juez de la Layer 2 que se encarga de verificar que todo lo que sucede en la red se está ejecutando de manera correcta, la cual se apoya en una arquitectura criptográfica construida alrededor de la misma.

La arquitectura de Scroll conformada por: el Scroll Node, la Roller Network y los Rollup and Bridge Contracts, que trabajan juntos para garantizar la Data Availability en las transacciones L2, al mismo tiempo que permiten a los usuarios transferir activos y mensajes entre L1 y L2.

El proyecto de Scroll ha sido construido abiertamente durante casi dos años y su potencial es evidente para los amantes de las soluciones Layer 2. Pero, como siempre, solo el tiempo dirá si la zkEVM de Scroll será un jugador importante en el futuro de la escalabilidad de Ethereum una vez que la mainnet este operativa. Lo que es seguro es que el equipo detrás de Scroll ha estado trabajando duro para hacer que la red sea más eficiente y escalable, y eso es algo que siempre es digno de aplaudir.


🤵Agradecimientos

🎉 ¡Gracias por leer hasta el final! Desde L2 en español queremos darle un especial agradecimiento a Ahmed Castro. Por ayudarnos con el contenido e investigación para la creación de este articulo.

Si está interesado en continuar aprendiendo y colaborando con nosotros, le invitamos a unirse a la vibrante comunidad de Telegram L2 en Español y a seguirnos en nuestro Twitter L2 en Español. Allí encontrará una gran cantidad de información sobre Layer 2 y el ecosistema de Blockchain en general. ¡Te Esperamos!

Subscribe to L2 en Español
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.