Binance implemented the upgrade in response to Vitalik Buterin’s recommendations to improve the transparency of proof-of-reserves systems.
Binance has upgraded its proof-of-reserves (PoR) system with zk-SNARK verifications, a type of zero-knowledge proof that protects sensitive user information.
Binance CEO Changpeng Zhao stated that the enhancement was made in response to Ethereum co-founder Vitalik Buterin’s suggestion. In November, Buterin presented his ideas for promoting trustless centralized exchanges via transparent proof-of-reserves systems.
Binance launched its PoR system in November 2022, after users demanded greater transparency from exchanges in the aftermath of the FTX collapse. Binance used Merkle tree cryptography at the time to allow users to verify their holdings.
However, the system had two major flaws. To begin, the Merkle tree’s leaf nodes represented the hash of users’ holdings to protect privacy, so the Merkle root could not reflect the sum of its leaf nodes’ balance information.
Second, a malicious entity could potentially add a negative balance to a fake account somewhere in the tree to reduce the size of required reserves.
Binance claims that zk-SNARKs address these issues. The zero-knowledge verification system can ensure that all Merkle tree leaf nodes contributed to Binance’s claimed total user balance for each cryptocurrency. It will also ensure that no users have a negative balance in the tree.
Binance will generate and publish zk-SNARK proof for the Merkle tree construction to prove its reserves. Binance users can check whether their balance is included in the Merkle tree root by verifying the Merkle proof. Users can validate the zk-SNARK proof to ensure that the Merkle tree construction was not tampered with.
Because Binance has millions of users, obtaining a single proof of the Merkle tree construction is impossible. As a result, Binance will divide users into batches of 864. A single batch of users would require 110 seconds to generate zk proof. The proof is verifiable in less than one millisecond.
Binance would need to spend about $1,000 to generate proof for all accounts in 2 hours. The exchange is working to implement Buterin’s solutions to improve the efficiency of the proof generation process, which should reduce costs and allow it to provide proofs more frequently.
Binance’s PoR system currently supports 13 cryptocurrencies, with four new additions in recent weeks, and more tokens are on the way.
Binance is also making the code for its PoR system open-source in order to increase transparency for its users.