MKT

Exchange publishes proof-of-reserves with a zero-knowledge attestation

An exchange has published a proof-of-reserves backed by a zero-knowledge attestation, proving it holds the assets it claims without exposing customer data. But reserves are only half of solvency. The liabilities side is where the real questions live.

By Ethan Brooks·Updated Jul 5, 2026·6 min read·✓ Fact-checked by Priya Nair

Originally published Jun 4, 2026

Exchange publishes proof-of-reserves with a zero-knowledge attestation

Exchange publishes proof-of-reserves with a zero-knowledge attestation

An exchange has released a proof-of-reserves report backed by a zero-knowledge attestation, joining a small but growing set of custodians trying to answer the industry's most basic question — do you actually have the coins? — without handing rivals a map of their treasury or leaking data about individual account balances. The pitch is simple: cryptographically prove that on-chain reserves clear a claimed threshold, and prove it in a way that reveals almost nothing else.

It is a meaningful step, and an incomplete one. Proof-of-reserves has become shorthand for solvency in the wake of exchange collapses that vaporized customer funds, but the phrase overstates what the math delivers. Reserves are assets. Solvency is assets minus liabilities. An attestation showing that an exchange controls a large pile of coins says nothing, on its own, about how much it owes — and the gap between those two numbers is exactly where failed platforms hid their problems.

What a proof-of-reserves actually shows

At its core, a proof-of-reserves demonstrates two things: that an exchange controls certain on-chain addresses, and that those addresses hold a certain amount of crypto at a moment in time. Control is usually shown by having the exchange sign a message with the private keys behind its wallets, or move a nominal amount to prove it can spend from them. Balances are then read directly from the public ledger, where anyone can verify them.

That is genuinely useful. It is far more than the pinky-promise accounting that preceded it, and it puts a verifiable on-chain floor under an exchange's claims. But it carries well-known limits worth keeping in mind:

  • It is a snapshot. Reserves are proven as of a specific block or timestamp. An exchange can borrow assets, prove reserves, and return the borrowed funds afterward — a maneuver analysts call window-dressing.
  • It shows assets, not net worth. The report reveals what is held, not what is owed to customers or third parties.
  • It says nothing about off-balance-sheet obligations: loans, derivatives exposure, undisclosed guarantees, or transfers to affiliated entities.
  • Proving control of keys is not the same as proving the coins are unencumbered. Assets can be pledged as collateral elsewhere while still sitting in a provable wallet.

In other words, a reserves proof answers 'what do you hold?' and stops there. It is the numerator of a solvency ratio with the denominator left blank.

Where zero-knowledge changes the calculation

The zero-knowledge attestation in this release targets a real tension in the older approach. Publishing wallet addresses and full balances is transparent, but it also exposes an exchange's entire treasury structure to competitors, counterparties and would-be attackers — and on the liabilities side, it risks leaking information about individual customers. Zero-knowledge proofs let a system prove a statement is true without revealing the underlying data that makes it true.

Applied here, a ZK attestation can prove propositions like 'total reserves are greater than or equal to total customer liabilities,' or 'this user's balance is included in the total,' without publishing the exchange's full address list or any individual account figure. The verifier learns that the inequality holds. They do not learn the treasury layout, the per-customer balances, or the internal wallet topology. For an exchange, that lowers the competitive and security cost of being honest — historically a real reason platforms resisted full transparency.

Zero-knowledge doesn't make a solvency claim more true. It makes an honest one cheaper to publish — and that is the point.

It is worth being precise about what ZK does and does not buy. It improves privacy, and it can make verification cheaper and more frequent. It does not, by itself, prove that the liabilities figure fed into the proof is complete or honest. A zero-knowledge proof is only as trustworthy as the claim it is asked to prove; garbage in still yields a valid proof of garbage.

The liabilities problem and the Merkle tree

This is the harder half of the exercise, and the part most reserves reports handle weakly or skip entirely. To prove liabilities, an exchange has to commit to the total it owes all customers, and ideally let each customer confirm their own balance was counted in that total. The standard tool is a Merkle tree, sometimes called a proof-of-liabilities tree.

The mechanism works roughly like this. Each customer account — an identifier and a balance — becomes a leaf at the bottom of the tree. Leaves are hashed together in pairs, those hashes are hashed together, and so on up to a single value at the top called the Merkle root. The exchange publishes that root. Any customer can then be handed a short 'Merkle path' — the handful of sibling hashes along the way — and independently recompute the root, confirming their balance was baked into the published total without seeing anyone else's data.

