Foresight Ventures: Decodificando zk, zkVM, zkEVM y su Futuro

Principiante12/27/2023, 3:12:52 PM
Este artículo proporciona una introducción detallada a conceptos como zk, zkVM, zkEVM, etc., con el objetivo de brindar una comprensión más profunda de la tecnología zk a través de un análisis directo.

TL; DR

  • La tecnología de prueba de conocimiento cero garantiza la integridad, corrección y privacidad de las computaciones, con aplicaciones en la escalabilidad y privacidad de la cadena de bloques.
  • zk-SNARK y zk-STARK tienen cada uno sus ventajas, y su combinación razonable posee aún más potencial.
  • zkVM potencia aplicaciones con capacidades de prueba de conocimiento cero y se categoriza en implementaciones convencionales, EVM o basadas en nuevo conjunto de instrucciones.
  • La adaptación de EVM incluye compatibilidad, equivalencia y cumplimiento de especificaciones de EVM.
  • zkEVM es un entorno compatible con EVM y amigable con las pruebas de conocimiento cero, que se divide en variantes nativas y compiladas.
  • zkEVM nativo es el futuro de Ethereum y blockchain.
  • Un zkVM de propósito general que admite el ecosistema de Solidity es el futuro de Web3.

0. Pruebas de conocimiento cero

Aquí hay una introducción simple y fácil de entender a las pruebas de conocimiento cero:

Imagina que estás en la escuela primaria. El maestro es el verificador y tú, como estudiante, eres el probador. ¿Cómo puedes demostrar que comprendes la fórmula para resolver ecuaciones cuadráticas? Ahí es donde entra en juego un examen de matemáticas.

El profesor te dará aleatoriamente 10 preguntas relacionadas, y si realmente comprendes el concepto, podrás resolver todas ellas. Durante este proceso, no necesitas recitar ni escribir el contenido específico de la fórmula, pero el profesor puede verificar fácilmente tu nivel de conocimiento.

De hecho, este es el método utilizado por Tartaglia y Cardano (sí, ese es el nombre) para competir por quién descubrió la solución a la ecuación cúbica. Ambos no querían revelar el contenido de sus fórmulas entre sí, pero a través de la resolución de problemas, podían verificar y determinar fácilmente si dominaban este conocimiento sin revelar los detalles.

¿Cuál es el propósito de las pruebas de conocimiento cero? El propósito es ahorrar potencia computacional y reducir el espacio en cadena en todo el proceso. Además, puede proporcionar protección de privacidad, alineándose con las características de la falta de confianza en blockchain y los principios de la criptografía.

1. SNARK y STARK

En el campo de la cadena de bloques, el término "zk" utilizado o mencionado generalmente no se refiere a pruebas reales de conocimiento cero, sino que a menudo se refiere a pruebas de validez. Debido a la confusión en la terminología, ciertas partes de este texto seguirán utilizando estos términos "mal utilizados".

En el panorama actual de la cadena de bloques, zk puede considerarse como la solución principal y óptima para la escalabilidad de la cadena de bloques (no es verdadero zk sino más bien Prueba de Validez), y la tecnología de privacidad (verdadero zk) que se utiliza en proyectos como Tornado.cash, ZCash, zkSync, zk.money, Filecoin y Mina.

Las soluciones técnicas actuales se dividen principalmente en dos categorías: SNARK y STARK. En STARK, la "S" significa escalable, lo que significa que las declaraciones probadas tienen estructuras repetitivas, mientras que SNARK admite circuitos arbitrarios que se procesan previamente para lograr pruebas concisas. Entre ellos, la implementación práctica de SNARKs ha tomado la posición principal, mientras que STARKs se adoptan principalmente a gran escala en los productos lanzados por StarkWare. A continuación se muestra una comparación entre ellos.

Desde la perspectiva de Meme, STARK es mejor que SNARK (😊, Star Wars, Star Trek).

