The Verge

Permitir que verificar bloques sea mucho más fácil, para que cualquiera pueda hacerlo incluso desde un teléfono

Como dice arriba. Y en la foto. Y en el párrafo anterior, el objetivo es facilitar la verificación de bloques. Si queremos que cada vez más gente participe, validar un bloque debería ser cada vez más fácil.

Pero la verdad es que hoy correr un nodo es relativamente complicado. Eso atenta directamente contra la descentralización de la red. Es algo así como: “yeeey, vamos todos a validar esta super red descentralizada. Solo necesitás tener una play 5, 4 parlantes de al menos 12 metros y un pedazo de meteorito”. Me hace acordar a los programas de cocina, hacemos una recetita simple con caviar de mono, semillas de mandarina nigeriana y una pizca de polvo de tierra del Machu Pichu.

Estoy exagerando, obvio, correr un nodo no es tan difícil. Y cada vez hay más soluciones para facilitarlo. Pero incentivar la participación lo más posible es importantísimo. En un mundo feliz, todos vamos a poder correr un nodo desde nuestros teléfonos. Quizá tengas que borrar Tinder para tener más espacio, pero seguiría siendo un gran avance.

Para que eso sea posible, hacen falta algunos avances tecnológicos. Investigación, investigación e investigación. Una pieza clave son los famosos “Verkle trees”, que agregan información de forma más eficiente que los “Merkle trees” que la red utiliza hoy. Esta mejora en la eficiencia va a permitir almacenar más info en menos memoria.

No tiene mucho sentido entrar en detalles técnicos acerca de las diferencias entre “Merkle” y “Verkle” trees. Vamos a decir simplemente que es como enrollar la ropa en lugar de doblarla para que entre más en la valija. Sí, si las enrollas, hacés como un pionono, ocupan menos espacio y entran más cosas. Ideal para los que no queremos pagar las valijas caras. Te dejo una foto para que se vea mejor:

Más allá de que viajar sea hermoso, lo importante es entender el concepto. Los Verkle trees son una mejor forma de guardar la información, que nos ayuda a ocupar menos espacio.

Ah… casi me olvidaba. También son una palabra que empieza con V corta. Lo cual nos viene al pelo para armar nuestra propia regla memotécnica.

The Verge, con V corta, de Verkle trees, que es como enrollar remeras para ocupar menos espacio.

Ok, entiendo que ocupar menos espacio siempre está bueno, pero ¿cómo se relaciona a los nodos? Gran pregunta. Gracias por hacerla. Los nodos no solo son cancheros y aportan descentralización a la red, sino que también validan que las transacciones sean correctas. Son como las Torres de Control del Age of Empires. Te ayudan a ver que este todo funcionando bien. Mientras más nodos mejor.

Ahora…. para poder verificar que las transacciones sean correctas, el nodo necesita tener la información de la blockchain. Pongamos un ejemplo: Santi le manda 0.1 ETH a Mick Jagger como agradecimiento por haberlo invitado a pasar 2 meses con él y el resto de la banda en una isla en el Mediterráneo. Una de las cosas que los nodos verifican para ver si la transacción es correcta, es que Santi tenga efectivamente ese 0.1 ETH que quiere enviar. Para hacerlo, necesitan tener esa famosa base de datos donde se almacena la información que dice cuánto ETH tiene cada uno. Sí, la blockchain.

Pero pongámoslo más simple. Hacés un asado con tus amigos. Todos compran cosas distintas y anotan lo que gastaron. Todo eso va a un excel y se calcula cuanto tiene que pagar cada uno. Vos sos el encargado de juntar la plata y acomodar las cuentas. Viene Pedrito y te dice que el había comprado las provoletas y le tienen que devolver 100 pesos. Antes de darle la plata, te fijás en el excel que efectivamente sea así. Para poder “fijarte en excel” tenés que tener el excel descargado en el celu o la compu. Es exactamente lo mismo que pasa con los validadores. Tienen que tener la blockchain descargada.

