Saltar al contenido principal
es/blog/chat-control/pruebas-conocimiento-cero/

Pruebas de conocimiento cero — Aplicaciones y límites en la detección de CSAM

Por Xscriptor — Óscar Preciado6 min de lectura
TecnologíaCriptografíaPrivacidadInvestigaciónZKPpruebas de conocimiento ceroPSIintersección privadacriptografíaprivacidadCSAMChat ControlXscriptorÓscar Preciado
Pruebas de conocimiento cero — Aplicaciones y límites en la detección de CSAM

"Puedo demostrarte que sé la combinación de la caja fuerte sin abrirla ni decirte el número."

— Esa es la promesa. Lo que no puedo hacer es demostrarte que dentro de la caja no hay nada robado sin abrirla. Y ese es el problema.



Las pruebas de conocimiento cero (Zero-Knowledge Proofs, ZKP) son, junto con el FHE, la otra gran promesa técnica que aparece en los debates sobre Chat Control. La idea es que un usuario podría demostrar que su mensaje no contiene CSAM sin revelar el contenido del mensaje.

Suena perfecto. El diablo está en los detalles.

¿Qué es una prueba de conocimiento cero?

Una ZKP es un protocolo criptográfico que permite a un probador (prover) demostrar a un verificador (verifier) que una afirmación es cierta, sin revelar ninguna información adicional más allá de la validez de la afirmación.

Formalmente, un protocolo ZKP para un lenguaje L\mathcal{L} debe satisfacer:

  1. Completitud: si la afirmación es cierta, el probador honesto convence al verificador
  2. Solidez: si la afirmación es falsa, ningún probador deshonesto puede convencer al verificador (con probabilidad no despreciable)
  3. Conocimiento cero: el verificador no aprende nada más que la validez de la afirmación
Prover: "Tengo una prueba de que M ∉ B (CSAM)"
                │
                │  ███████████████████████
                │  █ ZKP Protocol ████████
                │  ███████████████████████
                │
                ▼
Verifier: ✓ "M no está en B" (sin ver M)

Intersección privada de conjuntos (PSI)

Una variante relevante es la intersección privada de conjuntos (Private Set Intersection, PSI), donde dos partes pueden determinar la intersección de sus conjuntos sin revelar los elementos no compartidos.

En el contexto de CSAR, la idea sería:

  • Usuario: tiene un conjunto de mensajes M\mathcal{M}
  • Plataforma/autoridad: tiene un conjunto de hashes de CSAM conocido H\mathcal{H}
  • PSI: determina si MH\mathcal{M} \cap \mathcal{H} \neq \emptyset sin que ninguna parte revele su conjunto completo
Usuario: M₁, M₂, M₃, ... Mₙ
                    \
                    PSI → ¿Intersección no vacía? → sí/no
                    /
Autoridad: h₁, h₂, h₃, ... hₖ (hashes de CSAM)

Si sí → el usuario tiene al menos un mensaje CSAM (pero no se sabe cuál)
Si no → el usuario no tiene ningún mensaje CSAM

Los problemas prácticos

1. CSAM no conocido no se detecta

El PSI solo detecta coincidencias contra una base de datos preexistente. Pero la mayoría del CSAM que se detecta hoy es material nuevo —imágenes y vídeos que no estaban en ninguna base de datos porque no habían sido reportados anteriormente.

Un sistema basado en PSI:

  • Detecta CSAM ya conocido (hashes existentes)
  • No detecta CSAM nuevo (no se puede hacer hash de lo que no se conoce)
  • Requiere actualización constante de la base de datos

2. El clasificador no es un hash

La detección de CSAM nuevo requiere clasificadores basados en contenido (redes neuronales, embeddings perceptuales). Un clasificador de este tipo no es una función que pueda ejecutarse eficientemente dentro de un ZKP.

Las ZKPs modernas (zk-SNARKs, zk-STARKs, Bulletproofs) pueden probar cómputos complejos, pero el coste de generar una prueba para una red neuronal de tamaño medio sigue siendo prohibitivo:

