Binance, the world’s largest cryptocurrency exchange, has released its reserve report for August 2023, showing that the reserve ratios for all its major cryptocurrency holdings are well over 100%.

The disclosure is part of Binance’s ongoing commitment to maintain a Proof of Reserve (PoR) system, providing evidence that it has sufficient funds to cover all customer deposits. The report is based on an audit of BTC block height 801130 (aggregated data updated to August 1, 2023).

Proof of Reserves (PoR) is a transparent protocol used to confirm the solvency of a cryptocurrency exchange. It works by proving that the exchange has enough funds to cover a user's assets on a 1:1 basis. Essentially, when a user deposits Bitcoin, Binance's reserves increase by at least one Bitcoin, ensuring that all customer funds are fully backed. These figures do not include Binance's corporate holdings, which are separate.

Binance’s PoR report shows that the exchange’s reserves are significantly higher than the net customer balances for all reported cryptocurrencies, including Bitcoin, Ethereum, Binance Coin, Tether, BUSD, and USDC, with reserve ratios ranging from 101.62% to 117.99%. This suggests that the company has sufficient reserves to meet all potential customer withdrawals.

PoR aims to improve transparency, security, and user protection in the cryptocurrency ecosystem. As a result, it prevents exchanges from abusing user funds and promotes trust among users. Accordingly, Binance users can verify for themselves whether their account was included in the last PoR verification, further emphasizing the exchange's commitment to transparency and user trust.

How Proof of Reserve (PoR) works with Merkle trees

To ensure that all user assets are held at a 1:1 ratio, Binance implemented a system that utilizes Merkle trees. A Merkle tree is a cryptographic tool that helps compress large amounts of data into a single hash value, called a Merkle root. This root acts as a cryptographic "seal" that summarizes all the input data. Additionally, Merkle trees allow users to verify specific content contained in a specific set of sealed data.

In the context of PoR, Binance uses the properties of Merkle Trees to verify that individual user accounts are included in liability reports that are checked by auditors. Each user can verify their asset holdings using their uniquely generated Merkle hash/record ID.

Here’s a step-by-step breakdown of the process:

  1. Verify address ownership: Binance first verifies that the ownership of the wallets (cold and hot wallets) used in the PoR process belongs to the exchange.

  2. User Balance Snapshot: Takes a snapshot of asset holdings within each customer account at a specific date and time.

  3. Merkle Tree Generation: Binance generates the underlying data blocks by linking the hashed user ID and each user's balance. A Merkle tree is then created based on all users' data. If any account ID or balance in a leaf node changes, the Merkle root will also change. This way, each user can verify whether their assets are included in the leaf node.

zk-SNARKs in the Verification Process

In addition to Merkle trees, Binance also uses zk-SNARKs (Zero-Knowledge Succinct Non-Interactive Argument of Knowledge) in the verification process. zk-SNARK is a proof protocol that allows people to prove that they know a value without revealing what that value is.

Taking Binance as an example, the exchange uses zk-SNARK to prove that the balance set of all leaf nodes (i.e. user account balances) contributes to the total user asset balance claimed by the exchange. Each user can easily access their leaf node to see if it is included in the process.

The use of zk-SNARKs follows the following steps:

  1. Verify address ownership: As with the previous process, Binance verifies the ownership of the wallets (cold and hot) used in the PoR process.

  2. User Balance Snapshot: Get a snapshot of the asset holdings in each customer account again.

  3. Generate zk-SNARKs proof: Generate zk-SNARKs proof files for each user. This allows each user to easily access their leaf node and verify that the user's total net balance is greater than or equal to zero.

In addition to these self-verification methods, Binance also utilizes third-party auditors to provide audit reports to further enhance the security and transparency of the verification process.