Towards Automated Formal Verification of zkEVMs Using LLM-Guided Constraint Synthesis
El artículo presenta VeriSynth, un nuevo marco que aprovecha un flujo de trabajo híbrido LLM-SMT para sintetizar automáticamente modelos de verificación ejecutables a partir de código Rust zkEVM, logrando tasas de detección de errores superiores al 90% al superar las limitaciones de la especificación manual y las alucinaciones de los LLM.
Artículo original bajo licencia CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta es una explicación generada por IA del artículo a continuación. No ha sido escrita ni avalada por los autores. Para mayor precisión técnica, consulte el artículo original. Leer descargo de responsabilidad completo
Imagina el internet como un gigante libro de contabilidad digital global donde todos pueden ver cada transacción, pero nadie tiene el control total. Este es el mundo de la blockchain, y su residente más famoso es Ethereum. Para hacer que este sistema sea más rápido y económico, los desarrolladores construyeron redes de "Capa 2" (Layer-2) que realizan el trabajo pesado fuera de escena, mostrando solo los resultados finales a la red principal. Para demostrar que estos resultados fuera de escena son honestos sin revelar los detalles secretos, utilizan un truco mágico llamado "Prueba de Conocimiento Cero" (Zero-Knowledge Proof). Piensa en esto como un mago que te muestra una caja cerrada y te demuestra, sin abrirla, que el tesoro que hay dentro es exactamente lo que prometió.
Pero aquí está el truco: para que la magia funcione, el libro de hechizos del mago (el código de la computadora) debe ser perfecto. Si el mago comete un error minúsculo en el hechizo —como contar mal la cantidad de oro o de olvidar actualizar el mapa— la caja podría parecer cerrada y válida, incluso si está vacía o llena de monedas falsas. Esto es una pesadilla para la seguridad. Para evitar esto, los expertos utilizan la "verificación formal", un método donde un robot matemático súper estricto revisa el libro de hechizos línea por línea para asegurar que la lógica sea impecable. Sin embargo, escribir las instrucciones para este robot es increíblemente difícil, como intentar traducir un manual de un videojuego complejo escrito en un lenguaje secreto a un libro de texto de matemáticas que el robot pueda leer.
Aquí es donde una nueva herramienta llamada VeriSynth entra en juego. Los investigadores detrás de ella se dieron cuenta de que, si bien la Inteligencia Artificial (IA) es excelente escribiendo código, también es propensa a "alucinar": inventar hechos que suenan reales pero que son erróneos. Por eso, no se limitaron a pedirle a la IA que encontrara los errores. En su lugar, construyeron un equipo donde la IA actúa como un traductor creativo, convirtiendo el código desordenado y secreto en un borrador para el robot matemático, y el robot actúa como el juez estricto que dice: "Sí, esto es correcto" o "No, esto es un sinsentido, inténtalo de nuevo".
El Problema: El Error Silencioso
En el mundo de las Máquinas Virtuales de Ethereum de Conocimiento Cero (zkEVMs), el código que dirige el espectáculo está escrito en un lenguaje llamado Rust. Es potente pero complicado. A veces, un desarrollador podría escribir accidentalmente una línea de código que cuenta mal el gas (la tarifa por una transacción), o que olvida actualizar un espacio de memoria. Si esto sucede, el sistema podría generar una prueba "válida" para una transacción que en realidad está rota. Es como un cajero de banco que accidentalmente te da $100 en lugar de $10, pero el recibo dice que todo es perfecto. Debido a que la prueba parece válida, el error pasa desapercibido, rompiendo silenciosamente la seguridad de todo el sistema.
La forma habitual de solucionar esto es que los humanos escriban casos de prueba detallados, con la esperanza de detectar cada posible error. Pero los humanos se cansan y no pueden imaginar cada escenario extraño que una computadora podría encontrar. Otro enfoque es utilizar Modelos de Lenguaje Extensos (LLMs)—el mismo tipo de IA que escribe ensayos o código—para encontrar los errores. Pero el artículo argumenta que pedirle a una IA que simplemente "busque errores" es poco fiable. La IA podría suponer que el error está ahí cuando no lo está, o pasarlo por alto por completo, porque carece de la certeza matemática estricta necesaria para la seguridad.
La Solución: Un Equipo de Traductor y Juez
Los autores de este artículo, Shichen Huang y su equipo, crearon un marco de trabajo llamado VeriSynth. Tratan el problema como un juego de "Teléfono Descompuesto" de alto riesgo donde el mensaje debe ser perfecto.
- El Traductor (El LLM): Primero, el sistema descompone el complejo código Rust en trozos pequeños y manejables, como separar un rompecabezas gigante en piezas individuales. Luego pide a una IA que traduzca cada pieza en un "modelo de verificación". Esto no es solo una descripción; es un conjunto de reglas matemáticas estrictas (escritas en un lenguaje llamado Python/Z3) que le dicen al robot matemático exactamente cómo debería comportarse el código.
- La Biblioteca de Referencia: Para evitar que la IA invente cosas, VeriSynth le proporciona una "hoja de trucos" de ejemplos previamente verificados. Es como mostrarle a la IA una foto de un set de Lego correctamente ensamblado antes de pedirle que construya uno nuevo, para que sepa cómo deben verse las piezas.
- El Juez (El Solucionador SMT): Esta es la parte más importante. La traducción de la IA nunca se confía de inmediato. Se entrega a un robot matemático súper estricto (un solucionador SMT). El robot verifica la traducción contra las reglas. Si la traducción tiene un error de sintaxis, una pieza faltante o una contradicción lógica, el robot la rechaza.
- La Autorreparación: Si el robot rechaza la traducción, no se limita a decir "fallo". Envía un mensaje de error específico de vuelta a la IA: "Usaste el tamaño incorrecto para este número" o "Olvidaste actualizar la memoria". La IA intenta entonces corregir el error y lo envía de nuevo. Este ciclo continúa hasta que el robot esté satisfecho.
Qué Encontraron
El equipo probó VeriSynth en un conjunto de datos personalizado de "errores" que ellos mismos construyeron, el cual contenía 95 ejemplos diferentes de código con errores ocultos. Estos errores variaban desde errores matemáticos simples hasta problemas complejos sobre cómo el sistema maneja las llamadas entre diferentes programas.
Los resultados fueron impactantes:
- VeriSynth encontró 87 de 95 errores, logrando una tasa de detección del 91.6%.
- En contraste, si solo le pedían a la IA que encontrara los errores sin el estricto juez robot, solo encontraba 44 errores (46.3%).
- Incluso si dejaban que la IA conversara con el robot e intentara de nuevo (un enfoque "conversacional"), solo encontraba 58 errores (61.1%).
El artículo también comparó VeriSynth con los métodos de prueba del mundo real utilizados por un proyecto importante llamado Scroll. El equipo de Scroll, compuesto por expertos humanos, había escrito sus propios conjuntos de pruebas para detectar errores. Sus pruebas detectaron 55 de los 95 errores. VeriSynth detectó 87, lo que significa que encontró 32 errores adicionales que las pruebas escritas por humanos pasaron por alto.
Por qué es Importante
Los investigadores enfatizan que esto no se trata de reemplazar a los desarrolladores humanos ni de decir que la IA es perfecta. Al contrario, se trata de usar la IA como una herramienta poderosa para realizar el trabajo pesado de la traducción, manteniendo a un robot estricto e implacable como la autoridad final. La función de "autorreparación" fue la parte más crítica; sin ella, la tasa de éxito del sistema cayó al 66.3%, demostrando que la capacidad de corregir sus propios errores es lo que hace que el sistema funcione.
El estudio sugiere que, al combinar la creatividad de la IA con la lógica estricta de los solucionadores matemáticos, podemos construir una red de seguridad para el futuro de la blockchain que es mucho más fuerte de lo que los humanos pueden construir por sí solos. Es un recordatorio de que, en el mundo de la seguridad digital, la mejor defensa es un equipo donde la mente creativa propone y la lógica estricta decide.
¿Ahogado en artículos de tu campo?
Recibe resúmenes diarios de los artículos más novedosos que coincidan con tus palabras clave de investigación — con resúmenes técnicos, en tu idioma.