Análisis de investigación original de Web3.com Ventures

0xPescadosósofo

Introducción

“zk-Rollups” ha sido probablemente la palabra de moda en la Web 3 del año. Con el lanzamiento de la red principal “baby alpha” v2.0 de zk-Sync en los últimos días, este entusiasmo ha alcanzado su cenit [1]. Pero detrás de todas estas palabras de moda, ¿a qué se refieren realmente los “zk-Rollups”? ¿Y dónde entra en juego zk-Sync? En este artículo, me esforzaré por profundizar en los principios y la práctica de zk-Rollups, explicar las características técnicas clave de zk-Sync v2.0 como proyecto y explorar las posibles implicaciones futuras de esta tecnología tan esperada.

Principios de zk-Rollups

¿Por qué necesitamos zk-Rollups en primer lugar? Claro, Ethereum es genial. Pero en su estado actual, la red es fundamentalmente una deseconomía de escala. A medida que aumenta la actividad de la red, los precios del gas se vuelven prohibitivamente caros, especialmente si hay un aumento repentino de la actividad de la red. A medida que Ethereum gana popularidad en uso y tracción en los últimos años, su escalabilidad limitada actual se ha convertido en el talón de Aquiles de la red.

Aquí es donde entran los "rollups": los rollups de Ethereum son esencialmente un "complemento" que proporciona a Ethereum magnitudes adicionales de escalabilidad y, por lo tanto, soluciona su deseconomía de escala inherente. La intuición detrás de la idea es simple. Imagine que tiene 5 artículos que necesita llevar del punto A al punto B. La forma “normal” de hacerlo sería llevar el Artículo 1, llevar el Artículo 2, etc., uno tras otro. Pero esto es evidentemente lento y engorroso. Un "rollup" es esencialmente "enrollar" los 5 artículos en una sola bolsa, lo que le permite hacer un solo viaje en lugar de 5.

Pero hay dos advertencias:

  1. ¿Cómo nos aseguramos de que el paquete acumulativo pueda “quebrar” todo?

  2. ¿Cómo nos aseguramos de que el resumen no sea falsificado?

Los zk-Rollups son uno de los principales tipos de tecnologías acumulativas (el otro son Optimistic Rollups) que aprovechan las "pruebas de conocimiento cero" para resolver estos dos problemas. Para abordar estos problemas, un zk-Rollup agrupará una cierta cantidad de transacciones, realizará el cálculo en la L2 y enviará tanto los cambios de estado como una "prueba de validez" a un verificador en la L1 que demuestre que los cálculos se realizaron con integridad. . Esta "prueba de validez" se lleva a cabo en forma de "Prueba de conocimiento cero", una forma matemática de decirle a alguien que sabes algo sin decirle lo que sabes.

Un ejemplo sencillo de prueba de conocimiento cero es un autocalificador de código (para tareas de informática). El autocalificador es un "verificador" que le proporciona un montón de casos de prueba generados aleatoriamente, y usted es un "probador" que debe poder pasar todos los casos de prueba para demostrar que tiene el código correcto. Mientras tanto, no compartes tu código directamente con el autocalificador. Y listo, acaba de realizar una “Prueba de conocimiento cero”, demostrando que sabe algo sin decir lo que sabe. [2]

El autocalificador de código anterior utiliza una “prueba interactiva de conocimiento cero”, donde el autocalificador y el proveedor de código “interactúan” directamente entre sí. Por el contrario, la mayoría de los zk-Rollups utilizan una prueba no interactiva matemáticamente más complicada (como zk-SNARK, o Zero Knowledge Succinct Noninteractive ARgument of Knowledge), que ahorra tiempo y espacio en comparación con una prueba interactiva. Si bien los detalles técnicos de zk-SNARK están fuera del alcance de este artículo, el principio subyacente de la aprobación de casos de prueba es el mismo.

