Saltar al contenido principal

Bienvenido a esta exploración del fascinante mundo de las Pruebas de Conocimiento Cero, los Rollups y la zkEVM, conceptos que están redefiniendo rápidamente el panorama de la tecnología blockchain. Esta visión general está diseñada para llevarte en un viaje a través de estas construcciones tecnológicas avanzadas, simplificándolas en piezas digeribles y comprensibles para que aprecies su impacto y potencial.

Nuestro objetivo es tender un puente entre los aspectos teóricos y prácticos de estas tecnologías avanzadas, proporcionándote una comprensión completa de sus aplicaciones en el mundo real y su impacto potencial. Así que, tanto si eres un entusiasta como un profesional del campo, esperamos que esta visión general sirva como una guía completa de estos conceptos transformadores en la tecnología blockchain.

zkEVM rollup

¿Qué es ZK?

"Conocimiento cero" se refiere típicamente a un concepto en criptografía conocido como "prueba de conocimiento cero". Este es un método por el cual una parte (el probador) puede demostrar a otra parte (el verificador) que conoce un valor x, sin transmitir ninguna información aparte del hecho de que conoce el valor x.

El término se origina en el hecho de que el verificador no obtiene ningún conocimiento sobre los detalles de la prueba más allá de la validez de la afirmación. Por ejemplo, si intentaras probar que conoces la contraseña de una cuenta, una prueba de conocimiento cero podría confirmar que conoces la contraseña sin revelar nunca cuál es la contraseña.

La idea de las pruebas de conocimiento cero es significativa en las tecnologías que mejoran la privacidad. Por ejemplo, es un componente fundamental de algunas criptomonedas y otros sistemas donde es crucial equilibrar la necesidad de verificación y la necesidad de privacidad.

La prueba en ZK

En el contexto de la informática y la criptografía, una prueba es un proceso o método que confirma la validez de una afirmación sin revelar ninguna información adicional. La afirmación podría ser tan simple como probar que conoces una contraseña sin revelar cuál es la contraseña.

  • ZK-SNARK (Argumento de Conocimiento Sucinto No Interactivo de Conocimiento Cero): Esta es una forma de prueba de conocimiento cero que es particularmente eficiente en términos de computación y la cantidad de datos que deben almacenarse o transmitirse. "Sucinto" significa que las pruebas son pequeñas y rápidas de verificar, y "No interactivo" significa que no se requiere comunicación de ida y vuelta. Los ZK-SNARK se utilizan en sistemas blockchain que preservan la privacidad, como Zcash.

  • ZK-STARK (Argumento de Conocimiento Transparente Escalable de Conocimiento Cero): Esta es otra forma de prueba de conocimiento cero. Si bien también proporcionan eficiencia, los ZK-STARK ofrecen la ventaja adicional de no requerir una configuración de confianza (de ahí la parte "Transparente" del acrónimo). Sin embargo, los ZK-STARK son más intensivos computacionalmente y producen pruebas más grandes que los ZK-SNARK. ZK-STARK se utiliza en Fractal, SuperSonic, StarkWare, Polygon Miden, etc.

¿Por qué necesitamos ZK en una blockchain?

A medida que las redes blockchain como Bitcoin y Ethereum han crecido en popularidad, el número de transacciones procesadas en estas redes ha aumentado drásticamente. Esto es una señal positiva de adopción, pero también trae consigo algunos desafíos. Las blockchains, por su diseño, no son inherentemente escalables, lo que lleva a problemas como tiempos de transacción lentos y tarifas altas.

¿Por qué es necesario el escalado?

  1. Rendimiento de transacciones limitado: Cada bloque en una blockchain tiene una capacidad limitada, y hay un nuevo bloque cada pocos minutos (aproximadamente 10 minutos para Bitcoin y aproximadamente 15 segundos para Ethereum según mi última actualización en 2021). Esto limita el número de transacciones que se pueden procesar por segundo. Por ejemplo, Bitcoin puede manejar alrededor de 3-7 transacciones por segundo (tps), y Ethereum puede manejar alrededor de 15 tps. Esto es mucho menos de lo que pueden manejar los sistemas tradicionales como Visa (miles de tps).

  2. Tarifas altas: Cuando la red está congestionada, los usuarios a menudo necesitan pagar tarifas más altas para priorizar sus transacciones.

  3. Confirmaciones lentas: En momentos de alta demanda, las transacciones pueden tardar mucho tiempo en confirmarse porque hay más transacciones de las que la red puede procesar rápidamente.

