**Los paquetes acumulativos de validez son la forma más prometedora de aumentar el rendimiento de Ethereum de manera segura y descentralizada; zkEVM y Cairo VM (CVM) son los dos tipos de máquinas virtuales que se utilizan en los paquetes acumulativos de validez. **
**zkEVM se centra en la compatibilidad con Ethereum a expensas del rendimiento y la escalabilidad. **
**La máquina virtual Cairo utilizada en Starknet prioriza el rendimiento y la escalabilidad sobre la compatibilidad. **
Los rollups son un tema candente este año cuando se habla de escalar Ethereum. Entre los diversos tipos de acumulaciones, creemos que las acumulaciones de validez (VR), también conocidas como acumulaciones de zk, son la forma más prometedora de aumentar el rendimiento de Ethereum de manera segura y descentralizada. En el corazón de esta solución de escalado se encuentra el cálculo verificable mediante pruebas de validez. Así es como funcionan:
En lugar de procesar cada transacción en la red principal de Ethereum, los operadores descargan la ejecución de transacciones en un entorno fuera de la cadena. Este entorno fuera de la cadena actúa como la capa 2, es decir, la capa que se ejecuta sobre Ethereum.
Después de procesar una gran cantidad de transacciones, los operadores de la capa 2 devuelven resultados para aplicar al estado de Ethereum, junto con pruebas de validez para verificar la integridad de la ejecución fuera de la cadena. Esta prueba garantiza que todas las transacciones en un lote son válidas y verificadas de forma autónoma por el contrato de validación en cadena. Esto permite que Ethereum aplique el resultado a su estado.
Paquetes acumulativos de validez
Nota: los paquetes acumulativos de validez a menudo se denominan incorrectamente paquetes acumulativos de conocimiento cero, pero esto no es exacto. La mayoría de los paquetes acumulativos de validez no utilizan ZKP ni se utilizan con fines de privacidad. Por lo tanto, el término "Acumulación de validez" es más preciso.
máquina virtual fuera de la cadena
Antes de continuar, la primera pregunta que debemos responder es: **¿Qué es una máquina virtual (VM)? En pocas palabras, es un entorno en el que se pueden ejecutar los programas, al igual que una Mac con el sistema operativo Windows. Realiza transiciones entre estados después de realizar cálculos en algunas entradas. La máquina virtual de Ethereum (EVM) es la máquina virtual que ejecuta los contratos inteligentes de Ethereum. **
** Una máquina virtual de conocimiento cero (zkVM) es un entorno de ejecución de programas que, junto con la salida del programa, permite generar pruebas de validez que se pueden verificar fácilmente. **Esta prueba de validez certifica que el programa se ha realizado correctamente. **Cuando se usa el término "zkEVM", generalmente se refiere a una agregación que utiliza la máquina virtual Ethereum (EVM) y puede dar fe de la ejecución de la EVM. **Esta terminología puede ser engañosa porque el EVM en sí mismo no genera estas pruebas; en cambio, las pruebas son generadas por un mecanismo de prueba separado que comienza con los resultados de la ejecución del EVM. Además, estas pruebas tienen que ver con la validez, no con la privacidad, por lo que no son exactamente pruebas de conocimiento cero. No obstante, en aras de la coherencia, nos atendremos al término tradicional "zkEVM" a lo largo de este artículo.
Si bien todos los paquetes acumulativos de validez tienen como objetivo escalar Ethereum con prueba de validez, difieren en la elección de máquinas virtuales para ejecutar transacciones fuera de la cadena. Muchos paquetes acumulativos de validez eligen replicar el diseño de EVM (de ahí el término "paquetes acumulativos zkEVM"), intentando replicar Ethereum en paquetes acumulativos L2. Starknet utiliza un nuevo tipo de máquina virtual, la máquina virtual Cairo (CVM), diseñada específicamente para optimizar la eficiencia de la prueba de validez.
Estos dos métodos tienen sus propias ventajas y desventajas, pero zkEVM intercambia rendimiento por compatibilidad con Ethereum, mientras que Cairo VM prioriza el rendimiento sobre la compatibilidad y la escalabilidad.
Enfoque zkEVM
**zkEVM es un paquete acumulativo de validez cuyo objetivo es llevar completamente la experiencia de Ethereum a las cadenas de bloques de capa 2. Su objetivo es replicar el entorno de desarrollo de Ethereum como un paquete acumulativo. **Con zkEVM, los desarrolladores no necesitan cambiar su código ni abandonar sus herramientas EVM (y contratos inteligentes) al escribir contratos inteligentes o transferir contratos inteligentes a soluciones más escalables.
Una gran desventaja de este enfoque es que reduce el potencial de escalamiento de las pruebas de validez. Dado que zkEVM tiene como objetivo ser compatible con Ethereum, es más lento y consume más recursos. A diferencia de CVM, EVM no se diseñó teniendo en cuenta la eficiencia de las pruebas. Esto limita el uso de optimizaciones que pueden mejorar la eficiencia y la escalabilidad, lo que en última instancia afecta el rendimiento general del sistema.
Probabilidad de la EVM
El principal desafío del enfoque zkEVM tiene sus raíces en el modelo original de EVM: no fue diseñado para operar en el contexto de la prueba de validez. Como resultado, los esfuerzos para reflejar su funcionalidad no logran desbloquear todo el potencial de las pruebas de validez, lo que da como resultado niveles de eficiencia subóptimos. Esta ineficiencia en última instancia reduce el rendimiento general del sistema. La compatibilidad de EVM con las pruebas de validez se ve obstaculizada por:
**El EVM usa un modelo basado en pilas, mientras que la prueba de eficiencia es más eficiente para un modelo basado en registros. La naturaleza basada en pilas de EVM hace que sea más difícil probar que su ejecución es correcta y brindar soporte directo para su cadena de herramientas nativa. **
El diseño de almacenamiento de Ethereum se basa en gran medida en Keccak y un gran Merkle Patricia Tree, los cuales son malos para las pruebas de validez e imponen una gran carga de prueba. Por ejemplo, Keccak es muy rápido para la arquitectura x86 (en la que normalmente ejecutamos el EVM), pero requiere 90 000 pasos para probar (compilación especial integrada). Mientras que Pedersen (una función hash compatible con zk) requiere 32 pasos. Incluso con la compresión recursiva, el uso de Keccak en zkEVM significa una gran cantidad de recursos de prueba que, en última instancia, paga el usuario.
Como resultado, varios zkEVM están diseñados para proporcionar diferentes niveles de soporte para las herramientas de Ethereum: cuanto más compatible es un zkEVM con Ethereum, menor es su rendimiento. (Para obtener más información sobre los tipos de zkEVM, vaya al final del artículo).
Enfoque Cairo-VM
La solución zkEVM dedica mucho tiempo de desarrollo a "hacer que EVM funcione para Validity Rollups", priorizando la compatibilidad sobre el rendimiento y la escalabilidad a largo plazo. Hay otra opción: usar una nueva máquina virtual dedicada y agregar soporte para las herramientas de Ethereum en la parte superior como una capa adicional. Este es el enfoque adoptado por Starknet, un paquete acumulativo de validez sin permiso que se lanzará en noviembre de 2021. Starknet es el primer Validity Rollup que ofrece una plataforma de contrato inteligente de propósito general en una red totalmente componible.
Starknet usa Cairo-VM (CVM), un lenguaje de alto nivel del mismo nombre. Cairo-VM es una VM diseñada para la generación eficiente de pruebas de validez de ejecución de programas.
Utilizando Cairo (máquina virtual y lenguaje), tenemos:
Prueba de la eficacia de la optimización: cada instrucción tiene una representación algebraica válida
Un lenguaje tipo Rust para escribir programas demostrables
Representación intermedia (Sierra) entre el ensamblaje de alto nivel Cairo y Cairo (instrucciones VM), lo que permite una ejecución eficiente del código Cairo
El desarrollo de un nuevo lenguaje permite adaptarlo a las necesidades específicas que debe cumplir y equiparlo con características que satisfacen necesidades previamente insatisfechas.
El Cairo y el pluralismo de la codificación
Para crear una prueba sobre la validez de algún cálculo, primero se debe expresar el cálculo como una serie de restricciones matemáticas que describen el cálculo. El proceso puede ser complicado debido al desafío de optimizar los cálculos para lograr eficiencia y la necesidad de herramientas especializadas.
El lenguaje Cairo se diseñó originalmente para simplificar esta tarea y facilitar la adición de funcionalidad y lógica comercial compleja a StarkEx. Los programas de Cairo se compilan en código de máquina algebraico, una secuencia de números, que se ejecuta mediante una máquina virtual fija. Con Cairo, toda la complejidad de generar restricciones matemáticas que describen cálculos (un problema espinoso de las pruebas de validez) se abstrae y se captura mediante un conjunto fijo de restricciones (menos de 50 restricciones en total). Como resultado, los desarrolladores pueden aprovechar las pruebas de validez para ampliar sus aplicaciones sin necesidad de comprender la infraestructura y las matemáticas subyacentes, simplemente escribiendo código utilizando una sintaxis con la que están familiarizados.
Starknet se trata de innovación, y esto se refleja en su enfoque diverso de la codificación. La capacidad de Cairo para escalar de manera óptima con STARK no se limita a aquellos que redactan contratos de forma nativa en El Cairo. Los desarrolladores pueden elegir el método que mejor les funcione:
Escriba código de forma nativa en Cairo: Con el lanzamiento de Cairo 1.0, los desarrolladores ahora pueden usar el lenguaje Rust ergonómico y seguro, que hace que escribir la lógica del programa sea más fácil y menos propenso a errores.
**Compatibilidad con Solidity:**Los desarrolladores de Solidity pueden escribir código que puede ser utilizado por Cairo VM. Este enfoque proporciona una experiencia de desarrollador similar a Ethereum y hace que los contratos inteligentes de Solidity sean portátiles para Starknet. Hay dos maneras de lograr esto:
**Traducción: **La traducción es el proceso de convertir código fuente escrito en un lenguaje de programación a otro lenguaje. El equipo de Nethermind creó el transpilador Warp para transpilar el código de Solidity a El Cairo. Warp hace que los contratos inteligentes de Solidity sean portátiles para Starknet, convirtiéndolo efectivamente en un zkEVM Tipo 4. Se ha utilizado para traducir e implementar contratos de Uniswap con cambios mínimos.
zkEVM en Starknet: La máquina virtual Cairo se puede usar para atestiguar la ejecución de otra máquina virtual. Kakarot es un zkEVM escrito en El Cairo que se puede usar para ejecutar contratos inteligentes de Ethereum en Starknet. Cairo VM y zkEVM no son enfoques competitivos, ¡podemos tener Cairo VM y zkEVM en lugar de elegir entre Cairo VM y zkEVM!
A pesar de su corta existencia, Cairo es el cuarto lenguaje de contrato inteligente más popular de TVL y ha recibido más de 350 millones de dólares en financiación.
Resumir
**zkEVM tiene como objetivo replicar el entorno de Ethereum como un paquete acumulativo y permitir que los desarrolladores utilicen herramientas familiares de Ethereum. Sin embargo, este enfoque inhibe todo el potencial de las pruebas de validez y puede requerir muchos recursos. **
Cairo VM está diseñado para sistemas de prueba de validez sin las limitaciones de EVM. Está respaldado por un lenguaje de programación nuevo, seguro y ergonómico inspirado en Rust llamado Cairo 1.0, que forma una poderosa herramienta destinada a obtener la máxima eficiencia al escalar Ethereum con pruebas STARK.
Ha sido emocionante ver lo que logra Cairo cada semana y el crecimiento de diferentes opciones para los desarrolladores, como Kakarot zkEVM y Warp. A medida que Starknet dApp entra en producción, demostrando el poder de El Cairo, creemos que se utilizará para proyectos más ambiciosos en el futuro.
Gracias a las tres vías para el escalado de STARK descritas anteriormente, y otras que sin duda estarán disponibles en los próximos meses, los desarrolladores ahora tienen un control sin precedentes sobre el escalado de la cadena de bloques.
Ver originales
El contenido es solo de referencia, no una solicitud u oferta. No se proporciona asesoramiento fiscal, legal ni de inversión. Consulte el Descargo de responsabilidad para obtener más información sobre los riesgos.
¿Por qué Validity Rollups es la forma más prometedora de escalar Ethereum?
Autor: StarkWare; Compilador: Bumpman
Resumen
Los rollups son un tema candente este año cuando se habla de escalar Ethereum. Entre los diversos tipos de acumulaciones, creemos que las acumulaciones de validez (VR), también conocidas como acumulaciones de zk, son la forma más prometedora de aumentar el rendimiento de Ethereum de manera segura y descentralizada. En el corazón de esta solución de escalado se encuentra el cálculo verificable mediante pruebas de validez. Así es como funcionan:
En lugar de procesar cada transacción en la red principal de Ethereum, los operadores descargan la ejecución de transacciones en un entorno fuera de la cadena. Este entorno fuera de la cadena actúa como la capa 2, es decir, la capa que se ejecuta sobre Ethereum.
Después de procesar una gran cantidad de transacciones, los operadores de la capa 2 devuelven resultados para aplicar al estado de Ethereum, junto con pruebas de validez para verificar la integridad de la ejecución fuera de la cadena. Esta prueba garantiza que todas las transacciones en un lote son válidas y verificadas de forma autónoma por el contrato de validación en cadena. Esto permite que Ethereum aplique el resultado a su estado.
Paquetes acumulativos de validez
Nota: los paquetes acumulativos de validez a menudo se denominan incorrectamente paquetes acumulativos de conocimiento cero, pero esto no es exacto. La mayoría de los paquetes acumulativos de validez no utilizan ZKP ni se utilizan con fines de privacidad. Por lo tanto, el término "Acumulación de validez" es más preciso.
máquina virtual fuera de la cadena
Antes de continuar, la primera pregunta que debemos responder es: **¿Qué es una máquina virtual (VM)? En pocas palabras, es un entorno en el que se pueden ejecutar los programas, al igual que una Mac con el sistema operativo Windows. Realiza transiciones entre estados después de realizar cálculos en algunas entradas. La máquina virtual de Ethereum (EVM) es la máquina virtual que ejecuta los contratos inteligentes de Ethereum. **
** Una máquina virtual de conocimiento cero (zkVM) es un entorno de ejecución de programas que, junto con la salida del programa, permite generar pruebas de validez que se pueden verificar fácilmente. **Esta prueba de validez certifica que el programa se ha realizado correctamente. **Cuando se usa el término "zkEVM", generalmente se refiere a una agregación que utiliza la máquina virtual Ethereum (EVM) y puede dar fe de la ejecución de la EVM. **Esta terminología puede ser engañosa porque el EVM en sí mismo no genera estas pruebas; en cambio, las pruebas son generadas por un mecanismo de prueba separado que comienza con los resultados de la ejecución del EVM. Además, estas pruebas tienen que ver con la validez, no con la privacidad, por lo que no son exactamente pruebas de conocimiento cero. No obstante, en aras de la coherencia, nos atendremos al término tradicional "zkEVM" a lo largo de este artículo.
Si bien todos los paquetes acumulativos de validez tienen como objetivo escalar Ethereum con prueba de validez, difieren en la elección de máquinas virtuales para ejecutar transacciones fuera de la cadena. Muchos paquetes acumulativos de validez eligen replicar el diseño de EVM (de ahí el término "paquetes acumulativos zkEVM"), intentando replicar Ethereum en paquetes acumulativos L2. Starknet utiliza un nuevo tipo de máquina virtual, la máquina virtual Cairo (CVM), diseñada específicamente para optimizar la eficiencia de la prueba de validez.
Estos dos métodos tienen sus propias ventajas y desventajas, pero zkEVM intercambia rendimiento por compatibilidad con Ethereum, mientras que Cairo VM prioriza el rendimiento sobre la compatibilidad y la escalabilidad.
Enfoque zkEVM
**zkEVM es un paquete acumulativo de validez cuyo objetivo es llevar completamente la experiencia de Ethereum a las cadenas de bloques de capa 2. Su objetivo es replicar el entorno de desarrollo de Ethereum como un paquete acumulativo. **Con zkEVM, los desarrolladores no necesitan cambiar su código ni abandonar sus herramientas EVM (y contratos inteligentes) al escribir contratos inteligentes o transferir contratos inteligentes a soluciones más escalables.
Una gran desventaja de este enfoque es que reduce el potencial de escalamiento de las pruebas de validez. Dado que zkEVM tiene como objetivo ser compatible con Ethereum, es más lento y consume más recursos. A diferencia de CVM, EVM no se diseñó teniendo en cuenta la eficiencia de las pruebas. Esto limita el uso de optimizaciones que pueden mejorar la eficiencia y la escalabilidad, lo que en última instancia afecta el rendimiento general del sistema.
Probabilidad de la EVM
El principal desafío del enfoque zkEVM tiene sus raíces en el modelo original de EVM: no fue diseñado para operar en el contexto de la prueba de validez. Como resultado, los esfuerzos para reflejar su funcionalidad no logran desbloquear todo el potencial de las pruebas de validez, lo que da como resultado niveles de eficiencia subóptimos. Esta ineficiencia en última instancia reduce el rendimiento general del sistema. La compatibilidad de EVM con las pruebas de validez se ve obstaculizada por:
**El EVM usa un modelo basado en pilas, mientras que la prueba de eficiencia es más eficiente para un modelo basado en registros. La naturaleza basada en pilas de EVM hace que sea más difícil probar que su ejecución es correcta y brindar soporte directo para su cadena de herramientas nativa. **
El diseño de almacenamiento de Ethereum se basa en gran medida en Keccak y un gran Merkle Patricia Tree, los cuales son malos para las pruebas de validez e imponen una gran carga de prueba. Por ejemplo, Keccak es muy rápido para la arquitectura x86 (en la que normalmente ejecutamos el EVM), pero requiere 90 000 pasos para probar (compilación especial integrada). Mientras que Pedersen (una función hash compatible con zk) requiere 32 pasos. Incluso con la compresión recursiva, el uso de Keccak en zkEVM significa una gran cantidad de recursos de prueba que, en última instancia, paga el usuario.
Como resultado, varios zkEVM están diseñados para proporcionar diferentes niveles de soporte para las herramientas de Ethereum: cuanto más compatible es un zkEVM con Ethereum, menor es su rendimiento. (Para obtener más información sobre los tipos de zkEVM, vaya al final del artículo).
Enfoque Cairo-VM
La solución zkEVM dedica mucho tiempo de desarrollo a "hacer que EVM funcione para Validity Rollups", priorizando la compatibilidad sobre el rendimiento y la escalabilidad a largo plazo. Hay otra opción: usar una nueva máquina virtual dedicada y agregar soporte para las herramientas de Ethereum en la parte superior como una capa adicional. Este es el enfoque adoptado por Starknet, un paquete acumulativo de validez sin permiso que se lanzará en noviembre de 2021. Starknet es el primer Validity Rollup que ofrece una plataforma de contrato inteligente de propósito general en una red totalmente componible.
Starknet usa Cairo-VM (CVM), un lenguaje de alto nivel del mismo nombre. Cairo-VM es una VM diseñada para la generación eficiente de pruebas de validez de ejecución de programas.
Utilizando Cairo (máquina virtual y lenguaje), tenemos:
Prueba de la eficacia de la optimización: cada instrucción tiene una representación algebraica válida
Un lenguaje tipo Rust para escribir programas demostrables
Representación intermedia (Sierra) entre el ensamblaje de alto nivel Cairo y Cairo (instrucciones VM), lo que permite una ejecución eficiente del código Cairo
El desarrollo de un nuevo lenguaje permite adaptarlo a las necesidades específicas que debe cumplir y equiparlo con características que satisfacen necesidades previamente insatisfechas.
El Cairo y el pluralismo de la codificación
Para crear una prueba sobre la validez de algún cálculo, primero se debe expresar el cálculo como una serie de restricciones matemáticas que describen el cálculo. El proceso puede ser complicado debido al desafío de optimizar los cálculos para lograr eficiencia y la necesidad de herramientas especializadas.
El lenguaje Cairo se diseñó originalmente para simplificar esta tarea y facilitar la adición de funcionalidad y lógica comercial compleja a StarkEx. Los programas de Cairo se compilan en código de máquina algebraico, una secuencia de números, que se ejecuta mediante una máquina virtual fija. Con Cairo, toda la complejidad de generar restricciones matemáticas que describen cálculos (un problema espinoso de las pruebas de validez) se abstrae y se captura mediante un conjunto fijo de restricciones (menos de 50 restricciones en total). Como resultado, los desarrolladores pueden aprovechar las pruebas de validez para ampliar sus aplicaciones sin necesidad de comprender la infraestructura y las matemáticas subyacentes, simplemente escribiendo código utilizando una sintaxis con la que están familiarizados.
Starknet se trata de innovación, y esto se refleja en su enfoque diverso de la codificación. La capacidad de Cairo para escalar de manera óptima con STARK no se limita a aquellos que redactan contratos de forma nativa en El Cairo. Los desarrolladores pueden elegir el método que mejor les funcione:
Escriba código de forma nativa en Cairo: Con el lanzamiento de Cairo 1.0, los desarrolladores ahora pueden usar el lenguaje Rust ergonómico y seguro, que hace que escribir la lógica del programa sea más fácil y menos propenso a errores.
**Compatibilidad con Solidity:**Los desarrolladores de Solidity pueden escribir código que puede ser utilizado por Cairo VM. Este enfoque proporciona una experiencia de desarrollador similar a Ethereum y hace que los contratos inteligentes de Solidity sean portátiles para Starknet. Hay dos maneras de lograr esto:
**Traducción: **La traducción es el proceso de convertir código fuente escrito en un lenguaje de programación a otro lenguaje. El equipo de Nethermind creó el transpilador Warp para transpilar el código de Solidity a El Cairo. Warp hace que los contratos inteligentes de Solidity sean portátiles para Starknet, convirtiéndolo efectivamente en un zkEVM Tipo 4. Se ha utilizado para traducir e implementar contratos de Uniswap con cambios mínimos.
zkEVM en Starknet: La máquina virtual Cairo se puede usar para atestiguar la ejecución de otra máquina virtual. Kakarot es un zkEVM escrito en El Cairo que se puede usar para ejecutar contratos inteligentes de Ethereum en Starknet. Cairo VM y zkEVM no son enfoques competitivos, ¡podemos tener Cairo VM y zkEVM en lugar de elegir entre Cairo VM y zkEVM!
A pesar de su corta existencia, Cairo es el cuarto lenguaje de contrato inteligente más popular de TVL y ha recibido más de 350 millones de dólares en financiación.
Resumir
**zkEVM tiene como objetivo replicar el entorno de Ethereum como un paquete acumulativo y permitir que los desarrolladores utilicen herramientas familiares de Ethereum. Sin embargo, este enfoque inhibe todo el potencial de las pruebas de validez y puede requerir muchos recursos. **
Cairo VM está diseñado para sistemas de prueba de validez sin las limitaciones de EVM. Está respaldado por un lenguaje de programación nuevo, seguro y ergonómico inspirado en Rust llamado Cairo 1.0, que forma una poderosa herramienta destinada a obtener la máxima eficiencia al escalar Ethereum con pruebas STARK.
Ha sido emocionante ver lo que logra Cairo cada semana y el crecimiento de diferentes opciones para los desarrolladores, como Kakarot zkEVM y Warp. A medida que Starknet dApp entra en producción, demostrando el poder de El Cairo, creemos que se utilizará para proyectos más ambiciosos en el futuro.
Gracias a las tres vías para el escalado de STARK descritas anteriormente, y otras que sin duda estarán disponibles en los próximos meses, los desarrolladores ahora tienen un control sin precedentes sobre el escalado de la cadena de bloques.