La Prueba de Conocimiento Cero, abreviada como ZKP, es una forma novedosa de probar un hecho sin filtrar ninguna información privada. La aparición de la Prueba de Conocimiento Cero se debe a una de las cosas más importantes sobre nosotros, la protección de los datos de privacidad. Hoy en día, ZKP se utiliza ampliamente en muchos proyectos de blockchain que pueden proporcionar de manera efectiva una forma de autenticar al usuario sin filtrar la privacidad del usuario en un entorno público. Actualmente, hay cada vez más casos de uso que pueden utilizar ZKP para autenticar usuarios en nuestra vida diaria. Por ejemplo, si queremos probar que un estudiante ya aprobó el examen pero no queremos mostrar la calificación real del examen. Además, cuando estamos comprando algunas pólizas de seguro, solo queremos mostrar a la compañía de seguros que no tenemos cáncer, pero no queremos mostrar más detalles sobre nuestra salud, y así sucesivamente.
Generalmente, la prueba no es lo mismo que la prueba matemática estricta que utiliza axiomas y lógica. La mayoría de las pruebas de ZKP se basan en la probabilidad matemática, lo que significa que el resultado puede ser probado desde un punto de vista estadístico. El verificador pedirá aleatoriamente al probador la prueba. Si el probador puede siempre proporcionar el resultado correcto, después de unas pocas veces, aunque la posibilidad de fallo de la prueba no es cero, está muy cerca de ello. Por lo tanto, técnicamente esa pequeña posibilidad de fallo puede ser ignorada y la prueba se considera exitosa.
Consideremos algunos ejemplos sobre la Prueba de Conocimiento Cero. Alice quiere probarle a Bob que tiene la llave de una habitación. ¿Cómo puede hacerlo? Por supuesto, puede darle a Bob la llave para abrir la puerta y así probar que tiene la llave. Pero esto permitirá a Bob ver la llave. Si Alice tiene otra información privada como la edad o direcciones en la llave, también se revelarán a Bob. ¿Qué podemos hacer para permitir que Alice pruebe el hecho sin mostrar la llave a Bob? Una posible solución puede ser: Alice le dirá a Bob que puede agarrar algo de la habitación que Bob conoce y mostrárselo a Bob, y así probar indirectamente que tiene la llave.
Veamos otra pregunta. Alice tiene dos pelotas que son de color rojo y verde. Su amigo Bob tiene daltonismo y no puede identificar colores. ¿Cómo puede Alice probarle a Bob que las dos pelotas tienen colores diferentes? Una solución podría ser. Bob pone las dos pelotas en sus manos. En cada ronda puede elegir aleatoriamente intercambiar o no intercambiar las pelotas en su mano sin dejar que Alice vea la acción de intercambio. Luego le pedirá a Alice que identifique si ha intercambiado las pelotas. Dado que Alice no tiene daltonismo, puede identificar correctamente el color de las pelotas en las manos de Bob. Después de unas pocas rondas, si Alice puede responder siempre correctamente, Bob sabrá que las dos pelotas tienen colores diferentes porque la posibilidad de fallo es muy baja.
El tercer ejemplo de ZKP es la famosa cueva de Ali Baba. La Ubicación A y la Ubicación B están en una cueva y están separadas por una puerta que se puede abrir con llaves. Si Alice quiere probarle a Bob que tiene la llave de la puerta, ¿qué puede hacer para completar la prueba sin mostrar la llave a Bob? La solución posible sería: Alice puede elegir aleatoriamente estar en la ubicación A o en la ubicación B, y Bob no conoce su ubicación. Bob elegirá aleatoriamente un lado, ya sea A o B, y le pedirá a Alice que salga por esa cueva. Por ejemplo, si Alice está en la ubicación A y Bob le pide que salga por el lado B, necesitará usar la llave para abrir la puerta. Después de unas pocas rondas, Bob creerá que Alice tiene la llave de la puerta, y Alice no necesita mostrar la llave a Bob.
Atribución: