# 一句话结论

zipcoin 把 Vitalik 小说《Snowmoon》里的货币真的做出来了——隐私池转账 + 烧币发言 + 门前留言。但它不是从零造的:整套隐私池复用的是 0xbow 的 Privacy Pools,一份已经审计、已经上线一年多的开源协议。

所以这份拆解分两层:zipcoin 自己写了什么,以及它站在谁的肩膀上、谁在真正控制它。下面每一个地址、每一笔余额、每一个权限,都是我直接读主网链上数据得到的,不是转述官网。

整个信任故事,就这一行 Privacy Pool 的提款校验:调用者必须是证明里写的 processooor,而这个值被哈希进了证明的 context。所以中继器能替你付 gas,但改不了收款人、金额和留言。

# 链上事实(区块 26,089,001–26,089,200)

19zipcoin 池子累计存款笔数
(POOL.nonce)
334,523池内余额 ZC
≈ $2,700
86.76M已销毁 ZC
占总量 8.68%
组件地址核验结果
$ZC 代币0x4E67…8722Stockereum 的 LaunchToken 模板,源码已验证:OZ ERC20、一次 mint、无 owner / 无 mint / 无交易税,链上 owner() 直接 revert
Privacy Pool0x6d0e…a422ASSET=ZC、SCOPE=0x21c42152… 与部署记录一致;不可升级(全部 immutable)
Entrypoint0x7a8D…9193123 字节 ERC1967 代理,实现 0x15e35502…;可升级(UUPS + 团队角色)
ZipBroadcaster0x9925…6928MIN_BURN=1000 ZC、MAX_MESSAGE_BYTES=280,无 owner,调用间不持仓
ZipDoorstep0x1813…7730同一池子的第二个 processooor,证明「第三个合约是你的」在设计上成立
Groth16 验证器0x0228…7D6d
0xa45A…5eC6
就是 0xbow 主网池那两个,同一套 trusted setup —— 团队伪造不了证明
余额分布说明了谁在用什么 池子里 334,523 ZC,Entrypoint 里 222,514 ZC(= 0.5% 审核费累积,可被提走),销毁地址躺着 86,760,745 ZC。「发言」这条线的消耗量是「隐私转账」的约 260 倍。

# 合约层:谁不可变,谁不是

池子的写入路径只有两条,门槛完全不同:提款必须携带有效 Groth16 证明并匹配 processooor,而存款只能由 Entrypoint 触发——没有任何管理员路径能凭空转出资金。反过来说,Entrypoint 是 UUPS 可升级的:能改费率、能永久停掉新存款(windDown)、能提走累积审核费,但偷不走池子里的币。

这是这份报告最该被记住的一组区分:「不能偷你的币」和「能冻住新用户」是两件事。

# 证明层:一笔存款是怎么被「焊接」的

隐私池用 LeanIMT 增量 Merkle 树 + Poseidon 哈希 + Groth16(bn254)。所有证明在你的浏览器里生成(@0xbow/privacy-pools-core-sdk 的 wasm/zkey 放在站点 /artifacts/),私钥和 note 从不出浏览器。

  1. 存款:label = keccak(SCOPE, ++nonce) mod p,commitment = Poseidon4(value, label, precommitment);Entrypoint 先扣 0.5% 审核费,precommitment 记入已用集合防重放。
  2. 审核:ASP 循环把「超过 5 分钟且不在黑名单」的存款按顺序编进一棵树,把新根推到链上。
  3. 提款:证明里同时绑定状态树路径、ASP 树路径、新 note 的 nullifier/secret,以及目标地址、金额、手续费、留言。
  4. 合约五道闸:调用者是声明的 processooor;context 匹配;树深 ≤ 32;状态根在 64 个历史根内;ASP 根必须等于链上最新根。
  5. 结算:验证通过 → 花掉旧 nullifier → 插入新 commitment → 转账给 processooor。

第 4 条最后一句解释了一个体验细节:每次 ASP 推新根,正在生成的证明都会作废,所以站点把推根间隔控制在至少 3 分钟。

另外,ragequit(公开退出)不受 ASP 管辖——只要你是最初存款人,即使没被批准也能凭证明拿回原钱包。这不是营销词,是合约里独立的一条函数。

# 密钥与中继器

你的 note 由一次签名决定

钱包签一句固定文案 → keccak256(签名) 截断成 12 词助记词 → Poseidon 派生 master keys → 第 i 笔存款用 Poseidon3(master, scope, i),第 k 次花费再滚出子 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/ 下共四份报告。

