# 一句话结论
zipcoin 把 Vitalik 小说《Snowmoon》里的货币真的做出来了——隐私池转账 + 烧币发言 + 门前留言。但它不是从零造的:整套隐私池复用的是 0xbow 的 Privacy Pools,一份已经审计、已经上线一年多的开源协议。
所以这份拆解分两层:zipcoin 自己写了什么,以及它站在谁的肩膀上、谁在真正控制它。下面每一个地址、每一笔余额、每一个权限,都是我直接读主网链上数据得到的,不是转述官网。
processooor,而这个值被哈希进了证明的 context。所以中继器能替你付 gas,但改不了收款人、金额和留言。
# 链上事实(区块 26,089,001–26,089,200)
(
POOL.nonce)≈ $2,700
占总量 8.68%
| 组件 | 地址 | 核验结果 |
|---|---|---|
| $ZC 代币 | 0x4E67…8722 | Stockereum 的 LaunchToken 模板,源码已验证:OZ ERC20、一次 mint、无 owner / 无 mint / 无交易税,链上 owner() 直接 revert |
| Privacy Pool | 0x6d0e…a422 | ASSET=ZC、SCOPE=0x21c42152… 与部署记录一致;不可升级(全部 immutable) |
| Entrypoint | 0x7a8D…9193 | 123 字节 ERC1967 代理,实现 0x15e35502…;可升级(UUPS + 团队角色) |
| ZipBroadcaster | 0x9925…6928 | MIN_BURN=1000 ZC、MAX_MESSAGE_BYTES=280,无 owner,调用间不持仓 |
| ZipDoorstep | 0x1813…7730 | 同一池子的第二个 processooor,证明「第三个合约是你的」在设计上成立 |
| Groth16 验证器 | 0x0228…7D6d 0xa45A…5eC6 | 就是 0xbow 主网池那两个,同一套 trusted setup —— 团队伪造不了证明 |
# 合约层:谁不可变,谁不是
池子的写入路径只有两条,门槛完全不同:提款必须携带有效 Groth16 证明并匹配 processooor,而存款只能由 Entrypoint 触发——没有任何管理员路径能凭空转出资金。反过来说,Entrypoint 是 UUPS 可升级的:能改费率、能永久停掉新存款(windDown)、能提走累积审核费,但偷不走池子里的币。
这是这份报告最该被记住的一组区分:「不能偷你的币」和「能冻住新用户」是两件事。
# 证明层:一笔存款是怎么被「焊接」的
隐私池用 LeanIMT 增量 Merkle 树 + Poseidon 哈希 + Groth16(bn254)。所有证明在你的浏览器里生成(@0xbow/privacy-pools-core-sdk 的 wasm/zkey 放在站点 /artifacts/),私钥和 note 从不出浏览器。
- 存款:
label = keccak(SCOPE, ++nonce) mod p,commitment = Poseidon4(value, label, precommitment);Entrypoint 先扣 0.5% 审核费,precommitment记入已用集合防重放。 - 审核:ASP 循环把「超过 5 分钟且不在黑名单」的存款按顺序编进一棵树,把新根推到链上。
- 提款:证明里同时绑定状态树路径、ASP 树路径、新 note 的 nullifier/secret,以及目标地址、金额、手续费、留言。
- 合约五道闸:调用者是声明的 processooor;
context匹配;树深 ≤ 32;状态根在 64 个历史根内;ASP 根必须等于链上最新根。 - 结算:验证通过 → 花掉旧 nullifier → 插入新 commitment → 转账给 processooor。
第 4 条最后一句解释了一个体验细节:每次 ASP 推新根,正在生成的证明都会作废,所以站点把推根间隔控制在至少 3 分钟。
另外,ragequit(公开退出)不受 ASP 管辖——只要你是最初存款人,即使没被批准也能凭证明拿回原钱包。这不是营销词,是合约里独立的一条函数。
# 密钥与中继器
你的 note 由一次签名决定
钱包签一句固定文案 → keccak256(签名) 截断成 12 词助记词 → Poseidon 派生 master keys → 第 i 笔存款用 Poseidon3(master, scope, i),第 k 次花费再滚出子 note。
- 签名和助记词都不离开浏览器;换设备重签同一句话即可恢复。
- 风险一:智能合约钱包每次签名可能不同 —— 那 12 词是唯一退路。
- 风险二:密钥强度 = 那句话的签名。任何骗你签同一句话的页面,等于拿到你所有 note 的钥匙。这是钓鱼最可能的落点。
中继器与「合规」
中继器替你提交并付 gas,费率 1%,用 gasPrice × gas(60–68 万) × 1.2 ÷ 费率 折算 ZC 门槛;余额低于 0.005 ETH 就整体下线;限流 6 次/分钟/IP。它能拒绝或拖延提交(审查),但改不了钱的去向。
而所谓 association set,在 zipcoin 这边实质是一份写在环境变量里的地址黑名单——改它不需要任何链上交易,也不留公开痕迹。
# 信任边界图
你的设备
浏览器- 钱包签名 → 派生 zip key
- 本地生成 Groth16 证明
- note 与助记词从不外发
团队服务器
热私钥 / 环境变量- 中继:可选择不提交
- ASP:黑名单 + 推根节奏
- 财库:领费 + 回购销毁
- 入口合约升级权
以太坊主网
不可篡改- 池子:只认有效证明
- ragequit:不受 ASP 管辖
- 销毁:真实转账到 dEaD
- 验证器:0xbow 同源
中间那条虚线就是全部故事:团队那一栏决定你什么时候被服务,右边那一栏决定钱归谁。两者在代码里是分开的。
# 上游:这套代码的出处
源头是一篇 2023 年的论文《Blockchain Privacy and Regulatory Compliance: Towards a Practical Equilibrium》——Vitalik Buterin、Jacob Illum、Matthias Nadler、Fabian Schär、Ameen Soleimani,2024 年发表于期刊,被引 140+ 次。它是对 Tornado Cash 被制裁的直接回应:隐私工具能不能既保护正常人、又不给黑钱当洗衣机?
| Tornado 式混币 | Privacy Pools | |
|---|---|---|
| 匿名集 | 池内全部存款 | 仅 ASP 批准过的存款 |
| 合规机制 | 无 | ASP 白名单,链上只放 Merkle 根 |
| 被拒怎么办 | — | ragequit:公开退回原钱包,不受审批管辖 |
| 监管姿态 | 对抗 | 主动提供可审计性 |
工程上是 Yarn monorepo 四个包:circuits(3 个 Circom 电路,Groth16)、contracts(Foundry)、sdk(浏览器内证明)、relayer(动态报价)。合约由 Wonderland 编写,审计方 Oxorio(电路、合约、升级专项)与 Auditware,audit/ 下共四份报告。
0x6818809Eef…6b46 的实现槽指向 0x15e355024de1CDc74ADdea7EBDf98418Ba5B1a2c —— 而 zipcoin 的代理指向的是同一个地址。不是「抄了代码」,是跑在完全同一份已部署实现上。
# 部署全景:一个 Entrypoint,十几个池子
| 池子 | 存款笔数 | 池内余额 | 审核费 |
|---|---|---|---|
| USDT | 474 | 6,639,766 USDT | 0% |
| ETH | 5,969 | 747.36 ETH | 0.5% |
| USDC | 870 | 462,917 USDC | 0.5% |
| fxUSD | 76 | — | 0% |
| wstETH | 39 | 25.38 | 0% |
| USDS | 18 | 2,482.62 | 0% |
| sUSDS / frxUSD / WBTC / DAI | 11 / 9 / 6 / 6 | 780.00 DAI 等 | 0% |
| wOETH / USD1 / USDe | 4 / 4 / 1 | — | 0% |
按 ETH ≈ $2,670 粗算,池内合计约 $9M。链上:主网是主场,官方与媒体报道同时支持 Gnosis(仓库部署脚本里也有 GNOSIS_RPC),测试网是 Sepolia 与 Gnosis Chiado;Gnosis 的具体地址我没找到公开列表,这条按未核实处理。
# 谁在部署和运营:0xbow Ltd.
| 项 | 内容 |
|---|---|
| 法律实体 | 0xbow Ltd.,服务条款与隐私政策署名;适用特拉华州法 |
| 所在地 | Dealroom 记为 Nashville;成立年份各来源口径不一(2023 / 2024) |
| 联合创始人 | Nathaniel Fried(CEO)、Zak Cole(其 venture studio Number Group 孵化了项目)、Ameen Soleimani(新闻稿署名 CTO,也是论文作者之一) |
| 顾问 | Taylor Monahan、Nic Bax、Oleksandr Brezhniev |
| 开发 / 审计 | Wonderland(开发);Oxorio、Auditware(审计) |
| 融资 | 2025-11 种子轮 $3.5M,Starbloom Capital 领投;Coinbase Ventures、BOOST VC、Status、Plutos Capital、Balaji Srinivasan 等参投 |
链上控制权:一把 2/4 多签,握两个角色
Safe 0xAd7f9A19E2598b6eFE0A25C84FB1c87F81eB7159
threshold = 2 / owners = 4
hasRole(OWNER_ROLE) = true // 升级合约、改费率、停存款、提审核费
hasRole(ASP_POSTMAN) = true // 更新白名单 Merkle 根
四个签名人:0xd76eeb…b52e、0xb1a1d5…16fc、0x652e36…13da、0xe8a2cc…af77。这与 L2Beat 隐私看板记载的「2/4 multisig」完全一致。
它在运营什么:官方前端 privacypools.com(主网 + Gnosis)、ASP 审查(完整白名单发布到 IPFS,比 zipcoin 的环境变量黑名单规范得多)、Tornado Cash Proof of Association 工具、npm 上的 SDK(zipcoin 用的就是它),以及与以太坊基金会的集成合作。
另:公开案卷中可检索到 Asher v. 0xbow Ltd 等(美国田纳西州中区法院,2025 年)。我只看到条目、未核实内容,不下结论。
# 还有谁在用这套代码
上游仓库 133 star、44 fork。拉全量列表按最近推送排序查过后:
- defi-wonderland / wonderland-archive —— 原始开发方的镜像
- zipcoincash/privacy-pools-core —— zipcoin,唯一一个挂着别的品牌、真的上线部署的 fork
- 其余四十来个是开发方或个人 fork(bankaixyz、fatlabsxyz、shs-plasma、leverup-xyz 等),无公开链上部署证据;甚至有把仓库名改成
-或Ayzcubb的蹭热度产物
结论:除 0xbow 自身,目前没有发现第二个有实质链上部署的实例。
# 风险清单
- 未审计的自研合约:ZipBroadcaster、ZipDoorstep 与发射台合约不在 0xbow 的审计范围内。
- 入口可升级:升级权在部署方手里,可改费率、停新存款、提审核费(0xbow 那边链上确认是 2/4 多签;zipcoin 这边的持有者未公开)。
- 中继与 ASP 中心化:存在可被审查的瓶颈;黑名单机制不透明、不公开。
- 匿名集极小:19 笔存款、约 $2,700。这个规模下隐私性接近于零——时间与金额的推测就能把存款和提款对上。
- 前端是信任面:证明在浏览器生成,依赖站点下发的 wasm/zkey,也依赖你只在真站点上签那句话。
- 叙事依赖:靠「Vitalik 的小说币」传播,与 Vitalik 本人无任何关联(站点自己声明)。
# 怎么看它
技术上:比绝大多数同名热度盘扎实得多。复用已审计的隐私池代码、证明在客户端生成、验证器与 0xbow 同源、退出路径抗审查、代币与销毁合约的「无 owner」承诺链上可验——这些都是能自己动手核对的硬事实。
但要说清楚的是:它的「隐私支付」几乎没有真实使用量,真正在跑的是「烧币发言」这个社交玩法(销毁量是池子余额的 260 倍)。而所有值钱的部分——中继、审核、财库、升级权——都握在团队手里。
把它和上游放在一起看,位置就清楚了:它是同一套成熟协议上的一个叙事分支。上游 ETH 池 747 ETH、5,969 笔存款,它 19 笔;上游白名单发在 IPFS、控制权在 2/4 多签,它是一份环境变量黑名单。真正值钱的代码不是它写的——这也决定了它的天花板。
说明 本文为技术分析,不构成投资建议。