资产安全

2026 年签名钓鱼五大模式,以及怎么一眼识破

2026-06-05 · 链上迷雾

我反复说一句话:2026 年钱包被抽干,主因不是私钥泄露,是签名钓鱼。在过去十二个月的复盘里,凡是涉及上万美元以上的钱包损失,离线签名钓鱼几乎都占到一半以上。

但「签名钓鱼」其实不是一种攻击,是一攻击。它们用不同的协议字段、不同的合约入口、不同的钱包提示,把同一件事——让你授权别人转走资产——实现出来。这篇我把目前最高频的五种模式拆开,并把每一种的视觉识别点列出来。

先说一个共同特征

所有签名钓鱼有一个共同前提:它都不要你的私钥。它要你做的事情,是用你私钥签一段数据。一旦签完,对手就拥有了在合约或链下系统里调用「转账」「卖出」「跨链桥接」的合法凭据。

也就是说:

  • 你看不到这笔交易在链上「发起」。
  • 你的钱包余额会在某个时点突然消失。
  • 你以为自己什么都没做。

这是为什么签名钓鱼比 transfer 钓鱼可怕得多。

签名钓鱼五种模式的整体结构示意图

模式一:setApprovalForAll(NFT 类)

setApprovalForAll(operator, true) 是 ERC-721 / ERC-1155 标准里允许一个地址替你转走你所有 NFT 的开关。一旦把它给了攻击合约,攻击者随时可以把你这条链上的整套 NFT 资产组合扫光。

识别要点:

  • 钱包弹窗里出现 setApprovalForAll 字样,operator 是一个你不认识的合约地址。
  • 上下文是「免费 mint」「领空投」「快照领取」类操作。
  • 对方诱导你「先签一笔免费操作」,但这一笔的内容并不是 mint。

我自己只允许在两个我严格信任的市场(且每次还是看完 calldata)出现这个调用。其他场景一律拒。

模式二:ERC-20 approve 无限额度

这是 setApprovalForAll 的 ERC-20 版本:你给一个合约**approve(spender, type(uint256).max)**,相当于授权它转走你所有该代币。

识别要点:

  • 弹窗的金额字段显示一个异常巨大的数字unlimited / 无限
  • 合约名字与你正在做的事情不匹配——例如你想换 1 USDC,却被要求 approve 一个看起来像 router 但实际不是的合约。
  • 钱包提示**「会有一笔后续转账」**但其实你的初衷不是这样。

防御也只有一条:任何 unlimited 类授权都不签,宁可多花一次 Gas 给特定金额。

模式三:Permit / EIP-2612 离线签名

这一类是 2026 年最危险的。Permit 允许你不发链上交易,仅通过一次 EIP-712 离线签名,把代币授权交给攻击者。

它危险在哪里?

  1. 没有 Gas 痕迹——你在区块浏览器上看不到任何「approve」记录。
  2. 绕过普通钱包提示——很多钱包对 EIP-712 类型化数据可视化不够。
  3. 可立即生效——攻击者拿到签名后随时调用 permit,完成授权与转账两步。

识别要点:

  • 弹窗内容里出现 Permitspenderdeadlinevalue 等字段。
  • 网站让你「先签一个无 Gas 的东西」就能继续——这就是关键信号。
  • 钱包提示 「Sign Typed Data」「EIP-712」

我的规则:任何无法用人话读懂的结构化签名,一律不签

签名钓鱼频发的更大背景,可以同时参考 Safe Labs 5000 个 Drainer 地址1 月 3.11 亿钓鱼复盘,里面都把 Permit 列为头号原因之一。

模式四:Seaport / Permit2 类聚合签名

OpenSea 的 Seaport 和 Uniswap 的 Permit2 把多笔授权打包到一次签名里,本意是提升 UX,但也给攻击者提供了新的签名钓鱼模板

伪装版本看起来非常正常:一个聚合 DEX 或 NFT 市场要求你「签一个授权」,弹窗里出现 Seaport / Permit2 关键词,你看着像是「我熟悉这个东西」,就签了。其实内容包含:

  • 把 USDC、USDT、WETH 三种主流稳定币的额度一次性发给攻击合约。
  • 把多张 NFT 的转移权限一并交出。

识别要点:

  • 弹窗里同一个签名涉及多个代币 / 多个合约
  • 当前只想做一件事(比如换一种代币),但签名里给出的授权范围远超必要
  • 签名签发地不是你正在交互的官方域名(鼠标悬停 spender 字段查看)。

我对这一类的处理:任何聚合签名,先看 spender 与 token list 是否符合最小必要原则

聚合签名展开后字段密集呈现的画面

