La zk-STARK es un tipo de pruebas criptográficas altamente seguras que usan los principios de las Pruebas de Conocimiento Cero (ZKP) para crear datos cifrados que pueden ser fácilmente verificados sin revelar información sensible sobre dichos datos, y lo mejor de todo, con resistencia a la computación cuántica garantizando su seguridad en un futuro no tan lejano.
Las pruebas (o protocolos) de conocimiento cero (ZKP) han evolucionado mucho desde su creación, y una de esas evoluciones son las zk-STARKs. El término zk-STARK es el acrónimo de Zero-Knowledge Scalable Transparent Arguments of Knowledge. Este es un término que en español significa; Prueba de Conocimiento Cero con Argumentos Transparentes Escalables. Dicho concepto hace referencia a una derivación de las conocidas pruebas zk-SNARKs que proyectos como Zcash usan en su blockchain, para proveer un alto grado de privacidad y anonimato, y que ya hemos estudiado con anterioridad.
Sin embargo, las zk-STARKs son más que una pequeña derivación, sino que en realidad, son una mejora significativa de las zk-SNARKs. Y esto no es sólo porque son menos complejas de realizar, sino porque son más seguras, e incluso resistente a la computación cuántica. En pocas palabras, son el futuro inmediato de las pruebas de conocimiento cero, especialmente, si queremos estar seguros ante la cada vez más cercana, tecnología de computación cuántica.
Pero ¿Cómo funciona una zk-STARKs? ¿Cuáles son sus ventajas y riesgos? ¿Qué proyectos blockchain se plantean usarlas en un futuro cercano? Pues bien eso lo sabrás a continuación.
zk-STARKS, una mejora para algo ya de por sí sorprendente
Como hemos mencionado al principio, las zk-STARKs son una mejora de las conocidas pruebas zk-SNARKs. Una mejora necesaria debido a la enorme complejidad algorítmica, matemática y criptográfica que representan las pruebas zk-SNARKs. Es cierto, las zk-SNARKs son pruebas grandiosas y muy seguras, pero son muy complejas a nivel algorítmico. Es tanto es así, que incluso especialistas en criptografía tienen problemas en detectar errores en las mismas.
Lo anterior puede sonar como algo increíble, pero es la verdad, y esto se hizo patente cuando Zcash, presentó un gravísimo error en su código. El error en cuestión, permitía que cualquier persona pudiera crear criptomonedas de la nada. De esta forma, lo que todos creíamos que era imposible en las criptomonedas, generar monedas de la nada, un pequeño error en la criptografía zk-SNARK de Zcash lo hacía posible.
Sin embargo, para cierta tranquilidad de los desarrolladores de Zcash, el error era tan complejo de detectar, que solo unas pocas personas en el mundo hubieran tenido el conocimiento necesario para detectarlo y explotar el error. De cierta forma, evitaron el desastre de un alud de monedas “falsas” solo por el hecho de que la criptografía es tan compleja que pocos la entienden. Pero esta situación está muy lejos de ser la ideal y debe evitarse a cualquier costo, porque la «Seguridad por oscuridad» no es seguridad real.
La extrema complejidad es enemiga de la seguridad
Por otro lado, este hecho también puso el énfasis en una realidad: las zk-SNARKS podrían convertirse en el peor enemigo de las monedas de privacidad como Zcash. Y es que, aunque cueste admitirlo, que un sistema de seguridad criptográfica sea tan complejo de depurar, no es nada bueno. Por suerte, esta es una realidad que ya era conocida mucho antes de este error, y fue lo que llevó al desarrollo de las zk-STARKs.
A continuación hablaremos más en detalle del origen de las zk-STARKS y de cómo pueden ofrecernos más seguridad, con menos complejidad.
Los inicios de una criptografía potente pero simple
Para conocer los inicios de las zk-STARKs debemos trasladarnos al año de 1990, fecha en la cual empezaron los primeros trabajos sobre estas pruebas. En ese momento se iniciaron las investigaciones y desarrollos preliminares de la tecnología de zk-STARKs. Sin embargo, estos sistemas iniciales resultaron ser poco prácticos.
No fue hasta que Eli Ben-Sasson, Iddo Bentov, Yinon Horesh y Michael Riabzev, presentaron en 2018, su trabajo conjunto “Scalable, transparent, and post-quantum secure computational integrity” (en español, Integridad computacional segura escalable, transparente y post-cuántica). El trabajo presentado es único en su estilo, demostrando una construcción criptográfica sólida, que dejaba muy atrás a las conocidas pruebas zk-SNARKs de Zcash. Y lo mejor de todo: eran mucho más sencillas de aplicar y seguras que su contraparte.
Esto lo lograrían con una aproximación mucho más elemental sobre el cómo crear una prueba de conocimiento cero. Más específicamente el renunciar a la construcción de un área de trabajo criptográfica o “black box” altamente confiable. Lo que parece contrario a cualquier principio de seguridad en criptografía, era aplicado en este nuevo sistema. Pero al mismo tiempo, dicha decisión permitía reducir la complejidad del sistema, el trabajo necesario para su realización, y no renunciaba a la seguridad, sino que al contrario habilitaba nuevas vías para ofrecer una mayor.
De esta manera y haciendo uso de criptografía homomórfica, computación multipartita segura (MPC) y pruebas interactivas, estos investigadores, lograron diseñar zk-STARK. En pocas palabras, zk-STARK es la unión de, cómo mínimo, 50 años de investigaciones en criptografía. Un trabajo en el que influyeron mentes tan brillantes como las de Shafrira Goldwasser y Silvio Micali.
Así con esta aventurada aproximación, zk-STARK comenzaría su camino para convertirse en un digno rival de zk-SNARK, apuntado a ser el sistema de criptografía que muchas criptomonedas usarán en el futuro, un futuro que podría estar dominado por las computadoras cuánticas.
¿Qué significa zk-STARK?
El término de zk-STARK puede ser seccionado de la siguiente forma:
- zk, como en conocimiento cero y con gran énfasis en preservación de la privacidad,
- Escalable (S – Scalable), ya que la prueba es de un tamaño relativamente «pequeño» (o aceptable), y la verificación toma exponencialmente menos tiempo que la ejecución de cálculos ingenuos (es decir, es casi instantánea, incluso para pruebas grandes)
- Transparente (T – Transparent), ya que no hay requisitos para una configuración confiable, como en los sistemas zk-SNARK.
- Argumento (AR – ARgument), como en un esquema de prueba criptográfico computacionalmente seguro que logra la integridad y solidez de un lenguaje específico.
- Conocimiento (K – Knowledge), ya que se basa en declaraciones relacionadas con información públicamente conocida.
Usos de los sistemas zk-STARK
El principal uso de sistemas de pruebas de conocimiento como zk-STARK, se centra en la creación de sistemas altamente seguros y privados. Sistemas donde exista una total descentralización de la información, y la misma solo pueda ser accedida bajo una serie de condiciones claramente expresas. Condiciones que además son difícilmente alcanzables por medios no convencionales, como por ejemplo, un hackeo.
Esto obviamente incluye a sistemas como las criptomonedas, donde el uso de criptografía no sólo habilita la seguridad de la red, sino que protege a los usuarios de la misma, les brinda privacidad y anonimato según sea el caso. Y es precisamente en estas últimas donde, zk-SNARK brillan, porque como toda prueba de conocimiento cero, son perfectas para la privacidad y el anonimato al no revelar de ninguna manera la información, pero dejando al mismo tiempo una herramienta para validar la transacción de forma inequívoca y determinista. Es decir, zk-STARK no revela la información que cifra, pero siempre podrás validar su veracidad sin importar que.
Mejorar la escalabilidad de las blockchains
Otro posible uso de las zk-STARK está en impulsar la escalabilidad de la blockchain, permitiendo que las pruebas criptográficas ocupen menos espacio. En criptomonedas como Bitcoin, donde el tamaño de bloque es un limitante en la cantidad de transacciones que se pueden procesar por segundo, esto es vital. Con pruebas criptográficas de menor tamaño, las transacciones también ocupan menos espacio, y caben más transacciones en cada bloque. El efecto se hace más grande a medida que se aplica en miles de transacciones, y con ello, se logra mejorar la escalabilidad. Sin embargo, esto es solo una parte dentro de una solución de escalabilidad, puesto que las pruebas criptográficas más pequeñas no harán que la blockchain aumente su rendimiento de forma drástica.
Otros posible usos de este tipo de sistemas sería por ejemplo, los sistema de streaming con copyright completamente cifrados y seguros. Con ello no serían necesarios los actuales sistemas de cifrado basados en criptografía simétrica en su mayoría. Los sistemas de votación electrónicos también se benefician enormemente de este tipo de sistemas. Esto gracias a que permiten que el elector pueda emitir su voto, este puede ser verificado, pero de ninguna manera sabremos quien lo emitió.
Como puedes ver el potencial de las zk-STARK no solo está en el mundo blockchain, sino también mucho más allá.
¿Cuánto sabes, criptonauta?
¿Se convertirán las pruebas ZKP como la zk-STARK, en un estándar de criptografía en un futuro?¡CIERTO!
El avance de la computación cuántica cada vez más acerca a su final la época de las pruebas criptográficas asimétricas tal como las hemos aplicado hasta el momento. Nuevos protocolos como ZKP y zk-STARK serán sin duda alguna la base de la nueva criptografía que protegerá nuestro mundo digital y ello también implica a la blockchain.
Principales diferencias entre zk-STARK y zk-SNARK
- Los zk-SNARK requieren una fase de configuración confiable mientras que los zk-STARK usan aleatoriedad públicamente verificable para crear sistemas de cómputo verificables sin confianza.
- Los zk-STARK son más escalables en términos de velocidad y tamaño computacional en comparación con los zk-SNARK.
- Los zk-SNARK son vulnerables a los ataques de los ordenadores cuánticos debido a la criptografía que usan. Los zk-STARK son actualmente resistentes a los ordenadores cuánticos.
Otros aspectos importantes, podemos verlos en la siguiente tabla comparativa, donde podemos ver los diferentes campos donde destaca zk-STARK frente a otras pruebas ZKP conocidas.
zk-STARK y sus aplicaciones hoy en día
Seguramente te ha parecido sorprendente todo lo que nos ofrece zk-STARK, pero desafortunadamente la tecnología es tan nueva (2018) que no ha sido extensamente probada, estudiada, y aun no se aplica en ningún sistema de producción real. Ni siquiera en el mundo de las criptomonedas.
De momento, la única utilidad conocida de las zk-STARK está siendo desarrollada por Starkware, una empresa creada por los diseñadores de zk-STARK. El objetivo es diseñar una capa de prueba que habilite la tecnología para su uso en blockchain, exchanges descentralizadas y mucho más. Sin embargo, pasarán algunos años más antes de que podamos ver la tecnología aplicada en esos espacios. Sin duda el futuro de la criptografía zk-STARK apunta a ser prometedor.