Binance’s Proof-of-Reserves System: A Year of Upgrading User Assets Transparency
User funds transparency is key to restoring public and regulator trust in the crypto industry and promoting its image as a mature sector dominated by responsible players.
Binance’s proof-of-reserves (POR) system embodies our commitment to safeguarding user funds and maintaining transparency.
As of November 2023, Binance’s POR shows our user funds reserves denominated in 31 different digital assets.
A year ago, amid a crisis that saw public trust in crypto take a series of severe blows, Binance sought to support an industry-wide effort to recover it. We set out to show, rather than tell, that maturity and reliability are the real defining features of the digital asset ecosystem – contrary to the narratives that seemed ubiquitous back then and are still strong today. We articulated a six-prong framework for all centralized crypto exchanges to adopt to join forces in winning back people’s trust. Two key principles formed the foundation of this approach: the sanctity of user funds and transparency.
Our proof-of-reserves (POR) system, which went live in November 2022, was designed to show both of these principles at work. We’d already had the most important part covered: responsible user funds management. The culture of being risk-averse with the assets people entrusted us with, of always maintaining sufficient reserves to cover any amount of withdrawals, and being security-minded has been ingrained in Binance since our early days. The challenge was now to find a way to make it more visible.
When the system was unveiled, it only showed BTC reserves; by the end of 2022, it supported a total of nine tokens. A year later, Binance’s POR system provides insight into reserves denominated in 31 digital assets that we hold on behalf of our users – more than any other large centralized exchange that offers similar disclosures – consistently showing each of these balances to be above 100%. Still a work in progress, over the past year, Binance’s proof-of-reserves system has gone through many rounds of upgrades, and it continues to evolve with each iteration.
Blockchain is the ideal environment for maintaining and realizing the transparency of funds. Still, given the sheer scale of Binance’s user base and operations, finding a technological solution that would enable anyone to easily access reliable proof of our reserves was a challenging task in itself.
The original system used Merkle tree cryptography, an approach that enables the consolidation of large amounts of data into a single hash, to add up on-chain data on our reserves. The verification process entails building a Merkle tree encoding user IDs with their net asset holdings at a token level. The output, called a Merkle root, acts as a cryptographic seal that “summarizes” all the data within. This method also allows users to verify specific subsets of encoded data, effectively enabling them to check that their own assets are stored safely.
This design, however, allowed for full transparency only if individual account balances were made publicly visible – something we wouldn’t do for security and privacy reasons. Another shortcoming was that a conventional Merkle tree could potentially be manipulated by adding fake user accounts with negative balances to distort the overall picture.
To address these limitations, in the February 2023 upgrade, our developers implemented zk-SNARK protocols, a form of zero-knowledge proof, on top of the core Merkle tree. This type of cryptographic proof allows one party to establish the validity of a statement given to another party without disclosing the statement’s content. In this case, it allows Binance to prove it has backed its users’ funds fully without revealing individual user balances. A zk-SNARK thus combined with a Merkle tree allows users to verify that their funds are included in the calculation of the total net user asset balance.
Building Together With the Community
Our implementation of zk-SNARK cryptography marked the first time that a crypto organization had leveraged this approach in building proof-of-solvency-solutions. We wanted the rest of the industry to benefit from this innovation, so we open-sourced our POR code. We also wanted the community to provide feedback to make the system even more robust – and the community answered our call.
Shortly after the February release, for example, a blockchain security firm audited our code and pointed out a vulnerability in the upgraded proof-of-reserves solution, which we promptly addressed. This case exemplifies our approach to promoting user funds transparency as an industry-wide priority. Rather than treating it as an arms race, we want our colleagues across the board to be better at it, and we are grateful for any external input that helps us get better at navigating this uncharted territory, too. When it comes to rebuilding trust by improving transparency, a rising tide lifts all boats.
We at Binance remain committed to backing user assets at at least a 1:1 ratio at all times, as well as to constantly working on innovative ways of ensuring users’ peace of mind by maintaining transparency of our reserves. As the 12th and latest iteration of our proof-of-reserves program demonstrates, at the beginning of November we held enough BTC to cover 104% of customer net balances; 105% of ETH customer balances; 111% of BNB customer balances; and over 118% all USDT that users deposited to our platform. Your funds are safe with Binance – and you can check it for yourself at any time.