La Prueba de Reservas ha evolucionado desde la prueba directa de activos, introduciendo continuamente tecnologías y procesos confiables para optimizar el proceso de prueba, desarrollándose finalmente en la prueba de deudas. Estas tecnologías incluyen terceros confiables, Árboles de Merkle y pruebas de conocimiento cero, entre otros.
En 2011, MtGox, el mayor intercambio de bitcoins en ese momento, demostró que poseían los fondos al enviar 424,242 BTC a una dirección preanunciada. Este método solo puede demostrar la propiedad de los activos y no puede demostrar las responsabilidades del intercambio. Los usuarios no tienen forma de saber si esta es la cantidad exacta de activos que han sido malversados.
La mayor diferencia entre la prueba de deudas y la prueba de activos es que la prueba de deudas no solo demuestra el número de activos en poder del exchange, sino que también revela el número de activos depositados por los usuarios.
La deuda de un intercambio son los activos depositados por el usuario. La forma más sencilla de demostrar los activos del usuario es divulgar una lista que contenga las cuentas de usuario y saldos, permitiendo a los usuarios comprobar si los saldos de sus cuentas son correctos.
Sin embargo, este enfoque tiene deficiencias significativas:
① No podemos garantizar que la lista proporcionada por el intercambio sea verdadera.
② Durante el proceso, la información de la cuenta de usuario y los saldos podrían filtrarse.
Por lo tanto, el método de divulgación directa es la base teórica de la prueba de deudas pero hasta ahora no ha sido implementado por ningún intercambio.
Un árbol de Merkle es una estructura de datos similar a un 'árbol', con los datos en la parte inferior del árbol llamados 'nodos hoja' y los datos en el medio llamados 'nodos intermedios'. Los nodos hoja izquierdo y derecho pueden ser procesados mediante hash (referido al procesamiento de cualquier valor de entrada a través de un método específico para obtener un valor específico) para producir el valor del nodo intermedio. Los valores de los nodos intermedios izquierdo y derecho, cuando se hashan, producen un valor de salida único para el nodo intermedio superior. Después de procesar capa por capa, el resultado final es el nodo raíz del árbol de Merkle. Este valor es único, y cualquier cambio en los nodos hoja dará como resultado un cambio en el nodo raíz.
En este método, los activos totales del usuario mantenidos por el intercambio se obtienen a través de una adición capa por capa. Sin embargo, cuando se colocan directamente los datos de cuenta y saldo del usuario en los nodos hoja, todavía existe una crisis de fuga de información a pequeña escala. Usando el ejemplo en el diagrama anterior, el usuario Charlie, marcado en verde, no solo puede conocer cierta información sobre David, sino también los saldos totales de Alice y Bob a la izquierda. Por lo tanto, hay nuevas mejoras tecnológicas en los nodos hoja:
(1) Como se muestra en la figura anterior, hashea el ID de la cuenta de usuario con un valor específico.
(2) Dividir el saldo del usuario. Por ejemplo, los 10 ETH de Charlie pueden dividirse en dos 5 ETH colocados en dos nodos hoja.
(3) Hashear el ID de usuario y el saldo por separado, luego hashear los valores obtenidos nuevamente.
A pesar de varios métodos de optimización, hay un problema que los árboles de Merkel no pueden resolver: las cuentas con saldo negativo. En el uso práctico, los usuarios pueden experimentar el trading apalancado, contratos perpetuos y otros productos después de depositar criptomonedas. Si se producen pérdidas, la pérdida máxima debería ser del 100% del capital, lo que significa que los saldos de las cuentas de usuario deberían ser mayores o iguales a 0.
Por lo tanto, las cuentas con saldo negativo suelen ser iniciadas por intercambios maliciosos. Si el intercambio malversa 500 ETH, según cálculos normales, es probable que la proporción real de reservas de los activos propiedad del intercambio sea inferior al 100%, exponiendo su comportamiento de malversación. Sin embargo, el intercambio puede utilizar una cuenta llamada Henry con un saldo de -500 ETH, como se muestra en el diagrama, para hacer que los activos totales generados por el Árbol de Merkle sean iguales o inferiores a los activos reales que el intercambio ha malversado, creando una falsa impresión de que la proporción de reservas es mayor del 100%.
En contextos diarios, “auditoría” se refiere principalmente a actividades independientes de supervisión económica, y la entidad que participa en esta actividad se llama una “firma de auditoría.” Los escenarios de aplicación comunes incluyen auditorías de informes financieros de empresas cotizadas, auditorías gubernamentales, etc. En el mundo de las criptomonedas, los CEX buscan firmas de auditoría de renombre de campos tradicionales para llevar a cabo auditorías. Debido a la naturaleza única de la industria criptográfica y al sistema de auditoría imperfecto, muchas auditorías de terceros necesitan combinarse con la tecnología de árbol de Merkle.
Las firmas de auditoría utilizarán los saldos de usuario proporcionados por el intercambio para generar un árbol de Merkle. Después de que se genere el árbol de Merkel, los auditores verificarán los saldos totales de los usuarios y publicarán el árbol completo de Merkel y el hash de raíz. Los usuarios pueden ingresar su ID de usuario hash y saldo de tokens en la interfaz de verificación para iniciar el proceso de verificación.
La ventaja de este método es que puede aumentar la credibilidad a través de firmas de auditoría conocidas. Sin embargo, depende de la ética profesional de los auditores y no puede garantizar que los auditores no coludan con el intercambio con fines maliciosos. Por lo tanto, para proporcionar Prueba de reservas de una manera más segura y transparente, las auditorías de terceros han ido convirtiéndose gradualmente en métodos de prueba auxiliares o han sido abandonadas.
Como se mencionó anteriormente, la estructura de árbol de Merkel existente no puede resolver las cuentas con saldo negativo y los problemas de privacidad. En diciembre de 2022, Vitalik Buterin, el fundador de Ethereum, publicó un artículo titulado " Teniendo un CEX seguro: prueba de solvencia y más allá, discutiendo cómo los intercambios pueden tener una mejor prueba de solvencia. El artículo sugiere la introducción de nuevas tecnologías como zk-SNARKs basadas en la prueba tradicional de reservas para garantizar una prueba de reservas más abierta, transparente y genuina. Esto también ha llevado a los principales intercambios a explorar el uso de pruebas de conocimiento cero para reemplazar la prueba de reservas.
Desde la simple prueba de activos hasta el uso de tecnología criptográfica, la Prueba de Reservas por parte de los intercambios se está desarrollando hacia la descentralización, la privacidad y la transparencia. En la próxima lección, exploraremos la combinación de pruebas de conocimiento cero y Prueba de Reservas.
La Prueba de Reservas ha evolucionado desde la prueba directa de activos, introduciendo continuamente tecnologías y procesos confiables para optimizar el proceso de prueba, desarrollándose finalmente en la prueba de deudas. Estas tecnologías incluyen terceros confiables, Árboles de Merkle y pruebas de conocimiento cero, entre otros.
En 2011, MtGox, el mayor intercambio de bitcoins en ese momento, demostró que poseían los fondos al enviar 424,242 BTC a una dirección preanunciada. Este método solo puede demostrar la propiedad de los activos y no puede demostrar las responsabilidades del intercambio. Los usuarios no tienen forma de saber si esta es la cantidad exacta de activos que han sido malversados.
La mayor diferencia entre la prueba de deudas y la prueba de activos es que la prueba de deudas no solo demuestra el número de activos en poder del exchange, sino que también revela el número de activos depositados por los usuarios.
La deuda de un intercambio son los activos depositados por el usuario. La forma más sencilla de demostrar los activos del usuario es divulgar una lista que contenga las cuentas de usuario y saldos, permitiendo a los usuarios comprobar si los saldos de sus cuentas son correctos.
Sin embargo, este enfoque tiene deficiencias significativas:
① No podemos garantizar que la lista proporcionada por el intercambio sea verdadera.
② Durante el proceso, la información de la cuenta de usuario y los saldos podrían filtrarse.
Por lo tanto, el método de divulgación directa es la base teórica de la prueba de deudas pero hasta ahora no ha sido implementado por ningún intercambio.
Un árbol de Merkle es una estructura de datos similar a un 'árbol', con los datos en la parte inferior del árbol llamados 'nodos hoja' y los datos en el medio llamados 'nodos intermedios'. Los nodos hoja izquierdo y derecho pueden ser procesados mediante hash (referido al procesamiento de cualquier valor de entrada a través de un método específico para obtener un valor específico) para producir el valor del nodo intermedio. Los valores de los nodos intermedios izquierdo y derecho, cuando se hashan, producen un valor de salida único para el nodo intermedio superior. Después de procesar capa por capa, el resultado final es el nodo raíz del árbol de Merkle. Este valor es único, y cualquier cambio en los nodos hoja dará como resultado un cambio en el nodo raíz.
En este método, los activos totales del usuario mantenidos por el intercambio se obtienen a través de una adición capa por capa. Sin embargo, cuando se colocan directamente los datos de cuenta y saldo del usuario en los nodos hoja, todavía existe una crisis de fuga de información a pequeña escala. Usando el ejemplo en el diagrama anterior, el usuario Charlie, marcado en verde, no solo puede conocer cierta información sobre David, sino también los saldos totales de Alice y Bob a la izquierda. Por lo tanto, hay nuevas mejoras tecnológicas en los nodos hoja:
(1) Como se muestra en la figura anterior, hashea el ID de la cuenta de usuario con un valor específico.
(2) Dividir el saldo del usuario. Por ejemplo, los 10 ETH de Charlie pueden dividirse en dos 5 ETH colocados en dos nodos hoja.
(3) Hashear el ID de usuario y el saldo por separado, luego hashear los valores obtenidos nuevamente.
A pesar de varios métodos de optimización, hay un problema que los árboles de Merkel no pueden resolver: las cuentas con saldo negativo. En el uso práctico, los usuarios pueden experimentar el trading apalancado, contratos perpetuos y otros productos después de depositar criptomonedas. Si se producen pérdidas, la pérdida máxima debería ser del 100% del capital, lo que significa que los saldos de las cuentas de usuario deberían ser mayores o iguales a 0.
Por lo tanto, las cuentas con saldo negativo suelen ser iniciadas por intercambios maliciosos. Si el intercambio malversa 500 ETH, según cálculos normales, es probable que la proporción real de reservas de los activos propiedad del intercambio sea inferior al 100%, exponiendo su comportamiento de malversación. Sin embargo, el intercambio puede utilizar una cuenta llamada Henry con un saldo de -500 ETH, como se muestra en el diagrama, para hacer que los activos totales generados por el Árbol de Merkle sean iguales o inferiores a los activos reales que el intercambio ha malversado, creando una falsa impresión de que la proporción de reservas es mayor del 100%.
En contextos diarios, “auditoría” se refiere principalmente a actividades independientes de supervisión económica, y la entidad que participa en esta actividad se llama una “firma de auditoría.” Los escenarios de aplicación comunes incluyen auditorías de informes financieros de empresas cotizadas, auditorías gubernamentales, etc. En el mundo de las criptomonedas, los CEX buscan firmas de auditoría de renombre de campos tradicionales para llevar a cabo auditorías. Debido a la naturaleza única de la industria criptográfica y al sistema de auditoría imperfecto, muchas auditorías de terceros necesitan combinarse con la tecnología de árbol de Merkle.
Las firmas de auditoría utilizarán los saldos de usuario proporcionados por el intercambio para generar un árbol de Merkle. Después de que se genere el árbol de Merkel, los auditores verificarán los saldos totales de los usuarios y publicarán el árbol completo de Merkel y el hash de raíz. Los usuarios pueden ingresar su ID de usuario hash y saldo de tokens en la interfaz de verificación para iniciar el proceso de verificación.
La ventaja de este método es que puede aumentar la credibilidad a través de firmas de auditoría conocidas. Sin embargo, depende de la ética profesional de los auditores y no puede garantizar que los auditores no coludan con el intercambio con fines maliciosos. Por lo tanto, para proporcionar Prueba de reservas de una manera más segura y transparente, las auditorías de terceros han ido convirtiéndose gradualmente en métodos de prueba auxiliares o han sido abandonadas.
Como se mencionó anteriormente, la estructura de árbol de Merkel existente no puede resolver las cuentas con saldo negativo y los problemas de privacidad. En diciembre de 2022, Vitalik Buterin, el fundador de Ethereum, publicó un artículo titulado " Teniendo un CEX seguro: prueba de solvencia y más allá, discutiendo cómo los intercambios pueden tener una mejor prueba de solvencia. El artículo sugiere la introducción de nuevas tecnologías como zk-SNARKs basadas en la prueba tradicional de reservas para garantizar una prueba de reservas más abierta, transparente y genuina. Esto también ha llevado a los principales intercambios a explorar el uso de pruebas de conocimiento cero para reemplazar la prueba de reservas.
Desde la simple prueba de activos hasta el uso de tecnología criptográfica, la Prueba de Reservas por parte de los intercambios se está desarrollando hacia la descentralización, la privacidad y la transparencia. En la próxima lección, exploraremos la combinación de pruebas de conocimiento cero y Prueba de Reservas.