← Últimos artículos
💻 computer science

Formally Verifying Noir Zero Knowledge Programs with NAVe

Este artículo presenta NAVe, un verificador formal de código abierto que utiliza SMT-LIB y el solver cvc5 para verificar formalmente la corrección y las restricciones adecuadas de los programas de conocimiento cero de Noir mediante la traducción de su representación intermedia ACIR en ecuaciones de polinomios de campos finitos.

Autores originales: Pedro Antonino, Namrata Jain

Publicado 2026-01-15
📖 5 min de lectura🧠 Análisis profundo

Autores originales: Pedro Antonino, Namrata Jain

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 estás construyendo una bóveda de alta seguridad. Quieres demostrarle a un gerente de un banco que conoces la combinación de la bóveda sin decirle realmente cuál es la combinación. Esto es la magia de las pruebas de conocimiento cero (Zero-Knowledge o ZK).

Sin embargo, construir estas bóvedas es complicado. Los "planos" para estas pruebas son rompecabezas matemáticos complejos llamados circuitos aritméticos. Si una sola línea de los planos es incorrecta, la bóveda podría ser insegura o la prueba podría fallar.

Este artículo presenta una nueva herramienta llamada NAVe (Noir Acir Verifier) diseñada para revisar estos planos en busca de errores antes de que lleguen a utilizarse. Así es como funciona, explicado de forma sencilla:

1. El problema: La "Receta Secreta" frente al "Libro de Cocina"

Los autores se centran en un lenguaje de programación llamado Noir. Piensa en Noir como un libro de cocina de alto nivel que facilita la escritura de recetas para estas bóvedas.

  • El Cocinero (Desarrollador): Escribe una receta en un Noir fácil de leer.
  • El Traductor (Compilador): Convierte esa receta en un manual de instrucciones de bajo nivel llamado ACIR. Este manual es una lista de ecuaciones matemáticas que la computadora debe resolver para demostrar que la bóveda es segura.
  • El Peligro: A veces, el traductor comete un error, o el cocinero olvida incluir un paso crucial. En el mundo de ZK, esto se llama estar "sub-restringido" (under-constrained). Es como escribir una receta que dice "añadir sal" pero olvida decir cuánto. El resultado puede ser comestible, pero no es el plato que pretendías.

2. La solución: El "Detective Matemático" (NAVe)

Los autores crearon NAVe, un verificador formal. Piensa en NAVe como un detective matemático superinteligente que lee el manual de instrucciones de bajo nivel (ACIR) y comprueba si las matemáticas realmente coinciden con lo que el cocinero pretendía.

NAVe utiliza un potente motor de lógica (llamado solucionador SMT) para hacer preguntas como:

  • "¿Si introduzco un número secreto, la matemática siempre dará como resultado la prueba pública correcta?"
  • "¿Hay alguna forma de engañar al sistema con un número falso?"

Si la matemática está rota, NAVe no se limita a decir "Error". Actúa como un detective que encuentra una pista: le muestra al desarrollador exactamente qué número podría haber usado para romper el sistema. Esto les ayuda a corregir el plano de inmediato.

3. Dos formas de resolver el rompecabezas

El artículo describe dos formas diferentes en las que NAVe traduce los rompecabezas matemáticos para resolverlos:

  1. La vía de los Enteros: Trata los números como números enteros regulares (1, 2, 3...) y comprueba las matemáticas utilizando reglas aritméticas estándar.
  2. La vía del Campo Finito: Trata los números como si estuvieran en un reloj circular (donde, después de cierto número, vuelves a empezar desde cero). Así es como funcionan las pruebas ZK reales.

Los autores descubrieron que ninguno de los dos métodos es perfecto para todas las situaciones. A veces, el detective de "Enteros" es más rápido; otras veces, el detective de "Campo Finito" es mejor. Sugieren utilizar ambos detectives al mismo tiempo para obtener los mejores resultados.

4. La trampa de lo "No Restringido"

Una característica única de Noir es el "código no restringido" (unconstrained code). Imagina una parte de la receta donde se le permite al chef adivinar los ingredientes sin ser comprobado. Esto es útil para la velocidad, pero peligroso si el chef adivina mal.

  • El Riesco: Un desarrollador podría escribir código que parece que verifica los ingredientes, pero debido a que está en la sección "no restringida", la computadora no fuerza realmente la comprobación.
  • El Trabajo de NAVe: NAVe busca específicamente estas "comprobaciones fantasma". Verifica que, incluso si un desarrollador utiliza la sección de "adivinanza", haya añadido una regla estric de separación (un assert) para asegurarse de que la adivinación fue realmente correcta.

5. Lo que encontraron

Los autores probaron NAVe en una variedad de programas Noir existentes:

  • Funciona: NAVe detectó con éxito errores en programas donde la matemática no coincidía con la intención.
  • El Cuello de Botella: Descubrieron que comprobar las "restricciones de rango" (asegurarse de que un número quepa dentro de un número específico de bits, como comprobar si un número está entre 0 y 255) es muy difícil para el detective matemático. A veces tarda mucho tiempo o se queda bloqueado.
  • El Futuro: Planean construir mejores "atajos" (abstracciones) para ayudar al detective a resolver estos complicados rompecabezas de rango de forma más rápida.

Resumen

En resumen, NAVe es una red de seguridad para los desarrolladores que construyen aplicaciones que preservan la privacidad. Traduce su código a un lenguaje matemático estricto y utiliza un potente solucionador para asegurar que el código hace exactamente lo que afirma hacer, detectando errores sutiles que de otro modo podrían conducir a fallos de seguridad. Es como tener un inspector riguroso que comprueba la integridad estructural de un puente antes de que se permita a nadie cruzarlo.

¿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.

Probar Digest →