首先声明,这里有些标题党,并不是完全隐藏,而是加大了溯源难度。在文章后半段,我会给出可操作的溯源方法。 你有没有遇到过这样的情况:在一些扫链工具里,没看到巨鲸大额砸盘,但自己买的土狗代币价格却已经直线下跌。从链上看,也没发现哪个地址进行了大额卖出。 本文用一个例子解释AA 钱包会让授权/发起者/资金流彼此分离,从而让部分传统扫链规则失效,并给出可操作的溯源方法。

背景介绍

先来简单复习一下以太坊的地址种类:

  1. EOA地址:外部账户地址,由私钥控制。
  2. 智能合约地址:由合约代码控制,这类地址没有私钥,只有合约代码。

从日常链上交互的视角来看,我们可以大致地把链上买币/卖币分为以下几个步骤:

  1. 授权:授权智能合约使用你的代币。
  2. 交易:智能合约扣减你的代币,执行卖出。
  3. 转账:把卖出得到的代币转到收款人地址。

这里,通常1可以提前做,3则是一个可选项。这里可能会出现很多变体,比如:

  • Binance / OKX DEX 以及其他路由,可能会先把买的币转到一个中间地址,然后在一个交易内把你买到的代币转给你。
  • 卖出的代币转到指定收款人。

一笔典型的交易如下图所示:

EOA 交易 在这里,地址 0x5c6C6BD98573030206E9dfb70F6266FE5892Dbd0 与 Dex Router 交互,是交易的发起人gas 支付人收款人。 Dex Router 扣掉 BNB 后,把买的 TST 转给0x5c6C6BD98573030206E9dfb70F6266FE5892Dbd0.

上述基础的链上交互流程,大家应该都比较熟悉,接下来,我们来看一个可能的情况:

  1. 你持有 1000 USDC,想买 TST。
  2. 你通过混币的方式(跨链/交易所提取等)把 1000 USDC 转账给一个中间地址。
  3. 中间地址等待你的指令,当你执行买入,卖出或转账时,中间地址会执行相应的操作。

与上面提到的基础链上交互流程相比,这里直接参与的地址,即:交易发起人交易 gas 支付人收款人,都不是代币实际持有者的EOA地址。

此外,收到的代币,在控制人发起转账之前,代币还是放在中间地址的。

这正是 EIP-4337(账户抽象,AA)的工作方式。AA 钱包本质上是一个可充当钱包的智能账户,它允许“签名者、交易发起者、gas 支付者与资金持有者”分离。AA 最初的目标是提升可用性(如无原生 gas 也能交易),并非“隐藏交易”,但也确实增加了解析难度。

一开始是为了即使不在链上持有gas token时也能执行交易,但因为链上解析的复杂性,目前很多链上信息工具,均没有解析这一环节。

这就导致,虽然你在链上没有看到大额卖出,但是价格却已经直线下跌,本质上是因为你盯的是 EOA 的授权与资金流,但真正的卖出发生在一个智能账户里,让传统的扫链规则失效。 一笔典型的 AA 钱包交易在这里: AA 钱包交易

为什么会看不到大额卖出?

回到开头的问题:为什么价格在跌,却在链上看不到“大额卖出”?

传统流程:

EOA地址 0x5c6C6B... ──[1) 调用 Swap 交易]──> DEX Router ──────────> AMM Pool (BNB/TST)
        ^                                                 │                         │
        |                                                 │                         │
        └────────────────[2) 买到的币转回去给EOA地址 ]───────┴─────────────────────────┘

AA流程:

主私钥持有者 ──[签名 UserOperation (离线)]──> Bundler ──> EntryPoint.handleOps ──[校验签名/费率 + Paymaster 检查]──> Smart Account (AA)
(私钥/主身份)                                                 │                                                    │
                                                              │                                                    ├─> (1) Permit/授权
                                                              │                                                    ├─> (2) Swap:调用 DEX Router
                                                              │                                                    └─> (3) Transfer:转给收款人 0xB8aa6c...
                                                              │
                                                          Paymaster ─────> Gas 支付:扣押金/代币结算

传统扫链工具的监控逻辑

传统扫链规则隐含了一个前提:授权者=发起者=gas 支付者=资金持有者=同一 EOA。于是“授权→交易→转账”都能在同一地址时间线上被看见。

  1. 监控 EOA 地址的授权交易:当一个地址发起 approve 交易时,标记为”准备交易”
  2. 追踪资金流动:监控代币从哪个地址转出、转到哪里
  3. 识别交易发起者:通过 from 字段识别是谁发起了交易
  4. 关联 gas 支付者:通过谁支付 gas 来辅助判断真实的操作者

