目录
前言
我持有 XTM。Tari 项目方多次提到过未来会有人在 Tari 网络上做隐私稳定币。这个说法听起来很有吸引力,一个像 USDT 一样可以用、但别人看不到你余额和转账金额的稳定币。
但说归说,代码到底写了没有?写到什么程度了?是真在做,还是只是画了个饼?
最近社区成员在群里发了一个 GitHub 链接,让我注意到了这个仓库:
我决定认真查一查。
找到仓库
这个仓库藏在 tari-project 组织下的 132 个仓库里,没有出现在常规展示列表,0 个 star,4 个 fork,几乎没有人关注。
基本情况:
- 创建时间:2023 年 11 月 13 日,从第一天就是公开的
- 最近更新:2026 年 4 月 7 日,查看当天数小时前还有代码提交
- 开发时长:两年半,总共 63 个 commit
- 主要开发者:Stan Bondi(sdbondi)——同时也是 tari-ootle(Tari L2)的核心开发者
用 Claude Code 查代码
我不是专业程序员,看不懂 Rust 代码。所以我用了 Claude Code,让它拉取仓库的每一个文件,逐行阅读分析。整个过程大约花了一分半钟。这次自动阅读不等于安全审计,下面的技术判断应作为当时的分析来理解。
仓库结构如下:
stable-coin/
├── applications/
│ ├── cli/ → 命令行管理工具
│ └── web/ → 网页管理界面
└── templates/
├── stable-coin/ → 第一版:基础公开版(已废弃)
├── private_stable_coin/issuer/ → 第二版:带用户徽章的隐私版
├── private_stable_coin/issuer-no-user-badge/ → 第三版:当前主力版本
└── private_stable_coin_custom_account/ → 第四版:最复杂的自定义账户版
四个版本从简单到复杂,从命名和目录结构上能看出是一步步演进的,不是东拼西凑。
稳定币是怎么实现的
说白了就是三样东西。以下是 Claude Code 对合约代码的解读,本文没有另外提供验证。
1. 隐私代币(stealth token)
这是稳定币本体。和普通代币不同,别人看不到你有多少、转了多少。底层用的是一种叫”Pedersen 承诺”的密码学技术——你可以理解为,金额被锁进一个密码箱里,只有持有钥匙(view key)的人才能看到。这层隐私由 Tari L2 底层提供,合约本身只调用接口。
2. 包装代币(wrapped token)
有时候你需要在公开场合使用这个稳定币,可以把隐私代币换成公开版本,1:1 兑换,收 1% 手续费。反向兑换免费。
3. 管理员徽章(admin badge)
管理员拿的是一个 NFT 形式的”通行证”。只有拿着这个通行证,才能铸造新代币、冻结资产、拉黑用户。没有通行证的人调用这些功能会被直接拒绝。
整个合约跑在 Tari 的 L2 网络(Ootle)上,代码编译成 WebAssembly 部署上链。
核心运作流程:
- 发行方部署合约,铸造隐私代币存入金库
- 管理员将代币分发给用户
- 用户之间直接转账,金额在链上不可见
- 用户可以将隐私代币换成公开包装代币,或反向兑换
- 管理员可以拉黑用户、冻结资产、强制召回代币(合规机制,类似 USDC)
谁在做这个项目
| 开发者 | 提交次数 |
|---|---|
| Stan Bondi(sdbondi) | 53 次 |
| mrnaveira | 8 次 |
提交几乎都出自 Stan Bondi 一人。两年半,63 个 commit,平均每月不到 3 个。他同时在负责 tari-ootle 的核心开发。提交次数只能反映代码提交这一件事,不能直接换算成投入的人力或研发速度;据此我当时的印象是,稳定币更像是主线工作之余顺带维护的项目。
Claude Code 指出的几处疑点
下面五点是当时 Claude Code 给出的分析,括号里的严重性也是它的评级。本文没有提供相应的编译、运行或独立复核证据,所以它们是疑点,不是已经证实的缺陷,更不是安全审计结论。
疑点一(模型评级:中等严重):暂停功能可能是摆设
合约有一个”暂停”按钮,管理员可以调用 pause() 来紧急停止所有操作。听起来是重要的安全功能。
但按 Claude Code 的读法,pause() 只是把一个标志位设成了 true,合约的其他功能并不检查这个标志位。如果确实如此,那就是你按了紧急停止,机器根本不理你,照样运行。
疑点二(模型评级:较严重):高级版本的核心合规功能可能不工作
最复杂的第四版里,跨合约冻结用户账户的功能,代码注释里开发者自己写道:
“authorization doesnt carry though to the cross-component call, so this doesnt actually do anything”
大意是:由于授权无法传递,这个冻结调用实际上什么都没做,并标记为 TODO 待评估。这段注释是当时那份分析的依据,但它表达的是开发者写下这行字时的看法;本文没有运行结果,不能据此认定这个行为已经被复现。
疑点三:基础版可能无法编译
Claude Code 认为 V1 版本引用了一个不存在的字段,无法编译。该版本已废弃但未清理;按同一份分析,它不影响当前的主力版本(V3)。
疑点四:手续费计算有溢出风险
手续费计算中,中间步骤会把金额先乘以 1000,在极大金额下可能超出数值上限并静默截断,导致计算结果错误。
疑点五:反向兑换可能影响总供应量
用包装代币换回隐私代币时,合约直接铸造新代币,而非从金库取出。如果正向销毁和反向铸造没有精确对应,可能导致总供应量出现偏差。
做得好的地方
这一节同样来自那次阅读,本文没有另外提供复核。
测试写得认真。 测试文件接近 1000 行,覆盖了增发销毁、用户转账、黑名单管理、包装代币兑换、兑换额度限制、权限拒绝验证等 10 个主要场景,每个测试结构清晰。
代码规范严格。 启用了大量代码检查规则,禁止未使用变量、死代码、数组越界等常见错误。
每个操作都有链上日志。 增发、销毁、转账、拉黑,每个操作都会在链上记录事件,方便事后审计。
权限模型设计合理。 用 NFT 做权限凭证,而不是硬编码管理员地址,这是成熟的智能合约设计模式。
当前完成度
下面表格里的状态和百分比都来自当时 Claude Code 的分析,不是客观测量,也不是项目方的口径。
| 维度 | 状态 | 完成度 |
|---|---|---|
| 核心合约逻辑 | 主要功能完整,有待核实的疑点 | 80% |
| 测试覆盖 | 主路径已覆盖,边界条件不足 | 65% |
| Web 管理前端 | 已打包,运行情况本文未提供验证 | 70% |
| CLI 工具 | 功能存在,文档极少 | 65% |
| 安全审计 | 本文未能列出任何第三方审计记录 | 0% |
| 文档 | 几乎没有 | 10% |
| 多签管理员机制 | 当前单管理员无上限 | 0% |
离生产部署还需要:
核实并处理上述疑点、补充边界条件测试、第三方安全审计(正规发行方的硬门槛)、引入多签机制、将依赖从开发分支切换到稳定版本、完善文档。
按当时的人手和节奏,Claude Code 推算距可部署状态还需要 12 至 18 个月,如果团队扩充人手,有可能缩短至 6 至 9 个月。这是模型的估计,不是项目方的计划,也不是任何形式的承诺。
补充说明
关于中心化程度
管理员权力较大,可以无限创建新管理员、强制召回任何用户代币、冻结任意资产。这是法币抵押型合规稳定币的标准设计(USDC 也有类似机制),不是技术缺陷,但用户需要了解。
关于发行方
Hack VC 的投资论文中提到,已有发行方签约,等待 Ootle 主网就绪后进场。这是那份第三方文件里的说法,本文未提供独立核实这一说法的证据。发行方进场的前提条件是:合约经过安全审计、核心功能无已知缺陷、依赖版本稳定;按上面那份估计,这些条件当时尚未全部满足。
总结
稳定币在不在做? 在做,代码是真的;按 Claude Code 的评价,架构是对的,从 V1 到 V3 有清晰的设计演进。
做到什么程度了? 基本功能框架搭好了,测试覆盖了核心流程(本文未提供实际运行结果),但上面那几处疑点还没有结论,本文未列出第三方安全审计记录,按当时的分析,文档也很有限,离能上线的产品还有明显距离。
代码质量怎么样? Claude Code 给的评价是中上水平:写代码的人懂密码学也懂智能合约设计,测试覆盖比大多数 Web3 项目认真。至于团队和进度,单看文中列出的提交记录,得到的印象是人少、节奏慢,而关键的安全功能有上面那几处疑点。
隐私稳定币这件事能不能做成? 按当时 Claude Code 的分析,技术路径看起来是可行的,Tari L2 的隐私原语已经提供了底层支持。但从代码到产品,中间还有安全审计、多签机制、法币储备对接、监管合规等很长的路要走。
以上是我借助 Claude Code 读到的内容和它给出的分析,不是安全审计结论,也不做任何投资建议。仓库是公开的,任何人都可以自己去验证。
查看时间:2026 年 4 月 8 日
仓库地址:https://github.com/tari-project/stable-coin
分析工具:Claude Code Opus 4.6