Hoy la blockchain de Ethereum ocupa más de 900 Gigas. A medida que se siguen agregando transacciones y bloques, ese número crece. Mientras más alto sea el número, más dificil es que alguien pueda ser validador. Es parecido a lo que pasa en Bitcoin con Proof of Work. Al principio podías minar en una compu normal. Hoy necesitas una máquina específica para eso.

El objetivo de The Verge es modificar el proceso de validación y la forma en que se guarda la data para resolver ese problema y que no sea necesario tener miles de Gigas de memoria para ser un validador.

Ey Santi, pero ¿TAN buenos son los Verkle trees?

No, los Verkle trees son solo un paso intermedio, y ayudan a reducir la data necesaria para guardar toda la blockchain. Es el equivalente a “hacer más chiquito” el excel. La meca es el otro cuadradito celeste que aparece en la foto: Los SNARKs.

¿Qué son los SNARKs?

Vamos de lleno a la primera pregunta obvia, a pararla de pecho y a revolearla sin asco a la tribuna. La respuesta simplificada es que los SNARKs, o zkSNARKs son un tipo de Zero Knowledge Proof. De hecho SNARK viene de…. Zero-Knowledge Succinct Non-Interactive Argument of Knowledge. Si lo traducimos quiere decir algo así como prueba de conocimiento sucinta y no interactiva. Esto de sucintez e interactivez es una referencia a la forma en que se generan y verifican los SNARKs. No hace falta que te acuerdes estas palabras, pero son divertidas para jugar al ahorcado.

Lo importante es entender el concepto de Zero-Knowledge Proof. Son pruebas criptográficas que permiten demostrar que algo es verdad sin mostrar la información respecto de ese algo. Suena bastante mágico, así que bajémoslo con un ejemplo. A todos nos pasó que nos pidan el documento para entrar a un boliche, discoteca, establecimiento bailable o fiesta de cualquier tipo. Tu documento contiene un montón de información que al guardia de seguridad no le interesa. Y que vos podrías preferir mantener privada. Loco, para que querés saber donde vivo? Me vas a mandar heladito de banana split acaso? Lo veo difícil. Al tipo solo le interesa comprobar que vos tengas más de 18 años para ver si te puede dejar pasar.

Bueno, con la matemática suficiente, y si cargasemos los datos de tu dni en uno de esos cuadraditos mágicos llamados computadoras, uno podría crear una prueba criptográfica de que vos tenés más de 18 años sin tener que mostrarle el documento al caballero de la puerta que te mira con cara de malo. Otro ejemplo práctico, podrías demostrarle a la persona que te alquila el depto que tenés una garantía, ahorros o un sueldo estable para pagar el alquiler sin tener que llevarle impresos 48 recibos de sueldo y revelar un montón de información que es privada y aparte no sirve para nada.

Quizá esa última frase ya te dió la pista que necesitabas. Las ZK Proofs tienen 2 principales casos de uso:

  • privacidad
  • reducir información

¿Te imaginás como podría usarse para hacer que Ethereum sea una red más descentralizada? Si podemos generar pruebas cripográficas de los bloques que creamos, ya no es necesario que los validadores descarguen toda la información de la blockchain.

La visión es usar Zero Knowledge Proof para verificar bloques. Esto es mucho mucho más eficiente. Imaginémoslo así: te demuestro que el bloque es válido sin tener que mostrarte toda la información del bloque y de la blockchain. Esto permitiría desarrollar “stateless clients”, software que participe del proceso de validación pero sin tener que almacenar todos los datos del estado de la red.

  • Descargar un poco de data —> correr un programita básico desde el celu —> verificar un SNARK y voilá.

Ojo x2. Más allá de la simplifcación grotesca que acabo de hacer, recuerden que son temas complejos. Son complejos de entender. Complejos de explicar. Imagínense lo complejos que son de implementar. Es tecnología de mega ultra vanguardia y hay una serie de desafíos técnicos que nos separan de esa panacea final con la que soñamos todas las mañanas mientras comemos cereal con leche.

Pero tranquilo, sin prisa y sin calma, ya nos iremos acercando. Y ojalá estemos acá para seguir escribiendo acerca de los avances, cambios y vicisitudes de este hermoso proceso.