El artículo de Vitalik Buterin Tener un CEX seguro: prueba de solvencia y más destaca el desafío que enfrentan los intercambios centralizados al verificar los activos de los usuarios y garantizar reservas suficientes para honrar los depósitos de los usuarios. Por lo tanto, los intercambios necesitan una forma de demostrar que tienen suficientes activos de reserva para reembolsar completamente estos activos cuando lo soliciten los usuarios, lo que significa que deben demostrar que el valor de sus activos de reserva excede el valor de los depósitos de los usuarios. Esta prueba se conoce como Prueba de reservas y en Gate.io se denomina prueba de auditoría de reservas del 100%.
La forma más sencilla de comprobar los depósitos es publicando una lista de pares (nombre de usuario y saldo). Cada usuario puede verificar si su saldo está incluido en la lista, y cualquiera puede verificar la lista completa para asegurarse de que todos los saldos no sean negativos y que la suma coincida con el monto reclamado por el intercambio. Sin embargo, esto compromete la privacidad. Para solucionar esto, se realiza una ligera modificación: publicar una lista de pares (hash(nombre de usuario, sal), saldo) y enviar de forma privada a cada usuario su valor de sal. Pero incluso esto revela equilibrios y cambios de equilibrio. Para proteger la privacidad, se introduce otra innovación: el árbol Merkle.
(Figura 1 Fuente: https://vitalik.ca/general/2022/11/19/proof_of_solvency.html)
La técnica del árbol Merkle organiza los datos del saldo del usuario en un árbol de suma Merkle. En esta estructura de árbol, cada nodo consta de un par (equilibrio, hash). Los nodos hoja en la parte inferior representan los saldos de los usuarios individuales y el hash salado de sus nombres de usuario. En cada nodo de nivel superior, el saldo es la suma de los dos saldos debajo de él, y el hash es el hash de los dos nodos debajo de él. La prueba de suma de Merkle, similar a una prueba de Merkle, representa una "rama" del árbol formada por nodos hermanos desde la hoja hasta la raíz. El intercambio proporciona a cada usuario la suma Merkle como prueba de su saldo, lo que les permite verificar que su saldo está incluido correctamente en el saldo total del intercambio.
Este diseño mejora significativamente la privacidad en comparación con una lista totalmente pública. Además, la filtración de privacidad se puede minimizar aún más mezclando las "ramas" cada vez que se publica la "raíz". Sin embargo, todavía quedan algunas cuestiones pendientes. Por ejemplo, Charlie se entera de que alguien tiene 164 ETH y los saldos de dos usuarios suman 70 ETH, entre otra información (ver Figura 1). Un atacante que controle varias cuentas aún podría deducir información confidencial sobre los usuarios de Exchange.
Si bien la prueba de reservas basada en el árbol de Merkle ha sido eficaz para garantizar la seguridad de los activos de los usuarios, todavía existen algunos problemas con este enfoque:
Las pruebas de conocimiento cero han atraído una amplia atención en varios casos de uso debido a su potencial para mejorar la seguridad, proteger la privacidad del usuario y respaldar la escalabilidad en redes de Capa 2.
Las pruebas de conocimiento cero permiten a una parte demostrarle a la otra que una afirmación es cierta sin revelar ninguna información adicional. Contribuyen a una mayor privacidad al reducir la cantidad de información compartida entre los participantes y respaldan la escalabilidad al permitir que las pruebas se verifiquen más rápido sin validar todo el conjunto de datos.
zk-SNARK (Argumento de conocimiento sucinto no interactivo de conocimiento cero) es una tecnología de prueba de conocimiento cero propuesta en un artículo conjunto de Nir Bitansky, Ran Canetti, Alessandro Chiesa y Eran Tromer en 2012. zk-SNARK permite que una parte le demuestre a otra que conoce un secreto sin revelar el secreto en sí, demostrando así la exactitud de una expresión lógica sin exponer ninguna información. En las pruebas tradicionales de conocimiento cero, el probador debe interactuar con el verificador varias veces para generar la prueba. Sin embargo, en zk-SNARK, una vez que se generan los parámetros (especialmente los parámetros públicos) y la prueba, el verificador puede verificar la exactitud de la prueba sin necesidad de múltiples interacciones con el probador.
Por ejemplo, imagina que tienes un mapa del tesoro que te lleva a la ubicación exacta del tesoro enterrado. Quieres demostrarle a alguien que conoces la ubicación del tesoro sin revelar el contenido del mapa o la ubicación real del tesoro. Usando la tecnología zk-SNARK, crearías una pieza de rompecabezas del mapa del tesoro. Seleccionas una pequeña pieza del rompecabezas (una prueba) y se la muestras a la otra persona, lo que es suficiente para convencerla de que sabes cómo encaja el rompecabezas completo, es decir, la ubicación del tesoro, sin necesidad de ver el rompecabezas completo. Sin embargo, para lograr esto, debe obtener algunas marcas especiales de una imprenta acreditada para autenticar las piezas del rompecabezas.
La implementación de zk-SNARK se basa en criptografía de curva elíptica y matemáticas polinómicas. Esta técnica emplea mapeos para transformar entradas en polinomios y utiliza conceptos matemáticos como el orden de las curvas elípticas y el logaritmo discreto para validar que se cumplan las restricciones de los polinomios. Aprovecha algoritmos especiales para la compresión de datos, lo que permite la ejecución eficiente de cálculos matemáticos.
Por lo tanto, el uso de zk-SNARK puede optimizar y mejorar significativamente la privacidad en los protocolos a prueba de reservas. Al incorporar todos los depósitos de los usuarios en un árbol de Merkle y emplear zk-SNARK para dar fe de que todos los saldos no son negativos y suman un valor declarado, es posible afirmar que un intercambio tiene la capacidad de cubrir completamente sus pasivos si se divulga públicamente. Los activos en la cadena de bloques superan este valor.
La integración de zk-SNARK con árboles Merkle facilita la verificación simultánea de la integridad y coherencia de los datos al tiempo que preserva la privacidad de las transacciones. Los demostradores pueden utilizar zk-SNARK para demostrar que poseen una prueba de Merkle que cumple condiciones específicas sin revelar los detalles de la prueba. Para los intercambios, este enfoque ofrece una manera de demostrar que tienen fondos suficientes para cumplir con todas las obligaciones y al mismo tiempo salvaguardar la privacidad del usuario.
En resumen, la tecnología de prueba de conocimiento cero de Gate.io aborda dos cuestiones clave con la prueba de reservas:
Gate.io ha actualizado su prueba de reservas utilizando zk-SNARK, dando un paso significativo como intercambio líder en la protección de la seguridad de los activos de los usuarios. Con esta actualización, los usuarios pueden ver las pruebas de reservas en tiempo real y el primer lote de activos admitidos cubrirá los 100 principales por capitalización de mercado. Como líder de la industria, ha abierto el código y continuará impulsando el desarrollo de la industria y explorando un futuro cifrado más seguro y que mejore la privacidad con esta actualización a prueba de conocimiento cero.
Lecturas adicionales:
El artículo de Vitalik Buterin Tener un CEX seguro: prueba de solvencia y más destaca el desafío que enfrentan los intercambios centralizados al verificar los activos de los usuarios y garantizar reservas suficientes para honrar los depósitos de los usuarios. Por lo tanto, los intercambios necesitan una forma de demostrar que tienen suficientes activos de reserva para reembolsar completamente estos activos cuando lo soliciten los usuarios, lo que significa que deben demostrar que el valor de sus activos de reserva excede el valor de los depósitos de los usuarios. Esta prueba se conoce como Prueba de reservas y en Gate.io se denomina prueba de auditoría de reservas del 100%.
La forma más sencilla de comprobar los depósitos es publicando una lista de pares (nombre de usuario y saldo). Cada usuario puede verificar si su saldo está incluido en la lista, y cualquiera puede verificar la lista completa para asegurarse de que todos los saldos no sean negativos y que la suma coincida con el monto reclamado por el intercambio. Sin embargo, esto compromete la privacidad. Para solucionar esto, se realiza una ligera modificación: publicar una lista de pares (hash(nombre de usuario, sal), saldo) y enviar de forma privada a cada usuario su valor de sal. Pero incluso esto revela equilibrios y cambios de equilibrio. Para proteger la privacidad, se introduce otra innovación: el árbol Merkle.
(Figura 1 Fuente: https://vitalik.ca/general/2022/11/19/proof_of_solvency.html)
La técnica del árbol Merkle organiza los datos del saldo del usuario en un árbol de suma Merkle. En esta estructura de árbol, cada nodo consta de un par (equilibrio, hash). Los nodos hoja en la parte inferior representan los saldos de los usuarios individuales y el hash salado de sus nombres de usuario. En cada nodo de nivel superior, el saldo es la suma de los dos saldos debajo de él, y el hash es el hash de los dos nodos debajo de él. La prueba de suma de Merkle, similar a una prueba de Merkle, representa una "rama" del árbol formada por nodos hermanos desde la hoja hasta la raíz. El intercambio proporciona a cada usuario la suma Merkle como prueba de su saldo, lo que les permite verificar que su saldo está incluido correctamente en el saldo total del intercambio.
Este diseño mejora significativamente la privacidad en comparación con una lista totalmente pública. Además, la filtración de privacidad se puede minimizar aún más mezclando las "ramas" cada vez que se publica la "raíz". Sin embargo, todavía quedan algunas cuestiones pendientes. Por ejemplo, Charlie se entera de que alguien tiene 164 ETH y los saldos de dos usuarios suman 70 ETH, entre otra información (ver Figura 1). Un atacante que controle varias cuentas aún podría deducir información confidencial sobre los usuarios de Exchange.
Si bien la prueba de reservas basada en el árbol de Merkle ha sido eficaz para garantizar la seguridad de los activos de los usuarios, todavía existen algunos problemas con este enfoque:
Las pruebas de conocimiento cero han atraído una amplia atención en varios casos de uso debido a su potencial para mejorar la seguridad, proteger la privacidad del usuario y respaldar la escalabilidad en redes de Capa 2.
Las pruebas de conocimiento cero permiten a una parte demostrarle a la otra que una afirmación es cierta sin revelar ninguna información adicional. Contribuyen a una mayor privacidad al reducir la cantidad de información compartida entre los participantes y respaldan la escalabilidad al permitir que las pruebas se verifiquen más rápido sin validar todo el conjunto de datos.
zk-SNARK (Argumento de conocimiento sucinto no interactivo de conocimiento cero) es una tecnología de prueba de conocimiento cero propuesta en un artículo conjunto de Nir Bitansky, Ran Canetti, Alessandro Chiesa y Eran Tromer en 2012. zk-SNARK permite que una parte le demuestre a otra que conoce un secreto sin revelar el secreto en sí, demostrando así la exactitud de una expresión lógica sin exponer ninguna información. En las pruebas tradicionales de conocimiento cero, el probador debe interactuar con el verificador varias veces para generar la prueba. Sin embargo, en zk-SNARK, una vez que se generan los parámetros (especialmente los parámetros públicos) y la prueba, el verificador puede verificar la exactitud de la prueba sin necesidad de múltiples interacciones con el probador.
Por ejemplo, imagina que tienes un mapa del tesoro que te lleva a la ubicación exacta del tesoro enterrado. Quieres demostrarle a alguien que conoces la ubicación del tesoro sin revelar el contenido del mapa o la ubicación real del tesoro. Usando la tecnología zk-SNARK, crearías una pieza de rompecabezas del mapa del tesoro. Seleccionas una pequeña pieza del rompecabezas (una prueba) y se la muestras a la otra persona, lo que es suficiente para convencerla de que sabes cómo encaja el rompecabezas completo, es decir, la ubicación del tesoro, sin necesidad de ver el rompecabezas completo. Sin embargo, para lograr esto, debe obtener algunas marcas especiales de una imprenta acreditada para autenticar las piezas del rompecabezas.
La implementación de zk-SNARK se basa en criptografía de curva elíptica y matemáticas polinómicas. Esta técnica emplea mapeos para transformar entradas en polinomios y utiliza conceptos matemáticos como el orden de las curvas elípticas y el logaritmo discreto para validar que se cumplan las restricciones de los polinomios. Aprovecha algoritmos especiales para la compresión de datos, lo que permite la ejecución eficiente de cálculos matemáticos.
Por lo tanto, el uso de zk-SNARK puede optimizar y mejorar significativamente la privacidad en los protocolos a prueba de reservas. Al incorporar todos los depósitos de los usuarios en un árbol de Merkle y emplear zk-SNARK para dar fe de que todos los saldos no son negativos y suman un valor declarado, es posible afirmar que un intercambio tiene la capacidad de cubrir completamente sus pasivos si se divulga públicamente. Los activos en la cadena de bloques superan este valor.
La integración de zk-SNARK con árboles Merkle facilita la verificación simultánea de la integridad y coherencia de los datos al tiempo que preserva la privacidad de las transacciones. Los demostradores pueden utilizar zk-SNARK para demostrar que poseen una prueba de Merkle que cumple condiciones específicas sin revelar los detalles de la prueba. Para los intercambios, este enfoque ofrece una manera de demostrar que tienen fondos suficientes para cumplir con todas las obligaciones y al mismo tiempo salvaguardar la privacidad del usuario.
En resumen, la tecnología de prueba de conocimiento cero de Gate.io aborda dos cuestiones clave con la prueba de reservas:
Gate.io ha actualizado su prueba de reservas utilizando zk-SNARK, dando un paso significativo como intercambio líder en la protección de la seguridad de los activos de los usuarios. Con esta actualización, los usuarios pueden ver las pruebas de reservas en tiempo real y el primer lote de activos admitidos cubrirá los 100 principales por capitalización de mercado. Como líder de la industria, ha abierto el código y continuará impulsando el desarrollo de la industria y explorando un futuro cifrado más seguro y que mejore la privacidad con esta actualización a prueba de conocimiento cero.
Lecturas adicionales: