Cómo zk-SNARK mejora Gate.io Prueba de Reservas

AvanzadoOct 12, 2023
Como uno de los pioneros en la industria en introducir prueba de reservas, Gate.io adoptará la tecnología zk-SNARK para mejorar su prueba de reservas, brindando a los usuarios seguridad de activos y protección de la privacidad superiores.
Cómo zk-SNARK mejora Gate.io Prueba de Reservas

Con más de 13 millones de usuarios, Gate.io conoce plenamente la importancia de la seguridad de los fondos y ha sido pionero en la industria en tomar medidas efectivas. Gate.io fue uno de los primeros intercambios en implementar la prueba de reservas (PoR), y reveló su PoR ya en mayo de 2020. Sólo después de que FTX se apropiara indebidamente de los activos de los usuarios en 2022, lo que provocó una crisis de liquidez y la posterior quiebra, la prueba de reservas fue ampliamente reconocida como una solución para garantizar la seguridad de los fondos de los usuarios y mejorar la confiabilidad de la plataforma.

Tras el incidente de FTX, Gate.io publicó rápidamente su segunda prueba de reservas. Poco después de su lanzamiento, el fundador de Ethereum, Vitalik Buterin, publicó un artículo titulado "Tener un CEX seguro: prueba de solvencia y más ", en el que analiza cómo los intercambios pueden demostrar mejor su solvencia. El artículo sugiere la integración de tecnologías avanzadas como zk-SNARK además de la prueba de reservas tradicional para garantizar un PoR más público, transparente y auténtico. Gate.io planea utilizar la nueva tecnología mencionada en el artículo para actualizar su prueba de reservas, ofreciendo a los usuarios mayor privacidad y seguridad genuina de sus activos.

¿Qué es la Prueba de Reservas?

La prueba de reservas (PoR) se refiere a la revisión de los saldos mantenidos por los intercambios de criptomonedas u otras instituciones financieras, verificando si el monto de los activos registrados por la empresa corresponde a los activos reales que posee. Si el monto de los activos en las reservas excede el monto de los activos depositados por los usuarios, es decir, el índice de garantía es superior al 100%, demuestra que los fondos de los usuarios están respaldados por activos reales en una proporción de 1:1.

Antes del surgimiento del PoR, también había propuestas para transferencias de activos y pruebas de pasivos para demostrar que los intercambios tenían fondos suficientes.

Transferencia de activos: demostrar que el intercambio tiene activos suficientes

En 2011, MtGox, entonces el mayor intercambio de Bitcoin, demostró que tenía ciertos fondos al ejecutar una transacción que movió 424,242 BTC a una dirección previamente anunciada. Este método sólo podría validar los activos y no podría probar los pasivos del intercambio.

Prueba de responsabilidades

Los pasivos de una bolsa son los activos depositados por sus usuarios. La forma más sencilla de comprobar los activos de los usuarios es publicar una lista que contenga las cuentas y los saldos de los usuarios. Cada usuario puede acceder a esta lista y comprobar si el saldo de su cuenta es correcto. Sin embargo, este método tiene desventajas obvias:

  1. No hay garantía de que la lista proporcionada por el intercambio sea auténtica.

  2. En el proceso, se divulgan tanto la información de la cuenta del usuario como su saldo.

Este método también podría utilizar una estructura de datos como Merkle para minimizar la exposición de la información del usuario, lo que lleva al concepto actual de PoR.

Como se ilustra, un árbol de Merkle es una estructura de datos similar a un árbol. Los datos de la capa inferior se denominan "nodos hoja" y los del medio se pueden denominar "nodos intermedios". Dos nodos hoja pueden someterse a hash (procesar cualquier valor de entrada para obtener un valor específico) para producir el valor de un nodo intermedio. Luego se aplica un hash a dos nodos intermedios para obtener un valor de salida único para el nodo del siguiente nivel. Después de sucesivas capas de procesamiento, finalmente se obtiene el nodo raíz (Raíz) del árbol Merkle. Este valor es único y cualquier cambio en un nodo hoja dará como resultado un cambio en el nodo raíz.

