Escrito por: Filippo Armani
Compilado por: Shenchao TechFlow
Los ZK Rollups, también conocidos como Validity Rollups, son una forma revolucionaria de escalar Ethereum que permite que las transacciones se procesen fuera de la cadena y se fusionen como una única transacción comprimida en la cadena principal. Este proceso aumenta el rendimiento de las transacciones y reduce las tarifas al tiempo que mantiene la seguridad y la descentralización de la cadena principal.
Una de las características distintivas de ZK Rollups es que utilizan pruebas de conocimiento cero (ZKP), un tipo de prueba criptográfica que permite a una parte (el probador) demostrarle a otra parte (el verificador) que una declaración es correcta sin revelando cualquier información adicional. En el contexto de ZK Rollups, ZKP garantiza la integridad de las transacciones fuera de la cadena, lo que permite a los probadores demostrar la validez de los lotes de transacciones sin revelar los detalles específicos de las transacciones ni exigir que los validadores verifiquen todas las transacciones antes de aceptar un nuevo estado.
Los ZK Rollups ofrecen un mayor nivel de seguridad que los Optimistic Rollups porque no introducen suposiciones de confianza adicionales además de Ethereum y dependen de Ethereum y las matemáticas para su seguridad. Los rollups optimistas se basan en la teoría de juegos y el supuesto de nodo honesto 1/n, lo que significa que para cada lote de transacciones, siempre hay al menos un nodo honesto que puede cuestionar una transacción maliciosa.
Por otro lado, los operadores de ZK Rollups, también conocidos como secuenciadores y probadores, no tienen ninguna posibilidad de comprometer los fondos de los usuarios, ya que su función es "meramente" recopilar lotes de transacciones y generar pruebas ZK, mientras que los fondos de los usuarios permanecen En Ethereum L1, Ethereum es el responsable final de verificar la prueba ZK enviada por L2 y completar la transacción subyacente. Las pruebas de validez se generan realizando cálculos polinomiales complejos en los datos estatales. Si los datos estatales no son válidos, no se puede generar una prueba de validez. El verificador en L1 ingresará datos de estado para verificar la prueba de validez, por lo que si el probador cambia los datos de estado, el verificador no aceptará la prueba.
Los ZK Rollups también tienen dos ventajas sobre los Optimistic Rollups. En primer lugar, hacen que la finalidad sea más rápida porque las transacciones se confirman en Ethereum tan pronto como se proporciona la prueba de validez, mientras que los Optimistic Rollups requieren esperar una semana para garantizar que no haya desafíos antes de que la transacción se considere legal y definitiva; En segundo lugar, en relación con la disponibilidad de datos, los ZK Rollups son más eficientes ya que solo es necesario publicar las diferencias de estado, ya que no es necesario reconstruir todas las transacciones para su verificación; por el contrario, los Optimistic Rollups requieren que se publiquen los datos completos para que cualquiera pueda reconstruir las transacciones. y eventualmente desafiarlos.
Como resultado, los ZK Rollups utilizan mucho menos ancho de banda de datos en Ethereum (un recurso escaso que todos los Rollups deben compartir, independientemente del sistema que utilicen para ejecutar transacciones, incluidos los circuitos ZK), lo que permite a los usuarios obtener tarifas aún más económicas (o incluso cero comisiones).
Los Zk-rollups se consideran la solución definitiva para la escalabilidad de Ethereum, pero dado que la máquina virtual Ethereum (EVM) no está diseñada para admitir circuitos ZK, implementarlos es difícil. Para resolver este problema, muchas organizaciones e investigadores han intentado crear una máquina virtual habilitada para Rollup llamada zkEVM que puede ejecutar contratos inteligentes de una manera compatible con la computación a prueba de conocimiento cero.
El análisis más completo de estos diferentes intentos se puede encontrar en la publicación del blog de Vitalik, donde describe cuatro tipos de zkEVM basados en la compatibilidad con Ethereum. Cabe señalar que cuanto más cerca esté zkEVM de la funcionalidad de Ethereum, más lento y costoso será generar pruebas de Zk. Por otro lado, si una cadena de bloques o Rollup cumple mejor con las especificaciones y estándares de Ethereum, será más fácil para los desarrolladores crear aplicaciones en ella e integrarse en el ecosistema de Ethereum. En resumen, una cadena de bloques que sea altamente compatible con Ethereum puede tener una ventaja competitiva.
Categoría 1: acumulaciones de ZK que son completamente equivalentes a Ethereum, replicando Ethereum exactamente en todas las partes, incluido el hash, el árbol de estado, el árbol de transacciones, la precompilación o cualquier otra lógica de consenso. Hasta el momento, ningún zkEVM ha alcanzado la equivalencia con Ethereum.
Categoría 2: los paquetes acumulativos de Zk que son completamente equivalentes a EVM se esfuerzan por ser equivalentes a EVM, pero no son completamente equivalentes a Ethereum. Son totalmente compatibles con las aplicaciones existentes, pero tienen algunas modificaciones menores en Ethereum para facilitar el desarrollo y generar pruebas más rápido. En teoría, Scroll y zkEVM Polygon pertenecen a esta categoría; en la práctica, actualmente pertenecen al tercer grupo.
Categoría 3: Casi equivalente a EVM, sacrificando más elementos y equivalencia para agilizar la generación de pruebas. Polygon zkEVM y Scroll actualmente entran en esta categoría. Esta categoría suele ser un trampolín hacia la segunda categoría.
Categoría 4: equivalencia de lenguaje de alto nivel, lo que significa que ambos aceptan contratos inteligentes escritos en Solidity y luego los convierten a otro lenguaje personalizado listo para ZK. zkSync y StarkNet entran en esta categoría, aunque zkSync puede agregar compatibilidad con el código de bytes EVM con el tiempo y eventualmente pasar a tipos superiores.
Aunque la clasificación propuesta por Vitalik es actualmente la más popular e imparcial, existen otros métodos de clasificación. Immutable, una L2 basada en StarkWare específicamente para NFT, proporcionó la siguiente categorización útil en una de sus publicaciones de blog:

