钱包测试的本质
交易所钱包的测试,说到底就两件事:入金和出金。
听起来简单,但入金这一侧的复杂度远超大多数人的想象。根据我的实际经验,入金测试可以拆分为四个层次,每一层的难度和价值都在递增:
第一层:主流程入金 本币和 Token 的标准转账。这是最基础的部分,理想状态下应该跑在 CI/CD 流水线里,每次发版自动回归。
第二层:特殊入金 链上失败交易、合约入金、零金额转账、批量入金……这些边界场景。在过去的测试实践中,这一层几乎是缺失的——不是不想测,而是构造这些交易的成本太高了。构建一笔链上失败的交易需要精确控制 gas 参数,构建一笔合约入金需要部署和调用智能合约,每一个 case 都极度依赖测试人员的链上能力。换个人来,可能就搞不定了。
第三层:重复入金(幂等性) 同一笔交易被系统处理两次会怎样?测试人员必须非常清楚入金的幂等机制是怎么实现的、为什么这么设计、什么情况下必须触发人工审核。这不仅是技术问题,更是业务理解的问题。
第四层:假入金 这是测试的深水区。以前的做法是深度依赖调研文档列出的已知 case 类型,但那些都是常规的、表层的。真正的假入金攻击往往藏在复杂的交易结构里,一旦漏过就是 P-1 级别的生产事故。
问题在哪
回看这四层,最大的痛点集中在前两层:
- 构造成本极高:一笔特殊交易的链上构建,以前可能要花一整天
- 高度依赖个人能力:只有熟悉链上操作的人才能完成,知识无法传递
- 缺乏标准化:每次测试的覆盖范围取决于执行者的经验,没有统一基线
- 无法规模化:新人上手周期长,团队扩展受限
一句话概括:入金测试的质量,不应该取决于「谁来测」。
我的解法:deposit.bolab.dev
基于这个判断,我开发了 Chain Deposit Lab —— 一个多链入金测试平台。
核心目标只有一个:让不懂链的人也能在几分钟内完成一次标准化的入金测试。
它能做什么
平台目前覆盖 21 条链(13 EVM / BTC / 3 UTXO / 3 Cosmos / Solana),针对 EVM 链提供五大类测试场景:
- 基础转账:本币和 Token 的标准入金
- 批量转账:通过辅助合约实现单笔交易多个 transfer event
- 金额边界:零金额、最小单位(1 wei)等边界值
- 失败交易:余额不足、gas 不足、合约 revert 等 6 种失败类型
- 假入金:假 Token、假 Event 等 6 种攻击模拟
以前构建这些特殊交易要以天为单位,现在只需要几分钟。
但标准化是不够的
工具平台解决了「已知场景」的快速构建,但测试需求有时是高度定制化的——比如某条新链有独特的交易结构,或者业务方需要验证某个特定的边缘情况。固定的按钮和表单无法覆盖所有可能。
为了解决这个问题,我结合 AI Agent(基于 OpenClaw)搭建了一个造数机器人。测试人员只需要用自然语言描述需求,机器人就能自动构建对应的链上交易。
更重要的是,我设置机器人每天生成日报,汇总团队当天的所有定制化请求。然后我会 review 这些需求:哪些是高频的?哪些有通用性?值得固化到平台里的就加进去——用实际需求反哺工具迭代。
这形成了一个闭环:
标准化平台 → 覆盖已知场景 → AI Agent 处理定制需求 → 日报沉淀高频 case → 反哺平台更新
下一步:假入金检测
前面说的都是「已知交易」的测试。但作为测试工程师,我们要做的不仅是验证已知的东西能不能过,更要在全局视角上做质量保障——那些我们不知道的交易类型,系统能正确处理吗?
这就是假入金检测的核心命题。
缩小范围
先厘清一个事实:除了低级的代码错误(比如没过滤失败交易),大部分假入金问题出在交易结构复杂的场景。而交易结构最复杂的,是支持智能合约的链。
所以范围可以大幅收窄:EVM 链重点深入,其他大链逐条过一遍。
两个探索方向
方向一:链上数据分析
从目标链上拉取大量真实交易数据,丢给 AI 做类型分析。和工具平台里的已知类型做比对——如果发现有不在已知分类里的交易结构,就汇总出来,评估是否需要加入测试覆盖。
这个方向的好处是基于真实数据驱动,能发现我们「不知道自己不知道」的盲区。风险是 ROI 不确定,而且大规模数据分析的 token 消耗需要评估。
方向二:Mock 轰炸
直接从链上拉取大量交易,把 to 地址全部替换为交易所的充值地址,然后批量提交。本质上是用真实世界的交易多样性来冲击系统,看哪些交易能「骗过」入金检测。
这个方向更直接、更暴力,但也更接近真实攻击场景。
两个方向各有取舍,大概率最终是组合使用——先用方向一发现盲区,再用方向二做压力验证。
写在最后
入金测试这个领域,长期以来都是「师傅带徒弟」的模式——能力全在人身上,走了就没了。我想做的事情很简单:把经验变成工具,把个人能力变成团队能力,把一次性的测试变成可重复的标准流程。
工具只是起点。真正的目标是建立一套入金质量保障体系——从标准化测试、到定制化补充、到未知威胁发现,形成完整的防护层次。
平台地址:deposit.bolab.dev