Durante años, los críticos de Ethereum han lamentado su lentitud. El protocolo central sólo puede gestionar entre 10 y 15 transacciones por segundo, y las tarifas suelen ser insostenibles en momentos de gran actividad de los usuarios. Es por ello que los desarrolladores han probado varias soluciones, entre ellas las sidechains, que trasladan las transacciones a una segunda capa en la que se procesan a gran velocidad y luego se remiten a la cadena principal.
A menudo, estas cadenas laterales agrupan las transacciones y las devuelven al protocolo principal a la vez, «enrollándolas» y presentándolas para su validación.
Históricamente, esto ha funcionado en aplicaciones individuales, pero existe un problema: muchas de estas cadenas laterales utilizan los llamados rollups «optimistas»
Estas transacciones se agrupan en lotes y se presentan al protocolo central sin ninguna prueba de que las transacciones se hayan ejecutado de forma correcta; en la capa del protocolo se puede llevar hasta dos semanas examinar las transacciones y verificarlas de forma concluyente (por eso son «optimistas»: los usuarios optimistas no mienten).
Entra en escena la última innovación: La zkEVM.
¿Qué es la zkEVM?
Los zkEVMs (y una innovación que los acompaña conocida como zkSync – ya llegaremos a esto) fueron discutidos con entusiasmo por primera vez al menos en 2014, y la tecnología finalmente se está acercando a la usabilidad. Los principales actores del mundo del desarrollo de Ethereum, como Polygon y Scroll, los están construyendo, y otros se apresuran a seguir este ejemplo.
En la práctica, una zkEVM es una revisión de la infraestructura informática fundacional de Ethereum (se trata de la máquina virtual de Ethereum, en inglés, Ethereum Virtual Machine (EVM)) que hace que la red sea compatible con un tipo de rollup mucho más eficiente que utiliza pruebas de conocimiento cero, un elaborado mecanismo criptográfico que es fundamental para resolver los problemas señalados anteriormente. Profundicemos un poco más.
¿Cómo funcionan los zkEVM?
En primer lugar, la prueba de conocimiento cero. Se trata de una innovación criptográfica estándar que existe desde la década de 1980; no es exclusiva de la cadena de bloques. El objetivo de una prueba de conocimiento cero es transmitir conocimiento sin revelar los detalles o el contenido de ese conocimiento: una prueba zk revela lo que uno sabe, no lo que sabe; que una afirmación es verdadera, mas no el porqué es verdadera.
En el contexto de las transacciones de criptomonedas, las pruebas de conocimiento cero permiten a las contrapartes señalarse mutuamente que sus transacciones no son fraudulentas sin revelar ningún detalle adicional de identificación. Se requieren parámetros específicos conocidos tanto por el emisor como por el receptor: ambas partes deben ser capaces de entender las señales que comunican que una determinada transacción se ha llevado a cabo, sin saber nada sobre la propia transacción.
Las pruebas de conocimiento cero son un componente clave en los esfuerzos por hacer más eficientes los rollups: A diferencia de los rollups «optimistas», los rollups zk son capaces de presentar una prueba de la validez de cada transacción en un lote y el protocolo «central» no tiene que hacer nada. También ocupan menos datos, lo que significa que un lote de estas pruebas puede procesarse muy rápidamente.
Durante años, muchos proyectos ajenos a Ethereum han intentado incorporar la compatibilidad con zk-rollup en la capa del protocolo.
Zcash, la criptomoneda centrada en la privacidad, lleva años luchando por este objetivo, y otros intentos incluyen a Aleo, construido por Howard Wu, y Penumbra, una red de conocimiento cero de capa uno para tokens e intercambios descentralizados.
Sin embargo, los rollups de conocimiento cero son muy específicos y difíciles de programar; tienden a utilizarse con moderación y en aplicaciones especializadas. Aquí es donde entra el zkEVM: Incorpora la funcionalidad de los rollups zk en el principal entorno de programación de Ethereum: la máquina virtual de Ethereum.
El fantasma en la máquina virtual
La EVM, en pocas palabras, traduce las entradas humanas a nivel de usuario en acciones a nivel de protocolo. Hace que las operaciones se realicen sin problemas; hace que los contratos inteligentes funcionen. Este trabajo -traducir el lenguaje de codificación a un bytecode legible para el ordenador- lo realiza normalmente un compilador, un componente dentro de una CPU. Sin embargo, Ethereum está distribuido en millones de ordenadores, por lo que este proceso se lleva a cabo en un software compartido en la red, específicamenteen la nube. Por eso es una máquina «virtual».
El problema: los EVM estándar sólo pueden interpretar los rollups caso por caso, lo que significa que no existe un lenguaje de programación unificado y los rollups ZK deben diseñarse individualmente.
Entonces, ¿qué es el zkEVM? Es un nuevo tipo de máquina virtual de Ethereum capaz de interpretar una forma estandarizada de rollup de conocimiento cero (el más destacado es el zkSync de Matter Labs).
Un grupo de usuarios realiza transacciones; el rollup las agrupa y genera la prueba a través de la infraestructura de la Máquina Virtual actualizada, presentándola al protocolo central; finalmente, el protocolo central -siendo esta la parte inteligente del proceso- es capaz de juzgar las pruebas como correctas sin perder tiempo ni dinero, escudriñando un sinfín de datos.
A diferencia de Optimism, las transacciones no válidas no pueden presentarse. Esto permite, supuestamente, un aumento exponencial de la velocidad: los rollups de ZK pueden ofrecer hasta 2.000 transacciones por segundo; cuando se mejoran con otras tecnologías como ZK Porter pueden llegar hasta las 20.000.
Es importante destacar que zkEVM utiliza el mismo lenguaje de codificación, Solidity, con el que ya están familiarizados los desarrolladores de Ethereum. Eso lo hace hasta cierto punto compatible con la infraestructura existente de Ethereum: NFTs, contratos inteligentes, dapps, DEXs, etc. En teoría, los interesados sólo tendrán que descargar el software en sus nodos, y el resultado será el mismo Ethereum, pero con una función potenciada que permite realizar transacciones baratas y fácilmente verificables.
Problemas iniciales
La tecnología zkEVM está lejos de ser perfecta. Howard Wu, antiguo investigador de zCash y desarrollador de Aleo, un original protocolo de blockchain que incorpora la compatibilidad con zk a la capa del protocolo, dijo que los zkEVM pueden tardar entre 12 y 24 horas en producir la prueba que posteriormente se transmite al protocolo central (frente a los 10-15 segundos de Ethereum).
Otro problema, dijo, es que los zkEVMs son computacionalmente intensivos, y normalmente ponen la carga de generar la prueba de conocimiento cero para un lote de transacciones en un solo ordenador, lo que se convierte en un único punto de fallo propenso a la censura. Y como se ha visto con el proyecto de privacidad Tornado Cash, el gobierno estadounidense está más que dispuesto a acabar con los proyectos de criptografía centralizados.
Además, a pesar de que las zkEVM aportan compatibilidad, incluso eso está lejos de ser perfecto: muchas aplicaciones financieras descentralizadas (DeFi), como Curve, emplean en su código base características diseñadas para la eficiencia que no son compatibles con ningún proyecto zkEVM. El uso de una multitud de rollups que operan a diferentes velocidades también «fragmentará la liquidez», dijo Wu. «Esto romperá los préstamos flash y aumentará los diferenciales de precios, lo que supondrá un mayor riesgo de estabilidad de precios para muchos protocolos DeFi». Evidentemente, ¡todavía queda trabajo por hacer!
¿Quién está construyendo rollups de zkEVM?
💱 Polygon – un proyecto dedicado a financiar y construir la infraestructura de Ethereum.
📜 Scroll – un proyecto dedicado enteramente a la investigación de pruebas de conocimiento cero.
🥼 Matter Labs – desarrolladores detrás de la tecnología de rollups zkSync.
El futuro de las zkEVM
Los zkEVM son todavía una tecnología muy experimental. La testnet de Polygon no estará disponible hasta el tercer trimestre de 2022; su mainnet se espera para 2023. Pero teniendo en cuenta que antes se pensaba que faltaban años, pues ya no: ahora falta muy poco tiempo.