Si SNARK es el futuro de Ethereum 2.0, entonces STARK será el futuro de Ethereum 3.0. En serio, las ventajas de STARK son:

  • Tarifas de gas más bajas (mejor escalabilidad)
  • Tamaño de lote más grande (escalabilidad mucho mejor)
  • Pruebas más rápidas (más que una mejor escalabilidad)
  • No configuración de confianza (los parámetros generados solo son válidos para la aplicación actual, y si se producen modificaciones, se requiere una nueva configuración)
  • Seguridad post-cuántica

Sin embargo, las pruebas generadas por STARK son significativamente grandes en tamaño. Debido a ciertas limitaciones, como las impuestas por WASM, pueden ser necesarias operaciones adicionales durante la construcción (aquí nos referimos a SNARK). Recientemente, Mir proporcionó una implementación práctica de un STARK basado en AIR utilizando Starky, que es parte de Plonky2 (la relación entre Plonky2 y Starky es bastante compleja...). En mi opinión personal, aunque el tamaño se puede optimizar utilizando diversas técnicas, es difícil comprimir aún más la complejidad temporal del propio algoritmo.

Estas tecnologías de prueba de conocimiento cero pueden combinarse de manera razonable para construir aplicaciones más potentes. Por ejemplo, Polygon Hermez utiliza SNARK para verificar la corrección de STARK, reduciendo así la tarifa de gas al publicar la prueba.

En general, SNARK y STARK son ambas excelentes tecnologías de prueba de conocimiento cero, cada una con sus propias fortalezas, y su combinación razonable tiene incluso más potencial.

2. zkVM

Las aplicaciones previamente mencionadas Tornado.cash y zk.money son aplicaciones similares que solo admiten operaciones de transferencia utilizando pruebas de conocimiento cero. No admiten cálculos de propósito general. En comparación, estas aplicaciones solo tienen la funcionalidad de Bitcoin, mucho menos que el Ethereum completo de Turing, y mucho menos la construcción de un ecosistema (Los contratos inteligentes en Bitcoin aún tienen que establecer un ecosistema próspero).

zkVM es una máquina virtual que garantiza propiedades seguras, verificables y confiables utilizando pruebas de conocimiento cero. En términos simples, toma un estado antiguo y un programa como entrada y devuelve un estado nuevo. Potencia todas las aplicaciones con el superpoder de las pruebas de conocimiento cero.

La presentación de Miden en ETH Amsterdam resumió eficazmente lo que es zkVM con una sola diapositiva.

Ventajas de zkVM:

  • Fácil de usar: los desarrolladores pueden usar zkVM para ejecutar programas y garantizar la seguridad computacional sin tener que aprender criptografía o desarrollo de conocimiento cero (esto no significa que no haya barreras de entrada).
  • Universal: zkVM puede generar pruebas para cualquier programa y cálculo.
  • Conciso: Se puede describir todo el VM con relativamente pocas restricciones, sin tener que generar repetidamente todo el circuito del VM.
  • Recursión: Función de recursión libre. Similar a su universalidad, la verificación de la VM se puede hacer utilizando la propia VM. Esto es bastante interesante, por ejemplo, puedes tener un zkVM dentro de un zkVM, similar al concepto de L3 mencionado por StarkWare.

Desventajas de zkVM:

  • Arquitectura computacional específica: No todos los sistemas de prueba de conocimiento cero se pueden utilizar para zkVM.
  • Problemas de rendimiento: Los circuitos deben ser optimizados y pueden ser optimizados específicamente para ciertos cálculos.

Actualmente, hay tres tipos principales de zkVM, con sus respectivos conjuntos de instrucciones entre paréntesis: Mainstream (WASM, RISC-V), EVM (código de bytes de EVM), ZK-Optimized (un nuevo conjunto de instrucciones optimizado para pruebas de conocimiento cero, como Cairo y zkSync). A continuación se muestra una tabla comparativa de estos tipos basada en la presentación de Miden en ETH Amsterdam.