Estas categorías, en comparación con la clasificación de Vitalik, se basan más claramente en que zkEVM existente alcance su compatibilidad o equivalencia con Ethereum en un nivel específico de la pila (lenguaje de alto nivel, código de bytes o entorno de ejecución).
Compatible con solidez. La compatibilidad con Ethereum se implementa en el nivel de lenguaje de alto nivel Solidity, lo que significa que los desarrolladores pueden continuar escribiendo contratos inteligentes en el lenguaje que están acostumbrados a usar en Ethereum. Sin embargo, estos Rollups convierten inmediatamente Solidity en su representación intermedia, que luego se compila en su código de bytes y se ejecuta en su entorno personalizado. Específicamente, estos L2 utilizan transpiladores para convertir el código Solidity en código legible para máquinas virtuales personalizadas (Cairo para StarkWare, LLVM-IR para zkSync). Estos transpiladores no admiten ciertas funciones de Solidity, por lo que es posible que los desarrolladores deban ajustar sus contratos inteligentes. Por ejemplo: zkSync y StarkNet.
Compatible con EVM. Desde el punto de vista del lenguaje, estos Rollups son compatibles con EVM, pero tienen su propio código de bytes, lo que significa que Solidity se puede compilar directamente en códigos de operación/código de bytes de EVM y luego convertirlos en palabras personalizadas antes del código de sección de tiempo de ejecución de VM personalizado. De hecho, estos Rollups son compatibles con la mayoría de los programas de Ethereum, pero es posible que sea necesario reescribir algunas aplicaciones. Además, algunas funciones de código de bytes (como la precompilación) no son compatibles. Por ejemplo: Polígono zkEVM.
Equivalente a EVM. Estos paquetes acumulativos crean un circuito de verificación zk que puede leer códigos de operación y códigos de bytes de EVM directamente, aunque la VM en sí es diferente de la EVM. Estos paquetes acumulativos son totalmente compatibles con las aplicaciones existentes, pero se pueden realizar algunas modificaciones menores en Ethereum para facilitar el desarrollo y acelerar la generación de pruebas. Por ejemplo: desplazarse.
Equivalente a Ethereum. Esto significa replicar Ethereum en todos sus componentes, de manera similar a como lo hizo Polygon. Hasta el momento, ningún zk Rollup entra en esta categoría.
Combinando este marco con el propuesto por Immutable y agregando información adicional, se puede resumir el siguiente cuadro, destacando algunas de las diferencias y similitudes de diseño a considerar al comparar diferentes implementaciones de zkEVM antes de que los datos de rendimiento estén disponibles:

