La EVM es esencial en Ethereum, gestionando la cadena y ejecutando contratos inteligentes para facilitar la interacción.
La EVM, al ser una "máquina global", ejecuta contratos inteligentes y experimenta cambios de estado en "transiciones de estado" ante ciertas entradas.
El ciclo de vida de un contrato inteligente en la EVM incluye despliegue, inicialización, ejecución y finalización, ilustrado en un diagrama de flujo.
La evolución de zk-rollups a zkEVMs permite el soporte robusto de DApps complejas en Ethereum.
Las zkEVMs ejecutan transacciones fuera de la cadena, generan pruebas de conocimiento cero y verifican legitimidad en la cadena, actualizando el estado.
Ventajas de zkEVMs: seguridad demostrable, privacidad, programabilidad total y escalabilidad.
Clasificadas en cuatro tipos, las zkEVMs son un avance crucial para Ethereum, mejorando seguridad, privacidad y escalabilidad.
La Máquina Virtual Ethereum constituye el núcleo computacional de Ethereum, gestionando el estado de la cadena de bloques y posibilitando la ejecución de contratos inteligentes, facilitando así la interacción entre el usuario y la blockchain. En términos simples, la EVM está encapsulada en un software denominado cliente, esencial para la operación de un nodo en Ethereum.
DESCARGO DE RESPONSABILIDAD
La información, investigación y material contenido en este documento, se ofrece únicamente con el propósito de brindar información y no debe bajo ninguna circunstancias considerarse como una oferta para comprar, vender o ser partícipe en operaciones relacionadas al proyecto o activo mencionado. Kairos no asegura que los valores a los que se refiere este reporte son apropiados para algún inversionista en particular. Ninguna información en este reporte se considerará como asesoría en materia de inversiones, legal, contable o tributaria ni de otro tipo. Tampoco se considera que esta o cualquier inversión o estrategia es apropiada para sus circunstancias individuales y de ninguna forma constituye una recomendación personal para usted. Kairos ha obtenido la información y los materiales incluidos en la Web de fuentes consideradas como fiables, pero, si bien se han tomado medidas razonables para asegurarse de que la información contenida sea correcta, Kairos no garantiza que sea exacta, completa, o actualizada y, consecuentemente, no debe confiarse en ella como si lo fuera. Asimismo, no se asume responsabilidad por ningún tipo de pérdidas que surjan del uso directo o indirecto del material presentado en este documento. Kairos se reserva el derecho a modificar, suspender, cancelar o restringir el contenido del sitio, sin necesidad de previo aviso.
Miembros de nuestro equipo pueden poseer alguno de los criptoactivos mencionados en este análisis. Esta declaración tiene como objetivo revelar cualquier conflicto de intereses y no deben interpretarse erróneamente como una recomendación financiera. Este contenido solo tiene fines informativos y usted no debe tomar decisiones basándose únicamente en esta investigación. Bajo ninguna circunstancia esta publicación puede considerarse una asesoría en materia de información.
Los nodos de Ethereum almacenan copias de los datos de las transacciones, los cuales son procesados por la EVM para su actualización. En términos generales, los nodos admiten de manera nativa la EVM, dado que el software cliente implementa esta funcionalidad.
Funcionamiento de la EVM
Al considerar que la EVM funciona como una "máquina global", resulta crucial abordar su compatibilidad. Se entiende que una máquina virtual (VM) es "compatible con EVM" si tiene la capacidad de ejecutar programas diseñados para el entorno EVM. En otras palabras, puede ejecutar contratos inteligentes redactados en Solidity u otros lenguajes de alto nivel empleados en el desarrollo de Ethereum.
La EVM opera como una máquina de estados, permitiendo la transición de un estado antiguo a uno nuevo en respuesta a ciertas entradas (inputs). En cada ejecución de un contrato inteligente, se produce un cambio en el estado de la EVM, denominado "transición de estado".
Antes de resumir el flujo de trabajo de la EVM, es crucial incorporar la siguiente terminología:
Contratos inteligentes: Programas que se ejecutan en la EVM y pueden utilizarse para crear nuevos tokens, gestionar activos o incluso desarrollar aplicaciones descentralizadas (DApps).
Durante la ejecución de un contrato inteligente, la EVM carga su código desde el almacenamiento y lo ejecuta, permitiendo la lectura y escritura de datos en la cadena de bloques, así como la realización de cálculos.
Estado de EVM: La colección de todos los datos accesibles por la EVM, incluyendo saldos de cuentas, estados de contratos inteligentes y código.
Cada ejecución de un contrato inteligente provoca un cambio en el estado de la EVM, conocido como transición de estado.
Todos los nodos de la red Ethereum concuerdan con el estado de la EVM, garantizando consenso y promoviendo un accionar legítimo.
El ciclo de vida de la ejecución de un contrato inteligente en la Máquina Virtual Ethereum (EVM) puede dividirse en cuatro etapas:
Despliegue: Un usuario despliega el contrato inteligente en la blockchain, enviando una transacción a la EVM que contiene el código del contrato inteligente.
Inicialización: La EVM crea una cuenta para el contrato inteligente y asigna espacio de almacenamiento, luego inicializa el contrato ejecutando su función constructora.
Ejecución: Cuando un usuario interactúa con un contrato inteligente, envía una transacción a la EVM con la llamada a la función deseada, la cual la EVM ejecuta, actualizando el estado del contrato o enviando transacciones a otros contratos inteligentes.
Finalización: Tras la ejecución de una llamada a función, la EVM actualiza el estado de la cadena de bloques y devuelve los resultados al usuario. Como se ilustra a continuación:
Teniendo este esquema y entendiendo el ciclo de vida de la ejecución de los contratos inteligentes en la EVM, damos una mirada al pasado enfatizando que, las primeras zk-rollups carecían de capacidad para ejecutar contratos inteligentes y estaban limitadas a simples intercambios de tokens y pagos. Posteriormente, con la introducción de máquinas virtuales de conocimiento cero compatibles con EVM (zk-EVMs) y su constante desarrollo es ahora evidente el soporte que éstas tienen para dApps que solo se habrían encontrado en Ethereum en un inicio.
zkEVMs — El futuro de un Ethereum escalable y seguro
Una zkEVM es una máquina virtual compatible con EVM propulsada por pruebas de conocimiento-cero. A diferencia de las máquinas virtuales normales, una zkEVM prueba la corrección de la ejecución del programa, en otras palabras, demuestran que las transacciones son válidas sin revelar los datos subyacentes incluida la validez de las entradas y salidas.Las zkEVM son compatibles con EVM porque pueden ejecutar contratos inteligentes de Ethereum sin grandes modificaciones de la lógica integrada, aunque cabe destacar, los resultados obtenidos no han sido fáciles y se han dedicado grandes esfuerzos para que la investigación haya derivado en estas soluciones.
Como anteriormente se explicó para EVM, ahora, procedemos a exponer como funciona la ejecución de contratos inteligentes para zkEVM, de tal forma que tenga compatibilidad con la máquina virtual de Ethereum.
Es posible explicar el funcionamiento haciendo énfasis en 3 puntos importantes
Computación fuera de la cadena (off-chain)
Una zkEVM tiene un entorno de ejecución en el que realiza el cálculo fuera de la cadena para ejecutar una transacción de contrato inteligente. Para ello, la zkEVM toma el estado actual y los detalles de la transacción del contrato para producir un estado final resultante.
Generación de pruebas
Una vez completado el cálculo, la zkEVM utiliza un circuito de prueba para identificar todos los detalles del cálculo y generar una prueba de conocimiento cero. El circuito de comprobación evalúa tres elementos para crear una prueba de conocimiento cero válida:
Valores de entrada y salida: El circuito de comprobación verifica si el programa obtuvo la información y el valor correctos antes del cálculo. También verifica si el programa registró los valores correctos después del cálculo.
Cálculo: Por último, verifica si la ejecución del opcode ocurrió en el orden correcto.
El opcode dentro del bytecode es un conjunto de instrucciones explícitas que indican una específica acción a realizar.
Verificación en la cadena (on-chain)
Tras la generación de pruebas de conocimiento zero, la prueba junto con los datos de los estados inicial y final se envía a un contrato verificador basado en Ethereum. Este contrato se autoejecuta para ejecutar los cálculos necesarios sobre el ZKP y verificar su legitimidad. Una vez verificado por los nodos, el EVM actualiza el estado de Ethereum.
¿Cómo destacan las zkEVMs frente a otras soluciones como zk / Optimistic Rollups?
Se presentan 4 puntos destacables que dan mayor crédito a las soluciones zkEVM frente a soluciones con los propósitos de escalado.
Seguridad: zkEVMs no hacen ninguna suposición de seguridad y en su lugar se basa en un cómputo demostrable que garantiza seguridad.
Privacidad: Al generar pruebas de conocimiento cero para las transacciones, ocultan los detalles de las transacciones y ejecuciones de contratos inteligentes de la cadena.
Programabilidad: los zkEVM son totalmente compatibles con EVM y ofrecen una mayor programabilidad respecto a las primeras rollups.
Escalabilidad: Al llevar la computación fuera de la cadena, los zkEVM pueden ofrecer escalabilidad sin comprometer la seguridad o la descentralización.
Tipos de zkEVM
De acuerdo con el blog de Vitalik Buterin co-Fundador de Ethereum, las soluciones zk-EVM han sido desarrolladas para facilitar la verificación de la propia cadena Ethereum o construir ZK-rollups que sean cuasi-equivalentes a lo que ofrece Ethereum, siendo más escalables. A pesar de esto, existen diferencias sutiles entre estos numerosos proyectos y se dedico a analizarlo. A continuación, se resume ese análisis.
Tipo 1️: Totalmente equivalentes a Ethereum.Estas zk-EVM pretenden ser exactamente como Ethereum, por lo que pueden ejecutar cualquier código Ethereum. Son implementaciones más lentas, pues tienen que probar la ejecución de todo el código, incluidas las partes que no son compatibles con pruebas de conocimiento cero.
Tipo 2: Totalmente equivalentes a EVM.Estos zk-EVM también son compatibles con todo el código de Ethereum, pero introducen algunos cambios menores en el protocolo de Ethereum para facilitar la generación de pruebas de conocimiento cero. Esto los hace más rápidos que los zk-EVM de tipo 1, pero también significa que no son tan compatibles con las herramientas y la infraestructura de Ethereum.
Tipo 3️: Casi equivalente a un EVM.Estos zk-EVM hacen algunos sacrificios en términos de compatibilidad con el fin de mejorar los tiempos del prover. Pueden eliminar algunos precompiles o realizar otros cambios menores en el protocolo de Ethereum
Prover: En sistemas que implementan prubas de conocimiento cero, un prover es un elemento que prueba una afirmación a un verificador sin revelar ninguna información adicional.
Tipo 4️: Equivalente de lenguaje de alto nivel.Estos zk-EVM compilan el código fuente del contrato inteligente escrito en un lenguaje de alto nivel (por ejemplo, Solidity) a un lenguaje compatible con zk, que luego se utiliza para generar pruebas. Este es el tipo de zk-EVM más rápido, pero también significa que no es compatible con todo el código de Ethereum.
La integración de zkEVMs marca un hito importante en la evolución de Ethereum hacia una red más escalable y segura. Estas máquinas virtuales respaldadas por pruebas de conocimiento cero ofrecen mejoras sustanciales en seguridad, privacidad, programabilidad y escalabilidad, superando a soluciones como zk/Optimistic Rollups. La clasificación detallada de los tipos de zkEVM proporciona una comprensión profunda de su diversidad y aplicaciones específicas, destacando el tipo X como una categoría especializada con características distintivas.
Este avance tecnológico no solo impulsa la eficiencia y seguridad de Ethereum, sino que también facilita la transición de desarrolladores web2 a web3. Con una arquitectura equilibrada, se fomenta una curva de aprendizaje suave, permitiendo que los desarrolladores se sumerjan en este vasto ecosistema de manera efectiva. En última instancia, la introducción de zkEVMs contribuye no solo a la mejora tecnológica de Ethereum, sino también al crecimiento sostenido del ecosistema blockchain en su conjunto.