Lumen 是独立第三方信息站,与币安(Binance)无隶属关系。用邀请码 BN1606 注册,可享币安 最高 20% 手续费减免;站内交易所链接为推广链接,不影响你的成本。 了解我们怎么运作

助记词没泄露,钱包为什么还会被搬空?
代币授权这道口子

钱包弹出代币授权确认框的示意图:签名当下余额不变,权限却已经交出去

你在一个空投页面上点了「领取」。钱包弹出一个框,上面是一串你看不太懂的字母和数字,底下一个蓝色的「确认」。你点了。页面转了两秒,提示成功,余额一分没少。你把这页关掉,该干嘛干嘛去了。过些天再打开钱包,某个代币不见了——而你的助记词从头到尾没告诉过任何人,没截过图,没发过任何聊天框。

这不是助记词泄露,这是另一道口子:代币授权。你刚才点的那个「确认」,不是把币转出去,而是同意某个地址「以后可以从你的钱包里划走这种代币」。站里另一篇讲助记词 / 私钥是怎么被偷走的,说的是钥匙丢了;这一篇说的是钥匙还好好在你手上,门却被你亲手开了一条缝——而且缝一直开着。

被这条路搬空的人不是笨。授权这个机制从设计上就不打算让普通人一眼看懂:它长得跟一次普通确认一模一样,签的时候没有任何东西在动。资产怎么凭空消失那篇里,授权钓鱼只占一个小节,这篇把它单独拆开讲透。文里出现的生词,可以对着黑话词典看。

赶时间的话,先带走这四条
  • 授权不是转账。签的那一刻钱一分不动,但从那一刻起,对方可以随时划走。
  • 很多界面默认申请一个你这辈子也用不完的额度,一次同意,长期有效。
  • 不花 Gas、钱包里看不出动静的"离线签名",恰恰是钓鱼最爱用的一种。
  • 授权能撤销,撤销是一笔要付 Gas 的链上交易;查授权先用钱包自带的入口,别去搜。

你点了「确认」,然后什么都没发生

回想一下那个瞬间:弹窗出现,你扫了一眼,没看懂,但页面告诉你这一步是领取必须的,于是你点了确认。之后余额没变,没有转出记录,顶多扣了一点 Gas,有时连 Gas 都不扣。整个过程给你的反馈就是「什么都没发生」——这正是它最难被察觉的地方。

链上真正发生的事情是:在某个代币的合约里,多了一条属于你这个地址的记录,大意是「允许某某地址从我这儿最多划走多少个这种币」。这条记录不会因为你关掉网页而消失,不会因为你换了台手机而失效,也没有一个自动过期的时间。它一直在那儿,直到你自己回去把它改掉。

授权和转账,差在哪一步

转账是一次性的:币现在就走,走完这件事就结束了。授权是用一次动作换一段持续的权限:你现在什么都没给出去,但从此对方想拿的时候可以拿。

换个说法可能更好懂。转账是你从钱包里数出一笔钱递给对方;授权是你把一张能刷你账户的卡交给对方,额度写在卡上,至于什么时候刷、刷几次,你说了不算。

这个机制不是谁挖的坑。你在去中心化交易所换币、把币存进池子、给 NFT 挂单,合约都必须能在你确认那笔交易时从你钱包里取走代币,而合约没法凭空伸手,只能靠你先批准。所以授权是这类操作的前提,恶意的从来不是机制本身,而是拿到额度的那个地址。

这一步签的时候币动不动上不上链 / 花不花 Gas签完之后对方能做什么
普通转账立刻转出上链,花 Gas这笔已经完成,不留下后续权限
代币授权(approve)一分不动上链,花 Gas在额度内,随时划走这种代币
离线签名一分不动不上链,不花 Gas看签的是什么内容,可能等同一次授权,也可能一次交出多种资产的处置权

这张表里最该记住的是第二列:钱不动,不代表什么都没发生。

「无限额度」是怎么变成默认选项的

授权里有一个数字,写的是最多允许对方划走多少。理论上你换多少就授多少,但很多界面默认填的是一个大到你这辈子也持有不到的数,俗称无限授权。

原因没那么阴谋:每设一次额度都是一笔链上交易,都要付一次 Gas。一次授到顶,以后在这个应用里交易就不用再签、不用再花那笔钱,流程顺得多。设计的人选了顺,代价由你承担。

代价就是这条记录会一直挂着。项目方后来把合约控制权转给了别人、合约被发现有漏洞、开发者的私钥被偷——这些事可能发生在半年后,那时你早就忘了这个网站,但那条额度还认得你。所以真正该优先清理的,往往不是你昨天签的那笔,而是你去年签的、连名字都想不起来的那些。