Tipo de prueba Coste de generación Coste de verificación Aplicable a CNN
zk-SNARK O(log n) O(1) Sí, pero coste enorme
zk-STARK O(n log n) O(log² n) Sí, pruebas grandes
Bulletproofs O(n) O(n) Solo cómputos pequeños
PSI (ECDH) O(n) O(n log n) Solo hashes

3. El problema de la actualización

Incluso si fuera viable ejecutar un clasificador dentro de un ZKP, quedaría el problema de la actualización del clasificador. Si la autoridad puede actualizar remotamente el modelo de clasificación, entonces:

Instant t:    Clasificador C₁ → ZKP → "M no es CSAM"
Instant t+1:  Clasificador C₂ → ZKP → "M es CSAM" (para el mismo M)

El usuario no puede saber si el nuevo clasificador busca CSAM o cualquier otra cosa. Y como las pruebas son verificables, la autoridad puedo re-evaluar mensajes pasados con nuevos clasificadores.

4. Falsos positivos y privacidad

Un falso positivo en un sistema ZKP es cualitativamente distinto a un falso positivo en un sistema tradicional. En un sistema tradicional, el operador revisa manualmente el contenido y descarta el falso positivo. En un sistema ZKP:

  • Si el ZKP dice "CSAM detectado", el operador no puede revisar el contenido (está cifrado)
  • El operador debe confiar en el ZKP o pedir la clave de descifrado para verificar
  • Si pide la clave, el ZKP se vuelve irrelevante
  • Si no pide la clave, acepta como ciertos todos los veredictos del clasificador
ZKP dice "CSAM detectado":
    ├→ Pedir clave → M se descifra → ya no hay privacidad
    └→ Confiar en ZKP → aceptar veredicto → ¿y si es falso positivo?

El callejón sin salida

Las ZKPs y el PSI son herramientas criptográficas poderosas para problemas bien definidos:

Problema ZKP/PSI lo resuelve
Demostrar que conoces un hash sin revelarlo Perfecto
Demostrar que un mensaje no está en una lista de hashes Factible
Demostrar que una imagen no contiene CSAM nuevo No
Clasificar una imagen con red neuronal sin revelar nada Técnicamente posible, inviable
Prevenir la vigilancia retrospectiva No
Evitar la expansión del clasificador No

La conclusión es similar a la del FHE: las ZKPs no pueden resolver el problema de detección de CSAM en comunicaciones cifradas sin romper la privacidad, porque:

  1. No pueden detectar material no catalogado (que es la mayoría del CSAM)
  2. No pueden ejecutar clasificadores complejos a escala
  3. No impiden la re-evaluación retrospectiva
  4. No resuelven el problema de la expansión del clasificador

La paradoja de fondo es que la criptografía puede demostrar cualquier cosa excepto que un contenido que no se ha visto es seguro. Y esa es, precisamente, la demostración que la ley exige.


Serie Chat Control:

  1. Chat Control — Definición y contexto — El punto de partida: qué propone la CSAR, su recorrido legislativo y las posiciones enfrentadas.
  2. Cifrado y vigilancia — Por qué el escaneo masivo rompe el E2EE — Por qué el escaneo obligatorio y el cifrado de extremo a extremo no pueden coexistir.
  3. Criptografía homomórfica — Promesas y límites — Por qué el FHE no es la solución técnica que la Comisión busca.
  4. Pruebas de conocimiento cero — Aplicaciones y límites — ZKP, PSI y por qué no resuelven el problema de detección sin romper la privacidad.
  5. Cifrado externo y claves compartidas — El enfoque de soberanía del usuario y por qué no escala como solución sistémica.
  6. Alternativas al escaneo masivo — Estrategias técnicas, políticas e híbridas para preservar la privacidad.
  7. El precio del control — Una perspectiva sobre el sacrificio de derechos fundamentales en nombre de la seguridad.