La privacidad siempre ha sido vista como una característica valiosa dentro de la comunidad de criptomonedas. Es la precursora de la fungibilidad, que es necesaria para una forma de dinero ampliamente utilizada. Del mismo modo, la mayoría de los titulares de activos cripto no quieren que sus tenencias y el historial de transacciones sean completamente públicos. Entre las diversas técnicas criptográficas que pretenden proporcionar privacidad a las blockchains, las pruebas zk-SNARK y zk-STARK son dos ejemplos notables.
La parábola de la cueva de Ali Baba
En 1990, el criptógrafo Jean-Jacques Quisquater (junto con otros colaboradores) publicó un artículo titulado “Cómo explicar los protocolos de conocimiento cero a sus hijos”. El artículo presenta el concepto de pruebas ZK con una parábola que involucra la Cueva de Ali Baba. Desde su creación, la parábola ha sido adaptada varias veces y ahora tenemos múltiples variaciones. Aún así, la información subyacente es esencialmente la misma.
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
Zcash es la primera aplicación ampliamente disponible de zk-SNARKs. Mientras que otros proyectos de privacidad como Monero emplean firmas de anillo y otras técnicas, se crea una cortina de humo alrededor de quién envió qué, zk-SNARKS cambia fundamentalmente la forma en que se comparten los datos. La privacidad de Zcash se deriva del hecho de que las transacciones en la red pueden permanecer cifradas pero aún así ser verificadas como válidas mediante el uso de pruebas de conocimiento cero. Por lo tanto, aquellos que hacen cumplir las reglas de consenso no necesitan conocer todos los datos que subyacen en cada transacción. Vale la pena mencionar que las características de privacidad en Zcash no están activas de manera predeterminada, sino que son opcionales y dependen de la configuración manual.
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.
Si bien una configuración pública inicial es fundamental para las implementaciones de zk-SNARK de hoy, los investigadores están trabajando para encontrar otras alternativas como una forma de reducir la confianza requerida en el proceso. La fase de configuración inicial es importante para evitar el gasto falsificado, ya que si alguien tuviera acceso a la aleatoriedad que generó los parámetros, podría crear pruebas falsas que parecían válidas para el verificador. En Zcash, la fase de configuración inicial se conoce como la Ceremonia de Generación de Parámetros.
Pasando a la pieza “ARguments” del acrónimo. Los zk-SNARK se consideran computacionalmente sólidos, lo que significa que un explorador deshonesto tiene una probabilidad muy baja de engañar con éxito al sistema. Esta propiedad se conoce como solidez y supone que el demostrador tiene una capacidad de cálculo limitada. Teóricamente, un experto con suficiente poder de cómputo podría crear pruebas falsas, y esta es una de las razones por las que muchos consideran las computadoras cuánticas como una amenaza para los zk-SNARK y los sistemas blockchain.
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.
Las pruebas de conocimiento cero son verificables rápidamente y, por lo general, requieren menos datos que una transacción estándar de Bitcoin. Esto abre un camino para que la tecnología zk-SNARK se use como solución de privacidad y escalabilidad.
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).
Desde el punto de vista técnico, los Zk-STARK no requieren una configuración inicial de confianza porque se basan en criptografía simétrica más sencilla a través de funciones hash resistentes a las colisiones. Este enfoque también elimina los supuestos teóricos numéricos de zk-SNARK que son computacionalmente costosos y teóricamente propensos a ser atacados por computadoras cuánticas.
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.
Está claro que tanto zk-SNARKS como zk-STARK apelan a la creciente preocupación con respecto a la privacidad. Dentro del mundo de la criptomoneda, estos protocolos tienen un gran potencial y pueden ser una vía innovadora hacia la adopción general.