Bo's Lab

交易所入金测试:从手动构造到标准化平台

钱包测试的本质

交易所钱包的测试,说到底就两件事:入金出金

听起来简单,但入金这一侧的复杂度远超大多数人的想象。根据我的实际经验,入金测试可以拆分为四个层次,每一层的难度和价值都在递增:

第一层:主流程入金 本币和 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