¿Qué son las zk-STARK?

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 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: 

  1. zk, como en conocimiento cero y con gran énfasis en preservación de la privacidad, 
  2. 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)
  3. Transparente (T – Transparent), ya que no hay requisitos para una configuración confiable, como en los sistemas zk-SNARK.
  4. Argumento (AR – ARgument), como en un esquema de prueba criptográfico computacionalmente seguro que logra la integridad y solidez de un lenguaje específico.
  5. 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á.