Prueba detallada de validez Características técnicas de Rollup y Cairo VM

Fuente: Escalar Ethereum de manera eficiente; Compilación: Comunidad china de Starknet

descripción general

  • La acumulación de prueba de validez es la forma más potencial de aumentar el rendimiento de Ethereum de una manera segura y descentralizada; zkEVM y Cairo VM (CVM) son las dos máquinas virtuales (VM) utilizadas en el tipo de acumulación de prueba de validez.
  • zkEVM se centra en la compatibilidad con Ethereum a expensas del rendimiento y la escalabilidad.
  • La máquina virtual Cairo adoptada por Starknet prioriza el rendimiento y la escalabilidad sobre la compatibilidad.

Los rollups fueron un tema candente este año sobre la escala de Ethereum. Entre varios tipos de Rollup, creemos que Validity Proof Rollup (en adelante, VR o zk-rollup) es la solución de expansión más prometedora para aumentar el rendimiento de Ethereum de una manera segura y descentralizada. El núcleo de este esquema de expansión es el uso de pruebas de validez para cálculos verificables. Así es como funciona:

  • A diferencia del procesamiento de cada transacción en la red principal de Ethereum, el operador ejecuta la transacción en un entorno fuera de la cadena. El entorno fuera de la cadena es L2, la capa operativa que se ejecuta sobre Ethereum.
  • Una vez que se completa el procesamiento de la transacción masiva, el operador L2 devuelve el resultado al estado Ethereum, junto con una prueba de validez para verificar la integridad de la ejecución fuera de la cadena. Esta prueba garantiza que todas las transacciones en el mismo lote son válidas y verificadas de forma autónoma por el contrato de verificación en cadena. Esta operación permite que Ethereum aplique el resultado a su estado.

Características técnicas detalladas de Rollup y Cairo VM para prueba de validez

Resumen de prueba de validez

Tenga en cuenta: los paquetes acumulativos de prueba de validez a menudo se denominan erróneamente acumuladores de conocimiento cero (zkRollup), lo cual no es exacto. La mayoría de las acumulaciones de pruebas de validez no emplean pruebas de conocimiento cero ni se utilizan para garantizar la privacidad. Por lo tanto, el término "Acumulación de prueba de validez" es más preciso.

máquina virtual fuera de la cadena

Antes de continuar, debemos responder la primera pregunta: ¿qué es una máquina virtual (VM)? En resumen, una máquina virtual es un entorno en el que se pueden ejecutar programas, como un sistema operativo Windows que se ejecuta en una Mac. La VM realiza transiciones entre estados después de realizar cálculos en alguna entrada. 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, genera pruebas de validez fácilmente verificables. La prueba de validez se utiliza para demostrar que un programa se ha ejecutado correctamente. Cuando se usa el término "zkEVM", generalmente se refiere a un paquete acumulativo que ejecuta 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 por sí mismo no puede generar estas pruebas; en cambio, las pruebas son producidas por un mecanismo de prueba separado que toma el resultado de la ejecución del EVM como punto de partida. Además, las pruebas anteriores están todas relacionadas con la validez y no tienen nada que ver con la privacidad. Por lo tanto, no puede llamarse una prueba de conocimiento cero para ser precisos. Por consistencia, el término tradicional "zkEVM" todavía se usa en este artículo.

Si bien todos los paquetes acumulativos de prueba de validez tienen como objetivo escalar Ethereum con prueba de validez, los diferentes esquemas toman decisiones diferentes sobre cómo la máquina virtual ejecuta transacciones fuera de la cadena. Muchas pruebas de validez del paquete acumulativo eligieron replicar el diseño de EVM (de ahí el nombre "paquete acumulativo zkEVM"), intentando replicar Ethereum en un paquete acumulativo L2. Starknet utiliza Cairo VM (CVM), una nueva máquina virtual diseñada para optimizar la eficiencia de la prueba de validez.

Los dos métodos anteriores tienen sus propias ventajas y desventajas y compensaciones, pero zkEVM sacrifica el rendimiento por la compatibilidad con Ethereum, mientras que Cairo VM antepone el rendimiento a la compatibilidad y prioriza la escalabilidad.

Comprender cómo funciona zkEVM