这套逻辑对于普通的 EOA 地址交易非常有效,因为:

  • 授权者 = 交易发起者 = gas 支付者 = 代币持有者 = 同一个 EOA 地址
  • 所有操作都会显示在该地址的 Transaction 列表中
  • 资金流向清晰可见

更进一步地说,回到开头,买卖本质就是交易、转账两个步骤的组合,如果扫链工具能正确解析到这两个步骤,就能正确识别出真实的操作者。

AA 钱包如何间接隐藏操作

AA 将“签名/发起/gas/资金归属”拆散:授权可通过 permit 与交易合并,调用经 EntryPoint 内部执行,发起者可能是 Bundler,gas 由 Paymaster 结算,资金暂存在 AA 钱包中并直达另一个收款地址,传统的可见性与归因链条因此断裂。

  1. 没有独立的授权交易:通过 Permit 或批处理,授权和交易合并在一次执行中,扫链工具抓不到”准备卖出”的信号
  2. 交易不出现在 Transaction 列表:AA 钱包的操作是通过 EntryPoint 合约的内部调用执行的,只会出现在 Internal Transactions 中,大多数人不会专门去查看这个标签页 Internal Transactions

  3. 发起者≠控制者
    • 链上看到的发起者可能是 Bundler 的地址
    • 真正的控制者只是签了一个 UserOp,不会直接出现在链上
    • Gas 由 Paymaster 支付,与实际控制者无关
  4. 资金流特征被打散
    • 代币放在智能合约地址(AA 钱包)中,而不是 EOA 地址,这里通常会被直接过滤掉
    • 卖出操作在合约内部完成
    • 收款可以直接到另一个地址,不经过原地址

一个具体的例子

以这笔交易为例: https://bscscan.com/tx/0xb12ce0488c5689a6c5ea2582a9bef4259723e57618893f1a32c9a0327c00a7a0 0x4Ed01522D6d4193f98F2be67460cB38078adCaaB 虽然是交易发起者,但他只负责支付gas fee。 在该交易中,链上“发起者”仅是 Bundler/gas 支付相关地址;真正的操作者通过 UserOperation 间接完成了授权与卖出,这些关键信息多出现在“Internal Transactions/Logs”,而非“Transactions”列表。

  • 监控不到任何的授权(没有独立的 approve 交易)
  • 在 0xB8aa6c1042F7DA2eA6399fA53b0D58894c754F95 的 Transaction 列表里看不到任何记录
  • 0xB8aa6c1042F7DA2eA6399fA53b0D58894c754F95 的操作在 Internal Transactions 中,容易被忽略
  • 即使看到了链上可见的交易,执行方是 Paymaster,也很难直接关联到对应持有者,除非转账。

这就是为什么看到价格在跌,却找不到是谁在砸盘——因为传统的监控规则失效了。 市面上扫链工具的解析逻辑,很多都没解析到这一个环节。

怎么查出是谁在砸盘?

回到最初的问题,怎么查出是谁在砸盘? 一个最基本的想法是,直接从 Token 的 Transfer 事件出发,逐一排查转账。 然后从浏览器中直接看, bscscan 、debank 跟 oklink 等均能较好直接语义化解析到对应交易,前提是你能找到对应的交易 hash。 oklink

但更好的办法是直接从支持的扫链工具入手: 能正确解析 AA 的工具(举例,非推荐,调研时间为 2025/10/18):

  • OKX DEX
  • Axiom
  • BullX

以下工具暂时无法正确解析到 AA 相关交易:

  • gmgn
  • AveAI
  • Photon
  • Binance Web3 DEX

总结

本文从”看不到砸盘者”这一实际问题出发,揭示了账户抽象钱包的工作原理:

  1. AA 钱包本质:用智能合约代替 EOA 进行链上操作
  2. 隐藏效果:部分扫链工具依赖 EOA 交易记录,无法追踪 AA 内部操作
  3. 解决方案:使用支持 AA 解析的工具,或直接追踪 Token Transfer 事件

需要强调的是,AA 钱包的设计初衷是改善用户体验(无需持有 gas token、批量操作等), 并非刻意隐藏交易。但客观上确实增加了链上监控的难度。

撰文时发现,很遗憾的是, OKX Wallet 去年6月就把 AA 钱包创建功能给关了(也许是因为快人两步导致没人用🤷),虽然不知是什么原因,但比较可惜。 上述所有操作均可以通过 Coinbase Wallet 直接创建 Smart Account 直接复现。

附录

  • AA 钱包发起的 Swap: 0xb12ce0488c5689a6c5ea2582a9bef4259723e57618893f1a32c9a0327c00a7a0
  • EOA 钱包发起的 Swap:0xf3660c31d65e21912edc3aa5b2aee18ddf6304ce87bd97f8c7d609c6a693af5f

附录2: EIP-4844

EIP-4844