Done well, the sum of all leaf balances equals the exchange's stated liabilities, and a critical mass of users verifying their own inclusion makes it hard for the exchange to have quietly understated what it owes. Combine that liabilities root with a proven reserves figure and you approach a real solvency statement: reserves greater than or equal to liabilities, both cryptographically anchored.

The traps are practical. An exchange can insert accounts with negative balances to shrink the apparent total — a known attack that better schemes defend against by proving every leaf is non-negative, one place where ZK range proofs earn their keep. The scheme also relies on enough customers actually checking their inclusion; if almost nobody verifies, omissions go unnoticed. And a Merkle root of liabilities still only captures the liabilities the exchange chose to put in the tree. Debts to lenders, affiliates or counterparties that never touch a customer account can sit entirely outside it.

Why reserves without liabilities is an incomplete proof

This is the interpretive core for anyone reading the announcement. An exchange that publishes only a reserves attestation — even a polished zero-knowledge one — has proven that it holds assets, full stop. The collapses that made proof-of-reserves a household phrase were not, mostly, cases of exchanges holding no assets. They were cases of exchanges holding assets while owing far more, often through obligations that never appeared on any public balance sheet. A reserves-only proof would have looked reassuring right up to the failure.

So the questions to ask of any such report stay the same, however advanced the cryptography sounds. Does it include a proof of liabilities, not just reserves? Can individual users verify their inclusion in the liabilities total? Are negative balances provably excluded? How frequent is the attestation, and does it defend against borrow-prove-return snapshot gaming? And, critically, what falls outside the model entirely, in the off-balance-sheet territory no on-chain proof can reach?

None of this diminishes the direction of travel. Moving from unverifiable claims to cryptographic attestations, and adding privacy so that honesty carries less competitive cost, is progress the sector needs. But a proof-of-reserves is a component, not a verdict. The most credible exchanges pair on-chain attestations with independent audits that can examine the obligations cryptography cannot see, and treat the zero-knowledge report as one input into trust rather than the whole of it. This is analysis, not financial advice — but the framing matters: verify the whole balance sheet, not just the half that is easy to prove.

Frequently asked questions

What is the difference between proof-of-reserves and proof-of-solvency?+

Proof-of-reserves shows only the assets an exchange holds. Proof-of-solvency requires both sides: assets (reserves) and liabilities (what the exchange owes customers and others). Solvency means reserves are greater than or equal to liabilities. A reserves-only proof shows the numerator and leaves the denominator blank, so it cannot confirm an exchange is actually solvent.

How does a zero-knowledge proof help with proof-of-reserves?+

It lets an exchange prove a statement is true without revealing the sensitive data behind it. For example, it can prove that total reserves exceed total liabilities, or that a specific customer's balance is included in the total, without publishing the exchange's full wallet map or any individual account balance. That lowers the competitive and privacy cost of transparency, though it does not verify that the numbers fed into the proof are honest or complete.

What is a Merkle tree in proof-of-liabilities?+

It is a data structure that lets an exchange commit to the total it owes all customers while letting each customer verify their own balance was counted. Every account becomes a leaf, pairs of leaves are hashed together repeatedly up to a single Merkle root, and the exchange publishes that root. Any customer can recompute the root from a short proof path to confirm their balance was included, without seeing anyone else's data.

Can an exchange cheat a proof-of-reserves?+

Yes, in several ways. It can borrow assets, prove reserves at a single snapshot, then return the borrowed funds (window-dressing). It can insert negative-balance accounts into a liabilities tree to understate what it owes, unless the scheme proves all balances are non-negative. And it can leave off-balance-sheet obligations — loans, pledged collateral, affiliate debts — entirely outside the model, where no on-chain proof can detect them.

Does a proof-of-reserves replace a traditional audit?+

No. On-chain attestations verify what can be seen on the blockchain at a point in time, but they cannot examine off-chain obligations, encumbrances, or the honesty of the liabilities figure supplied. The most credible exchanges combine cryptographic proofs with independent audits that can inspect the parts of the balance sheet cryptography cannot reach, treating the ZK report as one input into trust rather than the final word.

How this was reported

ChainWatch Daily is independent and reader-funded. Stories are written by named journalists and checked against primary sources before publishing. We disclose holdings, correct errors in the open, and never accept payment for coverage.

→

More like this