
什么是储备证明(Proof of Reserves):从 0 学会自己核验一份 PoR 报告
PoR 是当下判断一家中心化交易所健康度的最重要单一信号。本篇是写给完全没接触过 PoR 的读者——它能证明什么、不能证明什么、怎么自己读懂一份 PoR 报告、以及 zk-SNARK 这个看起来很学术的词在里面起什么作用。
2022 年 11 月 11 日 FTX 申请破产,留下的教训是:你存进交易所的币,平台可以挪用,而你不会知道。FTX 出事那一周,时任币安 CEO 的赵长鹏(CZ)公开呼吁所有交易所发布储备证明。
我把这件事读成一条判断标准——一家交易所要么定期公开发布储备证明,要么我建议你别用它。本篇要讲的就是 PoR 这个东西本身:它是什么、能解决什么问题、不能解决什么问题、你怎么自己读懂它。
一、PoR 到底证明了什么
Proof of Reserves(储备证明)是交易所公开的一份披露,有时由外部机构核验,有时靠用户能自己验证的密码学证明,目的是证明三件事:
- 交易所在某个时间点持有的链上加密资产数量(这部分通过把交易所所有公开钱包地址加起来核验)。
- 交易所在同一时间点的用户实际负债总额(这部分通过 Merkle Tree 或 zk-SNARK 证明每个用户余额能正确累加)。
- 资产 ≥ 负债(理想情况下是超额储备,即资产明显大于负债,留缓冲)。
说人话就是:一份合格的 PoR 应该让任何用户能独立验证两件事——"我的余额确实被计入了平台的负债总额",以及"平台的链上资产总额确实 ≥ 这个总负债"。
FTX 在它存在的整个生命周期里,从未发布过任何符合上述定义的 PoR。
二、PoR 不能证明什么
这一节比上一节更重要。PoR 不是"安全证明",它有非常明确的边界:
- PoR 不证明法币储备。一份 PoR 报告通常只覆盖加密资产端——BTC、ETH、稳定币等。如果你存进交易所的是美元现金、欧元、日元,PoR 没办法证明这部分钱也对得上账。这个缺口至今没有标准解决方案。
- PoR 是某个时间点的快照。2026 年 5 月 1 日的 PoR 报告,只证明那一天 12:00 UTC 的余额。这一刻之后到下一份 PoR 之间(间隔长短由交易所自己定),平台理论上有时间挪用资金再补上。这就是为什么"月度"比"季度"重要,"季度"比"年度"重要。
- PoR 不证明负债的完整性。用户负债是已知的——平台知道每个用户存了多少。但平台可能有对外的隐形负债:欠某家做市商的钱、对某家关联公司的贷款承诺、未结算的衍生品仓位。这些不在用户负债里,PoR 看不到。
- PoR 不证明运营健康。一家所可以 PoR 完全过关,但同时在亏损、烧钱、面临监管诉讼。PoR 只看"用户存的币还在不在",不看"这家所还能不能持续运营"。
这四条边界听起来让 PoR 显得很弱。PoR 确实只是"必要条件"——它过不了一定有问题,但它过了不代表绝对安全。Mt.Gox、QuadrigaCX、FTX 这三艘船共同的特征是连 PoR 这个必要条件都不满足。
三、PoR 的简短历史
| 年份 | 事件 |
|---|---|
| 2011 | Mt.Gox 把 424242 枚 BTC 转到一个事先公布的地址,以此证明自己持有这些币——只证资产端(见文末 Vitalik Buterin 2022 年博文) |
| 2013–2014 | 讨论转向另一半:怎么证明用户存款的总额。Merkle 树的做法出现——每个用户拿到一份证明,可以确认自己的余额被算进了总数(同上) |
| 2022.11 | FTX 倒下;Binance(币安)推出基于 Merkle Tree 的 PoR,12 月发布 Mazars 就其 BTC 储备出具的报告 |
| 2022.12 | Mazars 暂停所有加密客户 PoR 业务(理由是担心公众对这类报告的理解方式) |
| 2023 起 | 币安把 zk-SNARK 用在负债端证明 |
关于 Mazars 这件事,可核的事实是两句:Mazars 在 2022 年 12 月 16 日暂停了为加密客户出具这类报告,它给的理由是担心公众对这类报告的理解方式;币安当期的 PoR 页面上没有第三方署名(2026 年 10 月查看),写的是 Merkle 树加 zk-SNARK、由用户自己核对。Mazars 暂停的是自己出具这类报告,不等于 PoR 这个做法失效了。本馆的判据是:有独立第三方出具的报告更可信;没有的,就只能自己核链上地址。
四、自己核验一份 PoR 的 4 个步骤
下面以币安的 PoR 页为例,因为它把自验入口和方法都写在了公开页面上;换一家所,步骤是同一套。
第 1 步:找到 PoR 页面
访问 binance.com 主域名,搜索 "Proof of Reserves" 或者直接 URL `/en/proof-of-reserves`。其他所:Kraken 用 `kraken.com/proof-of-reserves`;Bybit 等交易所可以在官网搜 "Proof of Reserves" 找到对应页面。
第 2 步:看核验机构
看当前报告或 PoR 页由谁核验(如果有):可查的独立审计或核验机构;没听过、查不到的小机构多留个心。有独立第三方出具的报告更可信;没有的,就只能自己核链上地址(第 3 步)和自己那条记录(第 4 步)。本文举例的币安页面没有列第三方核验机构。
第 3 步:看资产端数据
PoR 报告会列出交易所声明持有的钱包地址清单。挑几个最大的地址,到链上浏览器(Etherscan、Mempool、Tronscan 等)独立验证:余额是不是和报告写的一致。
第 4 步:看负债端方法
这一步是最严肃的一步。报告应该明确说明用户负债是怎么核的——Merkle Tree、zk-SNARK 还是其他。以币安为例:登录后在钱包里找到储备证明的核验入口,选一期快照日期,页面会给出这一期你账户专属的 Record ID 和 Merkle Leaf,以及当时计入的资产和余额。注意,页面把这两样显示给你,还不算你验过了——那只是交易所自己给出的数据。要按官方 PoR 页说明的自验方法,拿 Record ID / Merkle Leaf 去核它确实在这一期负债的 Merkle 树里;核得上,说明你的余额被计入了这一期负债。核不上、或者那一期查不到你的记录,就当这期没验过,先截图再找客服问清楚。它证明的也只是"算进了负债"这一点,资产够不够还要看第 3 步。
第 4 步建议每三个月做一次,花不了多少时间。这件事在没问题的时候是仪式感,在出问题的时候是救命稻草。
五、zk-SNARK 用户负债证明为什么重要
传统的 Merkle Tree PoR 有一个潜在漏洞:交易所理论上可以往树里塞几个余额为负数的假账户,把负债总额压低。从外部看,每个用户都能验证自己的余额在树里,但总和被作假了。
zk-SNARK(Zero-Knowledge Succinct Non-Interactive Argument of Knowledge)用零知识证明数学解决了这个问题。简化版本:
- 交易所生成一份数学证明,证明"所有用户余额相加 = 公开声明的总负债"。
- 这份证明不暴露任何单个用户的余额(隐私保护)。
- 任何人都可以用公开的验证程序检查这份证明的正确性。
- 证明里同时约束每个账户余额都不为负;如果交易所试图作假(比如塞负余额账户),证明本身会无法通过验证。
说人话就是:负债端这一块,你不用只靠相信谁的签字,可以直接拿数学去验。数学不会被收买,也不会因为公关压力调整结论。
Binance 在 2023 年 2 月首次推出 zk-SNARK PoR。没用 zk 证明负债端的所,读报告时要多问一句负债是怎么核的。
六、PoR 报告的 5 个红旗
遇到下列任何一条,把这家所的 PoR 可信度降一级:
- 核验频率突然降低。月度 → 季度,季度 → 年度,或者直接停发——这是最强烈的负面信号。
- 核验机构突然更换。更换可能只是商业原因,但需要警惕——特别是从"大型独立审计所"换成"听起来不像审计公司的机构"时。
- 仅核资产端,不核负债端。这是早期 PoR 的常见缺陷,放到现在已经不够。
- 负债端只用 Merkle Tree,没有 zk-SNARK 这类证明。这条相对软——不是不能用 Merkle Tree,但它单独挡不住负余额假账户这类作假。一家所只用 Merkle Tree,读报告时就要多问一句:负债总额靠什么保证。
- 既没有外部核验,也没有自查手段。有独立第三方出具的报告更可信;没有的,至少要给出钱包地址清单和让用户自己核对的办法。两样都没有的"PoR",本质是交易所自己写的声明,几乎没有分量。
读完这篇,你应该有了"自己看 PoR"的基础能力。下次任何一家所发新闻稿说自己"行业最高透明度"的时候,你能自己得出结论。
- Vitalik Buterin, "Having a safe CEX: proof of solvency and beyond",2022 年 11 月 19 日博文。
- 维基百科 · Mazars 词条:2022 年 12 月暂停全部加密客户业务一节(引 CNBC、BBC 2022 年 12 月 16 日报道),2026 年 10 月查看。
- Binance Proof of Reserves 页,2026 年 10 月查看。
- Kraken Proof of Reserves 页,2026 年 10 月查看。
如发现本文事实性错误,欢迎写信至 [email protected],我会公开更正并署上你的名字。