zkSync 2.0 (recién rebautizado como zkSync Era antes del lanzamiento de la red principal) es una solución de escalamiento para la red Ethereum que es totalmente compatible con el lenguaje de programación Solidity. Con zkSync, los usuarios pueden elegir entre dos tipos de disponibilidad de datos: zkSync Rollup y zkSync Porter. El primero publica datos directamente en Ethereum, lo que lo hace tan seguro como Ethereum L1, mientras que el segundo almacena datos fuera de la cadena, lo que resulta en transacciones más rápidas y económicas, pero con un menor nivel de seguridad.
zkSync es compatible con EVM porque puede convertir código de contrato inteligente escrito en Solidity a Yul, convertir Yul a LLVM-IR y luego recompilarlo en un byte personalizado compatible con circuitos diseñado específicamente para usar con el conjunto de códigos EVM de zkSync. Si bien esto requiere un paso intermedio, también permite agregar otras funciones que no son de EVM, como la abstracción de cuentas. Además, la empresa de zkSync, Matter Labs, planea hacerlo gradualmente más compatible con el kit de herramientas Ethereum y se está preparando para lanzar su primer prototipo de tres capas, zkSync Opportunity, en el área de escalabilidad e interoperabilidad, como parte de sus ambiciones de Prueba de lanzamiento en línea.
En el momento de escribir este artículo, zkSync Era acaba de lanzarse, por lo que es demasiado pronto para comentar sobre su rendimiento. zkSync 1.0 (ahora llamado zkSync Lite), que solo admite transacciones simples, es uno de los paquetes acumulativos de zk más grandes. Según las estadísticas de TVL, se han bloqueado más de 83 millones de dólares estadounidenses y el volumen de transacciones acumuladas ha superado los 19 millones, mientras que TVL de StarkNet. Solo supera los 19 millones de dólares estadounidenses, el volumen acumulado de transacciones es de 4 millones.
StarkNet es un zk-rollup compatible con Tipo 4/Solidity que emplea un tipo diferente de pruebas de conocimiento cero llamadas STARK (ARgumento de conocimiento transparente escalable) para garantizar la integridad de las transacciones fuera de la cadena. Los STARK se consideran más eficientes y escalables que los SNARK, pero pueden requerir una configuración técnica más compleja.
Aunque StarkNet también admite contratos inteligentes, sus capacidades son relativamente pequeñas debido al uso de STARK y al hecho de que los contratos de StarkNet y el sistema operativo StarkNet están escritos en el idioma de El Cairo. Para facilitar el desarrollo, StarkWare actualizó recientemente a Cairo 1.0, que emula Rust. Al igual que zkSync Era, StarkNet se puede clasificar como "Solidity Compatible" porque no ejecuta programas dentro del EVM, sino que crea una VM completamente nueva y diseñada específicamente y utiliza un código de bytes personalizado. StarkWare utiliza el traductor Warp para convertir el código Solidity en código de bytes de Cairo VM.
Sin embargo, a diferencia de zkSync Era y otras implementaciones de zkEVM, el equipo de StarkNet no pretende ser compatible con EVM u otros componentes de Ethereum, sino que pretende hacer que la VM de StarkNet sea lo más eficiente posible mediante la implementación de su API de cliente personalizada, biblioteca JavaScript, y sistema de billetera, que obligará a las herramientas compatibles con Ethereum a agregar manualmente soporte StarkNet. Aunque Cairo 1.0 también presenta Sierra (Secure Intermediate Representation) como una nueva capa de representación intermedia entre Cairo 1.0 y el código de bytes de Cairo, el traductor Warp no admite algunas características de Solidity y está lejos de igualar la compatibilidad EVM de zkSync Era. Un largo camino por recorrer .
Polygon zkEVM es un zk-rollup que utiliza un lenguaje personalizado, zkASM, para interpretar el código zkEVM y verificar la ejecución de contratos inteligentes en un entorno de ejecución que no sea EVM. El proyecto comenzó en 2021 con la adquisición de Hermez Network por 250 millones de dólares para desarrollar un sistema equivalente a EVM que combine la seguridad y eficiencia de STARK y SNARK. Mientras que STARK se utiliza para generar pruebas de validez para estados de transacciones, los SNARK se utilizan para evaluar la exactitud de las pruebas STARK. La combinación de estas soluciones permite seguridad, velocidad y tarifas de transacción bajas.
En julio de 2022, Polygon anunció que Polygon Hermez pasaría a llamarse Polygon zkEVM, que acababa de lanzarse en el momento de escribir este artículo. La última versión de testnet de Polygon zkEVM introduce una funcionalidad recursiva, lo que permite utilizar una prueba de validez ZK para verificar lotes de otras pruebas ZK, donde cada prueba puede verificar múltiples transacciones. Esta funcionalidad está habilitada por Plonky2, un SNARK recursivo que es 100 veces más rápido que las alternativas existentes y compatible de forma nativa con el propio Ethereum.
Además de Polygon zkEVM, Polygon también desarrolló Polygon Avail, una cadena de bloques optimizada solo para la disponibilidad de datos. La red no tendrá permisos, lo que permitirá que cualquiera se una como validador y, a diferencia de los DAC (Comités de disponibilidad de datos) existentes, tendrá cientos de nodos colaborando para proporcionar seguridad de la red. Avail funcionará en conjunto con Polygon Hermez (Rollup), cargando datos de estado desde Hermez en lugar de publicarlos en Ethereum, brindando una solución entre Validium y Rollup.
Si bien algunos expertos señalan que las especificaciones proporcionadas por Polygon se describen mejor como compatibilidad con EVM, el equipo está trabajando arduamente para crear la primera solución totalmente equivalente a EVM.
Scroll es el zk-rollup equivalente a EVM desarrollado por el equipo de Scroll en cooperación con el grupo PSE (Privacy and Scaling Explorations) de la Fundación Ethereum. Actualmente se encuentra en la etapa de prueba Pre-Alpha y tiene como objetivo competir con Ethereum Virtual a nivel de código de bytes. Totalmente compatible con EVM. Esto significa que los desarrolladores pueden crear contratos inteligentes utilizando cualquier lenguaje compatible con EVM e implementarlos en Scroll. Aunque Scroll actualmente no admite códigos de operación EVM, hay planes para hacerlo creando un mapeo de códigos de operación 1:1 y aceptando códigos de operación EVM directamente sin un compilador.
La arquitectura de Scroll incluye un nodo de serialización centralizado y una red de certificación descentralizada. El nodo de serialización centralizado es responsable de ordenar transacciones, crear bloques y enviar datos de transacciones como datos de llamada al contrato acumulativo en Ethereum para la disponibilidad de datos. Scroll planea descentralizar gradualmente los nodos de serialización. Por otro lado, un generador de pruebas descentralizado llamado Roller genera pruebas y las publica en la red L1, aprovechando la potencia informática distribuida. Los rodillos se seleccionan aleatoriamente y se pueden generar múltiples pruebas de diferentes bloques en paralelo en diferentes rodillos para aumentar la velocidad.
*Si bien actualmente solo admite la disponibilidad de datos en cadena, el diseño original de Scroll también incluía el modo Validium.
De hecho, tanto Scroll como Polygon adoptan un enfoque a nivel de código de bytes para construir sus zkEVM. Este enfoque elimina por completo el paso de traducción, lo que significa que estos zkEVM no convierten el código de Solidity a otros idiomas antes de compilarlo e interpretarlo. Sin embargo, si bien la única diferencia entre Scroll y Ethereum es el entorno de ejecución, Polygon crea una VM personalizada, la optimiza y luego convierte el código de bytes de EVM en código de bytes para esa VM. A diferencia de Scroll, el tiempo de ejecución de Polygon ("zkExecutor") ejecuta códigos de operación "zkASM" personalizados (microcódigos de operación en el diagrama) en lugar de códigos de operación EVM para optimizar la interpretación de EVM (es decir, reducir la cantidad de restricciones en lugar de probar directamente EVM). Es posible que Polygon zkEVM no sea 100% compatible con el código, las herramientas y las aplicaciones de Solidity, aunque la mayoría lo son.
Si bien estos son los proyectos más visibles centrados en implementar una implementación zkEVM de propósito general, otros proyectos de aplicaciones específicas también utilizan la tecnología zk en la práctica.
Looping es un zk-rollup específico de la aplicación que se utiliza para admitir protocolos de intercambio descentralizado (DEX). Loopring también es una plataforma que permite a cualquiera crear dex utilizando pruebas zk. Immutable X es otro zk-rollup específico de una aplicación creado en StarkWare para el comercio y los juegos de NFT. Aztec es un zk-rollup basado en Ethereum centrado en la privacidad que cifra datos para mantener la transparencia y la disponibilidad de los datos para el protocolo mientras protege la privacidad del usuario. Además, Aztec inventó el sistema de prueba PLONK, que también utiliza zkSync y otros proyectos.
Immutable X, Sorare, rhino.fi, ApeX, dYdX y muchos otros protocolos se basan en StarkEx. En proyectos que utilizan StarkEx ZK-Rollup, los datos se envían a Ethereum como datos de llamada y se publican en la cadena. En el modo Validium, los datos se almacenan fuera de la cadena y solo los hashes se almacenan dentro de la cadena. Mientras que el modo Rollup garantiza una mayor seguridad (los usuarios simplemente interactúan con la cadena de bloques Ethereum para recrear el estado del libro mayor), el modo Validium garantiza menores costos y mayor privacidad.
En general, si bien zkSync Lite es el paquete acumulativo de zk más grande, StarkWare tiene el ecosistema más grande que incluye proyectos creados en StarkEx, y también tiene el TVL y la participación de mercado más grandes.

