La parábola de la cueva de Ali Baba
Imaginemos una cueva con forma de anillo con una sola entrada y una puerta mágica que separa los dos caminos laterales. Para pasar por la puerta mágica, uno necesita susurrar las palabras secretas correctas. Entonces considera que Alicia (amarilla) quiere demostrarle a Bob (azul) que sabe cuáles son las palabras secretas, mientras las mantiene en secreto. Para hacerlo, Bob acepta esperar afuera, mientras ella entra a la cueva y camina hasta el final de uno de los dos caminos posibles. En este ejemplo, ella decide pasar por el Camino 1.
Después de un rato, Bob camina por la entrada y grita de qué lado quiere que aparezca Alicia (Ruta 2 en este caso).
Si Alicia realmente sabe el secreto, ella se mostrará de manera confiable desde el camino que Bob nombra.
Todo el proceso puede repetirse varias veces para confirmar que Alicia no está eligiendo el camino correcto por suerte.
La parábola de la cueva de Ali Baba ilustra el concepto de pruebas de conocimiento cero, que forman parte de los protocolos zk-SNARK y zk-STARK. Las pruebas ZK se pueden usar para demostrar la posesión de cierto conocimiento sin revelar ninguna información al respecto.
zk-SNARKs
Las pruebas de conocimiento cero permiten que un individuo demuestre a otro que una declaración es verdadera, sin revelar ninguna información más allá de la validez de la declaración. A las partes involucradas se les conoce comúnmente como un “demostrador” y un “verificador”, y la declaración que mantienen en secreto se llama testigo. El principal objetivo de estas pruebas es revelar la menor cantidad de datos posible entre las dos partes. En otros términos, uno puede usar pruebas de conocimiento cero para probar que tienen cierto conocimiento sin revelar ninguna información sobre el conocimiento en sí.
Dentro del acrónimo SNARK, "Sucinto" significa que estas pruebas son más pequeñas en tamaño y se pueden verificar rápidamente. "No interactivo" significa que hay poca o ninguna interacción entre el demostrador y el verificador. Las versiones anteriores de los protocolos de conocimiento cero por lo general requieren que el demostrador y el verificador se comuniquen de un lado a otro y, por lo tanto, se consideran pruebas zk "interactivas". Pero en las construcciones "no interactivas", los demostradores y los verificadores solo tienen que intercambiar una prueba.
Actualmente, las pruebas zk-SNARK dependen de una configuración inicial confiable entre un demostrador y un verificador, lo que significa que se requiere un conjunto de parámetros públicos para construir pruebas de conocimiento cero y, por lo tanto, transacciones privadas. Estos parámetros son casi como las reglas del juego, están codificados en el protocolo y son uno de los factores necesarios para probar que una transacción fue válida. Sin embargo, esto crea un problema de centralización potencial porque los parámetros a menudo son formulados por un grupo muy pequeño.
La pieza final del rompecabezas de acrónimo es "Conocimiento", lo que significa que no es posible que el investigador construya una prueba sin tener realmente el conocimiento (o testigo) para respaldar su afirmación.
zk-STARKs
Los zk-STARK se crearon como una versión alternativa de las pruebas zk-SNARK y se consideran una implementación más rápida y económica de la tecnología. Pero, lo que es más importante, los zk-STARK no requieren una configuración inicial de confianza (por lo tanto, la "T" es transparente).
Una de las razones principales por las que los Zk-STARK ofrecen una implementación más barata y rápida es porque la cantidad de rondas de comunicación entre demostradores y verificadores permanece en relación constante con cualquier aumento en el cálculo. En contraste, en los zk-SNARK, cuanta más computación se requiere, más tienen que enviar las partes de un lado a otro. Por lo tanto, el tamaño general de los datos de zk-SNARK es mucho mayor que los datos dentro de las pruebas de zk-STARK.