Todos los artículos

Una exploración del zkEVM y el Polygon zkEVM

·
4 oct 2022
·
6 min de lectura
·
••• visitas
·
••• me gusta

Traducido del artículo original en inglés. Leer en inglés

Una exploración del zkEVM y el Polygon zkEVM

Introducción

Por diseño, el Polygon zkEVM es un zk-rollup compatible con la EVM. Su objetivo es mejorar el throughput, el rendimiento y la eficiencia. Al aprovechar Plonky2 (una tecnología de escalado zk de vanguardia), es capaz de generar pruebas ligeras y también facilitar la verificación recursiva de SNARKs, lo que permite a los usuarios verificar pruebas rápidamente.

Además de reducir el tiempo de generación de pruebas, el zkEVM ahora permite transacciones muchísimo más baratas, haciendo que cada aplicación descentralizada en el zkEVM sea más eficiente en costos.

El problema de escalabilidad de Ethereum

Por ahora, intentar construir en Ethereum aplicaciones descentralizadas que use la gran mayoría de la gente no es viable, porque las transacciones tardan mucho en procesarse y son bastante caras, y eso crea una mala experiencia de usuario y frena una adopción significativa.

La razón detrás de este problema es que cada nodo que participa en la red necesita procesar todas y cada una de las transacciones, lo que hace que solo se procesen 13 transacciones por segundo.

El papel de los ZK-rollups

Los Zk-Rollups son el segundo tipo de rollups después de los optimistic rollups. Se diferencian de sus equivalentes optimistas porque recurren a la generación de pruebas criptográficas conocidas como zk-proofs para verificar las transacciones que se han agrupado, en lugar de usar el mecanismo de periodo de espera que usan los optimistic rollups, y esto hace que los zk-rollups sean más rápidos.

Los zk-rollups cuestan muchísimo menos porque agrupan las transacciones en un solo lote y publican solo las pruebas de las transacciones. Hasta ahora, los ZK-rollups que soportaban contratos inteligentes obligaban a los desarrolladores a salir del ecosistema de Ethereum porque no eran compatibles con la EVM.

Polygon ha dado el paso de construir un ZK-rollup con un entorno de ejecución de código que soporta el bytecode de Ethereum, llamado Polygon zkEVM. Esto le ahorra a los desarrolladores la molestia de tener que escribir código desde cero, en su lugar pueden migrar fácilmente sus contratos inteligentes al zkEVM.

Una exploración del zkEVM y el Polygon zkEVM
Arquitectura del zk-rollup de Hermez.

Por qué el zkEVM es el futuro

Antes de hablar de por qué el zkEVM es mejor que la EVM tradicional, necesitamos entender cómo funciona la EVM tradicional.

La máquina virtual de Ethereum (EVM) es una máquina virtual Turing completa que actúa como entorno de ejecución para los contratos inteligentes. Cuando ocurre una transacción, todo el bytecode del contrato se compila desde el código fuente y se sube al almacenamiento de la EVM, y aquí se ejecutarán los nodos peer-to-peer. Los nodos se aseguran de llegar al destino correcto usando los mismos inputs de la transacción.

Luego, los códigos de operación de la EVM (opcodes) interactúan con los distintos estados de la EVM, leen los valores del almacenamiento de estado y envían los nuevos valores al almacenamiento de la EVM.

Al final, los nuevos valores son replicados por los nuevos nodos y el estado se mantiene hasta que se procesa otra transacción.

Una exploración del zkEVM y el Polygon zkEVM
Máquina virtual de Ethereum: ilustración del modelo de ejecución de la EVM.

El zkEVM funciona con este mismo principio, pero va más allá para asegurarse de que los datos se comprueben mejor. Además de los pasos que vimos en la EVM, el zkEVM también comprueba si el bytecode que se está cargando es correcto y viene de la dirección correcta. También se asegura de que los datos de la blockchain coincidan con los datos de la EVM.

