Gli exchange Bitcoin sono sotto pressioni sempre maggiori da parte dei loro utenti e dei regolatori per la fornitura di prove sulla corretta gestione dei fondi. Dopo decine di furti negli ultimi anni (molti dei quali passati inosservati per un po’ di tempo), fornire prova delle riserve Bitcoin è diventata un’attività importante per le aziende che mirano ad ottenere la fiducia dei propri clienti.
Sfortunatamente, i pochi exchange che si stanno muovendo per provare i propri bilanci in Bitcoin a terze parti, usano soluzioni sviluppate internamente per generare le prove. La varietà di approcci rende arduo a chiunque di verificare autonomamente i bilanci degli exchange, poichè bisogna familiarizzare con ogni specifico sistema, il che solitamente richiede della conoscenza tecnica specifica.
A Blockstream, abbiamo lavorato ad una soluzione per fornire una best-practice e standard industriale per la prova delle riserve (Proof of Reserves), compatibile con le prassi usate dalla maggior parte degli exchange bitcoin per custodire i fondi dei propri clienti.
È stato anche già inoltrato un BIP alla mailing list bitcoin-dev, ed oggi stiamo pubblicando il codice sorgente e lo sviluppo del tool, così da avere un feedback dall’intera industria.
Com’è Iniziato
Originariamente avevamo necessità di creare una soluzione per permettere ai Funzionari del Liquid Network di dar prova delle proprie riserve ad auditor di terze parti. Durante questa ricerca realizzammo velocemente che gli approcci utilizzati fino a quel momento dagli exchange per dar prova dei propri fondi bitcoin potevano essere ampiamente migliorati; capimmo anche che il software che stavamo sviluppando aveva molte applicazioni anche al di fuori di Liquid.
L’Approccio Tradizionale
La mancanza di uno metodologia standard per provare le riserve porta a due grandi problemi:
- **Scarsa accessibilità: **a causa degli approcci frammentati e non standardizzati, ogni soluzione appare complessa e altamente tecnica. Gli utenti devono cavarsela da soli per verificare l’esistenza dei propri fondi exchange per exchange. Il che porta a fidarsi, piuttosto che a verificare.
- **Rischi di sicurezza: **dar prova delle riserve, richiede che il personale di un exchange dimostri la proprietà delle chiavi private associate con i wallet dell’exchange. Spesso questo implica lo spostamento di tutti i fondi in questi wallet verso dei nuovi indirizzi. Ovviamente quest’azione scopre un’ampia superficie d’attacco sfruttabile da attori malevoli.
Come Funziona la Prova delle Riserve (Proof of Reserves)
Il tool Proof of Reserves di Blockstream, si basa su metodologie ampiamente utilizzate e testate nell’industria, piuttosto che mettere in piedi una nuova soluzione da zero.
In parole povere Proof of Reserves permette ad un exchange di provare quanti bitcoin potrebbero spendere, senza dover necessariamente generare una transazione che spenda effettivamente quei fondi, evitando così di esporsi ai rischi di movimentare i bitcoin.
Usando questo tool, l’exchange costruisce una singola transazione che spende in input tutti gli UTXO (gli output bitcoin non spesi) dell’exchange, e aggiunge in più un input non valido. Con questo singolo input non valido l’intera transazione non è valida e verrebbe rigettata dal network bitcoin se venisse trasmessa. Ciononostante, la transazione è costruita in maniera tale da poter essere usata come prova esplicita di tutti i bitcoin (UTXO) spendibili dall’exchange.
Tale transazione può essere condivisa con chiunque necessiti di verificare l’effettiva presenza dei bitcoin fra le riserve dell’exchange. Un auditor può semplicemente importare i dati di questa transazione nel proprio client Proof of Reserves per confermare le riserve complessive dell’exchange e i relativi indirizzi. Questa soluzione è molto semplice, ed è accessibile a chiunque sappia usare un’applicazione da linea di comando.
Le Ultime Tecnologie in Azione
Proof of Reserves è scritto in Rust e attualmente supporta i wallet Bitcoin Core e Trezor, con ulteriori integrazioni in arrivo (supporto per Ledger a breve!).
Siamo inoltre felici di notare che Proof of Reserves è reso anche possibile dall’uso delle Partially Signed Bitcoin Transactions (PSBT), ossia transazioni bitcoin parzialmente firmate, una tecnologia emersa dal team di ricerca Blockstream.
Sviluppi Futuri
Attualmente, le prove costruite usando questo tool richiedono che l’exchange riveli la lista dei propri UTXO, che se venisse condivisa pubblicamente, potrebbe rivelare troppe informazioni finanziarie sensibili. Ciononostante, con Liquid gli exchange possono provare l’importo che posseggono, senza dover rivelare il valore di ogni singolo UTXO, grazie alle Confidential Transaction.
Per ora, ci aspettiamo che il tool Proof proof Reserves venga usato dagli exchange per generare le prove dei propri fondi per gli auditor esterni e stiamo inoltre lavorando ad alcune idee1 per migliorare la privacy di questo strumento, così da permettere anche agli utenti dell’exchange di usare Proof of Reserves autonomamente in futuro.
Come Partecipare
Proof of Reserves è una funzionalità standard su Liquid per provare le proprie riserve di L-BTC. Forniremo anche supporto tecnico a tutti i membri di Liquid per impiegare questo tool nella loro normale operatività bitcoin. Scrivici una email per sapere più dettagli su come diventare un membro di Liquid.
Risorse
- Il progetto su Github: https://github.com/ElementsProject/reserves
- Il BIP: https://github.com/bitcoin/bips/pull/756
- La proposta originale sulla mailing list bitcoin-dev: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2019-January/016633.html
- Making Bitcoin Exchanges Transparent - Christian Decker, James Guthrie, Jochen Seidel and Roger Wattenhofer. 20th European Symposium on Research in Computer Security (ESORICS), Vienna, Austria, September 2015. ↩