El santo grial de zk-Rollups es una máquina virtual Ethereum de conocimiento cero (zk-EVM) que permite a los desarrolladores transferir cualquier contrato inteligente de Ethereum sin modificaciones a una cadena zk-Rollup. Pero esto es difícil. Debido a que cada "problema" requiere diferentes conjuntos de "casos de prueba", desarrollar un "algoritmo de prueba" que pueda resolver cada caso de prueba imaginable es un cuello de botella técnico de las pruebas de conocimiento cero y los zk-Rollups.

Como afirma el propio Vitalik Buterin:

En general, mi opinión es que, en el corto plazo, es probable que los rollups optimistas prevalezcan para el cálculo EVM de propósito general y los rollups ZK probablemente prevalezcan para pagos simples, intercambios y otros casos de uso específicos de aplicaciones, pero en el futuro Las acumulaciones de ZK a mediano y largo plazo ganarán en todos los casos de uso a medida que mejore la tecnología ZK-SNARK. [3]

Por lo tanto, históricamente los zk-Rollups solo han sido tecnologías establecidas para casos de uso de aplicaciones específicas, donde los "casos de prueba" están bien definidos y tienen un alcance limitado. Sin embargo, varios proyectos están avanzando rápidamente hacia el "castillo en la colina": un algoritmo zk-Rollup genérico compatible con EVM. [4]

zk-Sync v2.0

zk-Sync v2.0 es solo uno de los muchos proyectos actualmente en juego en el desarrollo de un zk-EVM (otros incluyen StarkNet, Polygon Hermez y Scroll). A diferencia de zk-Sync v1.0, que requería que los usuarios reconstruyeran grandes secciones de sus bases de código para trasladarlas desde EVM a zk-Sync, en zk-Sync v2.0 los programadores pueden implementar sus aplicaciones con pocos o ningún cambio: o como le gustaría afirmar a zk-Sync.

En la práctica, no todos los zk-EVM son iguales. Existe una clara compensación entre la componibilidad (qué tan cerca está de los contratos EVM originales) y el rendimiento (qué tan rápido se ejecutarán los zk-Rollups) [6]. Dentro de esta compensación, zk-Sync optó por optimizar completamente el rendimiento, sacrificando así la componibilidad.

Desde la perspectiva de Vitalik Buterin, existen cuatro tipos distintos de zk-EVM, que se resumen en el siguiente cuadro:

Como afirma Vitalik, en su estado actual zk-Sync v2.0 es un zk-EVM Tipo 4, que es capaz de compilar contratos escritos en Solidity y lenguajes de alto nivel utilizando su propio compilador, que es distinto del EVM. Debido a que zk-Sync tiene control total sobre el diseño de su compilador, puede optimizar agresivamente la velocidad y el rendimiento. El costo de esto es que algunas cadenas de herramientas de depuración de DApps y EVM pueden ser incompatibles con zk-Sync v2.0. Básicamente, zk-Sync es la misma carcasa de automóvil que Ethereum pero con un motor cambiado [5].

De hecho, en su documentación para desarrolladores, Matter Labs afirma que si bien las operaciones de "lectura" de contratos inteligentes se pueden integrar sin ningún cambio en el código, las operaciones de "escritura" de contratos inteligentes necesitan "código adicional" debido a "diferencias fundamentales entre L1 y L2" [6] . En realidad, esto es un poco engañoso. No se debe tanto a una "diferencia fundamental" entre L1 y L2, sino más bien al tipo de zk-Rollup que Matter Labs ha decidido implementar: el tipo 4. Debido a que zk-Sync es fundamentalmente un paquete acumulativo de Tipo 4 que utiliza un compilador y un código de bytes diferentes, esto significa que los contratos inteligentes tienen direcciones diferentes y es posible que la infraestructura del depurador que se basa en el análisis del código de bytes no pueda funcionar en zk-Sync v2. 0 [7].