模式五:跨链桥 / 元交易类签名

最后一种比较新:攻击者把签名包装成「跨链桥指令」或「元交易(meta-transaction)」。你以为自己签的是某条链的转账意图,对手却拿这个签名在另一条链另一个合约调用代理执行。

识别要点:

  • 弹窗里出现 bridgerelayerforwarderexecuteMetaTransaction 等字样。
  • 签名涉及多个链 ID 或一个奇怪的 chainId。
  • 你想做的事在 UI 上看起来是 A 链转账,但底层数据指向 B 链。

普通用户基本无法在弹窗里完全解析这种签名,所以对元交易、跨链桥保持「官方桥+小额测试」原则最稳妥。

把五种模式做成一张速查表

模式 高频字段 一眼信号
setApprovalForAll operator, approved=true NFT 场景 + 不认识的 operator
approve unlimited spender, value=uint256.max 巨额数字或「unlimited」
Permit / EIP-2612 spender, deadline, value 「无 Gas 签个名就能继续」
Seaport / Permit2 多 token / 多 amount 一次签名覆盖多笔授权
跨链桥 / 元交易 bridge, relayer, chainId 涉及多链或代理执行

把这张表存在你常用的笔记里,比记任何一篇长文都实用。

一眼识破的三件小事

读完五种模式,落到日常操作上其实只有三件事:

  • 永远在硬件钱包上看完 calldata,再点确认。即使读不懂,也至少能看出「金额异常」「合约名不熟」。
  • 关闭盲签(blind signing)。任何要求开启盲签的网站,先标红再说。
  • 任何**「先免费签个名」的话术都先怀疑**。免费签名也是签名。

钱包安全是个习惯问题,不是工具问题。我也写过 基础加密安全习惯,那篇是入口;这篇是把签名层面的细节单独拆出来。

把这套识别变成肌肉记忆

我自己的方法是:每次签名前给自己 5 秒钟。这 5 秒钟里大脑做三件事:

  1. 我此刻想做什么?
  2. 弹窗里出现的字段,是不是和我想做的事一一对应
  3. spender 和金额,是不是最小必要范围

5 秒钟不够防御所有钓鱼,但它能挡住绝大多数「冲动签」。绝大多数被抽干的钱包,都是因为没给自己留这 5 秒。

签名层面的攻击会继续升级,但这套自我提问的结构是稳的。把它装进肌肉记忆里,你就把自己从「2026 钓鱼受害人池」里搬走了一大半。

本文仅作科普,不构成投资建议。加密资产波动大、风险高——永远只投入你亏得起的钱。

最新文章

行业事件

BTC ETF 连 10 天净流出 29.7 亿:对普通用户意味什么

到 6 月 4 日为止,美国现货比特币 ETF 已经连续 10 个交易日净流出,累计 29.7 亿美元,是产品上线以来最长的连续流出窗口之一。这篇梳理这串数字到底说明了什么、又不能说明什么。

心态与 FOMO

AI 板块虹吸加密资金时,该不该跟风跳过去?

6 月初一个明显的现象:资金从加密往 AI 板块切。Nvidia 再创新高,BTC、ETH 走弱。"加密是不是过气了"的疑问又起来了。这篇不预测哪个板块下半年更猛,只回答:板块虹吸时,你的心态该怎么稳。

心态与 FOMO

美伊紧张升级时,加密仓位该怎么调?

6 月初美伊军事摩擦再次升级,原油上跳、风险资产集体走弱,BTC、ETH 同步下挫。新闻每隔半天换一种说法,仓位却不能每隔半天换一次。这篇梳理在地缘冲击下,加密持仓应当按哪几条规矩走。

心态与 FOMO

ETH 跌破 2000 美元,信仰者该怎么调整心态?

ETH 在 6 月初跌穿 2000 美元心理位,链上活跃度也在走弱。对自称"以太坊信仰者"的人来说,这是比 2022 年熊市更微妙的一次心态测试:它不是一根明显的大阴线,而是一段被慢慢磨低的价格。

心态与 FOMO

BTC 跌破 67k,该不该补仓?6 月心态自检

6 月 BTC 一度跌穿 67k,盘中还试探了 61k。补仓的诱惑回来了。这篇不预测下一根 K 线,只问你一件事:在这种水位面对"逢低买入"的冲动,你的心态该按哪几条规矩走。

资产安全

被 Drainer 抽走资金后,还有什么挽救路径吗?

一旦发现钱包被 Drainer 抽走资金,下一个小时你能做什么是有限的,但顺序很重要。这篇按时间线把可能的挽救路径排一遍:链上追踪、平台冻结请求、合规报案、混币器盲点的现实,以及更长期的善后。