¿Cómo escalar?

Generalmente, hay dos enfoques para escalar una blockchain: escalado de Capa 1 (en cadena) y escalado de Capa 2 (fuera de cadena).

  1. El escalado de Capa 1 implica cambios en el propio protocolo blockchain. Esto podría implicar aumentar el tamaño del bloque (permitiendo que cada bloque contenga más transacciones), disminuir el tiempo del bloque o implementar sharding (dividir la red en piezas más pequeñas, o "fragmentos", cada una capaz de procesar sus propias transacciones y contratos inteligentes).

  2. El escalado de Capa 2 implica construir una capa secundaria sobre la blockchain existente. Las transacciones se procesan fuera de cadena y luego se liquidan en cadena. Ejemplos de soluciones de Capa 2 incluyen canales de estado, cadenas Plasma y rollups (Rollups Optimistas y ZK-Rollups). Estas soluciones esencialmente mueven la mayoría de las transacciones fuera de la cadena principal, reduciendo la congestión.

Escalar una blockchain es un equilibrio entre mantener su naturaleza descentralizada (que puede verse comprometida por algunas soluciones de Capa 1) y aumentar su capacidad para manejar más transacciones de forma rápida y económica. Diferentes blockchains pueden optar por diferentes soluciones de escalado en función de sus objetivos y limitaciones específicos.

La tecnología ZK se aplica en las soluciones de escalado de rollups.

¿Qué es un rollup?

Los "Rollups" son soluciones de Capa 2 diseñadas para aumentar el rendimiento de una blockchain, como Ethereum, sin tener que alterar su protocolo subyacente o "Capa 1". Su objetivo es resolver los problemas de escalabilidad que enfrentan muchas blockchains a medida que se vuelven más populares.

Aquí hay una forma simplificada de entender cómo funcionan:

  1. Agregación fuera de cadena: Las transacciones se recolectan y procesan fuera de la cadena principal en una "cadena lateral" o "cadena de rollup". Esta agregación ocurre fuera de cadena para evitar congestionar la cadena principal.

  2. Computación y almacenamiento: Los datos asociados con estas transacciones se procesan y almacenan fuera de cadena. Esto reduce la carga computacional en la cadena principal.

  3. Envío a la cadena principal: Una vez que el rollup de transacciones está listo, se envía una prueba de las transacciones agregadas (puede ser una prueba criptográfica como un SNARK o un STARK, o simplemente un hash de los datos) a la cadena principal. Esta prueba es mucho más pequeña en tamaño de lo que sería la lista completa de transacciones individuales.

  4. Verificación: Los validadores de la cadena principal verifican esta prueba. Una vez verificada, las transacciones agrupadas se consideran confirmadas.

Existen dos tipos principales de rollups: Rollups Optimistas y ZK-Rollups.

  1. Rollups Optimistas: Estos se basan en un sistema de "pruebas de fraude". Esencialmente, asumen que el rollup de transacciones es correcto a menos que alguien demuestre que es fraudulento.

  2. ZK-Rollups: Estos utilizan pruebas de conocimiento cero para validar la corrección de cada rollup de transacciones. Los ZK-Rollups tienen la ventaja de no requerir un período de espera para la confirmación, ya que no dependen de pruebas de fraude.

Ambas soluciones ayudan a aumentar el número de transacciones que se pueden procesar por segundo en la blockchain, lo que lleva a una mejor escalabilidad. Aquí están sus diferencias:

Rollup OptimistaZK-Rollup
Estimación de rendimiento~500 TPS✅ >2000 TPS
Período de retiro de fondosSemanas✅ Minutos a horas
PrivacidadCaro✅ Barato
Compatible con EVM⚠️ necesita ajustar su código Solidity
Costos✅ bajo❌ alto