Arquitectura del Polygon zkEVM

Igual que la EVM, la función principal del zkEVM es soportar contratos inteligentes. Compilará las transacciones de L2, llevará a cabo las transiciones de estado y dará fe de la validez de esos cambios de estado generando pruebas de validez.

El zkEVM tiene 5 componentes principales:

Aplanando el contrato
Ilustración del contrato inteligente PoE

Sequencers

Los sequencers recogen las transacciones de L2 de los usuarios de la red, luego empaquetan esas transacciones en un lote y proponen ese lote al contrato inteligente PoE. El rol de sequencer es permissionless, cualquiera puede ser sequencer siempre que tenga el software zkNode corriendo en su máquina. Esto mejora la descentralización de la red.

Un sequencer que quiera proponer un lote en L1 tiene que pagar las comisiones de gas de L1 y depositar una comisión adicional en tokens. Esto ayuda a protegerse contra el spam y además motiva a los sequencers a proponer solo transacciones válidas. Las comisiones por lote que pagan los usuarios son la forma en que se incentiva a los sequencers.

Los lotes propuestos se publicarán en L1 como calldata. Cualquier nuevo nodo permissionless reconstruirá los datos y sincronizará su estado. Una vez minadas, las transacciones de L1 determinan el orden en que se ejecutan las transacciones de L2. Entonces se crea un nuevo estado determinista, y ese nuevo estado solo queda establecido cuando la prueba de validez se envía a L1. Aquí es donde entra en juego el papel de los aggregators.

Aplanando el contrato
Cómo funcionan los sequencers

Aggregators

El papel de un aggregator es generar pruebas de validez para los lotes de transacciones de L2 que proponen los sequencers. Cuando se proponen los lotes, se ordenan según su posición y contienen datos de las transacciones.

Los aggregators compiten entonces para crear las pruebas de validez de cada lote usando un hardware especializado conocido como zkProver. El primer aggregator que genera esta prueba recibe como recompensa la comisión en Matic que depositaron los sequencers.

El rol de aggregator también está abierto a cualquiera, siempre que tenga instalado el software zkNode y pueda correr el zkProver.

Aplanando el contrato
Cómo funcionan los aggregators

Características del diseño del zkEVM

Equivalente a la EVM - El zkEVM de Polygon tiene compatibilidad a “nivel de bytecode”. Esto significa que tiene compatibilidad total a nivel de opcodes de la EVM y a nivel del lenguaje solidity. Ninguna herramienta ni contrato inteligente que corra en Ethereum necesita cambio alguno para poder correr también en el zkEVM. Seguro - Teniendo en cuenta que el zkEVM hereda la mayor parte de su seguridad de Ethereum, también recurre a zero-knowledge proofs como zk-STARKs y zk-SNARKs para asegurar que, cuando ocurren cambios de estado, estos se hagan; correctamente, que se generen pruebas que den fe del cambio de estado y que esas pruebas estén disponibles on-chain para su verificación. Descentralizado y permissionless - Cualquiera puede participar en la red siempre que tenga las herramientas necesarias según el rol que quiera desempeñar. Eficiente - Como la eficiencia es clave para el rendimiento de la red, los aggregators más eficientes son los que aportan las pruebas de validez y reciben incentivos, además todos los cálculos se hacen off-chain y solo las zk-proofs y los datos necesarios se guardan on-chain.


Conclusión

El zkEVM es la versión mejorada de las máquinas virtuales normales, y procesa transacciones más rápido y de forma más segura. Polygon hará todo el proyecto open-source y lo podrá usar cualquiera que busque una forma mejor, más barata y más rápida de usar Ethereum.

Es una tecnología muy compleja, pero estamos construyendo a toda máquina y no vemos la hora de mostrarte en lo que hemos estado trabajando.

•••
Comparte este artículo:

Mantente al día

Recibe los últimos artículos en tu bandeja de entrada.