Temas en tendencia
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
Mientras esperamos el veredicto en el juicio de Storm, es bueno recordar que los pools protegidos son solo matemáticas, y no son tan difíciles de entender.
Cualquiera puede implementar uno.
Así que aquí hay un hilo con la intuición básica de cómo funcionan:
El objetivo es construir un sistema donde toda la información en cada transacción permanezca completamente privada para los usuarios.
No deberíamos esperar menos de nuestros sistemas transaccionales.
Este es el derecho humano fundamental a la privacidad.
El problema es que, si toda la información es privada, ¿cómo sabe la blockchain que la transacción es válida? ¿Cómo sabe que el usuario realmente tiene los fondos que pretende enviar? ¿Que no está gastando dos veces?
La respuesta obvia es: zk-proofs. Pero, ¿es realmente tan simple?
Supongamos que tienes una cuenta con un saldo de 10. Quieres enviar 5 a la defensa de Roman. Así que haces una prueba zk que muestra que tienes 10, y tu transacción envía 5. ¡Parece lo suficientemente fácil!
¡Pero espera! Cuando hiciste una prueba de tener 10, esa prueba se refería a algún estado en el pasado, antes del último bloque donde se incluyó tu tx. ¡Quizás desde entonces has gastado todas las monedas! ¿Cómo puedes probar que todavía tienes 10, en el último bloque?
Esto es en realidad bastante complicado, y es por eso que las piscinas protegidas no funcionan realmente con sistemas basados en cuentas: no hay una manera directa y confiable de probar a una blockchain, en zk, el último estado en tiempo real.
¿La solución? Usar UTXOs. Los famosos "Unspent Tx Outputs" de Bitcoin.
Con UTXOs, no tienes una cuenta actualizable única, tienes "notas" individuales que solo se pueden gastar una vez, en su totalidad (como una moneda real). Los sistemas UTXO son un poco molestos para desarrollar en general, pero esta propiedad de "gastar una vez" los hace muy útiles para pools protegidos.
En un sistema UTXO como Bitcoin, cuando vas a gastar un UTXO, todos los nodos completos pueden verificar que el UTXO existe (fue creado en el pasado) y que aún no ha sido gastado. Esto es sencillo. Pero si todos los datos en el UTXO están encriptados, ¿cómo podemos verificar esto?
No solo los datos están encriptados, sino que ni siquiera queremos revelar *cuál* UTXO se está gastando. Si lo hiciéramos, entonces quien te envió el UTXO sabría cuándo lo gastaste. En un diseño ideal de pool protegido, NO se filtra información alguna por una transacción.
El truco principal de las piscinas protegidas es introducir un valor de "anulador" que puede ser revelado públicamente pero que es derivado de manera única por el gastador para cada UTXO. Para gastar el UTXO, la blockchain verifica que el anulador no exista ya. Esto asegura que cada UTXO solo pueda ser gastado una vez.
¡Ahora podemos volver a nuestra prueba zk! Simplemente tenemos que probar que el UTXO que estamos gastando realmente existe en la cadena, y que el anulador que revelamos para él se deriva correctamente del UTXO que estamos gastando.
¡Eso es todo!
En la práctica, esto significa que los sistemas de piscinas protegidas suelen mantener dos árboles de Merkle distintos. Uno contiene los hashes de los UTXOs (los UTXOs a menudo se denominan "notas", y sus hashes como "compromisos de notas"), y el otro contiene los anuladores. ¡Ambos árboles son solo de adición!
Cuando se crea un nuevo billete, su hash se almacena en el árbol de Merkle del billete. El billete en sí está cifrado. Cuando un usuario más tarde va a gastar ese billete, calcula el anulador para el billete y hace una prueba zk que muestra que el billete está en el árbol de Merkle y que el anulador es correcto.
El anulador se revela públicamente y la cadena verifica que no exista ya en el Árbol de anuladores. Luego se almacena allí, para que la nota no pueda gastarse de nuevo. ¡Nadie puede realmente saber qué nota se está gastando, ya que la nota original se deja sola en el Árbol de notas!
Ahí lo tienes, el diseño básico de todas las piscinas protegidas hoy en día, incluyendo @Zcash, @TornadoCash, @penumbrazone, @namada, y más.
Por supuesto, hay mucho más involucrado en el diseño de piscinas protegidas. Mantente atento a más hilos donde profundizaremos en esos mecanismos.
@AThryver @0xkaiserkarel Concepto erróneo común y uso potencialmente engañoso del término "zk" aquí. Ver

24 jul 2024
¿TEE? ¿ZKP? ¿MPC? ¿FHE?
Todo lo que necesitas saber sobre los acrónimos de tres letras más importantes de las criptomonedas
O, cómo se ganan amigos y personas 🧵 que fluyen en el TEE
33.53K
Populares
Ranking
Favoritas