Los exchanges de Bitcoin están bajo la creciente presión de usuarios y reguladores para demostrar que están gestionando correctamente los fondos de los usuarios. Después de tantos hackeos de alto perfil a lo largo de los últimos años (algunos de los cuales pasaron inadvertidos durante cierto tiempo), demostrar las reservas de Bitcoin se convirtió en una importante tarea para las empresas que buscan conservar la confianza de sus clientes.
Desafortunadamente, los pocos exchanges que están tomando medidas para dar constancia de los saldos de Bitcoin a terceros utilizan soluciones internas para generar las pruebas. La variedad de enfoques complica la tarea para las personas que deseen verificar las existencias del exchange por sí mismas, ya que deben familiarizarse con cada sistema individual, lo que en general requiere un cierto grado de conocimiento técnico especializado.
En Blockstream, venimos trabajando en una solución para brindar la mejor Prueba de Reservas (Proof of Reserves) estándar del sector, que ofrezca una amplia compatibilidad con las formas en que la mayoría de los exchanges de Bitcoin almacenan los fondos de sus usuarios. Ya se ha enviado una propuesta BIP a la lista de difusión de bitcoin-dev y hoy lanzamos el código abierto del desarrollo de la herramienta para recibir comentarios de los miembros del sector.
Cómo comenzó
Inicialmente, nos propusimos brindar una solución a los funcionarios de Liquid para dar constancia de sus reservas de Liquid bitcoin (L-BTC) a auditores externos. Pero, a medida que investigamos el proyecto, enseguida nos dimos cuenta de que podían mejorarse los enfoques actuales de los exchanges para las reservas de Bitcoin y que nuestro software tenía aplicabilidad más allá de la red de Liquid.
El enfoque tradicional
La falta de metodología estandarizada para prueba de reservas de Bitcoin genera dos grandes problemas:
- Accesibilidad inadecuada: como se mencionó antes, ya que cada exchange adopta su propio enfoque casero, las soluciones para brindar una prueba de reservas son muy técnicas y poco conocidas. Los usuarios tienen que descifrar cómo verificar las existencias en cada exchange en el que operan. Esto genera más dependencia en la confianza y menos verificación.
- Riesgos de seguridad: ofrecer una prueba de las reservas requiere que el personal del exchange demuestre la posesión de claves privadas relacionadas con los monederos del exchange. A menudo, eso implica el movimiento de todos los fondos a una nueva serie de direcciones, lo que genera vectores de ataque significativos para quienes pretendan sabotear el almacenamiento de los fondos.
Cómo funciona Proof of Reserves
La herramienta Proof of Reserves de Blockstream itera en base a métodos de eficacia comprobada dentro del sector, en vez de desarrollar una solución completamente nueva y “elaborada” desde cero.
En los términos más sencillos posible, Proof of Reserves permite al exchange conocer cuántos bitcoin podrían gastar, sin necesidad de generar una transacción en vivo o de exponerse a los riesgos de mover fondos.
Con esta herramienta, el exchange crea una única transacción que gasta todos los UTXO de Bitcoin del exchange y genera una entrada extra inválida. Al incluir la entrada inválida, toda la transacción se invalida y sería rechazada por la red en caso de ser transmitida. Sin embargo, la transacción se construye de forma tal que pueda utilizarse como prueba explícita de los Bitcoin UTXO disponibles en el exchange.
Los datos de la transacción pueden compartirse con cualquiera que necesite verificar las reservas, solo es necesarioimportar los datos en su propio software de Proof of Reserves para confirmar las existencias totales del exchange y las direcciones relacionadas con dichas existencias. La solución es fácil de utilizar y accesible para cualquiera que sepa ejecutar una aplicación CLI.
La última tecnología en acción
Proof of Reserves está escrita en Rust y actualmente es compatible tanto con el monedero de Bitcoin Core como Trezor, y hay más integraciones en camino (¡próximamente será compatible con Ledger!).
También nos complace ver que Proof of Reserves fue posible gracias al uso liberal de Partially Signed Bitcoin Transactions (PSBT), una tecnología que emergió en nuestro equipo de investigación de Blockstream.
Trabajo por hacer
Por el momento, las pruebas desarrolladas utilizando la herramienta requieren que los exchanges revelen la lista completa de UTXO, lo que, en caso de divulgarse públicamente, podría revelar demasiada información sobre las operaciones financieras de cada exchange. Sin embargo, con Liquid las sumas de los valores pueden probarse y divulgarse sin revelar el valor de los UTXO individuales, gracias al uso de Confidential Transactions.
Por ahora, esperamos que los exchanges usen nuestra herramienta Proof of Reserves para crear las pruebas de reservas requeridas por los auditores para la verificación, y ya tenemos algunas ideas1 en mente para mejorar la privacidad de la herramienta para que también pueda ser utilizada por los usuarios de los exchanges a futuro.
Involúcrate
Proof of Reserves se lanzará como una función estándar de Liquid para demostrar las existencias de L-BTC. También brindaremos asistencia técnica a todos los miembros de Liquid Network para que puedan utilizar la herramienta en sus operaciones cotidianas de Bitcoin. Comunícate con nosotros por correo electrónico si desea saber cómo convertirse en miembro de Liquid.
Recursos
- Proyecto Github: https://github.com/ElementsProject/reserves
- Referencia BIP: https://github.com/bitcoin/bips/pull/756
- Propuesta original sobre la lista de distribución de correo de bitcoindev: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2019-January/016633.html
- Cómo lograr la transparencia en los exchanges de bitcoin - Christian Decker, James Guthrie, Jochen Seidel y Roger Wattenhofer. 20° Simposio Europeo sobre la Investigación en la Seguridad Informática (ESORICS), Viena, Austria, Septiembre 2015. ↩