Binance implemented the upgrade based on Vitalik Buterin’s proposal to increase transparency in the Proof of Reserves system.

Binance has upgraded its Proof of Reserves (PoR) system using zk-SNARK verification, a form of zero-knowledge proof that protects the privacy and security of sensitive user information.
Binance CEO Changpeng Zhao said the improvement was implemented based on suggestions from Ethereum co-founder Vitalik Buterin, who proposed the idea of facilitating trustless centralized exchanges through a transparent proof-of-reserve system in November last year.
Binance first launched its PoR system in November 2022 as users began demanding more transparency from exchanges following the FTX debacle. At the time, Binance used Merkle tree cryptography to allow users to verify their holdings.
However, this system has two major drawbacks. First, the leaf nodes in the Merkle tree represent the hashes of the user's holdings to protect privacy, which means that the Merkle root cannot reflect the sum of its leaf node balance information.
Second, a malicious entity could add a negative balance under a fake account somewhere in the tree to make the size of the required reserves appear smaller.
Binance claims that zk-SNARKs solve these challenges. The zero-knowledge verification system can ensure that all leaf nodes in the Merkle tree contribute to what Binance claims is the total user balance of each cryptocurrency. It will also ensure that there are no users with negative balances in the tree.
Binance will generate and publish a zk-SNARK proof that will be used to construct a Merkle tree to prove its reserves. By verifying the Merkle proof, Binance users can check if their balances are included in the Merkle tree root. Users can verify the zk-SNARK proof to ensure that the Merkle tree was constructed without any tampering.
Since Binance has millions of users, it is impossible to get a single proof of the Merkle tree construction. Therefore, Binance will divide the users into 864 batches. It takes 110 seconds to generate a zk proof for a batch of users. The proof can be verified in less than 1 millisecond.
It takes Binance 2 hours to generate a proof for all accounts at a cost of about $1,000. The exchange is working to implement the solution suggested by Buterin to make the proof generation process more efficient, which will reduce costs and enable it to provide proofs more frequently.
Binance’s PoR system currently supports 13 cryptocurrencies, having recently added four more, with plans to add more tokens in the coming weeks.
Binance has also open-sourced the code for its PoR system, aiming to provide more transparency to its users.