Muchas cosas realizadas en el ecosistema de desarrollo de pruebas de conocimiento cero se tratan principalmente de habilitar a los desarrolladores para usar la biblioteca Circom (y snarkyjs, por ejemplo) u otros lenguajes recientemente creados (como Leo o Cairo, que tienen sus limitaciones únicas) para el desarrollo de aplicaciones descentralizadas zk generales. Sin embargo, esto no es tan directo y fácil de aprender como usar Solidity en Ethereum.

Además, hay muchos proyectos como zkSync, Scroll, o varios bajo el paraguas de Polygon que están experimentando con soluciones zkEVM u otras soluciones zkVM.

3. EVM

La EVM es la máquina virtual de Ethereum, que también puede entenderse como un conjunto de entornos de ejecución para ejecutar contratos inteligentes.

A lo largo de los años, varias blockchains públicas han estado intentando continuamente volverse compatibles con la EVM, integrándose así en el ecosistema de desarrollo de Ethereum. Este concepto ha dado lugar a la derivación de términos como compatibilidad con EVM, equivalencia con EVM y otras definiciones.

  • Compatibilidad con EVM: Adaptación a nivel de lenguaje, como con Solidity.
  • Equivalencia de EVM: Adaptación a nivel de bytecode de EVM.
  • Adaptación de la Especificación EVM: Esto es lo que suele denominarse como el verdadero zkEVM. En la mayoría de los casos, es incluso un subconjunto optimizado compatible con versiones anteriores que puede ofrecer características no proporcionadas por la EVM, como la abstracción de cuentas (donde cada cuenta es un contrato inteligente).

4. zkEVM

Vamos a interpretar más a fondo zkEVM. Por definición, zkEVM es una máquina virtual compatible con EVM y también amigable con las pruebas de conocimiento cero, asegurando la completa corrección de programas, operaciones y entrada/salida.

Para lograr la computación universal, hay dos desafíos principales en el desarrollo de zkEVM:

a) Complejidad del circuito

Diferentes contratos requieren la generación de diferentes circuitos, y estos circuitos son bastante ‘complejos’.

Este aspecto se basa principalmente en varias optimizaciones. Por ejemplo, Aleo (aunque no es del tipo ZK directo... solo un ejemplo de optimización) utiliza clústeres distribuidos para cálculos de prueba concurrentes, u varias optimizaciones de hardware para aceleración.

b) Dificultades de diseño

zkEVM requiere no solo una reconstrucción del EVM, sino también una reconstrucción de toda la transición de estado de Ethereum utilizando la tecnología de prueba de conocimiento cero.

El diseño original de EVM no anticipó el desarrollo de zkEVM, lo que condujo a dificultades significativas. Esto ha resultado en dos enfoques, como se ilustra en el diagrama.

O, para distinguir según la arquitectura de una Máquina Virtual (VM), como en el diagrama a continuación (¡muchas gracias a Scroll Tech por el resumen de imagen original!). Opcode se refiere a Opcode de EVM. La sección de StarkWare utiliza Warp para convertir contratos de Solidity en contratos de Cairo, o puede escribir contratos directamente en Cairo, y aún así obtener una buena experiencia de desarrollo y un conjunto completo de herramientas.

En mi opinión, a nivel de desarrollador y usuario, estas soluciones son básicamente indistinguibles. Sin embargo, en términos de infraestructura, cuanto más a la derecha esté la solución, mejor será la compatibilidad con EVM. Puede integrarse perfectamente con infraestructuras como Geth, pero el progreso en el desarrollo suele ser más lento.

5. zkEVM y zkVM

La existencia de zkEVM, en mi opinión, es innovar y parchear el ecosistema de Ethereum, contribuyendo a la prosperidad de Ethereum y su ecosistema. Por otro lado, la existencia de zkVM puede que no necesariamente fortalezca a Ethereum, pero proporciona una mayor imaginación.

