BTC 68,420 ▲ +2.34% ETH 3,542 ▲ +1.08% SOL 168.4 ▼ -0.82% BNB 604.1 ▲ +0.46% USDT 1.000 ▲ +0.01% ARB 0.842 ▼ -1.24% MATIC 0.523 ▲ +3.11% AVAX 34.62 ▼ -0.55% BTC 68,420 ▲ +2.34% ETH 3,542 ▲ +1.08% SOL 168.4 ▼ -0.82% BNB 604.1 ▲ +0.46% USDT 1.000 ▲ +0.01% ARB 0.842 ▼ -1.24% MATIC 0.523 ▲ +3.11% AVAX 34.62 ▼ -0.55%
钱包安全安全钓鱼

签名钓鱼是怎么掏空钱包的?看懂每一次授权再点确认

没输密码、没转账,钱包却被掏空——这就是签名钓鱼。讲清楚授权和签名的区别、approve 与离线签名等常见攻击手法、怎么读懂一次钱包弹窗,以及一份把风险挡在点击之前的防御清单。

编辑部 |

有一类损失让受害者百思不得其解:「我助记词没泄露、密码没输入、也没主动转账,钱包里的币怎么就没了?」

答案往往是签名钓鱼——加密世界里最隐蔽、也最高发的攻击方式。它不偷你的私钥,而是骗你亲手签下一次授权,把动用资产的权限拱手交给攻击者。这篇文章把它的原理拆开,让你明白钱包弹窗里那些看不懂的请求到底意味着什么,以及怎么在点「确认」之前就把风险挡住。这是防骗清单里「授权钓鱼」一节的深入展开。

为什么不用偷私钥也能掏空你

先建立一个核心认知:在链上,「转走你的币」不止「用私钥直接转账」这一条路

区块链的设计里有一套授权机制:你可以授权某个智能合约在未来动用你的某些代币——这本是 DeFi 正常运转的基础(比如在 DEX 换币、做 LP,都需要先授权合约花你的币)。攻击者要做的,不是破解你的私钥,而是伪装成正常的 DApp,骗你签下一个恶意的授权。一旦签了,他就能名正言顺地把你授权范围内的资产转走——全程你没输任何密码,链上看起来还是你「自愿」操作的

这就是签名钓鱼的本质:攻击目标不是你的钥匙,是你的一次点击。

授权 vs 签名:两种最常被利用的操作

钱包弹窗大致分两类,攻击手法也对应两类:

1. 链上授权交易(要付 Gas) 你发起一笔交易,授权某合约动用你的代币。常见的危险方法有:

  • approve(代币授权):允许某合约花费你的某种代币。钓鱼网站常把额度设成**「无限(unlimited)」**——一次授权,攻击者往后可以分批把这个币全部转走
  • setApprovalForAll(NFT 全量授权):这是 NFT 领域的重灾区。它一次性授权某个地址转移你在该系列下的全部 NFT。假 mint 页面、假空投领取常用这一招,签一下,整套 NFT 就没了

2. 离线签名(不付 Gas,最隐蔽) 这一类更危险,因为不花 Gas、没有明显的「授权交易」,很多人以为「只是签个名而已,没事」

  • permit / permit2 签名:新一代的授权方式,用一个链下签名就能完成授权,攻击者拿到签名后自己上链执行。你只是「签了个名」,币却被授权出去了——没有 Gas、没有交易记录提示,警觉性最低
  • 盲签(Blind Signing):让你签署一段无法直观读懂的数据。你看不出它是什么,签下去可能就是一份授权或一笔转账的许可。看不懂的签名,等于一张空白支票

骗子怎么把你引到签名那一步

技术之外,是熟悉的社会工程套路,用来制造「快点签」的冲动:

  • 假空投 / 假领取页面:「你有一笔空投待领取」,点进去连接钱包、要求签名——空投只需要你的公开地址,从不需要你签授权
  • 假 mint / 假活动:仿冒热门项目的铸造页面,弹出 setApprovalForAll
  • 假客服 / 假官网:搜索广告位、社群链接把你导向和真站一模一样的假页面
  • 地址投毒后的诱导:先给你转笔小额、把恶意地址混进你的转账记录,再配合钓鱼页面下套
  • 「解锁 / 验证 / 同步钱包」话术:任何让你「签名以验证身份」的说辞都要高度警惕——正常登录 DApp 通常只需一个无风险的身份签名,绝不需要授权你的资产

怎么读懂一次钱包弹窗

在点「确认」之前,花几秒看清这几点,能挡掉绝大多数签名钓鱼:

  1. 先分清是「签名」还是「交易」:不管哪种,都不该无脑点。离线签名尤其要警惕——它不花 Gas,最容易被当成「无所谓」
  2. 看清对方合约地址和方法名:出现 approvesetApprovalForAllpermitincreaseAllowance 这类字样时,问自己:我现在做的事,需要授权吗? 一个只是「登录」的操作要你授权代币,本身就是红旗
  3. 警惕「无限额度」:授权额度如果是 unlimited 或一串极大的数字,意味着你把这个币的全部未来余额都置于风险中。能限额就限额
  4. 用好钱包的风险提示:现在不少钱包和安全插件会在弹窗里模拟这笔操作的后果、标红可疑授权。别忽略这些警告
  5. 硬件钱包也要看屏幕:硬件钱包能防私钥泄露,但如果你盲签一个恶意授权,它照样会执行。务必在设备小屏上核对你签的到底是什么,别养成不看就按确认的习惯

防御清单:把风险挡在点击之前

  • 只从官网 / 书签进入:常用 DApp 加书签,永远从书签打开,不点搜索广告和陌生链接
  • 授权最小化:能设限额就不给无限授权;用完某个协议后,定期用授权管理工具撤销不再需要的授权(怎么查、怎么撤,见代币授权与撤销
  • 陌生签名一律拒绝:看不懂的签名、来路不明的领取页面、主动找上门的「客服」,直接关掉
  • 钱包分层:日常交互用一个只放小额的热钱包,大额资产放冷钱包、绝不拿去连接陌生 DApp。隔离是最有效的止损
  • 保护好助记词的同时也管好授权助记词不外泄防的是私钥被盗,管好授权防的是签名钓鱼——两者是不同的攻击面,都要守

中招了怎么办

如果你怀疑自己签了恶意授权:

  1. 立刻撤销授权:用授权管理工具找到那笔可疑授权,第一时间撤销,切断攻击者继续转移的通道
  2. 抢救剩余资产:把还没被转走的资产尽快转移到一个全新的、干净的钱包,先转价值高的
  3. 该地址视为已污染:如果你怀疑连助记词都可能在钓鱼中暴露(比如误输入过),那撤销授权救不了你——必须像助记词泄露一样处理,整套钱包弃用、资产全部迁移
  4. 别信「帮你追回」的二次收割:出事后冒出来要你先付费追回资产的,几乎全是新的骗局

常见问题

Q:只是「签名」不花 Gas,应该没风险吧? 这是最危险的误解。permit 这类离线签名不花 Gas,却能授权别人动用你的代币——正因为它「看起来无害」,才成了高发手法。签名不等于免费也不等于无害,要看你签的内容是什么。

Q:连接钱包(Connect Wallet)本身有危险吗? 单纯连接、读取你的公开地址是低风险的。危险发生在连接之后弹出的授权或签名请求。所以重点不是「连不连」,而是「连上之后它让你签什么」。

Q:我给某协议授权过很多次,怎么知道有没有风险? 用授权管理/撤销工具(如通过区块浏览器或专门的 revoke 类网站)查看你当前对外的所有授权,重点清理无限额度的和不再使用的协议。定期做一次「授权大扫除」是好习惯,具体操作见代币授权与撤销

Q:硬件钱包能防签名钓鱼吗? 能防私钥泄露,但防不了你自己签下的恶意授权。硬件钱包的价值在于「私钥永不触网」,可如果你被骗着在设备上确认了一个恶意签名,它一样会执行。它降低的是一类风险,不是全部——看清再签这条铁律对硬件钱包同样成立。

Q:为什么正规 DApp 也要我授权?怎么区分善意和恶意授权? 授权本身是中性的、DeFi 必需的机制。区别在于场景是否合理:你在正规 DEX 换币,它请求授权你要换的那个币,是合理的;一个号称「查询余额」「领取空投」的页面却要你 setApprovalForAll 或无限授权,就是恶意的。判断标准是:这个操作和它声称的功能匹配吗?授权范围是不是明显过大?

小结

签名钓鱼之所以防不胜防,是因为它绕过了「保护私钥」这个大多数人唯一的安全意识——它不偷钥匙,而是骗你亲手签下授权。看懂它,只需记住几件事:授权和签名都能转走你的币,离线签名(permit)最隐蔽,无限额度和 setApprovalForAll 最危险。而防御的核心动作就三条:只从官网操作、每次签名都看清内容、大额资产用独立钱包隔离。在这个转账不可撤回的世界里,你在点「确认」前多花的那几秒,往往就是你和一次清零之间的全部距离。

Related // 延伸阅读
钱包安全区块链

私钥、公钥、钱包地址到底是什么?看懂钱包背后的原理

钱包其实不「存」币,它管的是钥匙。用最直白的方式讲清私钥、公钥、地址三者如何单向推导、助记词和它们的关系、签名怎样证明「是你」却不暴露私钥,以及为什么地址能公开、私钥绝不能。

稳定币安全

稳定币会脱锚吗?从 UST 崩盘看「稳定」的边界

稳定币锚定 1 美元,但「稳定」是有条件的。从 UST 归零的死亡螺旋和 USDC 短暂脱锚两个案例,讲清楚三类稳定币的脱锚风险为何天差地别、脱锚是怎么发生的,以及普通用户怎么避开最危险的那一种。

DYOR安全

如何研究一个加密项目(DYOR)?新手能用的尽调清单

别人喊单不是你买入的理由。这份 DYOR 清单教你从项目基本面、团队、代币经济学、链上数据和社区五个维度评估一个新项目,并附一份见到就该掉头的危险信号清单。