Análisis Técnico: Blind Turing-Machines y Computación Privada en Zeropithos
El problema que resuelve
En la arquitectura de inteligencia artificial distribuida actual, existe una tensión fundamental entre la capacidad de cómputo en la nube y la soberanía de los datos. Para que un modelo como el que ejecutamos en nuestro llama-server (32GB GPU) procese consultas, los datos deben residir en memoria, lo que implica un riesgo inherente de fuga de información sensible. Los esquemas tradicionales de cifrado protegen los datos en reposo y tránsito, pero no durante el procesamiento.
El paper "Blind Turing-Machines: Arbitrary Private Computations from Group Homomorphic Encryption" aborda este cuello de botella teórico. Propone un mecanismo donde la máquina de inferencia opera sobre texto cifrado sin poseer las claves de descifrado, manteniendo la confidencialidad absoluta del estado interno del sistema durante la ejecución. Esto es crítico para Zeropithos, donde la integridad de los datos del cliente y la propiedad intelectual del modelo deben coexistir en entornos de computación heterogéneos sin confiar en el proveedor de infraestructura subyacente.
Arquitectura y mecanismo (con detalle técnico)
La propuesta central se basa en la simulación de una Máquina de Turing (MT) utilizando las propiedades algebraicas de un grupo homomórfico. A diferencia de los enfoques de Fully Homomorphic Encryption (FHE) basados en retículos que evalúan circuitos booleanos estáticos, este enfoque trata la computación como una secuencia de transiciones de estado sobre una cinta.
El mecanismo codifica los elementos fundamentales de la MT en elementos de un grupo $G$:
1. La Cinta: Cada celda de la cinta se representa como un elemento del grupo.
2. El Estado: El estado interno de la cabeza de lectura se mapea a un subgrupo específico o mediante un operador de conjugación.
3. Transiciones: La función de transición $\delta(q, a)$ se implementa mediante operaciones de grupo (multiplicación o exponenciación) que transforman el estado cifrado actual en el siguiente, sin revelar $q$ ni $a$.
Matemáticamente, si $E$ es la función de cifrado, el sistema permite que $E(f(x)) = f'(E(x))$, donde $f'$ es una operación válida en el espacio de texto cifrado que corresponde a la lógica de la MT. La clave reside en que la evaluación de la función de transición no requiere descifrar el contenido de la cinta. El "Blind" (a ciegas) implica que el servidor de cómputo ejecuta las operaciones de grupo necesarias para avanzar la máquina, pero no puede inferir el valor del dato subyacente ni el estado lógico de la computación en tiempo real.
Qué lo hace genuinamente nuevo
La novedad radica en la abstracción de la Máquina de Turing directa sobre la estructura de grupo, en contraste con la compilación a circuitos aritméticos profundos típica de las implementaciones FHE modernas (como TFHE o CKKS).
Mientras que los enfoques estándar de 2013-2024 optimizan para la evaluación de circuitos de profundidad limitada (limitando el ruido acumulado), este enfoque conceptualiza la computación como un proceso iterativo de transición de estado. Esto teóricamente permite computaciones "arbitrarias" (en longitud de tiempo) siempre que el ruido del esquema homomórfico pueda gestionarse mediante técnicas de "bootstrapping" o recifrado en grupo. Además, al evitar la expansión combinatoria de circuitos booleanos para operaciones de control de flujo complejas, ofrece una ruta teórica más eficiente para algoritmos con bucles dinámicos, comunes en la lógica de agentes BDI.
Cómo integrarlo en Zeropithos o Dibro
Para nuestro stack, la integración se enfoca en proteger la capa de RAG (Retrieval-Augmented Generation) y el Knowledge Graph. Actualmente, el pipeline en Rust envía chunks de texto descriptos a llama-server. Integrando este esquema:
- Encriptación de Contexto (Dibro): El agente ReAct en Rust debe modularizar el preprocesamiento. Antes de enviar el contexto recuperado desde Fuseki/SPARQL al motor de inferencia, se aplica el cifrado de grupo. Los prompts se transforman en vectores de elementos de grupo.
- Inferencia Ciega (Llama-Server): Requeriría un fork del backend de inferencia para soportar operaciones homomórficas en lugar de multiplicaciones de matrices estándar de punto flotante. Esto es inviable actualmente en hardware estándar, por lo que proponemos una arquitectura híbrida:
- Usar el esquema para filtrado seguro en el Knowledge Graph. Las consultas SPARQL se ejecutan sobre triples cifrados. Solo los resultados relevantes (identificados por tokens de validación homomórfica) se descifran localmente antes de la generación de texto.
- Pipeline Dagster: Configurar jobs en Dagster que manejen la rotación de claves y el "recifrado" periódico para mitigar la expansión de ruido durante las iteraciones del loop BDI.
- Seguridad VPN WireGuard: Las claves maestras del grupo homomórfico se almacenan en un HSM accesible solo a través de la red WireGuard, asegurando que ni siquiera el operador de Zeropithos pueda acceder a los datos en reposo sin autorización de múltiples firmas.
Retos prácticos (VRAM, datos, dependencias)
La implementación directa enfrenta barreras significativas en nuestro hardware actual (GPU 32GB):
- Overhead de Cómputo: Las operaciones de grupo homomórfico son órdenes de magnitud más lentas que las operaciones de punto flotante en GPU. Un paso de inferencia que toma milisegundos podría extenderse a segundos o minutos, rompiendo la latencia requerida para la experiencia de usuario en tiempo real.
- Expansión de VRAM: Los elementos de texto cifrado son significativamente más grandes que los tensores de entrada originales. Una ventana de contexto de 8k tokens podría exceder los 32GB de VRAM rápidamente si no se gestiona la memoria de forma agresiva.
- Dependencias en Rust: Necesitamos librerías criptográficas de alto rendimiento (
ring,arkworks) optimizadas para operar con los grupos específicos del paper. La falta de soporte nativo en frameworks de ML (PyTorch/TensorFlow) obliga a implementar puentes personalizados en Rust para pasar datos entre el pipeline de RAG y el servidor de inferencia. - Gestión de Ruido: A diferencia de los circuitos estáticos, el loop BDI es dinámico. Controlar la acumulación de ruido sin un bootstrapping eficiente (que consume mucha VRAM) limita la profundidad de las cadenas de pensamiento del agente.
Conclusión
"Blind Turing-Machines" ofrece una base teórica sólida para la computación confidencial en arquitecturas de agentes autónomos. Aunque la implementación completa de inferencia ciega es actualmente prohibitiva en términos de latencia para nuestros servidores de 32GB, su aplicación parcial en la capa de recuperación de datos (RAG) y filtrado del Knowledge Graph es viable y estratégica.
Para Zeropithos, adoptar este mecanismo significa dar un paso hacia la soberanía total de datos: permitir que Dibro razon sobre información sensible sin exponerla al modelo de lenguaje subyacente. Es una inversión en privacidad a largo plazo que justifica el desarrollo de módulos especializados en Rust dentro de nuestro pipeline Dagster, asegurando que la evolución hacia la IA confidencial esté alineada con nuestra infraestructura técnica actual.