Zk-SNARK - KamilTaylan.blog
20 abril 2021 6:52

Zk-SNARK

¿Qué es zk-SNARK?

Zk-SNARK es un acrónimo de «Argumento de conocimiento sucinto y no interactivo de conocimiento cero». Un zk-SNARK es una prueba criptográfica que permite que una de las partes demuestre que posee cierta información sin revelarla. Esta prueba es posible utilizando una clave secreta creada antes de que se lleve a cabo la transacción. Se utiliza como parte del protocolo para la criptomoneda, Zcash.

Conclusiones clave

  • Zk-SNARK es un protocolo de prueba de conocimiento cero utilizado en el cifrado, y es un acrónimo que significa «Argumento de conocimiento sucinto no interactivo de conocimiento cero».
  • Esta prueba se desarrolló e introdujo por primera vez a fines de la década de 1980, y ahora es empleada por la criptomoneda Zcash para resolver un problema de anonimato percibido con las cadenas de bloques de tipo Bitcoin.
  • Las pruebas de Zk-SNARK se basan en una configuración inicial de «sistema de confianza» que ha sido criticada como una falla de seguridad inherente.

Entendiendo zk-SNARK

Para muchos miembros originales de la comunidad de criptomonedas, principalmente la comunidad de Bitcoin, la privacidad era un objetivo y una característica asumidos de las criptomonedas. Sin embargo, la privacidad siempre fue una preocupación de segundo orden, dada la necesidad de la criptomoneda de crear un sistema «sin confianza» para garantizar la integridad de la moneda electrónica y las transacciones digitales.

A principios de la década de 2010, los usuarios de relativamente fácil, volver a identificar a las personas que habían proporcionado datos seudónimos a múltiples fuentes.

Debido a la falta de privacidad percibida de algunas de las criptomonedas originales como Bitcoin, los desarrolladores comenzaron a trabajar en monedas centradas en la privacidad. El más destacado de ellos fue Zcash, respaldado por una tecnología conocida como zk-SNARKs.

Prueba de conocimiento cero

Un zk-SNARK («argumento de conocimiento sucinto no interactivo de conocimiento cero») utiliza un concepto conocido como «prueba de conocimiento cero». La idea detrás de estas pruebas se desarrolló por primera vez en la década de 1980. En pocas palabras, una prueba de conocimiento cero es una situación en la que cada una de las dos partes de una transacción puede verificar entre sí que tiene un conjunto particular de información, mientras que al mismo tiempo no revela cuál es esa información.

Para la mayoría de los otros tipos de prueba, al menos una de las dos partes debe tener acceso a toda la información. Una prueba tradicional se puede comparar con una contraseña utilizada para acceder a una red en línea. El usuario envía la contraseña y la propia red comprueba el contenido de la contraseña para verificar que sea correcta. Para hacer esto, la red también debe tener acceso al contenido de la contraseña.

Una versión de prueba de conocimiento cero de esta situación implicaría que el usuario demuestre a la red (a través de una prueba matemática) que tiene la contraseña correcta sin revelar la contraseña en sí. Las ventajas de privacidad y seguridad en esta situación son claras: si la red no tiene la contraseña almacenada en algún lugar para fines de verificación, la contraseña no puede ser robada.

La base matemática de zk-SNARKS es compleja. No obstante, las pruebas de este tipo permiten que una de las partes demuestre no solo que existe un fragmento de información en particular, sino también que la parte en cuestión tiene conocimiento de esa información. En el caso de Zcash, zk-SNARKs se pueden verificar casi instantáneamente y el protocolo no requiere ninguna interacción entre el prover y el verificador.

Críticas a zk-SNARKs

Por supuesto, existen preocupaciones relacionadas con zk-SNARKs. Por ejemplo, si alguien pudo acceder a la clave privada que se utilizó para crear los parámetros del protocolo de prueba, podría crear pruebas falsas que, no obstante, parecían válidas para los verificadores. Esto le permitiría a esa persona crear nuevos tokens de Zcash a través de un proceso de falsificación. Para evitar que esto suceda, Zcash fue diseñado de tal manera que los protocolos de prueba se elaboran y se distribuyen entre múltiples partes.

Si bien la construcción del proceso de prueba de Zcash se completó de tal manera que se minimiza la posibilidad de falsificar tokens a través de pruebas falsas, existe al menos otra preocupación relacionada con la criptomoneda. Zcash se creó con un «impuesto» del 20% aplicado a todos los bloques creados durante los primeros años del token. Este impuesto se conoce como el «impuesto del fundador» y se utiliza para compensar a los desarrolladores de la criptomoneda.

Los críticos han sugerido que los fundadores podrían usar esta faceta del sistema para crear un número infinito de tokens Zcash sin que nadie más sepa de la existencia de esos tokens. Por esa razón, no es del todo posible saber el número exacto de tokens Zcash que existen en este momento.

Desde 2019, algunos desarrolladores han estado trabajando para mejorar zk-SNARKs eliminando la configuración confiable. Un equipo llamado Suterusu ha desarrollado un sistema llamado zK-ConSNARK que afirma ser operable sin una configuración confiable, puede brindar protección de privacidad para cadenas de bloques convencionales como Bitcoin y tiene la inflación más baja para cualquier criptomoneda existente.