¿Qué es zk-SNARK?
Zk-SNARK es un acrónimo de Zero-Knowledge Succinct Non-Interactive Argument of Knowledge que significa algo así como “Argumento Sucinto de Conocimiento No Interactivo”.
Básicamente un zk-SNARK es una prueba criptográfica que permite a una parte demostrar que posee cierta información sin revelarla. Esta prueba es posible gracias a una clave secreta creada antes de que tenga lugar la transacción.
Zk-SNARK se utiliza frecuentemente como parte de los protocolos de criptomonedas centradas en la privacidad.
Cómo funciona zk-SNARKs
A principios de la década de 2010, los usuarios de Bitcoin asumían que sus transacciones eran anónimas porque sus identidades offline no estaban asociadas a las claves públicas de los usuarios. Pero a finales de la década, los esfuerzos coordinados de los científicos de datos, los hackers y las fuerzas del orden demostraron que no sólo es posible, sino relativamente fácil, volver a identificar a las personas que habían proporcionado datos pseudónimos a múltiples fuentes.
Zero-Knowledge Proof - Prueba de conocimiento cero
Un zk-SNARK utiliza un concepto conocido como “prueba de conocimiento cero”. La idea en la que se basan 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 es capaz de verificar a la otra que tiene un conjunto particular de información, mientras que al mismo tiempo no revela cuál es esa información.
Una versión de esta situación con conocimiento cero implicaría que el usuario demostrara a la red (mediante una prueba matemática) que tiene la contraseña correcta sin revelar la propia contraseña. 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 con 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 a una parte demostrar no sólo que existe un determinado bit de información, sino también que la parte en cuestión tiene conocimiento de esa información. En el caso de Zcash, las pruebas zk-SNARK pueden ser verificadas casi instantáneamente, y el protocolo no requiere ninguna interacción entre el que realiza la prueba y el verificador.
Problemas de Zcash
Por supuesto, existen problemas relacionados con los zk-SNARKs. Por ejemplo, si alguien pudiera acceder a la clave privada que se utilizó para crear los parámetros del protocolo de prueba, podría crear pruebas falsas que, sin embargo, parecieran válidas para los verificadores. Esto permitiría a esa persona crear nuevos tokens de Zcash, en este caso, mediante un proceso de falsificación. Para evitar que esto ocurra, Zcash se diseñó de forma que los protocolos de prueba fueran elaborados y se repartieran entre varias partes.
Zcash también tiene otro problema importante y es que se creó con un “impuesto” del 20% sobre 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 criptodivisa.
Los críticos han sugerido que los fundadores podrían utilizar esta faceta del sistema para crear un número infinito de tokens de 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 existentes en este momento.