你以为你在「登录」,其实你在「授权」
你在网页上登录一个账号,和你在 Web3 里连接钱包,这两件事看起来几乎一样。你点击一个按钮,弹出一个视窗,确认一下,完成。界面设计让这两个动作感觉是同一种事,其实它们性质完全不同。
传统的登录是身份确认。你告诉系统「我是谁」,系统让你进来。这个过程不涉及你的资产,不涉及任何人可以代表你采取行动的权限。你的密码验证了你的身份,仅此而已。
在 Web3 里,当你点击「Connect Wallet」,你做的不是告诉对方你是谁。你是在建立一个连接,让这个网站或协议可以看到你的钱包地址、你的资产余额,以及在某些情况下,向你提出交易请求。这个连接本身还不是授权,但它是授权的入口。
真正的授权发生在你签署交易的那一刻。当你在一个 DeFi 协议里第一次操作某个代币,系统会要求你批准一个智能合约,允许它代表你移动那个代币。这个批准不是一次性的确认,它是一个持续有效的权限。你不是在说「这次可以」,你是在说「以后都可以」。
因为这些交易或授权的界面非常相近,普通用户若不仔细察看,从视觉直觉上难以分辨这是两件性质完全不同的操作,但它们带来的后果可能天差地别。
2025 年 8 月 2 日,一个链上记录可查的案例在加密货币社群里引发广泛讨论:一个用户在毫无预警的情况下,损失了超过 90 万美元的 USDC。那笔钱不是在那天被骗走的。那个恶意授权早在 458 天前,也就是 2024 年 4 月 30 日,就已经被签署了。攻击者在那之后没有立刻行动,他们耐心等待,持续监视着那个钱包。直到里面累积了足够多的资金,才发动攻击。那个用户在那 458 天里做了什么都没有意义,因为那个授权在一年多前就已经存在了。
这不是说每一个授权都会带来风险。大多数用户与合法协议互动,不会遇到这种情况。问题在于,你在给出授权的那一刻,无法确定那个协议未来是否会一直安全。时间越长,那个不确定性就越大。
你把 100 USDC 换成 ETH,那笔交易完成后就结束了。但一个授权完成之后,其授权是永久有效的,直到你手动把它撤销。你离开那个网站,授权还在。你几个月没有使用那个协议,授权还在。如果有一天那个协议不幸的被攻击了,攻击者就可以使用当初你给出的那个授权。
Web3 界面设计的问题在于,它没有足够清楚地区分这几件事:连接钱包、签署交易、给予授权。这三件事在视觉上都长得很像,但性质完全不同。连接钱包是让对方看到你,签署交易是完成一件具体的事,给予授权是把一把持续有效的钥匙交出去。
理解这个区别,是在 Web3 里保护自己的起点。你每次点击确认之前,值得停下来想一下你实际上在同意什么。
你的钱包授权是可以被看见的。ZenRealm 的钱包授权检查工具可以把你目前所有有效的授权摊开来,你输入钱包地址,主流 EVM 网络上的授权清单就会显示出来。你曾经点击过多少个确认授权的按钮,值得亲自再看清楚。
延伸阅读: