Saltar al contenido

zkVMs: Las máquinas virtuales de conocimiento cero

Las máquinas virtuales han revolucionado la forma en que se ejecutan los programas, proporcionando entornos aislados y reproducibles. Estas máquinas permiten a los desarrolladores crear programas que pueden ejecutarse de manera consistente en diferentes entornos, eliminando las discrepancias entre las plataformas de desarrollo y producción.

Este enfoque ha sido particularmente beneficioso en el desarrollo de contratos inteligentes, donde la consistencia y la seguridad son fundamentales. Los contratos inteligentes, que son programas autoejecutables con las condiciones del acuerdo directamente escritas en líneas de código, se benefician enormemente de las garantías de aislamiento y reproducibilidad que ofrecen las máquinas virtuales.

En este contexto, surgen las zkVMs (Zero-Knowledge Virtual Machines), una tecnología emergente que no solo mantiene las ventajas de las máquinas virtuales tradicionales sino que además incorpora pruebas de conocimiento cero (ZKPs) para añadir una capa adicional de privacidad y seguridad.

En este artículo proporcionaremos una visión detallada de las zkVMs, explicando su arquitectura, funcionamiento y las implicaciones significativas que tiene para la privacidad y la seguridad en entornos que utilicen tecnología blockchain o de registro distribuido (DLT).

¿Qué son las zkVMs?

A diferencia de las máquinas virtuales (VM) tradicionales que ejecutan programas, una máquina virtual de conocimiento cero (zkVM) integra procesos criptográficos para garantizar privacidad y seguridad, incorporando pruebas de conocimiento cero, que permiten verificar la ejecución de programas sin revelar información sobre los datos o la lógica interna del programa.

Por tanto, las zkVMs son esencialmente circuitos de conocimiento cero (ZK) que ejecutan una VM. Las instrucciones del programa real pueden pasarse como entrada pública a ese circuito para que todos puedan ver qué programa se está probando realmente.

A diferencia de las VMs tradicionales, las zkVMs no se enfocan tanto en el aislamiento de los sistemas operativos y aplicaciones, sino en asegurar que los cálculos se realizan de manera privada y segura. Esto hace que las zkVMs sean altamente accesibles y valiosas para diversas aplicaciones, especialmente en la mejora de la tecnología blockchain, ya que serviría como catapulta para la adopción en masa de esta tecnología aunque aún falta que la industria progrese para que este paradigma se convierta en realidad.

zkVM vs. zkEVM: Diferencias clave

Una zkEVM es una zkVM especializada adaptada para la blockchain de Ethereum. Ejecuta contratos inteligentes de Ethereum utilizando ZKPs, manteniendo la compatibilidad con la Máquina Virtual de Ethereum (EVM). Esto mejora la escalabilidad y privacidad al procesar transacciones fuera de la cadena y validarlas en la cadena con una sola prueba. Mientras que las zkVMs proporcionan soluciones de propósito general para varias blockchains, las zkEVMs están optimizadas para el ecosistema de Ethereum.

Funcionamiento y etapas de una zkVM

Las principales etapas de una zkVM, o también conocidas como flujo de proceso abstraído, son:

  • Etapa del compilador: La primera etapa implica la conversión de programas escritos en lenguajes convencionales (como C, C++, Rust, Solidity, etc.) en código máquina. Este proceso es guiado por la arquitectura del conjunto de instrucciones (ISA) elegida para la zkVM. El compilador traduce el código fuente a un formato que la máquina virtual puede interpretar y ejecutar de manera eficiente.
  • Etapa de la máquina virtual (VM): En esta etapa, la máquina virtual ejecuta el código máquina generado por el compilador. Durante la ejecución, se crea una traza de ejecución que registra cada paso del proceso. Esta traza se formatea según el esquema de aritmetización elegido, como R1CS (Rank-1 Constraint System), PLONKish, o AIR (Algebraic Intermediate Representation).
  • Etapa del proveedor: El proveedor es responsable de traducir la traza de ejecución en polinomios algebraicos. Luego, se compromete con estos polinomios usando un Esquema de Compromiso Polinomial (PCS). A continuación, realiza una Prueba Interactiva de Oráculo Polinomial (PIOP) para demostrar que los polinomios comprometidos satisfacen las restricciones dadas. Finalmente, el proveedor produce una prueba de evaluación que se enviará al verificador.
  • Etapa del verificador: El verificador recibe la prueba de evaluación y la verifica siguiendo el protocolo de verificación establecido. El proceso de verificación es mucho menos costoso computacionalmente que la ejecución completa del programa original, lo que destaca una de las principales ventajas de la criptografía de conocimiento cero. El verificador acepta o rechaza la prueba en función de su validez, asegurando así la integridad y la privacidad de la ejecución.

Por otro lado, también hay que destacar que el diseño y la implementación de cada componente de una zkVM están influenciados por la elección del tipo de prueba de conocimiento cero utilizada. Dos de las principales tecnologías en este campo son SNARKs (Succinct Non-interactive Arguments of Knowledge) y STARKs (Scalable Transparent Arguments of Knowledge), que perrmiten la verificación eficiente de cálculos complejos sin revelar información sensible, lo cual es fundamental para la privacidad y la integridad en entornos blockchain.

El trilema de las zkVMs: Equilibrando velocidad, eficiencia y concisión

Las zkVMs aunque se encuentren en el centro de la innovación en criptografía y blockchain, como con muchas tecnologías avanzadas, existe un trilema que los desarrolladores deben afrontar: equilibrar la velocidad, la eficiencia y la concisión.

Velocidad

La velocidad en una zkVM se refiere a la rapidez con la que se pueden generar y verificar las pruebas de conocimiento cero. En un entorno descentralizado y distribuido, la rapidez es crucial para asegurar que las transacciones se procesen en tiempo real o casi en tiempo real, manteniendo la usabilidad del sistema.

  • Desafíos: Las pruebas de conocimiento cero, por su naturaleza matemática y criptográfica, son intensivas en términos de computación. Acelerar estos procesos sin comprometer la seguridad y la integridad de las pruebas es un desafío significativo.
  • Soluciones posibles: Implementaciones optimizadas de algoritmos, uso de hardware especializado (como ASICs o GPUs), y paralelización de procesos son algunas de las estrategias para mejorar la velocidad.

Eficiencia

La eficiencia en el contexto de zkVM se refiere a la cantidad de recursos computacionales y energéticos que se requieren para generar y verificar pruebas de conocimiento cero.

  • Desafíos: Minimizar el uso de recursos es crucial para la sostenibilidad y escalabilidad de la tecnología. Un sistema que consume demasiados recursos no solo es costoso, sino que también puede ser insostenible a largo plazo.
  • Soluciones posibles: La eficiencia se puede mejorar mediante la optimización de algoritmos y la implementación de técnicas como la compresión de datos, que reduce la cantidad de información que necesita ser procesada y transmitida.

Concisión

La concisión se refiere a la cantidad de datos que necesitan ser transmitidos y almacenados para probar que una transacción o ejecución de contrato es válida sin revelar información innecesaria.

  • Desafíos: La prueba debe ser lo suficientemente pequeña para ser manejable y transmitida rápidamente, pero también debe contener toda la información necesaria para ser verificada correctamente.
  • Soluciones posibles: El uso de técnicas avanzadas de criptografía como SNARKs (Succinct Non-interactive Arguments of Knowledge) y STARKs (Scalable Transparent Arguments of Knowledge) puede ayudar a crear pruebas más concisas.

Encontrar el equilibrio entre estos tres factores es el gran desafío del trilema de las zkVMs, ya que mejorar un aspecto a menudo implica comprometer a los otros dos. Por ejemplo, aumentar la velocidad puede requerir más recursos, reduciendo la eficiencia, o puede resultar en pruebas menos concisas.

Para lograr la optimización, eficiencia y mejora de este trilema, la comunidad de desarrolladores y académicos deberá seguir explorando nuevas formas de equilibrar estos factores, como por ejemplo, con el uso de algoritmos híbridos y técnicas de aprendizaje automático que faciliten la optimización de los procesos. Así pues, con el compromiso y la investigación, se cree posible lograr un equilibrio que permita a las zkVMs ofrecer transacciones rápidas, eficientes y concisas, impulsando así el futuro de la tecnología blockchain.

Conclusión

Las zkVMs se han convertido en un imprescindible para mejorar la privacidad, seguridad y escalabilidad en diversas aplicaciones descentralizadas.

Si se aprovecha eficazmente el potencial de las zkVMs para crear sistemas seguros y eficientes, los contratos inteligentes podrán ejecutarse de manera privada y segura, garantizando la integridad y confidencialidad de las transacciones. Como hemos visto, a través de las zkVMs se puede verificar la correcta ejecución de un programa sin revelar ninguna información sobre los datos o la lógica interna del mismo, y esto es esencial en un entorno digital cada vez más preocupado por la seguridad de los datos y la privacidad de los usuarios. 

A medida que los tiempos cambian, la criptografía de conocimiento cero se posiciona como una herramienta poderosa y universalmente adoptable para escalar y asegurar cualquier software. Su capacidad para proporcionar seguridad y privacidad sin comprometer la eficiencia hace que las zkVMs sean una solución clave para los desafíos modernos en tecnología y criptografía.

Referencias:
[1] What is a zkVM?: A Zero Knowledge Paradigm (Part I)
[2] Exploring zkVM Design Trade-offs: A Zero Knowledge Paradigm (Part II)
[3] Zero-Knowledge Virtual Machine (ZKVM)
[4] A journey into zero-knowledge proofs
[5] zkVM Takes Center Stage of the Blockchain World


¿Quieres seguir leyendo sobre identidad autogestionada y pruebas ZKPs? ¡No te pierdas estos recursos!

En Block&Capital, nos esforzamos por crear un entorno donde el crecimiento y el éxito sean accesibles para todos. Si estás listo para impulsar tu carrera profesional, te animamos a unirte a nosotros.