Qué es Proof of Reserve

Seguramente habrás escuchado mucho estos días el concepto de Proof of Reserve y te estarás preguntando qué es exactamente. En este artículo te contamos todo lo que debes saber sobre Proof of Reserve, sigue leyendo para valorar en qué consiste, cómo se realiza y cuáles son sus características principales.

¿Qué es Proof of Reserve?

Un Proof of Reserve o Prueba de Reserva es un mecanismo de transparencia mediante el cual los exchanges centralizados muestran sus depósitos en criptomonedas o fiat, a través de una auditoría verificable con la finalidad de dar tranquilidad a sus usuarios e inversores.

La intención de un Proof of Reserve es despejar cualquier duda que pueda existir sobre la idoneidad de las cuentas del exchange y la seguridad financiera del mismo y de sus usuarios, ya que las tenencias en criptos del exchange deben superar el valor total depositado por parte de los usuarios. En caso de que esto no se cumpla, esto supone que el exchange de alguna manera ha utilizado dinero de sus usuarios para realizar operaciones adicionales, que pueden llevarle a tener problemas de liquidez y, en el peor de los casos, a la quiebra, con la pérdida que esto causaría a sus usuarios.

Así, una Proof of Reserve intenta proporcionar un cierto grado de transparencia por parte del exchange a sus usuarios, especialmente en momentos de dificultades financieras o rumores que puedan estar dándose alrededor del mismo.

Del Proof of Keys al Proof of Reserve

Existe una versión comunitaria del Proof of Reserve: el Proof of Keys. Con esta, los usuarios realizan masivos retiros de criptomonedas de los exchanges centralizados cada mes de enero para comprobar si tienen en su monedero el dinero que dicen tener. Lo que se busca es sencillo: comprobar que el exchange tiene el dinero disponible en todo momento y que los usuarios pueden retirarlo cuando quieran.

Ahora bien, este procedimiento entraña un problema: no tiene en cuenta que los retiros masivos pueden sobrecargar los sistemas computacionales del exchange y las blockchain en las que se realizan estas operaciones. El Proof of Keys y actividades similares pueden generar problemas de retiros y delays que no siempre estarán relacionados con la falta de liquidez del exchange, sino con sobrecargas en los servidores que provocan que estos queden fuera de servicio.

De esta manera, para crear una prueba más segura y sencilla para realizar estas comprobaciones, la comunidad trabajó utilizando las mismas propiedades de la blockchain y de los monederos, creando una manera de verificar los saldos asociados a los monederos controlados por un exchange a partir de los merkle trees.

Cada usuario de un exchange tiene sus propias direcciones de criptomonedas, pero estas las controla el exchange. De esta forma, el usuario solamente puede realizar depósitos a la dirección que se la ha proporcionado. El retiro se realiza en forma de solicitud al exchange, que debe aprobarla y realizar la operación. De esta manera, es el exchange el que tiene las claves privadas para aprobar estas operaciones.

Ahora bien, si tienes un monedero de BTC con 100 direcciones diferentes y unos satoshis en cada una de ellas, el monedero siempre te mostrará la suma total de estos satoshis. Esto sucede porque la tecnología blockchain permite relacionar las entradas y las salidas de las direcciones mediante los merkle trees. Utilizando estas estructuras y algunas pruebas criptográficas es posible generar pruebas verificables de forma pública para cada dirección y probar que el saldo asociado a cada una de ellas existe realmente. Esto es Proof of Reserve, un método más sencillo, preciso, fiable, rápido y económico que la mencionada Proof of Keys.

Claves del funcionamiento de Proof of Reserve

Durante una Proof of Reserve el exchange le permite al auditor externo tomar una instantánea anónima de los saldos de todos sus usuarios. Cada usuario en un exchange tiene solo una dirección de criptomonedas asociada, así que se cumple la premisa “una dirección = un usuario”. La instantánea de saldos que se toma es generalmente un hash que es creado usando el saldo de la cuenta, la dirección asociada y su ID de plataforma. Usuario a usuario se va tomando esta instantánea que se va agregando a un merkle tree, para al final tener un hash final que está asociado al saldo global disponible en los monederos manejados por el exchange.

Visto así, ¿Dónde y cómo de verificable es todo esto? Pues bien, la estructura de los merkle trees es la que permite esta “magia”. Una de las propiedades de los merkle trees es que permiten verificar la exactitud de la data que contienen simplemente teniendo una parte de la misma. De hecho, esta propiedad es precisamente la razón por la que Satoshi Nakamoto decidió usar la estructura de los merkle trees en Bitcoin, para crear las conocidas UTXOs y los hash de bloques que vemos en Bitcoin. 

En este punto, verificar la data es muy sencillo: eres usuario de la plataforma así que sabes la dirección de tu monedero de criptomonedas en el exchange, tu ID y el saldo que tienes activo. Basta con ir al exchange, generar el hash usando estos datos (generalmente solo es una concatenación de estos datos a los cuales se le aplica un hash SHA-256) y luego verificar si ese hash realmente ha sido incluido en el hash final del merkle tree general de Proof of Reserve. Si tu hash ha sido reconocido dentro del merkle tree generado por la Proof of Reserve, entonces puedes estar seguro de que tus saldos realmente existen y el dinero está allí.

Los puntos débiles de Proof of Reserve

Por supuesto, las Proof of Reserve son especialmente útiles, pero no son del todo confiables. Una auditoría de este tipo solo es una vista general de la situación de los monederos del exchange, que si bien da confianza, no lo es todo. Igualmente el exchange puede incurrir en faltas que al final le lleven a tener que inhabilitar los retiros y causarles pérdidas a sus usuarios.

¿La razón? Una empresa no solo tiene activos (en este caso las criptomonedas de sus usuarios) sino también pasivos (gastos y deudas por su operatividad). Si un exchange tiene pasivos muy altos superiores a lo que puede permitirse y compromete los activos de sus usuarios, el exchange se verá obligado (incluso por ley) a usar dichos activos para honrar las deudas contraídas y con ello generar pérdidas a sus usuarios.

Proof of Reserve puede decirnos si el exchange tiene nuestro dinero, pero el pasivo puede igualmente hacerle caer en la bancarrota. Es por esto que muchos usuarios en la comunidad cripto defienden que los exchanges no solo deben presentar la Proof of Reserve, sino también una auditoría pública de sus pasivos.

Otra situación en la que Proof of Reserve no ofrece garantías es cuando la plataforma de exchange se prepara con antelación a dicho evento. Es posible que antes de realizar la “instantánea” para generar la prueba, el exchange solicite un préstamo cripto y llene su monedero con el monto necesario.

En este punto, cuando se toma la instantánea y se realiza el proceso de Proof of Reserve, todo parece estar en orden, pero la realidad es que el dinero prestado regresa con interés al prestamista y el exchange sigue con el mismo problema de las reservas. Una solución a esto es que los exchanges hagan públicas sus direcciones de monederos fríos, pero incluso así es complejo, porque muchos dependen de custodios más grandes o de otras entidades de custodia tradicionales.