Aunque el Cairo VM de StarkNet puede que no sea el zkVM perfecto que había imaginado, puede hacer más que EVM o zkEVM. Estas funcionalidades van más allá del nivel de extensiones de EIP. En Cairo VM, se pueden ejecutar modelos de aprendizaje automático, e incluso se está construyendo una plataforma de modelos de aprendizaje automático en StarkNet.

Comparado con zkEVM, construir un zkVM es más fácil (sin preocuparse por la deuda técnica de EVM), más flexible (sin preocuparse por las actualizaciones de EVM) y más fácil de optimizar (el optimizador de circuitos y pruebas es mucho más simple y barato que construir zkEVM).

Sin embargo, zkVM tiene una pequeña pero potencialmente fatal desventaja. Si zkVM no puede proporcionar compatibilidad con EVM a nivel de lenguaje Solidity, será difícil para zkVM establecer un ecosistema de desarrollo Web3 completo y maduro similar al de EVM.

zkVM puede ser una tendencia más grande que puede permitir la optimización vertical del EVM y la expansión horizontal del ecosistema EVM, liberándose de las limitaciones del EVM.

6. El Futuro de zkVM

Si pudiera haber un zkVM universal que permitiera contratos inteligentes de todos los lenguajes de programación, no solo Solidity, no solo Cairo, sino Rust, C++, Go, ejecutarse de forma segura con prueba de conocimiento cero, ¿no sería genial? (Stellar lo intentó, pero falló).

Como @kelvinfichtermencionado: ¿Por qué zkEVM si zkMIPS? Como@KyleSamanimencionado: EVM es un error, no una característica. ¿Por qué zkEVM si zkVM?

Winterfall, Distaff, Miden VM, y otros zkVMs no han logrado un alto nivel de amigabilidad para los desarrolladores. Nervos tiene un VM RISC-V, pero no utiliza la tecnología de prueba de conocimiento cero.

La solución óptima en la situación actual es construir un zkVM WASM o RISC-V, incluso mejor si pudiera admitir lenguajes como Rust, Go, C++, e incluso Solidity (zkSync parece poder hacer contribuciones significativas). Si hubiera un zkVM universal de este tipo, sería un golpe significativo para zkEVM.

El número de desarrolladores de Web3 representa aproximadamente el 0.07% de todos los desarrolladores. Esto implica que el número de desarrolladores de Solidity es aún menor que el 0.07%, y aún menos desarrolladores usarían Cairo para escribir contratos o Leo para escribir circuitos. Como resultado, el zkVM perfecto tiene como objetivo satisfacer a casi el 100% de los desarrolladores, ya que cualquier desarrollador puede obtener un entorno de ejecución de conocimiento cero perfecto utilizando casi cualquier lenguaje de programación.

Si Web3 y Crypto llegaran a dominar el mundo algún día, creo que definitivamente no sería el ecosistema EVM ocupando el 100% de todos los desarrolladores, sino que todos los desarrolladores se irían trasladando gradualmente a desarrolladores de Web3 y Crypto. Aquí es donde radica la brillantez del zkVM universal.

La zkEVM nativa es el futuro de la cadena de bloques.

Universal zkVM es el futuro de Web3.

Descargo de responsabilidad:

  1. Este artículo es una reimpresión de [Investigación prospectiva]. Todos los derechos de autor pertenecen al autor original [msfew @ Foresight Ventures]. Si hay objeciones a esta reimpresión, por favor contacta al Gate Learnequipo, y lo resolverán rápidamente.
  2. Descargo de responsabilidad: Las opiniones expresadas en este artículo son únicamente las del autor y no constituyen ningún consejo de inversión.
  3. Las traducciones del artículo a otros idiomas son realizadas por el equipo de Gate Learn. A menos que se mencione, está prohibido copiar, distribuir o plagiar los artículos traducidos.