ZK-Rollup vs. zkEVM

ZK-Rollup y zkEVM son ambas soluciones de escalado de Capa 2 que utilizan pruebas de conocimiento cero para Ethereum, pero apuntan a diferentes niveles de funcionalidad.

  1. ZK-Rollup: Este es un tipo específico de solución de Capa 2 que agrupa o "enrolla" muchas transacciones en una sola transacción, aumentando significativamente el número de transacciones que se pueden manejar por segundo. Cada ZK-Rollup contiene una transición de estado y una prueba de que la transición es correcta. Sin embargo, tradicionalmente, los ZK-Rollups han estado limitados en la complejidad de los cálculos que pueden manejar, utilizándose principalmente para transferencias simples.
  2. zkEVM (Máquina Virtual de Ethereum zk): Este es un desarrollo más reciente que lleva el poder de las pruebas de conocimiento cero a la Máquina Virtual de Ethereum (EVM). La EVM es el entorno en el que se ejecutan todos los contratos inteligentes en Ethereum. zkEVM permite que interacciones de contratos inteligentes más complejas se agrupen utilizando pruebas de conocimiento cero, no solo transferencias simples. En otras palabras, zkEVM tiene como objetivo hacer que cualquier cálculo arbitrario sea verificable con conocimiento cero, permitiendo efectivamente que la totalidad de las capacidades de los contratos inteligentes de Ethereum se escalen a través de ZK-Rollups.

zkEVM vs EVM

La EVM es el entorno de ejecución para los contratos inteligentes en Ethereum. Es un sistema potente que permite a los desarrolladores escribir scripts complejos, en forma de contratos inteligentes, que luego se ejecutan a medida que ocurren transacciones en la red de Ethereum. La compatibilidad con EVM, por lo tanto, significa que la solución de Capa 2 puede ejecutar los mismos contratos inteligentes de la misma manera que lo hace la EVM.

Aquí hay algunos niveles generales de compatibilidad:

  1. Equivalente a EVM: Este es el nivel más alto de compatibilidad. Una solución equivalente a EVM puede ejecutar cualquier contrato inteligente que pueda ejecutarse en la cadena principal de Ethereum sin ningún cambio. Replica completamente las capacidades de la EVM. zkSync 2.0, por ejemplo, afirma ofrecer funcionalidad equivalente a EVM en un ZK-Rollup.
  2. Compatible con EVM: Una solución compatible con EVM puede ejecutar muchos, pero no necesariamente todos, los mismos contratos inteligentes que la EVM. Podrían ser necesarios algunos ajustes en los contratos inteligentes para que funcionen dentro de la solución de Capa 2.
  3. No compatible con EVM: Una solución no compatible con EVM ofrece una funcionalidad diferente a la disponible en la cadena principal de Ethereum. Podría ser capaz de procesar transacciones simples pero no contratos inteligentes complejos, por ejemplo.

El objetivo de los proyectos zkEVM es desarrollar ZK-Rollups que ofrezcan una funcionalidad completa, o casi completa, equivalente a EVM. Esto permite a los desarrolladores portar sus aplicaciones descentralizadas a estas soluciones de Capa 2 sin cambios significativos, beneficiándose así de la escalabilidad mejorada sin sacrificar la funcionalidad ofrecida por la EVM.

Soluciones zkEVM en el mercado

Scroll

El equipo de Scroll, establecido en 2021, se ha comprometido a desarrollar un ZK Rollup que sea equivalente a la EVM (Máquina Virtual de Ethereum) de Ethereum como parte de sus esfuerzos continuos para escalar Ethereum. En colaboración con el equipo de Privacy and Scaling Explorations y otros colaboradores de código abierto, Scroll ha dedicado los últimos dos años a construir públicamente una zkEVM (Máquina Virtual de Ethereum de Conocimiento Cero) compatible con bytecode.

Scroll anunció a finales de febrero que su testnet Alpha ya está activa en la red Goerli. La testnet Alpha, abierta a todos los usuarios para pruebas técnicas sin permiso, tiene un tiempo de bloque promedio de tres segundos. Hasta la fecha, ha facilitado más de 20 millones de transacciones, generado más de 1.5 millones de bloques y cuenta con más de cuatro millones de direcciones interactivas. Además, el 11 de abril, Scroll abrió la interfaz de su ecosistema web.

