A Rust-to-Lean Verification Pipeline with AI Provers: An Experience Report
Este artículo presenta una pipeline de verificación sólida y verificada por el kernel que integra herramientas de extracción de Rust a Lean, bibliotecas formales de criptografía y demostradores de IA para generar con éxito pruebas de corrección verificadas por máquina para código criptográfico de Rust en producción dentro del proyecto zkEVM de la Ethereum Foundation.
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 que tienes una fábrica de alto riesgo que construye las llaves digitales para una bóveda masiva e invisible (una Máquina Virtual de Conocimiento Cero). Si incluso un solo engranaje diminuto en esta fábrica está ligeramente doblado, la seguridad de toda la bóveda se ve comprometida, y nadie lo sabrá hasta que sea demasiado tarde.
Durante años, verificar estos engranajes ha sido como contratar a un equipo de mecánicos expertos para inspeccionar cada tornillo a mano. Es lento, costoso y depende de que los mecánicos no pasen por alto nada.
Este artículo describe una nueva línea de montaje automatizada que hace tres cosas:
- Traduce los planos de la fábrica (escritos en un lenguaje complejo llamado Rust) a un lenguaje matemático universal (Lean 4) que una computadora puede entender perfectamente.
- Proporciona un "estándar de oro" perfecto y preescrito de cómo la máquina debería funcionar (utilizando bibliotecas llamadas ArkLib y CompPoly).
- Contrata a un asistente de IA súper inteligente (llamado Aleph y Aristóteles) para comparar los planos traducidos con el estándar de oro y escribir la prueba de que coinciden.
Así es como funciona el proceso, utilizando analogías simples:
1. El Traductor (De Rust a Lean)
Los planos de la fábrica están escritos en Rust, un lenguaje que los ingenieros aman para construir software rápido y seguro. Sin embargo, los "jueces matemáticos" (el sistema Lean 4) no hablan Rust; solo hablan matemáticas puras.
El artículo utiliza herramientas llamadas Aeneas y Hax como traductores. Toman el código Rust y lo convierten en matemáticas "funcionales puras".
- La Analogía: Imagina tomar una receta escrita en jerga de chef (Rust) y traducirla a una fórmula química estricta, paso a paso (Lean). El traductor también añade "etiquetas de seguridad" a cada paso. Si un paso podría fallar (como dividir por cero o quedarse sin ingredientes), la traducción lo marca claramente para que las matemáticas puedan verificarlo.
2. El Estándar de Oro (Las Especificaciones)
No puedes probar que una máquina funciona a menos que tengas una definición de "funcionar".
- La Analogía: Piensa en ArkLib y CompPoly como el "Reglamento Oficial" de la criptografía. Contienen definiciones abstractas y perfectas de cómo deberían comportarse matemáticamente cosas como "doblar un papel" (plegado FRI) o "verificar un árbol de Merkle".
- El objetivo es probar que el código Rust traducido (la máquina de la fábrica) hace exactamente lo que dice el Reglamento, ni más ni menos.
3. El Escritor de Pruebas con IA (El "Cerebro")
Esta es la parte más emocionante. Una vez que el código está traducido y el reglamento está listo, necesitas escribir una prueba de que coinciden. Tradicionalmente, un matemático humano tenía que escribir esta prueba, lo cual es como resolver un rompecabezas masivo y complejo.
El artículo introduce Provers con IA (Aleph y Aristóteles) para hacer el trabajo pesado.
- La Analogía: Imagina a la IA como un detective incansable y súper rápido. Le das el plano traducido y el reglamento, y dice: "¡Veo la conexión! Aquí está la prueba".
- Verificación de Seguridad Crucial: La IA no solo dice que tiene razón; escribe la prueba en un lenguaje que el Kernel de Lean (el juez supremo) puede leer. El Kernel verifica cada paso de la lógica de la IA. Si la IA adivina mal, el Kernel la rechaza. Por lo tanto, la IA puede ser creativa, pero no puede hacer trampa.
Lo Que Realmente Hicieron
El equipo aplicó esta tubería a código criptográfico del mundo real utilizado en los proyectos de la Fundación Ethereum (específicamente Plonky3 y RISC Zero).
- El Éxito: Probaron con éxito que partes específicas del código (como calcular cómo plegar datos o verificar si un árbol está incluido correctamente) eran matemáticamente perfectas.
- El Papel de la IA: En un ejemplo específico que involucraba una función llamada
compute_log_arity_for_round, la IA (Aleph) escribió automáticamente dos pruebas complejas que anteriormente estaban atascadas (marcadas como "sorry", lo que significa "sabemos que es cierto, pero aún no lo hemos probado"). - El Papel del Humano: La IA fue excelente manejando rompecabezas lógicos, escenarios de "si-entonces" y matemáticas básicas. Sin embargo, aún necesitaba a humanos para:
- Diseñar la estrategia general (el "Reglamento").
- Manejar bucles complejos (como encontrar el patrón correcto en una secuencia repetitiva).
- Corregir errores de traducción donde el código Rust era demasiado complicado para que el traductor lo manejara.
Los Tropiezos (Brechas de Ingeniería)
El artículo admite que la línea de montaje aún no es perfecta.
- Incompatibilidad de Versiones: Los traductores, los reglamentos y la IA hablan ligeramente diferentes "dialectos" del lenguaje matemático. El equipo tuvo que coordinarse para poner a todos en la misma versión.
- Límites de Traducción: Algunas características complejas de Rust (como tipos genéricos o bibliotecas externas) son difíciles de convertir para los traductores. El equipo tuvo que reescribir algo de código en un "modelo" más simple solo para que el traductor pudiera entenderlo.
La Conclusión
Este artículo no afirma que la IA haya reemplazado a los ingenieros humanos. En cambio, muestra una tubería donde:
- Los humanos traducen el código y establecen los objetivos.
- La IA actúa como un asistente poderoso para escribir las pruebas lógicas tediosas.
- Un juez informático estricto (el Kernel) verifica todo para garantizar la seguridad.
El resultado es un sistema funcional que convierte código criptográfico de nivel de producción en pruebas verificadas por máquina y garantizadas matemáticamente, haciendo que la "bóveda invisible" sea significativamente más segura.
¿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.