Foresight Ventures: Decodificando zk, zkVM, zkEVM y su Futuro

Principiante12/27/2023, 3:12:52 PM
Este artículo proporciona una introducción detallada a conceptos como zk, zkVM, zkEVM, etc., con el objetivo de brindar una comprensión más profunda de la tecnología zk a través de un análisis directo.

TL; DR

  • La tecnología de prueba de conocimiento cero garantiza la integridad, corrección y privacidad de las computaciones, con aplicaciones en la escalabilidad y privacidad de la cadena de bloques.
  • zk-SNARK y zk-STARK tienen cada uno sus ventajas, y su combinación razonable posee aún más potencial.
  • zkVM potencia aplicaciones con capacidades de prueba de conocimiento cero y se categoriza en implementaciones convencionales, EVM o basadas en nuevo conjunto de instrucciones.
  • La adaptación de EVM incluye compatibilidad, equivalencia y cumplimiento de especificaciones de EVM.
  • zkEVM es un entorno compatible con EVM y amigable con las pruebas de conocimiento cero, que se divide en variantes nativas y compiladas.
  • zkEVM nativo es el futuro de Ethereum y blockchain.
  • Un zkVM de propósito general que admite el ecosistema de Solidity es el futuro de Web3.

0. Pruebas de conocimiento cero

Aquí hay una introducción simple y fácil de entender a las pruebas de conocimiento cero:

Imagina que estás en la escuela primaria. El maestro es el verificador y tú, como estudiante, eres el probador. ¿Cómo puedes demostrar que comprendes la fórmula para resolver ecuaciones cuadráticas? Ahí es donde entra en juego un examen de matemáticas.

El profesor te dará aleatoriamente 10 preguntas relacionadas, y si realmente comprendes el concepto, podrás resolver todas ellas. Durante este proceso, no necesitas recitar ni escribir el contenido específico de la fórmula, pero el profesor puede verificar fácilmente tu nivel de conocimiento.

De hecho, este es el método utilizado por Tartaglia y Cardano (sí, ese es el nombre) para competir por quién descubrió la solución a la ecuación cúbica. Ambos no querían revelar el contenido de sus fórmulas entre sí, pero a través de la resolución de problemas, podían verificar y determinar fácilmente si dominaban este conocimiento sin revelar los detalles.

¿Cuál es el propósito de las pruebas de conocimiento cero? El propósito es ahorrar potencia computacional y reducir el espacio en cadena en todo el proceso. Además, puede proporcionar protección de privacidad, alineándose con las características de la falta de confianza en blockchain y los principios de la criptografía.

1. SNARK y STARK

En el campo de la cadena de bloques, el término "zk" utilizado o mencionado generalmente no se refiere a pruebas reales de conocimiento cero, sino que a menudo se refiere a pruebas de validez. Debido a la confusión en la terminología, ciertas partes de este texto seguirán utilizando estos términos "mal utilizados".

En el panorama actual de la cadena de bloques, zk puede considerarse como la solución principal y óptima para la escalabilidad de la cadena de bloques (no es verdadero zk sino más bien Prueba de Validez), y la tecnología de privacidad (verdadero zk) que se utiliza en proyectos como Tornado.cash, ZCash, zkSync, zk.money, Filecoin y Mina.

Las soluciones técnicas actuales se dividen principalmente en dos categorías: SNARK y STARK. En STARK, la "S" significa escalable, lo que significa que las declaraciones probadas tienen estructuras repetitivas, mientras que SNARK admite circuitos arbitrarios que se procesan previamente para lograr pruebas concisas. Entre ellos, la implementación práctica de SNARKs ha tomado la posición principal, mientras que STARKs se adoptan principalmente a gran escala en los productos lanzados por StarkWare. A continuación se muestra una comparación entre ellos.

Desde la perspectiva de Meme, STARK es mejor que SNARK (😊, Star Wars, Star Trek).

Si SNARK es el futuro de Ethereum 2.0, entonces STARK será el futuro de Ethereum 3.0. En serio, las ventajas de STARK son:

  • Tarifas de gas más bajas (mejor escalabilidad)
  • Tamaño de lote más grande (escalabilidad mucho mejor)
  • Pruebas más rápidas (más que una mejor escalabilidad)
  • No configuración de confianza (los parámetros generados solo son válidos para la aplicación actual, y si se producen modificaciones, se requiere una nueva configuración)
  • Seguridad post-cuántica

Sin embargo, las pruebas generadas por STARK son significativamente grandes en tamaño. Debido a ciertas limitaciones, como las impuestas por WASM, pueden ser necesarias operaciones adicionales durante la construcción (aquí nos referimos a SNARK). Recientemente, Mir proporcionó una implementación práctica de un STARK basado en AIR utilizando Starky, que es parte de Plonky2 (la relación entre Plonky2 y Starky es bastante compleja...). En mi opinión personal, aunque el tamaño se puede optimizar utilizando diversas técnicas, es difícil comprimir aún más la complejidad temporal del propio algoritmo.

Estas tecnologías de prueba de conocimiento cero pueden combinarse de manera razonable para construir aplicaciones más potentes. Por ejemplo, Polygon Hermez utiliza SNARK para verificar la corrección de STARK, reduciendo así la tarifa de gas al publicar la prueba.

En general, SNARK y STARK son ambas excelentes tecnologías de prueba de conocimiento cero, cada una con sus propias fortalezas, y su combinación razonable tiene incluso más potencial.

2. zkVM

Las aplicaciones previamente mencionadas Tornado.cash y zk.money son aplicaciones similares que solo admiten operaciones de transferencia utilizando pruebas de conocimiento cero. No admiten cálculos de propósito general. En comparación, estas aplicaciones solo tienen la funcionalidad de Bitcoin, mucho menos que el Ethereum completo de Turing, y mucho menos la construcción de un ecosistema (Los contratos inteligentes en Bitcoin aún tienen que establecer un ecosistema próspero).

zkVM es una máquina virtual que garantiza propiedades seguras, verificables y confiables utilizando pruebas de conocimiento cero. En términos simples, toma un estado antiguo y un programa como entrada y devuelve un estado nuevo. Potencia todas las aplicaciones con el superpoder de las pruebas de conocimiento cero.

La presentación de Miden en ETH Amsterdam resumió eficazmente lo que es zkVM con una sola diapositiva.

Ventajas de zkVM:

  • Fácil de usar: los desarrolladores pueden usar zkVM para ejecutar programas y garantizar la seguridad computacional sin tener que aprender criptografía o desarrollo de conocimiento cero (esto no significa que no haya barreras de entrada).
  • Universal: zkVM puede generar pruebas para cualquier programa y cálculo.
  • Conciso: Se puede describir todo el VM con relativamente pocas restricciones, sin tener que generar repetidamente todo el circuito del VM.
  • Recursión: Función de recursión libre. Similar a su universalidad, la verificación de la VM se puede hacer utilizando la propia VM. Esto es bastante interesante, por ejemplo, puedes tener un zkVM dentro de un zkVM, similar al concepto de L3 mencionado por StarkWare.

Desventajas de zkVM:

  • Arquitectura computacional específica: No todos los sistemas de prueba de conocimiento cero se pueden utilizar para zkVM.
  • Problemas de rendimiento: Los circuitos deben ser optimizados y pueden ser optimizados específicamente para ciertos cálculos.

Actualmente, hay tres tipos principales de zkVM, con sus respectivos conjuntos de instrucciones entre paréntesis: Mainstream (WASM, RISC-V), EVM (código de bytes de EVM), ZK-Optimized (un nuevo conjunto de instrucciones optimizado para pruebas de conocimiento cero, como Cairo y zkSync). A continuación se muestra una tabla comparativa de estos tipos basada en la presentación de Miden en ETH Amsterdam.

