TL;DR
目前无法仅靠公开资料完整验证 CZ 提到的 “$12M 赔付” 是否已经逐笔完成。公开可核验部分是:CZ 在 2026-08-01 明确说 Trust Wallet 旧 PRNG 事故造成 $12M losses 且 “covered every user”;CVE 与第三方复盘确认旧漏洞属于弱随机数 / 种子生成级问题;但公开资料中常见的 2023 披露口径是约 $170k 已发生损失、约 500 个钱包 / $88.3k 仍有风险余额、Ledger 估算一度约 $30M 资产处于风险中。
要把 $12M 公开对账验证,Trust Wallet 至少需要发布三张表:受损明细、赔付资格明细、赔付交易明细;否则外部只能验证“漏洞存在”和“部分损失口径”,不能验证“$12M 已赔付完成”。
当前可验证事实
公开资料能验证的是“事故类型”和“口径不一致”,还不能验证完整赔付账本。CZ 的原始说法来自其 2026-08-01 18:20 UTC 的 X 帖:Trust Wallet 几年前遇到同类 PRNG 问题,造成 $12M 损失,并覆盖所有用户。来源:CZ X 帖
旧漏洞本身有可核验技术依据。NVD 对 CVE-2023-31290 的描述是:Trust Wallet Core 3.1.1 之前、Browser Extension 0.0.183 之前存在弱熵问题;mt19937 只使用单个 32-bit 种子,导致约 40 亿种可能助记词;受影响扩展版本为 0.0.172 至 0.0.182,受影响用户需要升级并迁移到新地址。来源:NVD
但公开金额口径并没有自然对上 $12M:Unchained 引述 Trust Wallet 2023 年披露称,两次潜在利用造成约 $170,000 损失,仍有约 500 个受影响钱包、约 $88,300 余额处于风险中;Ledger Donjon 则称其调查期间一度约 $30M 资产处于风险中,并提到 Trust Wallet 承诺赔付被盗资金。来源:Unchained,Ledger Donjon
| 项目 | 公开可见口径 | 可验证程度 | 备注 |
|---|---|---|---|
| CZ 提到的赔付 / 损失 | $12M losses, covered every user | 中 | 有公开 X 帖,但不是账本 |
| 2023 年披露的已发生损失 | 约 $170k | 较高 | 第三方报道引用项目披露 |
| 仍有风险余额 | 约 $88.3k / ~500 钱包 | 较高 | 第三方报道引用项目披露 |
| 一度风险敞口 | 约 $30M | 中高 | Ledger Donjon 技术复盘估算 |
| 已完成赔付总额 | 未见可公开逐笔核验账本 | 低 | 这是 $12M 对账缺口 |
验证缺口
$12M 现在更像一个“背书性总额”,不是一个已经公开审计的赔付总账。 外部验证卡在四个缺口:金额定义、受害地址、计价方法、赔付交易。
最关键的问题是:$12M 到底是哪一类金额?
| 可能定义 | 是否等于“已赔付” | 外部验证难度 | 需要补充材料 |
|---|---|---|---|
| 实际被盗资产价值 | 不一定 | 中 | 被盗 tx hash、token、估值时间 |
| 受影响资产风险敞口 | 否 | 中高 | 受影响地址余额快照 |
| 已批准赔付金额 | 接近 | 高 | 审核通过清单、排除项 |
| 已实际打款金额 | 是 | 低到高 | 若链上转账则低;若 CEX / 法币则高 |
| 多次事故合并口径 | 不清楚 | 高 | 必须拆分 PRNG、扩展、其他事件 |
所以,验证第一步不是查链,而是让官方先回答:$12M 是 loss、exposure、approved claims,还是 paid reimbursements? 如果定义不清,任何链上求和都会变成错账。
对账框架
公开对账应采用“三账合一”:损失账、资格账、付款账。三张账能闭合,$12M 才能从社交媒体背书变成可验证数据。
| 账本 | 必须字段 | 公开方式 | 核验目标 |
|---|---|---|---|
| 损失账 | chain、受害地址或哈希、被盗 tx hash、token、数量、区块时间、USD 计价 | 可公开地址;或地址哈希 + 审计方原文校验 | 证明“损失发生且金额怎么算” |
| 资格账 | claim_id、钱包所有权证明、批准 / 拒绝状态、批准金额、拒绝原因分类 | Merkle root + 每个用户可验证 inclusion proof | 证明“哪些损失被纳入赔付” |
| 付款账 | payer wallet、recipient / claim hash、token、金额、tx hash、付款时间 | 链上 tx 全公开;链下付款需审计证明 | 证明“钱真的付出去了” |
最简洁的公式是:
$12M 可验证赔付总额
= Σ 已批准赔付金额
= Σ 链上已付款 USD 等值
- Σ 链下已付款审计确认金额
- Σ 未付/失败/待处理金额
± FX、token 价格、手续费、重复索赔调整如果官方声称“已全额赔付”,最后一项 未付 / 失败 / 待处理金额 应接近 0,且拒赔项必须有分类统计,例如重复索赔、无法证明所有权、非本漏洞损失、非受影响版本、用户迁移后损失等。
链上验证路径
如果赔付是链上完成,公开验证相对直接;如果赔付通过 Binance、Trust Wallet 内部支持系统、法币或 CEX 账户完成,外部无法完全链上验证,只能依赖独立审计证明。
链上验证可以这样做:
- 锁定漏洞范围:以 CVE 范围作为筛选边界:Trust Wallet Browser Extension 0.0.172-0.0.182、Trust Wallet Core <3.1.1、弱随机数导致可预测助记词。来源:NVD
- 建立受损地址集合:需要官方或审计方公布受影响地址列表,或至少公布每个受害地址的哈希承诺。没有这个集合,外部无法区分“PRNG 漏洞损失”和普通盗币、钓鱼、用户误操作。
- 重建被盗交易:对每个地址提取异常外流 tx,确认时间、token、数量、接收地址,并按统一价格源估算 USD。这里必须注明估值规则:按被盗区块时间价格、按披露日价格,还是 按赔付日价格。三种口径可能产生很大差异。
- 匹配赔付交易:官方需要公布付款钱包或交易哈希。验证者将付款 tx 与 claim_id / 地址哈希匹配,计算实际支付总额。
- 处理跨链和链下项:如果 ETH、BNB Chain、BTC、Solana、多链 token 混合,需分别建账;如果有 CEX 内部划转,必须由审计方签署“已付款但不可链上观察”的证明。
透明披露标准
保护用户隐私不是不公开对账的理由,但可以决定披露粒度。较好的方案是“公众看总账,用户看自身明细,审计方看原始明细”。
| 披露层级 | 公开内容 | 隐私保护 | 是否能支撑 $12M |
|---|---|---|---|
| 最弱 | 一句“已赔付 $12M” | 高 | 不足 |
| 中等 | 总额 + 分类统计 + 审计方声明 | 中高 | 部分支撑 |
| 较强 | Merkle root + 聚合 CSV + 付款 tx hash | 中 | 基本可验证 |
| 最强 | 受损 tx、批准金额、付款 tx 全量公开 | 低 | 最可验证,但可能暴露用户 |
我认为最低可接受披露包应包括:
- 事件口径说明:$12M 是被盗、风险敞口、批准赔付还是实际付款。
- 按链聚合表:BTC / Ethereum / BNB Chain / Solana / 其他链分别是多少。
- 按 token 聚合表:BTC、ETH、BNB、USDT、USDC、其他资产分别是多少。
- 时间价格规则:按哪个时间点、哪个价格源换算 USD。
- 赔付状态表:已付、待付、失败、拒绝、重复索赔。
- 审计签名:第三方安全公司或会计 / 链上分析机构签署原始明细与聚合总额一致。
- Merkle 证明:每个受害者能用 claim_id 或地址证明自己是否被纳入,不必公开完整身份。
结论
$12M 赔付要公开对账,不能只靠 CZ 或 Trust Wallet 的口头背书;它必须被拆成损失发生、资格确认、付款完成三套可核验数据。目前公开资料足以证明 Trust Wallet 旧 PRNG 漏洞真实存在,也能证明公开口径中有 $170k 已发生损失、$30M 风险敞口、$12M 社交媒体说法三类不同数字,但不足以证明 $12M 已逐笔赔付完成。
底线判断。 真正能消除争议的不是再发一条“用户已赔付”,而是发布一份可审计的赔付总账:$12M = 受损明细合计 = 批准赔付合计 = 链上 / 链下付款合计。如果三者无法闭合,$12M 就只能被视为未充分公开验证的品牌背书数字。