zk-Stark
Hay dos tipos populares de
zero knowledge (zk) proofs, a las que a veces también se les conoce como protocolos zk:
SNARK y STARK. Un protocolo zero-knowledge proof es un método de verificación criptográfica mediante el cual una parte (el probador) puede probarle a la otra parte (el verificador) que una declaración dada es verdadera sin la necesidad de proporcionar información de respaldo aparte del hecho de que la declaración es efectivamente cierta.
Zk-STARK significa "Zero-Knowledge Scalable Transparent Arguments of Knowledge" (argumento de conocimiento transparente y escalable de conocimiento cero). Los protocolos zk-STARK fueron creados por Eli-Ben Sasson, profesor del Technion-Israel Institute of Technology. A diferencia de las zk-SNARK que dependen de una configuración inicial confiable entre un probador y un verificador, las zk-STARK no requieren una configuración inicial confiable, ya que dependen de una
criptografía más sencilla a través de
funciones hash resistentes a las colisiones. Este enfoque también descarta las suposiciones teóricas de números de las zk-SNARK que son computacionalmente caras y teóricamente propensas a ataques de
computadoras cuánticas.
En términos simples, las pruebas zk-STARK presentan una estructura más directa en términos de suposiciones criptográficas. Sin embargo, esto conlleva una desventaja significativa: tienen un gran tamaño de prueba, generalmente de 10 a 100 veces más grande que las zk-SNARK. Esa diferencia en el tamaño de los datos las hace más caras y puede presentar limitaciones al utilizar la tecnología para enviar la transferencia de
criptomonedas y otras aplicaciones.
Los casos de uso más comunes para las pruebas zero-knowledge son aquellas situaciones en las que tanto la privacidad como la seguridad son esenciales. Un ejemplo es la autenticación de la identidad. El uso de ciertos servicios en línea requiere demostrar tu identidad y tu derecho de acceder a esas plataformas. Esto a menudo requiere proporcionar información personal, como nombre, correo electrónico, fecha de nacimiento, entre otros datos.
Las pruebas zero-knowledge pueden simplificar la autenticación, tanto para las plataformas como para los usuarios. Una vez que se genera una prueba zero-knowledge utilizando entradas públicas (datos que confirmen que el usuario pertenece a la plataforma) y entradas privadas (los datos del usuario), el usuario puede simplemente presentarla para autenticar su identidad siempre que necesite acceder al servicio. Esto mejora la experiencia de los usuarios y libera a las organizaciones de la necesidad de almacenar enormes cantidades de información personal.