Muchas cosas realizadas en el ecosistema de desarrollo de pruebas de conocimiento cero se tratan principalmente de habilitar a los desarrolladores para usar la biblioteca Circom (y snarkyjs, por ejemplo) u otros lenguajes recientemente creados (como Leo o Cairo, que tienen sus limitaciones únicas) para el desarrollo de aplicaciones descentralizadas zk generales. Sin embargo, esto no es tan directo y fácil de aprender como usar Solidity en Ethereum.

Además, hay muchos proyectos como zkSync, Scroll, o varios bajo el paraguas de Polygon que están experimentando con soluciones zkEVM u otras soluciones zkVM.

3. EVM

La EVM es la máquina virtual de Ethereum, que también puede entenderse como un conjunto de entornos de ejecución para ejecutar contratos inteligentes.

A lo largo de los años, varias blockchains públicas han estado intentando continuamente volverse compatibles con la EVM, integrándose así en el ecosistema de desarrollo de Ethereum. Este concepto ha dado lugar a la derivación de términos como compatibilidad con EVM, equivalencia con EVM y otras definiciones.

  • Compatibilidad con EVM: Adaptación a nivel de lenguaje, como con Solidity.
  • Equivalencia de EVM: Adaptación a nivel de bytecode de EVM.
  • Adaptación de la Especificación EVM: Esto es lo que suele denominarse como el verdadero zkEVM. En la mayoría de los casos, es incluso un subconjunto optimizado compatible con versiones anteriores que puede ofrecer características no proporcionadas por la EVM, como la abstracción de cuentas (donde cada cuenta es un contrato inteligente).

4. zkEVM

Vamos a interpretar más a fondo zkEVM. Por definición, zkEVM es una máquina virtual compatible con EVM y también amigable con las pruebas de conocimiento cero, asegurando la completa corrección de programas, operaciones y entrada/salida.

Para lograr la computación universal, hay dos desafíos principales en el desarrollo de zkEVM:

a) Complejidad del circuito

Diferentes contratos requieren la generación de diferentes circuitos, y estos circuitos son bastante ‘complejos’.

Este aspecto se basa principalmente en varias optimizaciones. Por ejemplo, Aleo (aunque no es del tipo ZK directo... solo un ejemplo de optimización) utiliza clústeres distribuidos para cálculos de prueba concurrentes, u varias optimizaciones de hardware para aceleración.

b) Dificultades de diseño

zkEVM requiere no solo una reconstrucción del EVM, sino también una reconstrucción de toda la transición de estado de Ethereum utilizando la tecnología de prueba de conocimiento cero.

El diseño original de EVM no anticipó el desarrollo de zkEVM, lo que condujo a dificultades significativas. Esto ha resultado en dos enfoques, como se ilustra en el diagrama.

O, para distinguir según la arquitectura de una Máquina Virtual (VM), como en el diagrama a continuación (¡muchas gracias a Scroll Tech por el resumen de imagen original!). Opcode se refiere a Opcode de EVM. La sección de StarkWare utiliza Warp para convertir contratos de Solidity en contratos de Cairo, o puede escribir contratos directamente en Cairo, y aún así obtener una buena experiencia de desarrollo y un conjunto completo de herramientas.

En mi opinión, a nivel de desarrollador y usuario, estas soluciones son básicamente indistinguibles. Sin embargo, en términos de infraestructura, cuanto más a la derecha esté la solución, mejor será la compatibilidad con EVM. Puede integrarse perfectamente con infraestructuras como Geth, pero el progreso en el desarrollo suele ser más lento.

5. zkEVM y zkVM

La existencia de zkEVM, en mi opinión, es innovar y parchear el ecosistema de Ethereum, contribuyendo a la prosperidad de Ethereum y su ecosistema. Por otro lado, la existencia de zkVM puede que no necesariamente fortalezca a Ethereum, pero proporciona una mayor imaginación.