Las divulgaciones recientes indican que Scroll está progresando consistentemente en el camino de la equivalencia EVM Tipo 2. Han completado con éxito el desarrollo de compatibilidad para todos los códigos de operación EVM y actualmente están en proceso de auditoría. Su próximo objetivo es asegurar la compatibilidad con las transacciones EIP2718.

Desde un punto de vista técnico, la arquitectura de Scroll es relativamente tradicional. Su enfoque principal es la zkEVM, responsable de verificar la corrección de la ejecución de la EVM en la Capa 2 (L2). Sin embargo, para transformar la zkEVM en un ZK Rollup completo en Ethereum, es necesaria una arquitectura L2 completa. Específicamente, la testnet Alpha existente de Scroll consta del Nodo Scroll, el Contrato Puente y el Contrato Rollup.

El Nodo Scroll está compuesto por un Secuenciador, un Retransmisor y un Coordinador. El Secuenciador, conocido como el ordenante, expone JSON-RPC a usuarios y aplicaciones, lee transacciones del pool de transacciones y genera bloques L2 y raíces de estado. Actualmente, los nodos Secuenciadores de Scroll están centralizados, con planes de descentralizarse progresivamente en futuras actualizaciones.

Scroll Architecture

El Coordinador gestiona la comunicación entre el Roller y el Nodo Scroll, seleccionando un Roller aleatoriamente del pool para generar pruebas cada vez que se crea un nuevo bloque en el Secuenciador. El Retransmisor monitorea el Contrato Puente y el Contrato Rollup tanto en las cadenas de Ethereum como en las de Scroll. El Contrato Rollup garantiza la disponibilidad de datos L2 a nivel de Capa 1 (L1) y asegura la recuperación de bloques L2 a nivel de L1. El Contrato Puente es responsable de la comunicación entre cadenas durante las operaciones de cadena cruzada, facilitando la transmisión bidireccional de mensajes y las operaciones de colateralización y extracción de activos.

Por último, la Red Roller juega un papel crucial. El Roller, incrustado con zkEVM, actúa como probador en la red, generando pruebas de validez para el ZK Rollup. El Roller inicialmente convierte el rastro de ejecución recibido del Coordinador en testigos de circuito. Luego genera pruebas para cada circuito zkEVM, agregando finalmente estas pruebas de múltiples circuitos ZK.

Este sofisticado diseño arquitectónico significa la dedicación inquebrantable de Scroll para mejorar la escalabilidad de Ethereum a través de los rollups zkEVM. Con sus prácticas de desarrollo públicas y transparentes, son un brillante ejemplo de las posibilidades que puede generar la colaboración dentro de la comunidad de código abierto.

StarkWare

StarkWare está expandiendo los límites de la tecnología blockchain al ofrecer una solución de escalado basada en STARK que garantiza seguridad, velocidad y experiencias de usuario fluidas en la Capa 2 (L2). Soportan múltiples modos de disponibilidad de datos, y sus ofertas incluyen StarkNet y StarkEx.

StarkNet es su red L2, mientras que StarkEx es un servicio de verificación de Rollup diseñado para usuarios empresariales. Las DApps (Aplicaciones Descentralizadas) se pueden construir sobre el servicio StarkEx. Sin embargo, el servicio actualmente solo admite la escritura de circuitos personalizados para DApps específicas y no un zkEVM Rollup universal. StarkEx también incluye varios servicios plug-and-play, como la acuñación y el comercio de NFT, y el comercio de derivados. En términos de ecosistema, dYdX, una plataforma descentralizada de comercio de contratos de futuros, es un usuario leal de StarkWare.

Estrictamente hablando, StarkNet puede describirse como una zkVM (Máquina Virtual de Conocimiento Cero). No utiliza circuitos ZK para los códigos de operación de Ethereum. En cambio, emplea un lenguaje ensamblador más amigable con ZK, AIR (Representación Intermedia Algebraica), y el lenguaje de alto nivel, Cairo. Aunque StarkNet en sí no es compatible con EVM, la compatibilidad con Ethereum se puede lograr a través de métodos como Kakarot, una zkEVM escrita en Cairo y una EVM equivalente a bytecode. En términos de características centralizadas, StarkNet está algo centralizada y no puede actualizar su seguridad en línea con Ethereum. Por lo tanto, requiere esfuerzos concentrados de los desarrolladores para reforzar sus características de seguridad y mantenerse al día con Ethereum en la adaptación de nuevos protocolos.

StarkNet emplea STARK como su sistema de prueba, lo que presenta más innovación en comparación con SNARK. A diferencia de SNARK, STARK no se basa en una "configuración de confianza". Además, ofrece suposiciones criptográficas más simples, eliminando la necesidad de curvas elípticas, emparejamientos y suposiciones de conocimiento exponencial. En cambio, se basa puramente en la teoría de hash e información, lo que lo hace más resistente a los ataques cuánticos. En general, STARK es más seguro que SNARK. En términos de escalabilidad, STARK tiene efectos marginales sustanciales, con pruebas más grandes que conducen a costos totales más bajos.

Sin embargo, existen preocupaciones arquitectónicas. Actualmente, el sistema solo tiene un Secuenciador, controlado por StarkWare, y un Probador, responsable de generar Pruebas ZK. Este Probador no solo genera pruebas para StarkNet, sino también para todas las demás aplicaciones que se ejecutan en su propio rollup StarkEx. Esta concentración de control puede plantear riesgos potenciales a largo plazo.

En conclusión, StarkWare está dirigiendo el desarrollo de soluciones L2 con su arquitectura de escalado basada en STARK. Sin embargo, como con todas las tecnologías, su éxito futuro dependerá de lo bien que aborde los problemas de centralización y mantenga un equilibrio entre seguridad, velocidad y experiencia de usuario.

zkSync

Similar a StarkNet, zkSync se ha mantenido firme en optar por una zkVM equivalente a un lenguaje de alto nivel, atrayendo mucha atención, con un calor y un valor bloqueado notablemente altos. Lanzado en la mainnet de Ethereum el 15 de junio de 2020, zkSync 1.0 (también conocido como zkSync Lite) logró un rendimiento de transacciones de aproximadamente 300 TPS (Transacciones por Segundo) pero no era compatible con la EVM (Máquina Virtual de Ethereum) de Ethereum. zkSync 2.0 (también conocido como zkSync Era) se lanzó el 24 de marzo de 2023.

El objetivo de zkSync Era es generar pruebas más rápidamente optimizando su VM personalizada, en lugar de buscar la compatibilidad con EVM. Soporta Solidity, Vyper, Yul y Zinc (el lenguaje de programación interno del rollup) a través de un potente compilador LLVM, implementando así la mayoría de las funcionalidades de los contratos inteligentes. Al adoptar una VM propia, zkSync Era soporta la abstracción de cuenta nativa, permitiendo que cualquier cuenta pague tarifas usando cualquier token.

Además, la aplicación del protocolo zkPorter, que combina ZK Rollups y tecnología de sharding, ha llevado a un crecimiento exponencial en el rendimiento de la red, alcanzando más de 20,000 TPS (similar a la conmutación de disponibilidad de datos de Volitions).

En general, zkSync se presenta como un proyecto L2 con un rico ecosistema, atrayendo la atención tanto de desarrolladores como de inversores. Si bien ha habido casos recientes de proyectos que fallaron completamente en zkSync, sigue existiendo la pregunta de si los desarrolladores pueden tener una buena experiencia de desarrollo y migración en la zkVM equivalente a un lenguaje de alto nivel. Actualmente, hay una falta de informes de uso definitivos por parte de los desarrolladores. Si la experiencia del desarrollador es favorable, surge la pregunta de la relevancia de otros tipos de esfuerzos para alinear zkVM con EVM. Se necesita más tiempo y observación para responder a estas preguntas.

En conclusión, zkSync, con su adhesión a una zkVM equivalente a un lenguaje de alto nivel, presenta una evolución emocionante en el mundo de las soluciones de escalado de Capa 2 de Ethereum. A medida que el proyecto continúe madurando, su impacto en el desarrollo de blockchain y la experiencia del usuario se hará más claro, contribuyendo a nuestra comprensión del futuro de la tecnología de Capa 2.

Polygon zkEVM

El 27 de marzo, Polygon lanzó la versión Beta de su mainnet de zkEVM Rollup, una máquina virtual equivalente a Ethereum, y liberó todo su código zkEVM como código abierto. Si bien el valor bloqueado en la zkEVM de Polygon es significativamente menor en comparación con zkSync, alberga una variedad de proyectos interesantes y vibrantes dentro de su ecosistema.

Polygon se distingue de Scroll en su diseño de Rollup, ya que emplea un modelo de Prueba de Eficiencia (PoE) para incentivar a los Secuenciadores y Agregadores, abordando desafíos relacionados con la descentralización y los validadores sin permiso. En este modelo de dos pasos de Secuenciador-Agregador sin permiso, cualquier Secuenciador puede proponer aplicaciones de empaquetado por lotes para obtener tarifas de empaquetado, pero debe pagar los cargos de Gas de Capa 1 (L1) y depositar una cierta cantidad de Tokens. Al mismo tiempo, se requiere que los Agregadores establezcan sus propios objetivos para maximizar las ganancias por generación de prueba. Además, Polygon exhibe una profunda compatibilidad con Volition (una mezcla de ZK Rollup y Validium) en su modelo de disponibilidad de datos, ofreciendo a los usuarios varios niveles de servicio.

Polygon también ha invertido un esfuerzo sustancial en sus protocolos ZK, obteniendo resultados notables. Han resumido sus ventajas tecnológicas en su documentación, que incluye principalmente:

  1. Compatibilidad mejorada: Polygon se adhiere consistentemente a una zkVM equivalente a EVM, con el objetivo de reducir los costos para los desarrolladores que migran aplicaciones descentralizadas (dApps). A pesar de que Polygon Miden utiliza el protocolo ZK-STARK, aún soporta la ejecución de contratos Solidity.
  2. Verificación más sencilla: ZK Rollup a menudo enfrenta críticas debido al requisito de hardware especializado costoso para generar pruebas de validez. Estos costos son luego transferidos a los usuarios por los fabricantes que operan el hardware. Polygon ZK Rollup (como Polygon Zero) tiene como objetivo simplificar el esquema de prueba, permitiendo que dispositivos de menor grado participen. Por ejemplo, la prueba de generación de Plonky2 realizada en una PC de consumo.
  3. Proceso de generación y verificación de pruebas más rápido: Polygon Zero puede generar una prueba de 45kb en 170 milisegundos.

En resumen, el lanzamiento de la versión Beta de la mainnet de zkEVM Rollup de Polygon significa un paso crucial en la evolución de la tecnología de Capa 2 de Ethereum. Con su robusto ecosistema y su compromiso continuo para mejorar la compatibilidad, facilitar la verificación y acelerar la generación de pruebas, Polygon está estableciendo una narrativa convincente en el espacio blockchain.

Resumen

Esta visión general giró en torno a zk, rollup y zkEVM, que son aspectos destacados de la tecnología blockchain. También comparamos las soluciones proporcionadas por Scroll, StarkWare, zkSync y Polygon, entre otros.

Sin embargo, no existe una solución mágica. Los principales problemas que discutimos con respecto a zkEVM incluyen la centralización, el costo y la complejidad.

  • La centralización está relacionada principalmente con el control de los Secuenciadores y Probadores, lo que podría limitar el alcance de la descentralización.
  • La complejidad es otro desafío significativo, en gran parte debido a los intrincados requisitos de codificación y la necesidad de experiencia especializada para generar y verificar pruebas.
  • El alto costo de zkEVM surge de los considerables recursos necesarios para generar pruebas de validez, que a menudo se trasladan a los usuarios. Sin embargo, se están realizando avances para simplificar la generación de pruebas y reducir los costos, lo que sugiere posibles soluciones a estos problemas.