Una prueba de conocimiento cero es un método criptográfico que convence a un verificador de que una afirmación específica es verdadera, manteniendo ocultos los datos privados que la respaldan. Esos datos se llaman testigo. La afirmación y las entradas designadas como públicas pueden seguir visibles; «conocimiento cero» no significa que el verificador no aprenda nada.
Qué establece la prueba
El probador usa el testigo para generar evidencia que el verificador revisa. La completitud significa que una prueba honesta de una afirmación verdadera se acepta. La solidez limita la posibilidad de hacer pasar una afirmación falsa por verdadera. La propiedad de conocimiento cero evita revelar información adicional del testigo más allá de la afirmación pública.
Por ejemplo, un sistema podría demostrar que una credencial firmada cumple un umbral de edad sin divulgar la fecha de nacimiento. El emisor y las reglas codificadas siguen siendo relevantes. En blockchain también se utiliza para pagos privados y para verificar cálculos realizados en otro lugar.
La privacidad depende de la aplicación
Los sistemas difieren en costo computacional, tamaño de prueba y supuestos de configuración. Algunos requieren una configuración de confianza y otros no.
La prueba solo establece la afirmación codificada bajo los supuestos del sistema. Restricciones incorrectas o errores de implementación pueden debilitarla. Los detalles públicos de transacciones y los metadatos de red aún pueden revelar información, por lo que usar tecnología ZK no vuelve anónima una aplicación automáticamente.