Bitcoin exchanges are increasingly coming under pressure from users and regulators to prove they are managing their users funds correctly. After so many high-profile hacks over the years (many of which went unnoticed for some time), proving Bitcoin reserves has become an important task for businesses seeking to retain the trust of their customers.
Unfortunately, the few exchanges that are taking steps to prove their Bitcoin balances to third parties use their own in-house solutions to generate their proofs. The variety of approaches makes it difficult for anyone wishing to verify exchange holdings for themselves, as they must familiarise themselves with each individual system, which usually requires some specialist technical knowledge.
At Blockstream, we’ve been working on a solution to provide a best-practice standard Proof of Reserves for the industry, that offers broad compatibility with the way most Bitcoin exchanges are storing their users’ funds. A BIP has already been submitted to the bitcoin-dev mailing list, and today we’re open-sourcing the development of the tool for feedback from the industry.
Put in as simple terms as possible, Proof of Reserves allows an exchange to prove how many bitcoin they could spend, without needing to generate a “live” transaction or exposing themselves to the risks of moving funds.
Using the tool, an exchange first constructs a single transaction which spends all of an exchange’s Bitcoin UTXOs, and adding an extra invalid input. By including one invalid input, the entire transaction is rendered invalid and would be rejected by the network if broadcast. However, the transaction is constructed in such a way that it can still be used as an explicit proof of all the Bitcoin UTXOs spendable by the exchange.
This transaction data can then be shared with anyone that needs to verify reserves. They simply import the data into their own Proof of Reserves client to confirm the exchange’s total holdings and the addresses associated with those holdings. The solution is easy-to-use and accessible to anyone that knows how to run a CLI application.
Work to be Done
Currently, proofs constructed using the tool require exchanges to reveal their entire list of UTXOs, which if shared publicly, could reveal too much information on each exchange’s financial operations. However, with Liquid the sum of values can be proven and disclosed without revealing the value of individual UTXOs, due to Liquid’s use of confidential transactions.
https://blockstream.com/2019/02/04/standardizing-bitcoin-proof-of-reserves/Bit disappointing it is tied to Liquid at this point, so of limited utility. Still very interesting.