Proof of Reserves and Why it Matters
In case you missed them, so far this year we've seen 3 large scale exchange events:
- QuadrigaCX
- EZ-BTC
- Cryptopia
Each one represents massive losses for those involved - hundreds and thousands of affected lives. These are real people and families at the other ends, with hopes and dreams, who worked hard for their money.
In the case of QuadrigaCX, it took the freezing of the bank accounts, the death/disappearance of the CEO, and concerted legal action to even realize it was insolvent.
Exchanges can easily continue to operate for years with whatever level of reserves they like. Nothing prevents exchange owners from spending cryptocurrency stored by users, or failing to disclose if reserves are breached. Third party audits are riddled with holes like:
- How can they know the client list they're given is legitimate and fully inclusive?
- How can you know the funds weren't borrowed for the audit purposes?
- How old is the report? How can you trust the auditor?
On top of that - most exchange platforms still don't even bother to audit. Despite the warnings about storing funds on exchanges, people still do. And remember that many affected users weren't storing funds on Quadriga - they simply got stuck with no way to withdraw.
Proof of Reserves asks exchanges to:
- Publish the wallet public keys so people can see that funds are fully backed. (A satoshi test can prove ownership of those wallets.)
- Publish a hash tree to let each customer validate that their balance is included in the total.
What it doesn't prevent:
- Same as presently, if funds are not secured in proper multi-sig wallets or multiple exchange operators are corrupt, the funds could still be taken, up to what's stored. However, this would be immediately known to everyone instead of revealed whenever admins felt like it (or never).
- The balances of customers who never check the hash tree could be excluded by a dishonest exchange, which wouldn't be noticed until one of those customers decided to check.
- A dishonest exchange could still dispute the balance of a customer or arbitrarily prevent withdrawals. In this case, the customer and exchange would have to sort that out.
- A dishonest exchange could pretend to own wallets it doesn't. A satoshi test would help with this, where the exchange operators send a small amount at a specified time.
- While it makes things safer, it's still not a good idea to store funds on the exchange.
What it does prevent:
- The exchange owner can't spend funds of active customers, and still claim to hold them.
- ie QuadrigaCX, EZ-BTC
- The exchange owner can't conceal if funds are hacked or stolen. It becomes known immediately.
- ie Mt. Gox, Cryptopia, Bitgrail
- Anyone can see if the exchange is solvent before trading.
- ie Anyone with "bad timing" using an insolvent exchange.
Check this link for more details on Proof of Reserves, including the full hash tree algorithm.
Despite the relative simplicity of publishing wallet keys, the vast selection of exchanges we have in Canada, and the many millions of dollars stored, not a single exchange has done so. The hash tree algorithm has existed since 2014. It's presently on one exchange (last audited in 2014).
It's time to do something about this!