一个链上可以直接验的细节 0xbow 主网 Entrypoint 代理 0x6818809Eef…6b46 的实现槽指向 0x15e355024de1CDc74ADdea7EBDf98418Ba5B1a2c —— 而 zipcoin 的代理指向的是同一个地址。不是「抄了代码」,是跑在完全同一份已部署实现上。

# 部署全景:一个 Entrypoint,十几个池子

池子存款笔数池内余额审核费
USDT4746,639,766 USDT0%
ETH5,969747.36 ETH0.5%
USDC870462,917 USDC0.5%
fxUSD76—0%
wstETH3925.380%
USDS182,482.620%
sUSDS / frxUSD / WBTC / DAI11 / 9 / 6 / 6780.00 DAI 等0%
wOETH / USD1 / USDe4 / 4 / 1—0%

按 ETH ≈ $2,670 粗算,池内合计约 $9M。链上:主网是主场,官方与媒体报道同时支持 Gnosis(仓库部署脚本里也有 GNOSIS_RPC),测试网是 Sepolia 与 Gnosis Chiado;Gnosis 的具体地址我没找到公开列表,这条按未核实处理。

和 zipcoin 摆在一起 上游 ETH 池单池 5,969 笔存款、747 ETH;zipcoin 的 $ZC 池 19 笔、约 $2,700。同一个代码库,用量差三个数量级。

# 谁在部署和运营: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」完全一致。

关键观察 升级权和合规权没有分离。同一个多签既能改合约,又能决定谁的存款进白名单。所谓「ASP 是独立合规层」,在治理上其实是同一批人——这是整个设计里最容易被忽略的一点。

它在运营什么:官方前端 privacypools.com(主网 + Gnosis)、ASP 审查(完整白名单发布到 IPFS,比 zipcoin 的环境变量黑名单规范得多)、Tornado Cash Proof of Association 工具、npm 上的 SDK(zipcoin 用的就是它),以及与以太坊基金会的集成合作。

另:公开案卷中可检索到 Asher v. 0xbow Ltd 等(美国田纳西州中区法院,2025 年)。我只看到条目、未核实内容,不下结论。

# 还有谁在用这套代码

上游仓库 133 star、44 fork。拉全量列表按最近推送排序查过后:

结论:除 0xbow 自身,目前没有发现第二个有实质链上部署的实例。

# 风险清单

  1. 未审计的自研合约:ZipBroadcaster、ZipDoorstep 与发射台合约不在 0xbow 的审计范围内。
  2. 入口可升级:升级权在部署方手里,可改费率、停新存款、提审核费(0xbow 那边链上确认是 2/4 多签;zipcoin 这边的持有者未公开)。
  3. 中继与 ASP 中心化:存在可被审查的瓶颈;黑名单机制不透明、不公开。
  4. 匿名集极小:19 笔存款、约 $2,700。这个规模下隐私性接近于零——时间与金额的推测就能把存款和提款对上。
  5. 前端是信任面:证明在浏览器生成,依赖站点下发的 wasm/zkey,也依赖你只在真站点上签那句话。
  6. 叙事依赖:靠「Vitalik 的小说币」传播,与 Vitalik 本人无任何关联(站点自己声明)。

# 怎么看它

技术上:比绝大多数同名热度盘扎实得多。复用已审计的隐私池代码、证明在客户端生成、验证器与 0xbow 同源、退出路径抗审查、代币与销毁合约的「无 owner」承诺链上可验——这些都是能自己动手核对的硬事实。

但要说清楚的是:它的「隐私支付」几乎没有真实使用量,真正在跑的是「烧币发言」这个社交玩法(销毁量是池子余额的 260 倍)。而所有值钱的部分——中继、审核、财库、升级权——都握在团队手里。

把它和上游放在一起看,位置就清楚了:它是同一套成熟协议上的一个叙事分支。上游 ETH 池 747 ETH、5,969 笔存款,它 19 笔;上游白名单发在 IPFS、控制权在 2/4 多签,它是一份环境变量黑名单。真正值钱的代码不是它写的——这也决定了它的天花板。

结论 值得当作一个设计得不错的链上实验来读,不值得当作隐私工具来依赖,更不该当作投资标的。要参与,把它当能亏光的娱乐仓位。
核验方式 全部地址、参数、余额、角色表与多签 owner 列表,均通过以太坊主网 JSON-RPC 于区块 26,089,001–26,089,200 直接读取(非转述);代币源码取自 Blockscout 已验证合约;合约逻辑阅读自 zipcoincash/zipcoin、zipcoincash/privacy-pools-core@zipcoin 与上游 0xbow-io/privacy-pools-core(含 audit/ 四份报告);fork 清单取自 GitHub API;团队、融资与法律实体信息取自公开报道与项目文档,逐条标注了核实状态。

说明 本文为技术分析,不构成投资建议。