
Zk proofs, la tecnología de ciencia ficción de la que pocos hablan
“Blockchain” es una palabra que probablemente ya has escuchado y leído muchísimas veces si llegaste a este post, y también es probable que hayas escuchado poco sobre “ZK proofs”.
Estas son dos herramientas que desde que las entendí me explotó la cabeza y ahora quiero compartir mis dos años de research en blockchain con mis tres meses en ZK proofs para que te ahorres todo eso con una lectura de 3 minutos con algunos memes para cortar con la seriedad.

“ZKP es una herramienta matemática que se inventó en 1985, pero la conjunción con blockchain es lo que revela el verdadero potencial.”
Hace un tiempo vengo leyendo sobre todo lo que existe sobre ZK proofs aplicadas en blockchain y considero que es una herramienta que tiene tanto impacto en la blockchain que va a revolucionar todo el ecosistema.
Que es una ZK proof o prueba de conocimiento cero?
Empecemos por lo básico, una ZK proof, el término viene de Zero Knowldege proof (ZKP), prueba de 0 conocimiento, se define como “Una prueba en la que demostramos que algo es cierto sin dar más información más allá de que justamente esa declaración es verdadera”…

Ya vamos a entender mejor esto.
ZKP es una herramienta matemática que se inventó en 1985, no es algo nuevo, pero la conjunción de esta con blockchain es lo que revela el verdadero potencial.
La explicación mas simple de una ZKP es imaginar que queremos demostrarle a alguien que sabemos la contraseña que abre un candado sin decirle cual es la clave del candado. Simplemente agarramos el candado y lo abrimos sin que el otro vea la contraseña. Al mostrarle el candado abierto a la persona, le demostramos con total seguridad que sabemos abrirlo y en el proceso no le dimos ninguna información extra.
Felicidades!! si entendiste el ejemplo ya entendiste lo que es una ZKP (al simplificar conceptos complejos puede haber ciertas cosas que no sean 100% exactas a nivel formal, pero este es un blog para principiantes en el tema, geeks de ZKP abstenerse), pasemos a ver porque es tan importante.
Para eso vamos a tener que repasar un poco sobre que es la blockchain y por que es importante.
La blockchain y su verdadera importancia
Desde que nació internet, las personas empezaron a interactuar entre si sin conocerse. “No hables con desconocidos por redes” nos decían nuestros padres, “No compres por internet, te van a robar la tarjeta” decían con miedo algunos. De a poco se fueron perdiendo los miedos cuando descubrimos lo fácil que era interactuar con otros por este medio. Si tuviéramos que definir en una sola y super simplificada oración al internet podríamos decir que “ es un sistema que permite conectar a personas en todo el mundo”
Este sistema dio lugar a miles de aplicaciones, conectando a todo el mundo podíamos compartirnos información (Wikipedia), hablar entre nosotros (Redes sociales), comercializar productos (E-Comerce).
Una de las aplicaciones mas impactantes del internet fue conectar las entidades bancarias. Los bancos podrían tener una base de datos donde almacenaban el balance de sus clientes, si alguien quería enviar dinero a una persona a la distancia, simplemente se comunicaba un banco con otro y se modificaba el balance de los clientes que hicieron la transferencia, esto hizo aparecer el dinero digital.

Los bancos son un tercero en el que elegimos confiar para mediar una transacción con otra persona.
Resumiendo, el internet nos permitió crear un sistema de comunicación a nivel mundial, esa comunicación se utilizo para infinitas funcionalidades.
A medida que la globalización aumento empezamos a interactuar con personas que no conocíamos ni confiábamos, eso dio lugar a estafas y distintos tipos de problemas.

¿Cómo podríamos hacer para confiar en alguien de quien no tenemos ninguna información que lo respalde?.
Ahí es donde aparece una nueva tecnología, la Blockchain. No voy a entrar en detalles técnicos como tampoco lo hice para el internet, pero si tenemos que resumir su función de una manera simple podemos decir que “Es un sistema que permite a las personas interactuar de forma segura, sin la necesidad de que quienes forman parte de la interacción confien entre ellos”, a eso se le llama interacciones “trustless”.
O sea la blockchain es un tercero confiable que intermedia interacciones, similar a lo que habíamos dicho de los bancos no? Es por eso que la primera aplicación de esta tecnología fueron las criptomonedas, una forma de intercambio monetario sin entidades bancarias de por medio.

