第三方审计机构
A&M
Armanino & Mazars (占位)
由独立审计机构按月对 Merkle Root 与链上余额签发审计报告。本演示环境使用占位 logo。
CC
ChainCheck (占位)
实时核对各币种冷热钱包链上余额是否 ≥ 用户总持仓。
各币种储备覆盖率
覆盖率 = 平台储备 / 用户总持仓 (需 ≥ 100%)
尚无快照数据
历史快照
点击「下载 JSON」获取完整快照(含全部叶子哈希),可离线独立复算 Merkle Root
用户自验证
登录后,前往「账户中心」点击 「验证我的资产证明」 按钮,即可获得包含自己 leaf 的完整 Merkle proof JSON。
命令行第三方复算
下载自己的 proof JSON 后,用 Node.js 即可在不依赖任何 FAcoin 代码的前提下,独立复算 Merkle Root 并与本页公开值比对。
# 1. 安装 node ≥ 18,然后保存以下脚本为 verify.js node verify.js ./my-proof.json # --- verify.js --- const { createHash } = require('crypto'); const p = JSON.parse(require('fs').readFileSync(process.argv[2], 'utf8')); const sha = (h) => createHash('sha256').update(Buffer.from(h, 'hex')).digest('hex'); const shaCat = (a, b) => createHash('sha256').update(Buffer.concat([Buffer.from(a, 'hex'), Buffer.from(b, 'hex')])).digest('hex'); let acc = p.leafHash; for (const step of p.proofPath) { acc = step.direction === 'L' ? shaCat(step.sibling, acc) : shaCat(acc, step.sibling); } console.log('computed', acc); console.log('expected', p.merkleRoot); console.log(acc === p.merkleRoot ? '✓ PoR VERIFIED' : '✗ MISMATCH');
想进一步校验 leafHash 本身:sha256(uidHash + ":" + nonce + ":" + balancesJson),
其中 uidHash = sha256(email_lowercase + ":" + nonce)。
以上字段均包含在 proof JSON 中。