zkEVM es un paquete acumulativo de prueba de validez diseñado para introducir completamente la experiencia Ethereum en la cadena de bloques L2. El propósito es replicar el entorno de desarrollo de Ethereum en Rollup. Con zkEVM, los desarrolladores no necesitan ajustar el código ni abandonar las herramientas EVM originales (y los contratos inteligentes) al escribir o transferir contratos inteligentes a soluciones de expansión.

Este enfoque tiene un defecto clave, que reduce la escalabilidad de las pruebas de validez. Debido al enfoque en ser compatible con Ethereum, zkEVM es más lento y consume más recursos. A diferencia de CVM, EVM no está diseñado teniendo en cuenta la eficiencia de las pruebas. Esto limita el uso de optimizaciones para 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 radica en el modelo original arraigado del EVM, que originalmente no fue diseñado para ejecutarse en un entorno de prueba de validez. Por lo tanto, si se pone todo el esfuerzo en realizar las funciones de Ethereum, no se puede liberar todo el potencial de la prueba de validez, lo que resulta en una eficiencia insatisfactoria. Esta ineficiencia en última instancia reduce el rendimiento general del sistema. La compatibilidad de EVM con las pruebas de validez se ve obstaculizada por:

  • **EVM utiliza un modelo basado en pilas, mientras que la validez demuestra ser más eficiente para un modelo basado en registros. **La naturaleza basada en pilas de EVM hace que sea inherentemente más difícil probar la corrección de su ejecución y brinda soporte directo para su cadena de herramientas nativa.
  • **El diseño de almacenamiento de Ethereum depende en gran medida de los árboles Keccak y Merkle Patricia, los cuales no son compatibles con las pruebas de validez y conllevan una gran carga de pruebas. **Por ejemplo, Keccak es muy rápido para arquitecturas x86 (generalmente se usa para ejecutar EVM), pero requiere 90k pasos para probar (requiere funciones integradas especiales). Mientras que Pedersen (una función hash amigable con el conocimiento cero) requiere solo 32 pasos. Incluso con la compresión recursiva, el uso de Keccak en zkEVM aún consume una gran cantidad de recursos del probador y, en última instancia, el costo corre a cargo del usuario.

Por lo tanto, varios tipos de zkEVM están diseñados para proporcionar diferentes niveles de soporte para las herramientas de Ethereum, pero cuanto mayor sea la compatibilidad de zkEVM con Ethereum, menor será el rendimiento. (consulte el final del artículo para obtener más tipos de zkEVM)

Características técnicas detalladas de Rollup y Cairo VM para prueba de validez

Comprender cómo funciona Cairo-VM

La solución zkEVM ha invertido mucho tiempo de desarrollo en "hacer que EVM sea adecuado para Validity Proof Rollup", priorizando la compatibilidad sobre el rendimiento y la escalabilidad a largo plazo. Hay otra opción: adoptar una nueva máquina virtual dedicada y agregar una capa adicional para admitir las herramientas de Ethereum. Ese es el paso que está tomando Starknet, lanzando un paquete acumulativo de prueba de validez sin permiso en noviembre de 2021. Starknet es el primer paquete acumulativo de prueba de validez que implementa una plataforma de contrato inteligente de propósito general en una red totalmente componible.

Starknet adopta Cairo-VM (CVM) y crea el lenguaje de alto nivel Cairo del mismo nombre. Cairo-VM está diseñado para la generación eficiente de pruebas de validez de la ejecución del programa.

Con Cairo (VM y lenguaje de programación) es posible:

  1. Prueba de la efectividad de la optimización, cada instrucción tiene una expresión algebraica válida
  2. Un lenguaje moderno similar a Rust para escribir programas comprobables
  3. Expresiones intermedias (Sierra) entre el lenguaje Cairo de alto nivel y el ensamblaje Cairo (instrucciones VM), que pueden ejecutar el código Cairo de manera eficiente

El desarrollo de un lenguaje completamente nuevo se puede adaptar a necesidades específicas, puede incluir características que no estaban disponibles antes y satisfacer nuevas necesidades.

El Cairo y el pluralismo de la codificación

Para crear una prueba de la validez de algún cálculo, ese cálculo primero debe expresarse como una serie de restricciones matemáticas que describen el cálculo. El proceso es complejo, la dificultad radica en optimizar los cálculos para la eficiencia y se requieren herramientas específicas.

