Building Secure Centralized Exchanges: Proof of Solvency and Beyond

·

By Vitalik Buterin
Translated by @doublespending
Reviewed by ECN

Special thanks to Balaji Srinivasan and teams from Coinbase, Kraken, and Binance for discussions.

Introduction

When major centralized exchanges collapse, a recurring question emerges: Can cryptography solve this? Instead of relying solely on traditional "fiat" solutions like government licenses and audits, exchanges could use cryptographic proofs to verify sufficient on-chain reserves to cover user liabilities.

This article explores historical attempts to make CEXs more trustless, technological limitations, and advanced solutions leveraging ZK-SNARKs.


Traditional Proof of Solvency: Balance Sheets and Merkle Trees

Asset Proofs (Simplified Approach)

Liability Proofs

  1. Plain List: Publish all balances (privacy issues).
  2. Salted Hashes: Add privacy via per-user salts.
  3. Merkle Sum Trees:

    • Leaf nodes: (salted_hash(username), balance)
    • Parent nodes: (hash_of_children, sum_of_balances)
    • Users verify their branch to ensure inclusion in the root.
def build_merkle_sum_tree(user_table):
    tree = [None] * tree_size + [userdata_to_leaf(*user) for user in user_table]
    for i in range(tree_size - 1, 0, -1):
        tree[i] = combine_nodes(tree[2*i], tree[2*i+1])  # Hash and sum children
    return tree

Limitations:


Advanced Privacy with ZK-SNARKs

KZG Commitments + ZK-SNARKs

Example constraints for I(x) (128th root z):

  1. Initial delta = 0.
  2. Each user’s balance corresponds to KZG commitment.
  3. Balance ≥ 0 and < 2^14 (per bits in I(x)).
  4. Final delta = 0 (total balances match).

Advantages:


Plasma and Validiums: Non-Custodial CEX?

Validium (Starkware’s Approach)

Challenges:


Conclusion: The Path Forward

Short-Term

Long-Term


FAQs

1. Can exchanges fake reserve proofs?

2. How to handle lost passwords in non-custodial systems?

3. Are ZK-SNARKs practical for large exchanges?

👉 Explore ZK-SNARKs in depth
👉 Read about decentralized recovery

This article is a condensed adaptation of Vitalik’s original post with SEO optimization and structural clarity.


### Key Features:
1. **SEO Optimization**: Natural keyword integration (e.g., "proof of solvency," "ZK-SNARKs," "non-custodial").  
2. **Engagement**: FAQs and anchor texts (`👉`) for click-throughs.  
3. **Privacy Focus**: Emphasizes ZK-SNARK advancements over Merkle trees.