Resumir
En resumen, zk-rollup es una solución prometedora para escalar redes blockchain, con varias implementaciones disponibles para satisfacer diferentes necesidades y requisitos. Si bien existen algunas clasificaciones, vale la pena señalar que son interpretaciones aproximadas y carecen de consenso sobre definiciones y diferencias técnicas. Como admite el cofundador de Scroll, Sandy Peng: “No existe un consenso claro sobre ninguna definición de que “todo el equipo de investigación de Scroll” se incline hacia una determinada narrativa o una determinada visión, pero no es algo claro. Nuestro equipo de investigación ni siquiera se pone de acuerdo sobre lo que significa todo. "
No obstante, surgen algunas tendencias comunes entre las implementaciones de zk rollup. En primer lugar, todos parecen estar adoptando un enfoque híbrido para la disponibilidad de datos, ofreciendo una versión acumulada del almacenamiento de datos tradicional en cadena y una versión validium del almacenamiento de datos fuera de la cadena. "En mi opinión, encontrará que cada paquete acumulativo tendrá una versión acumulada y una versión validium", dijo a Blockworks el director ejecutivo de Avail, Anurag Arjun.
En segundo lugar, en su mayoría evitan el uso de código fuente abierto puro hasta que realmente están en ejecución, lo que también está relacionado con la dura competencia de paquetes acumulativos optimistas como Arbitrum y Optimism. Los Zk-rollups prometen ser más eficientes, pero técnicamente son más difíciles de implementar. Además, como se desprende claramente de la tabla anterior, los rollups optimistas, especialmente Arbitrum, se están beneficiando de la ventaja de ser los primeros en actuar y liderando el mercado en términos de aplicaciones, volumen de transacciones y participación de mercado. Si tienen éxito, los paquetes acumulativos optimistas podrían integrar modelos de prueba de validez con sus bases de usuarios ya establecidas (por ejemplo, la actualización de Optimism a Bedrock podría introducir prueba de validez).
Además, si bien todas las implementaciones comenzaron con un secuenciador centralizado para mejorar la eficiencia, todas trabajaron hacia una descentralización progresiva para abordar los problemas de centralización. Curiosamente, los ordenantes descentralizados pueden requerir incentivos económicos en un token nativo, por lo que todos los proyectos mencionados deberían dar este paso.
Finalmente, los sorprendentes resultados logrados por estas implementaciones de zkEVM durante el año pasado han generado una nueva ola de interés en la tecnología zk en general, con empresas centrándose en varios aspectos del desarrollo, incluido el desarrollo de nuevo hardware zk para aumentar las velocidades de generación de pruebas.
Si bien todavía quedan algunos desafíos por abordar, el progreso logrado en el diseño de zkEVM en poco más de un año es digno de mención, y 2023 podría ser un año decisivo para esta tecnología.
Enlace original