一个容易搞反的直觉 很多人以为风险在于「我签的这个网站是不是骗子」。更准确的说法是:你签下的是一段未来的权限,而未来的事你现在判断不了。一个今天正经的项目,不保证它的合约半年后还归同一批人管。额度多大、留多久,你现在能控制;项目方后来会变成什么样,你控制不了。

你授权的对象是一个地址,不是一个网站

弹窗上那个域名,只说明「谁在向你请求」,而被写进链上的是一串 0x 开头的合约地址。这两件事经常被混为一谈,差别却很实在。

同一个网站,今天可以让你授权 A 合约,明天换成 B 合约。前端脚本被替换、域名解析被劫持的时候,你看到的地址栏一个字都没变,要你签的地址却已经换人了。反过来说,「我撤销了某个网站的授权」这句话本身就不成立——你只能撤销某个具体地址的额度,而一个应用可能对应好几个地址。

所以「这个站我用了半年了,应该没事」不构成依据,依据只能是这一次弹出来的这个地址。诚实说一句:普通人也核不了一个陌生地址到底是不是恶意合约,这没什么好装的。真正做得到的是另外几件——不为了几个空投币去跟陌生活动交互;只在自己主动打开的、常用的应用里签名;把日常连网站的钱包和存币的钱包彻底分开。仿冒页面本身怎么认,真假 App 与假客服那篇里有一套更细的动作。

两类签名请求,不花 Gas 的那类最不像在做事

钱包弹出来的东西大致分两类。一类是交易:会花 Gas,会上链,事后能在活动记录里翻到。另一类是签消息,也叫离线签名:不花 Gas,不上链,钱包的活动列表里往往什么都不留。

钓鱼最爱用的是后者,因为它最不像在做什么事。没有花钱,没有记录,页面上写着「签名以验证你的身份」或者「确认你持有这个钱包」,听起来跟登录没两样。但一份签名可以是一张授权凭证:你签完,对方拿去链上提交,效果和你自己走一遍授权一样;某些格式甚至能一次性交出好几种资产的处置权。

可判断的特征在内容里。真正只是登录性质的签名,文本通常很短,包含一个域名和一串随机字符,和你的资产没关系。如果里面出现了代币名称、金额、额度、截止时间,或者一个你不认识的地址,那它就不只是登录。看不懂就别签,这一条永远成立,而且不懂并不丢人。

弹窗里值得你停下来看的几行字

不需要读懂全部。盯住下面这几项,就能挡掉相当一部分。不同钱包的措辞不一样,但意思跑不掉。

弹窗里的这一项它其实在说什么什么时候该停下
请求方域名谁在发起这次请求,不代表被授权的就是它和你以为自己打开的站对不上,直接关掉
被授权地址(spender)真正拿到权限的那个合约地址来自你没主动找过的活动,先别签
代币与额度把哪种币、最多多少,交给对方支配你只想换一小笔,额度却没有上限
动作类型(approve、setApprovalForAll 之类)这是授权,不是转账你以为在领取,却看到授权动作
是否需要 Gas不需要,通常意味着这是离线签名越是「没成本」的确认,越要多读两眼
有效期 / 截止时间有的授权带期限,有的没有看不到期限,就按永久有效对待
编辑组的一个观察

我们见过最多的一种,不是谁被高深的技术攻破,而是在一次「三步领取」里连着点了三个确认——连接钱包、签名、再确认一次。前两步确实没什么,第三步才是授权,可手到那时候已经形成惯性了,页面上的倒计时和进度条还在催你。所以我们更建议把动作拆开:每次钱包弹窗出现,先把手从鼠标上拿开,把那几行字读完再决定。听着有点笨,但它打断的正是页面刻意做出来的节奏。这不是你不够聪明,是这个交互本来就是照着「让你快速点完」设计的。

查授权和撤销授权,分别怎么做

先说好消息:授权可以撤销。撤销的本质是把额度改回零。它本身是一笔链上交易,所以要付 Gas,具体多少看你当时所在的网络和拥堵程度——别信任何人说的「一键免费撤销」。不清楚 Gas 是什么,可以先看什么是 Gas 费

查的顺序建议这样:先用钱包自带的授权管理入口,现在主流钱包大多把它做进了设置或代币详情里;钱包里实在找不到,再用你自己信得过的授权查询页。清理时从余额最大的那条链、那种币开始,接着清你已经不用的应用,最后处理那些你完全想不起来是什么时候签的。

