El anonimato siempre se ha considerado una de las características más valiosas de la comunidad de criptomonedas. Es el precursor de la fungibilidad, una característica también necesaria para una forma de dinero ampliamente utilizada. Del mismo modo, la mayoría de los poseedores de criptoactivos no quieren que sus activos y registros de transacciones se divulguen por completo. De todas las diversas tecnologías criptográficas que trabajan para brindar privacidad a las cadenas de bloques, zk-SNARK y zk-STARK son dos ejemplos dignos de mención.
zk-SNARK representa una prueba de conocimiento cero simplificada no interactiva, y zk-STARK representa una prueba de conocimiento cero simplificada y totalmente transparente. Zk-SNARK ya se utiliza en sistemas de pago basados en blockchain como Zcash, proyectos de JP Morgan Chase y como método de verificación segura de cliente a servidor. Pero si bien los zk-SNARK ya están bien establecidos y se utilizan ampliamente, zk-STARK ahora se promociona como una versión nueva y mejorada del protocolo que apunta a abordar muchas de las deficiencias anteriores de los zk-SNARK.
Fábula de la caverna 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 prueba de conocimiento cero a los niños". Este artículo presenta el concepto de pruebas de conocimiento cero, incorporando la parábola de la cueva de Alibaba. Esta fábula ha sido adaptada muchas veces desde su creación y ahora disponemos de varias versiones. Pero el contenido expresado es básicamente el mismo.
Imaginemos una cueva circular con una entrada y una puerta mágica que separa dos caminos. Para abrir la puerta mágica, es necesario susurrar el secreto correcto. Entonces, considere que Alice (amarilla) quiere demostrarle a Bob (azul) que sabe cuál es la contraseña, pero al mismo tiempo mantenerla en secreto. Para hacer esto, Bob acepta esperar afuera mientras Alice entra a la cueva y elige uno de los dos caminos hasta el final. En este caso, decide seguir el camino 1.

Después de un rato, Bob camina hacia la entrada y dice de qué lado quiere que salga Alice (en este caso sería el camino 2).

Si Alice conoce la contraseña, podrá seguir correctamente el camino que requiere Bob.

Este proceso se puede repetir varias veces para confirmar que Alice no eligió el camino correcto por suerte.
La parábola de la cueva de Alibaba ilustra el concepto de pruebas de conocimiento cero, que forman parte de los protocolos zk-SNARK y zk-STARK. Las pruebas de conocimiento cero se pueden utilizar para demostrar la posesión de ciertos conocimientos sin revelar ninguna información al respecto.
zk-SNARK
Zcash es la primera aplicación generalizada de zk-SNARK. Si bien los proyectos de privacidad como Monero también emplean firmas de anillo y otras técnicas que crean efectivamente una cortina de humo para proteger a los remitentes, los zk-SNARK cambian fundamentalmente la forma en que se comparten los datos. La privacidad de Zcash surge del hecho de que las transacciones en la red se pueden cifrar pero aún se puede verificar su validez mediante el uso de pruebas de conocimiento cero. Por lo tanto, quienes hacen cumplir las reglas de consenso no necesitan conocer todos los datos sobre cada transacción. Vale la pena mencionar que las funciones de privacidad en Zcash están inactivas de forma predeterminada y son opcionales, sujetas a configuración manual.
Las pruebas de conocimiento cero permiten a una persona demostrarle a otra que lo que está diciendo es cierto sin revelar ninguna información más allá de la validez de la declaración. Las partes involucradas a menudo se denominan probadores y verificadores, y los secretos que guardan se denominan evidencia. El objetivo principal de estas funciones es permitir el menor intercambio de datos posible entre las dos partes. En otras palabras, las personas pueden utilizar pruebas de conocimiento cero para demostrar que saben algo sin revelar ninguna información sobre el conocimiento en sí.
En el acrónimo SNARK, la primera letra "succinct" significa que estas pruebas son sencillas y pueden verificarse rápidamente. "No interactivo" significa que hay poca interacción entre el probador y el verificador. Las versiones anteriores de los protocolos de prueba de conocimiento cero normalmente requerían que el probador y el verificador se comunicaran y, por lo tanto, se consideraban pruebas de conocimiento cero "interactivas". Pero en una estructura "no interactiva", el probador y el verificador sólo necesitan intercambiar pruebas relevantes.
Actualmente, las pruebas de zk-SNARK se basan en una configuración de confianza inicial entre probadores y verificadores, lo que significa que se requiere un conjunto de parámetros públicos para construir una prueba de conocimiento cero y, por lo tanto, una transacción privada. Estos parámetros son casi como reglas del juego, están programados en el protocolo y son uno de los factores necesarios para demostrar que una transacción es válida. Sin embargo, esto crea posibles problemas de centralización, ya que los parámetros suelen ser establecidos por un grupo muy pequeño.
Si bien el entorno público original es la base de las implementaciones actuales de zk-SNARK, los investigadores están trabajando para encontrar alternativas que reduzcan la confianza requerida en el proceso de interacción. La fase de configuración inicial es importante para evitar pagos falsos, porque si alguien tiene acceso a la aleatoriedad de los parámetros generados, podría crear pruebas falsas que sean válidas para el validador. En Zcash, la fase de configuración inicial se denomina proceso de generación de parámetros.
Hablemos nuevamente del acrónimo “ARgumentos”. Los zk-SNARK se consideran razonablemente computables, lo que significa que la probabilidad de que un probador falso engañe con éxito al sistema es muy pequeña. Esta propiedad se llama robustez y supone que el probador tiene un poder computacional limitado. En teoría, un probador con suficiente potencia informática puede crear pruebas falsificadas, lo cual es una de las razones por las que muchos consideran que las computadoras cuánticas son una posible amenaza para los zk-SNARK y los sistemas blockchain.
La última inicial es "Conocimiento", lo que significa que el demostrador no puede elaborar pruebas sin conocimiento real (o testigos) que respalden su declaración.
Las pruebas de conocimiento cero se pueden verificar rápidamente y, por lo general, consumen muchos menos datos que las transacciones estándar de Bitcoin. Esto abre un nuevo camino para que la tecnología zk-SNARK se utilice como una solución de anonimato y escalabilidad.
zk-STARK
Los zk-STARK se crearon como una versión alternativa del protocolo zk-SNARK y se consideran una implementación más rápida y conveniente de la tecnología. Pero lo más importante es que zk-STARK no requiere una configuración de confianza inicial (de ahí la letra "T" de transparencia).
Técnicamente, los Zk-STARK no requieren una configuración confiable inicializada, ya que dependen de un método de cifrado simétrico más sencillo a través de colisiones de funciones hash. Este enfoque también elimina los supuestos de la teoría de números de los zk-SNARK, que son computacionalmente costosos y teóricamente vulnerables a los ataques de las computadoras cuánticas.
Una de las principales razones por las que Zk-STARK proporciona una implementación más conveniente y rápida es porque la cantidad de comunicación entre probadores y verificadores permanece constante con respecto a cualquier incremento de cálculo. Por el contrario, en zk-SNARK, cuantos más cálculos se requieren, más veces las partes tienen que enviar mensajes de un lado a otro. Por lo tanto, el tamaño general de los datos de zk-SNARK es mucho mayor que el tamaño de los datos en la prueba de zk-STARK.
Está claro que tanto zk-SNARKS como zk-STARK generan cada vez más preguntas sobre el anonimato. En el mundo de las criptomonedas, estos protocolos tienen un enorme potencial para convertirse en un enfoque innovador para su uso generalizado.