En el futuro, zk-Sync puede agregar más soporte nativo para el código de bytes EVM, lo que permitirá que el sistema realice una transición lenta a un paquete acumulativo de Tipo 3 que admita una gama más amplia de estos "casos extremos". Pero para que el zk-Rollup Tipo 4 o Tipo 3 de zk-Sync tenga éxito en comparación con el paquete acumulativo Tipo 2 de Polygon Hermez y Scroll Labs, que esencialmente cambia la velocidad por una compatibilidad más amplia, deben existir dos condiciones previas importantes. En primer lugar, sólo hay una pequeña fracción de proyectos sin importancia que son incompatibles con el compilador personalizado de zk-Sync. En segundo lugar, existe una diferencia cualitativa en la velocidad de ejecución de zk-Sync en comparación con un zk-EVM Tipo 2.

Desafortunadamente, personalmente creo que es poco probable que este sea el caso. Cualquier ecosistema de desarrollo avanzado se basa en una infraestructura de “andamio” madura, que incluye herramientas convenientes y modulares de depuración y prueba. Si, como postula Vitalik, una gran parte de las herramientas de depuración nativas de EVM no podrán migrar a zk-Sync debido a diferencias en el código de bytes, entonces zk-Sync tendrá que desarrollar su propio conjunto de herramientas de prueba y depuración. Esta es una sobrecarga adicional que, en última instancia, puede obstaculizar la velocidad de adopción de zk-Sync como solución L2, en comparación con sus competidores zk-EVM Tipo 2 más componibles, como Polygon Hermez y Scroll.

El futuro de zk-Rollups

Con muchos jugadores competitivos en la batalla por los zk-EVM, podría decirse que es sólo cuestión de tiempo antes de que veamos un zk-EVM completamente funcional. ¿Pero qué sigue? Una carretera sólo es útil mientras haya edificios en ella; La fortaleza a largo plazo de un zk-Rollup proviene de los proyectos que utilizan esa solución.

En este momento, DeFi, GameFi y las aplicaciones móviles son los principales beneficiarios de la infraestructura zk-Rollup. Tanto DeFi como GameFi son fundamentalmente economías de escala, ya que prosperan en un entorno donde hay mucha gente que los usa. Las aplicaciones móviles, como las billeteras móviles, también abren las puertas al consumidor masivo que es demasiado vago (o no puede permitirse) una PC de escritorio. Por lo tanto, usar zk-Rollups para estas situaciones tiene mucho sentido.

Pero este no es de ninguna manera el límite de la utilidad de zk-Rollups. En todo caso, esto es sólo el comienzo. Los zk-Rollups son para Ethereum lo que 5G es para Internet. Así como 5G puede permitir un nuevo mundo de aplicaciones y sistemas de IoT, zk-Rollups también puede abrir las compuertas a una "cadena de bloques de cosas", permitiendo que los aparatos digitales de nuestro mundo físico (refrigeradores, relojes, semáforos y todo) sean integrado con contratos inteligentes asegurados en Ethereum.

Uno de los mayores argumentos contra el IoT es que permitirá que las grandes tecnologías invadan nuestra vida cotidiana. Pero con una “cadena de bloques de las cosas” podemos disfrutar de las comodidades del IoT sin preocuparnos de que nuestros dispositivos inteligentes se vean comprometidos en una base de datos centralizada. En lugar de comodidad O privacidad, podemos tener comodidad Y privacidad. Ese es el mundo que zk-Rollups puede prometernos.

🐦 @0xfishylosopher

📅 31 de octubre de 2022

Esta información es puramente educativa y no debe tomarse como consejo financiero. Todas las opiniones expresadas son las del autor y no necesariamente están respaldadas por Web3.com Ventures.

Referencias

[1] https://blog.matter-labs.io/baby-alpha-has-arrived-5b10798bc623

[2] Adaptado de https://pages.cs.wisc.edu/~mkowalcz/628.pdf

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

[4] https://www.coindesk.com/tech/2022/07/20/the-sudden-rise-of-evm-compatible-zk-rollups/

[5] https://cryptobriefing.com/the-race-scale-ethereum-zkevm-rollups/

[6] https://docs.zksync.io/dev/contracts/#porting-smart-contracts

[7] https://vitalik.ca/general/2022/08/04/zkevm.html