Prueba de reserva en árboles Merkle (Fuente: Vitalik

En este método, los activos totales que posee un intercambio en nombre de sus usuarios se determinan acumulando valores capa por capa. Sin embargo, incluso después de insertar tanto la cuenta de usuario como los datos del saldo directamente en los nodos hoja, sigue existiendo un riesgo menor de fuga de información. Tomando como ejemplo la ilustración, el usuario marcado en verde (Charlie) puede acceder a información parcial de David, así como a los saldos de Alice y Bob en el lado izquierdo. En consecuencia, se han producido mejoras técnicas en los nodos de las hojas:

  1. Como se muestra en la ilustración, el ID de la cuenta de usuario se codifica junto con un valor específico.

  2. Los saldos de los usuarios están dispersos. Por ejemplo, los 10ETH de Charlie podrían dividirse en dos cantidades de 5ETH y colocarse en dos nodos de hoja diferentes.

  3. El ID de usuario y el saldo se procesan por separado y luego los valores resultantes se procesan una vez más. La prueba del fondo de reserva de Gate.io utiliza este método.

A pesar de estos avances a nivel de nodo hoja, queda un problema sin resolver: los saldos negativos. En la práctica, después de que los usuarios depositan criptomonedas, interactúan con productos de intercambio como operaciones apalancadas y contratos perpetuos. Si se producen pérdidas, la pérdida máxima debe ser del 100% del capital, lo que significa que el saldo de la cuenta de un usuario siempre debe ser mayor o igual a cero.

Normalmente, los saldos negativos se inician mediante intercambios maliciosos. Por ejemplo, si un intercambio se apropia indebidamente de 500ETH, según los cálculos estándar, los activos que el intercambio realmente posee podrían ser menores que la garantía requerida, posiblemente incluso menos del 100%, lo que revela la apropiación indebida. Sin embargo, el intercambio podría crear una cuenta, como la llamada Henry con un saldo de -500ETH en la ilustración dada, para hacer que el valor total de los activos del árbol Merkle sea igual o menor que los activos que el intercambio posee después de la apropiación indebida, fabricando así una ilusión. de un tipo de garantía superior al 100%.

Impacto de las cuentas de valor negativo en la ilustración de los árboles Merkle (Fuente: Vitalik

Para abordar este problema, intercambios como Gate.io han comenzado a utilizar la tecnología de prueba de conocimiento cero zk-SNARK para mejorar sus pruebas de reserva.

¿Qué son las pruebas de conocimiento cero y los zk-SNARK?

Una prueba de conocimiento cero es una técnica mediante la cual una parte puede probar algo a otra sin revelar información confidencial. Para ilustrar este concepto con un ejemplo simple: si el usuario A conoce el número de teléfono del usuario B y el usuario C pregunta si el usuario A lo sabe, el usuario A puede marcar el número de B en el acto para verificar que realmente lo tiene, sin revelar el número real al usuario. C. Este proceso, que preserva la privacidad del usuario pero confirma el conocimiento, ejemplifica el mecanismo de “prueba de conocimiento cero”.

En el ámbito de las criptomonedas, las pruebas de conocimiento cero permiten a los usuarios demostrar la propiedad de una clave privada sin exponer la clave misma ni ninguna firma electrónica. Las plataformas de comercio de criptomonedas esperan validar el estado de sus fondos de reserva sin revelar información confidencial de los usuarios, como los saldos de cuentas individuales.

zk-SNARK significa una técnica de prueba de conocimiento cero sucinta y no interactiva. Se somete a una "configuración inicial confiable" para producir una cadena de referencia común (CRS) a la que todos los probadores pueden acceder directamente. Esto es análogo a un sistema de calificación de exámenes donde zk-SNARK carga directamente las respuestas correctas. Luego, los examinados pueden verificar sus respuestas (enviando su solución a una pregunta a un sistema backend, que proporciona inmediatamente el resultado correcto o incorrecto), lo que hace que el proceso sea altamente eficiente.

Con zk-SNARK, los usuarios pueden dar fe de conocer el valor original que ha sido codificado sin revelar el contenido real de ese valor. Sin revelar montos, valores o direcciones específicos, los usuarios también pueden verificar la validez de una transacción. Se utiliza comúnmente en transacciones privadas. En el diseño de pruebas de reserva, zk-SNARK puede predefinir restricciones, eliminar cuentas distintas de cero y garantizar la privacidad del usuario.

Cómo Gate.io utiliza zk-SNARK para mejorar las pruebas de reserva

Gate.io integra la tecnología zk-SNARK con los árboles Merkle para crear pruebas de reserva más transparentes, protegidas de la privacidad y resistentes a manipulaciones.

Proceso de implementación

  1. Autorización de billetera fría
    Todas las billeteras frías y calientes transfieren una cantidad aleatoria específica a una dirección designada por la firma auditora para verificar la propiedad. Luego, la firma de auditoría resume los saldos de estas direcciones para determinar la cantidad total controlada por el intercambio (incluidos los fondos de usuario y propietarios).

  2. Instantánea del saldo del usuario
    En un momento determinado, se toma una instantánea de los saldos de los usuarios en la plataforma. Los valores reales de las cuentas se calculan utilizando datos como pedidos pendientes, montos prestados, intereses adeudados y ganancias/pérdidas no realizadas.

  3. Exportación de saldos
    El UID cifrado y el saldo de cada usuario se proporcionan a la empresa auditora con el fin de calcular los activos agregados del usuario y publicar un número Merkle.

  4. Procesamiento por lotes de activos de usuario
    Se confirma que los activos netos del intercambio son la suma de los activos netos de cada usuario. Luego, basándose en los activos netos de los usuarios, se construye un árbol Merkle.
    (La razón principal para el procesamiento por lotes es que Gate.io tiene 13 millones de usuarios. Procesar todos los datos del usuario a la vez supondría exigencias extremas para el hardware y el software. El procesamiento por lotes requiere más tiempo y es más rentable sin comprometer la seguridad o la privacidad de los datos).

  5. Implementación de restricciones del circuito
    ① Antes de que los activos netos de un usuario se inserten en el árbol Merkle, el nodo correspondiente a la ID de ese usuario está vacío.
    ② Según la lista de activos del usuario y el precio de cada activo, calcule los activos/pasivos totales del usuario. Los activos totales siempre deben exceder los pasivos totales.
    ③ Agregue los activos/pasivos del usuario a los activos/pasivos del intercambio.
    ④ Usando la identificación del usuario, los activos/pasivos totales y la lista de activos, calcule el hash del estado del usuario. Inserte el estado del usuario en el árbol de Merkle para obtener una nueva raíz de Merkle.
    ⑤ Antes de crear una operación para un usuario, el valor hash raíz del árbol debe coincidir con el valor hash del nodo raíz después de crear una operación para el usuario siguiente.
    (La restricción ① evita datos de nodos falsos, ② evita cuentas con valores negativos y ⑤ garantiza que los datos del usuario permanezcan sin cambios antes y después de las operaciones).

  6. Generando prueba de reserva
    Utilizando el circuito zk-SNARK, determine la cantidad de activos del usuario y luego emita un informe de prueba de reserva.

Para obtener una explicación más detallada del proceso de cálculo de reservas y la implementación del código, haga clic aquí.

Rendimiento

En una máquina con 32 núcleos y 128 GB de RAM, se necesitan 15 días para calcular las pruebas de activos de 10 millones de usuarios. Los cálculos de prueba de reservas se pueden paralelizar; así, con 10 máquinas, sólo se necesitan 1,5 días.

Conclusión

La introducción de zk-SNARK es una actualización significativa para Gate.io pruebas de reserva y un paso esencial en la protección de los activos de los usuarios. Esta protección superior de seguridad y privacidad aumenta la confianza del usuario y establece un nuevo estándar para la industria de las criptomonedas. Como líder de la industria, Gate.io ahora ha abierto su código, con la esperanza de promover desarrollos industriales más transparentes y seguros. En el futuro, Gate.io continuará con su espíritu de innovación, explorando y siendo pionero en un futuro criptográfico más seguro, integral y con protección de la privacidad junto con sus usuarios.

Referencias

Yazar: Wayne
Çevirmen: Piper
İnceleyen(ler): Edward、KOWEI、Elisa、Ashley He、Joyce
* Bilgiler, Gate.io tarafından sunulan veya onaylanan finansal tavsiye veya başka herhangi bir tavsiye niteliğinde değildir ve bu tip bir durumu teşkil etmemektedir.
* Bu makale Gate.io kaynak gösterilmeden çoğaltılamaz, aktarılamaz veya kopyalanamaz. Aykırı davranışlar, Telif Hakkı Yasasının ihlalidir ve yasal işleme tabi olabilir.
Şimdi Başlayın
Kaydolun ve
100 USD
değerinde Kupon kazanın!
Üyelik oluştur