Como hace la blockchain para que podamos confiar en otras personas? Para lograr un sistema confiable toda la información necesaria para la interacción esta publicada y abierta al público, todos vemos toda la información (por ejemplo el balance de nuestra cuenta y nuestro historial de transacciones, si la interacción es monetaria) .
Interactuamos con esta a través de direcciones de billeteras virtuales, todos pueden ver la información asociada a cada billetera. Esto significa que la blockchain no es una tecnología anónima, si no que es pseudonima, es decir, si se asocia nuestra persona a alguna de esas direcciones todo el mundo puede conocer todas las interacciones que tuvimos.

Eso a mi parecer es un sistema incompleto, no podemos esperar que este sistema sea utilizado masivamente siendo que tiene incluso menos privacidad que un banco (si seguimos en el ejemplo de interacciones monetarias).
Así, llegamos a una de las conclusiones mas importantes “La blockchain es una herramienta que permite generar interacciones trustless lo cual es un feature, pero esto lo hace a través de descentralizar la información y hacerla visible al publico lo cual es un bug”

Una de las mas grandes tecnologías tiene un bug del que no esta hablando nadie.
Como podríamos hacer para arreglar este bug? como podríamos hacer para que la gente interactúe entre si confiando en el otro pero sin entregarle toda su información? Me recuerda un poco a la definición que dimos de las ZKP.
Que pasaría si en vez de hacer un sistema bancario abierto, donde todos vemos los balances y transacciones de todos para asegurarnos que tenemos el dinero que queremos transferir, hacemos un sistema cerrado, donde para transferir dinero a alguien generamos una ZKP de que realmente tenemos el dinero suficiente para hacer la transferencia. En ese caso no estamos dándole mas información a la blockchain que la que necesita y la transacción no necesita ser visible a todos, porque confiamos en el sistema de las ZKP
En resumen “La combinación de internet con la blockchain junto a las ZKP nos permiten generar interacciones seguras entre personas, sin intermediarios humanos, de forma confiable y anónima”

Ahora si, con esta combinación la tecnología blockchain es una herramienta completa, sin bugs, que llega para cambiar el paradigma actual y como pensamos las relaciones humanas hoy en día.
Ejemplos de aplicaciones ZKP en la tecnologia blockchain:
ZK rollups: sistema de escalabilidad L2 donde la validación de las transacciones se hace a través de una ZKP, lo que le da a la blockchain L1 una forma mas rapida, segura, y anónima de ejecutar las transacciones.
Sistema de voto anonimo: se puede verificar que se cierta propuesta tiene x cantidad de votos, sin demostrar quienes votaron a cada propuesta
Smart contracts privados: Si bien es algo nuevo y falta mucho por explorar, podria darse que interactuemos con un smart contract a traves de una ZKP, lo que haria secreto el codigo, pero igualmente podemos confiar en el por un sistema de varias pruebas de cero conocimiento.
Sistema de reputación bancaria: Si se quiere armar un sistema de reputación se debe observar todo el historia de transacciones de una persona, si se realiza una ZKP que valide ciertos parámetros que acreditan una reputación, podemos obtener esta puntuación sin tener que mostrar todo nuestro historial de transacciones.

Conclusión
Personalmente, creo que no se esta dando la suficiente importancia en el ámbito Web3 a esta tecnología, también pienso que como en todos los ciclos de mercado hay una narrativa predominante, en el próximo ciclo va a llegar la relevancia que se merece (o incluso más). Por esto mismo, como en su momento veíamos alta especulación en proyectos solo por tener en su nombre “swap” en la narrativa DeFi, “Meta” / “Verso” en la narrativa NFTs y metaverso, los próximos proyectos van a intentar surfear la ola del hype sumando a su nombre “ZK” “Zero” o algún derivado similar para capturar la atención de especuladores.
Por lo pronto, el camino sigue siendo estudiar y aprender por que…

Si te gusto el blog te invito a que me sigas en Twitter @Franactis y que lo compartas a quien creas que puede interesarle.