El lenguaje Cairo fue diseñado para simplificar esta tarea para que StarkEx pueda agregar fácilmente funcionalidad y lógica comercial compleja. Los programas de Cairo se compilan en código de máquina algebraico, una secuencia de números, ejecutados por una única máquina virtual fija. Con Cairo, el complejo proceso de generar restricciones matemáticas que describen cálculos (muy complicado para las pruebas de validez) se abstrae y se expresa como un conjunto fijo de restricciones (menos de 50 restricciones en total). Esto permite a los desarrolladores ampliar las aplicaciones con pruebas de validez al escribir código en una sintaxis familiar sin comprender las matemáticas y la infraestructura subyacentes.

El compromiso de Starknet con la innovación es evidente en su enfoque de la pluralización del código. Cairo adopta la tecnología STARK para lograr funciones de extensión óptimas, sin limitarse a redactar contratos con el entorno local de Cairo. Los desarrolladores también pueden elegir el método más adecuado:

  • **Codificación local en El Cairo:**Cairo 1.0 está inspirado en Rust, que está más en línea con los hábitos de uso de los desarrolladores y es más seguro. Escribir la lógica del programa se vuelve más fácil y menos propenso a errores.
  • **Compatibilidad con Solidity: **Los desarrolladores de Solidity pueden escribir código compatible con Cairo VM. Este enfoque brinda una experiencia de desarrollador similar a Ethereum y admite la migración de contratos inteligentes de Solidity a Starknet. Hay dos formas de implementar la migración:
  • **Traducción: **La traducción es el proceso de convertir el código fuente de un lenguaje de programación a otro lenguaje. El equipo de Nethermind construyó 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, lo que lo convierte en un cuarto tipo de zkEVM. Actualmente se utiliza 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 están en competencia, en lugar de elegir entre los dos, ¡es mejor tener ambos!

Aunque Cairo no existe desde hace mucho tiempo, según las clasificaciones de TVL, Cairo es el cuarto lenguaje de programación de contratos inteligentes más popular, con una valoración de más de 350 millones de dólares.

Resumir

zkEVM tiene como objetivo replicar el entorno de desarrollo de Ethereum en Rollup y permitir que los desarrolladores utilicen herramientas familiares de Ethereum. Pero este enfoque limita el potencial de las pruebas de validez y requiere muchos recursos.

El Cairo VM, diseñado para pruebas de validez, no está sujeto a las limitaciones del EVM. Cairo VM es compatible con Cairo 1.0. Inspirado en el lenguaje Rust, Cairo 1.0 está más en línea con los hábitos de los desarrolladores y es más seguro, formando una poderosa herramienta diseñada para usar STARK para probar la expansión eficiente de Ethereum.

Es emocionante ver cómo se desarrolla Cairo cada semana, y las opciones para desarrolladores como Kakarot zkEVM y Warp están creciendo. Con Starknet dApps en producción, demostrando el poder de Cairo, creemos firmemente que en el futuro, Cairo generará proyectos sobresalientes que nunca antes se habían visto.

Anteriormente se han descrito tres caminos para la expansión de SATRK y, sin duda, habrá más innovaciones en los próximos meses. Los desarrolladores ahora tienen un control sin precedentes sobre el escalado de cadenas de bloques.

tipo zkEVM

Vitalik divide zkEVM en cuatro tipos principales:

  • **Equivalente completo de Ethereum de la primera categoría: **No cambia ninguna parte del ecosistema de Ethereum.
  • **El segundo tipo de EVM completamente equivalente: ** puede ser compatible con las dApps existentes y realizar algunos ajustes en el diseño de Ethereum para acelerar la generación de pruebas.
  • **La tercera categoría es más o menos equivalente a EVM: **Admite la mayoría de los códigos de operación de EVM, elimina algunas funciones que zkEVM es difícil de implementar (como las funciones de precompilación y hash).
  • **El cuarto tipo de lenguaje de alto nivel equivalente: **Utilice Solidity/Vyper para escribir código de contrato inteligente y traducirlo a un lenguaje compatible con pruebas válido.
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.
  • Recompensa
  • Comentar
  • Compartir
Comentar
0/400
Sin comentarios
  • Anclado
Comercie con criptomonedas en cualquier lugar y en cualquier momento
qrCode
Escanee para descargar la aplicación Gate.io
Comunidad
Español
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • ไทย
  • Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)