还有一件事得说清:撤销不是补救,是止血。已经被划走的资产不会因为你撤销而回来,撤销只能防止对方继续划。如果你怀疑正在被划,顺序要反过来——先把剩下的资产转到一个全新的、从没做过任何授权的地址,再回头慢慢清旧地址。因为撤销要一条一条来,而对方只需要成功一次。已经出事之后的处置步骤,见被加密货币骗了,钱还能追回吗

为什么这篇不给你任何网址 你可能注意到了,上面讲撤销的时候,我们没有点名任何一个查询站,也没有放链接。这是故意的:仿冒的「授权撤销工具」本身就是钓鱼高发区,搜索结果和广告位里都出现过。一个专门教你防授权钓鱼的页面,如果顺手把你引到某个外部站点去连钱包,那本身就是个坏示范。请从钱包自带的入口进,或者用你早就在用、来源清楚的那一个。

能把这道口子收窄的几个习惯

没有哪套习惯能让你「绝对安全」,但下面几条能把暴露面压小不少,而且都不需要你懂技术。

  • 钱分两个地址放。大额放一个从不连接任何网站的地址,日常连 DEX、领空投用另一个只放少量的。这是清单里唯一一条接近一劳永逸的;长期持有的部分还能进一步隔离,见要不要买硬件冷钱包
  • 先问自己一句:这个活动是我找上去的,还是它找上我的。私信推来的、评论区置顶的、突然弹出「你有资格」的领取页,风险高一个量级。项目本身的危险信号,空气币与 rug pull 那篇列得更全。
  • 不花 Gas 的确认,反而要多看两眼。它没有成本这件事,恰恰说明你正在签的可能是一份权限,而不是一次操作。
  • 定期清旧授权。和处理来路不明的转入是同一个道理:不认识的东西别留在账上,收到陌生人转来的 USDT那篇讲的是同一种思路。
  • 别因为「我已经很熟了」就跳过检查。界面天天在改,你上次记住的位置这次可能不在原地,熟练感本身就是风险。

回到开头那个场景。你没有做错任何一件看起来明显愚蠢的事:没泄露助记词,没把私钥发给别人,也没装来路不明的 App。你只是在一个催你快点的页面上,点了一个看不懂的确认——而那个框显示给你看的字,和它实际交出去的权限,本来就不是一回事。问题不在你不够聪明,在于这道口子从设计上就不打算被看见。知道它存在,你已经比大多数人多了一层判断。想再给自己过一遍风险清单,可以用站里的骗局自查器

邀请码 BN1606;交易手续费减免最高 20%,实际比例和适用条件以 Binance 当前规则为准。

第一次买币流程

常见问题

我的助记词从没泄露过,钱包里的币怎么会少?
除了钥匙被人拿走,还有一条路是你自己批准的:代币授权。你在某个页面点了确认,就把「从你钱包里划走某种代币」的权限交给了一个合约地址,额度往往还是没有上限的。此后对方随时可以按这个额度划走,既不需要你的助记词,也不需要你再确认一次。所以查原因时,先看这个地址给出去过哪些授权,而不是只怀疑助记词。
授权的时候钱包里一分钱没动,为什么说风险当时就产生了?
因为授权和转账是两件事。转账是这笔币现在就走;授权是一条留在链上的权限记录,只要它还在,对方就能在额度内随时把币划走。你签的那一刻余额确实没变,这也正是它看起来无害的原因。风险不在签的当下,而在之后的任何一天。
不花 Gas 的签名请求,是不是就没有风险?
恰恰相反,它更值得警惕。不花 Gas 通常意味着这是一份离线签名:不上链,钱包的活动记录里往往看不出动静,但对方可以拿着这份签名去链上提交,产生和你亲手授权一样的效果。钓鱼页面偏爱这一类,正是因为它最不像在做什么事。签名内容里出现代币、额度、期限或某个陌生地址,它就不只是登录验证。
撤销授权要花钱吗?撤销之后是不是就安全了?
撤销是把额度改回零,它本身是一笔链上交易,需要付 Gas,具体多少看当时的网络状况。撤销只能阻止对方继续划走,已经被划走的资产追不回来。如果怀疑正在被划,更快的一步是先把剩余资产转到一个从没做过任何授权的新地址,再回头慢慢清理旧地址——撤销要一条一条来,对方只需要一次。

邀请码 BN1606;交易手续费减免最高 20%,实际比例和适用条件以 Binance 当前规则为准。

看冷热钱包怎么选