Aunque el Cairo VM de StarkNet puede que no sea el zkVM perfecto que había imaginado, puede hacer más que EVM o zkEVM. Estas funcionalidades van más allá del nivel de extensiones de EIP. En Cairo VM, se pueden ejecutar modelos de aprendizaje automático, e incluso se está construyendo una plataforma de modelos de aprendizaje automático en StarkNet.

Comparado con zkEVM, construir un zkVM es más fácil (sin preocuparse por la deuda técnica de EVM), más flexible (sin preocuparse por las actualizaciones de EVM) y más fácil de optimizar (el optimizador de circuitos y pruebas es mucho más simple y barato que construir zkEVM).

Sin embargo, zkVM tiene una pequeña pero potencialmente fatal desventaja. Si zkVM no puede proporcionar compatibilidad con EVM a nivel de lenguaje Solidity, será difícil para zkVM establecer un ecosistema de desarrollo Web3 completo y maduro similar al de EVM.

zkVM puede ser una tendencia más grande que puede permitir la optimización vertical del EVM y la expansión horizontal del ecosistema EVM, liberándose de las limitaciones del EVM.

6. El Futuro de zkVM

Si pudiera haber un zkVM universal que permitiera contratos inteligentes de todos los lenguajes de programación, no solo Solidity, no solo Cairo, sino Rust, C++, Go, ejecutarse de forma segura con prueba de conocimiento cero, ¿no sería genial? (Stellar lo intentó, pero falló).

Como @kelvinfichtermencionado: ¿Por qué zkEVM si zkMIPS? Como@KyleSamanimencionado: EVM es un error, no una característica. ¿Por qué zkEVM si zkVM?

Winterfall, Distaff, Miden VM, y otros zkVMs no han logrado un alto nivel de amigabilidad para los desarrolladores. Nervos tiene un VM RISC-V, pero no utiliza la tecnología de prueba de conocimiento cero.

La solución óptima en la situación actual es construir un zkVM WASM o RISC-V, incluso mejor si pudiera admitir lenguajes como Rust, Go, C++, e incluso Solidity (zkSync parece poder hacer contribuciones significativas). Si hubiera un zkVM universal de este tipo, sería un golpe significativo para zkEVM.

El número de desarrolladores de Web3 representa aproximadamente el 0.07% de todos los desarrolladores. Esto implica que el número de desarrolladores de Solidity es aún menor que el 0.07%, y aún menos desarrolladores usarían Cairo para escribir contratos o Leo para escribir circuitos. Como resultado, el zkVM perfecto tiene como objetivo satisfacer a casi el 100% de los desarrolladores, ya que cualquier desarrollador puede obtener un entorno de ejecución de conocimiento cero perfecto utilizando casi cualquier lenguaje de programación.

Si Web3 y Crypto llegaran a dominar el mundo algún día, creo que definitivamente no sería el ecosistema EVM ocupando el 100% de todos los desarrolladores, sino que todos los desarrolladores se irían trasladando gradualmente a desarrolladores de Web3 y Crypto. Aquí es donde radica la brillantez del zkVM universal.

La zkEVM nativa es el futuro de la cadena de bloques.

Universal zkVM es el futuro de Web3.

Descargo de responsabilidad:

  1. Este artículo es una reimpresión de [Investigación prospectiva]. Todos los derechos de autor pertenecen al autor original [msfew @ Foresight Ventures]. Si hay objeciones a esta reimpresión, por favor contacta al Gate Learnequipo, y lo resolverán rápidamente.
  2. Descargo de responsabilidad: Las opiniones expresadas en este artículo son únicamente las del autor y no constituyen ningún consejo de inversión.
  3. Las traducciones del artículo a otros idiomas son realizadas por el equipo de Gate Learn. A menos que se mencione, está prohibido copiar, distribuir o plagiar los artículos traducidos.
Comece agora
Registe-se e ganhe um cupão de
100 USD
!