2026 年 3 月,某 Web3 项目方在 Discord 发布了一则紧急通告:他们的官方域名被钓鱼团伙仿冒,已经有 47 个用户在 24 小时内签署了恶意签名,平均每人损失约 2.3 个 ETH。按照当时的行情,这意味着单个受害者的钱包被一次性清空超过 5 万元人民币。
事后复盘时,几乎所有受害者都提到同一个动作:他们先是"用钱包登录"了那个假网站。问题在于,大多数人以为"区块链登录"和"连接钱包"是同一件事。但当你在一个钓鱼页面上点击 Sign in with Wallet 时,你签下的根本不是登录凭证,而是一笔链上授权交易。
这种被广泛低估的风险,正是我们今天要拆开讲的东西:区块链登录到底是什么、它和传统登录有何不同、为什么它既是最酷的创新,也是最容易踩坑的入口。
陷阱一:把"连接钱包"等同于"登录",这是 90% 新手的致命误解
从操作层面看,这两件事长得几乎一模一样:弹窗、签名、确认、跳转。但在链上,它们的本质天差地别。
传统登录走的是服务器
你在某个网站输入账号密码,数据传到对方服务器验证,服务器返回 session 给你。整套逻辑里,网站是权威方,你可以找它申诉、可以改密码、可以注销账号。
区块链登录走的是签名
当你点击 Sign in with Ethereum 或 WalletConnect 扫码时,你签的是一段消息(text signature)。网站拿到这个签名,在前端用 ethers.js 或 viem 调 recover() 函数,反推出你的钱包地址,再跟数据库里登记的地址比对。
听起来很优雅对吧?但这里藏着第一个坑:很多 DApp 根本没做后端校验,它们只验证"你能不能拿出这个地址对应的签名",而不验证"这个地址背后是不是你"。一旦你的私钥泄漏,任何人都可以"替你登录"。
更麻烦的是,EIP-4361(SIWE,Sign-In with Ethereum)这个标准虽然在 2023 年就进入了 Final 状态,但据公开数据显示,截至 2026 年初,真正完整实现 SIWE 规范的 DApp 不超过 12%。绝大多数项目仍然停留在"签个 message 就放行"的原始阶段。
陷阱二:钓鱼页面会把你引导到一模一样的 UI,签名内容却天差地别
让我们回到开头那个 47 个受害者的案例。钓鱼团伙做了什么?他们注册了一个和原项目几乎一模一样的域名,复制了全部前端代码,只改了一处:signTypedData 的参数。
如果你签的是普通的"Hello, world"字符串,那没事。如果你签的是 EIP-712 格式的 Permit 授权——也就是允许对方钱包转走你的 USDT——那你的资产就在签名的那一刻被授权出去了。
三个真实高危场景
- Permit 钓鱼:Permit(off-chain allowance)让用户不用先 Approve、再 Transfer,而是直接签名授权。在 EIP-2612 之前,大家以为"我不发交易就没事",现在这个心理防线被 Permit 击穿了。
- setApprovalForAll 钓鱼:NFT 用户最常踩的雷。一个签名,对方可以转走你钱包里所有同一合约下的 NFT。
- eth_sign 盲签:有些老旧 DApp 还在用 eth_sign,这种方法让你签的是 hex 字符串,你根本看不到人类可读的内容。Revoke.cash 2025 年的报告指出,超过 38% 的钓鱼事件最终都涉及 eth_sign 或 personal_sign 的盲签。
据区块链安全机构 SlowMist 在 2025 年 Q4 发布的统计,钓鱼签名类攻击造成的损失占整个 Web3 安全事件损失的 27%,总额超过 4.1 亿美元。这个数字比 2024 年同期上涨了 73%。
陷阱三:SIWE 不是万能解药,它解决的是"会话"问题,不是"身份"问题
很多项目方现在把 SIWE 当作银弹。他们在白皮书里写:"我们采用 EIP-4361 标准,登录安全无懈可击。"这话对了一半。
SIWE 真正解决的问题
SIWE 定义了一套完整的登录流程,包括 nonce(防重放)、issuedAt(签发时间)、expirationTime(过期时间)、domain(域名绑定)、chainId(链 ID 绑定)。理论上,只要前后端严格校验这些字段,中间人攻击和重放攻击基本可以被堵死。
SIWE 没解决的问题
它不解决"我是不是我"这个问题。SIWE 只证明"你拥有这个私钥",但私钥本身可能是被盗的、托管的、或者多人共用的。在 MPC(多方计算)和 AA(账户抽象)大行其道的 2026 年,"一个人 = 一个私钥"的假设已经过时了。
举个例子:某交易所采用托管钱包为用户"一键登录"自家 DApp,后台其实是几十个用户共享一个 signer。这种登录在 SIWE 看来完全合法,但合规层面、隐私层面、资产隔离层面,全是雷。
陷阱四:钱包登录和 Web2 OAuth 的"体感相似",掩盖了底层权力结构的反转
用 Google 账号登录一个网站,你的身份由 Google 担保,网站信任 Google。用钱包登录一个 DApp,你的身份由你自己担保,网站信任的是以太坊网络的共识。
这听起来很去中心化、很酷。但在实际落地中,这种权力反转带来了三个被严重低估的副作用:
- 客服不存在:你丢了私钥,没有任何人帮你找回。你被钓鱼了,没有平台帮你冻结资产。
- 跨站追踪变得极其容易:你的钱包地址就是你的统一身份。你在 A 网站登录、在 B 网站登录、在 C 网站登录,只要链上数据被关联,你的行为画像就被拼出来了。Nansen 2025 年的报告显示,头部 100 个 DApp 中,有 83 个会在用户登录时记录地址并与第三方分析平台共享。
- 合规风险悬空:欧盟 MiCA 法规在 2025 年全面落地后,要求所有提供"区块链登录"服务的 DApp 实施 KYC。这意味着你"用钱包登录"的那一刻,可能已经被打上了 KYC 标签,而你以为自己还是匿名的。
这就是为什么很多老用户开始重新审视钱包登录——它不是 Web2 OAuth 的升级版,它是一种完全不同的身份范式,适用的人群和场景完全不一样。
陷阱五:登录这个动作本身,在链上世界正在被重新定义
聊到这里,我们不得不面对一个更深层的问题:在区块链语境下,"登录"这个词还有意义吗?
传统互联网的"登录"本质是会话管理
你登录一次,服务器给你一个 session,你在接下来 30 分钟内不用反复证明自己。这是一种"信任缓存"机制。
区块链世界天然没有会话
每一次链上交互都是一次独立的事务。你签一个 Permit,这是一笔事务;你签一个 Login,这是一笔事务;你 swap 一个 token,这又是一笔事务。没有任何"会话"概念能跨多个 RPC 调用把你识别为同一个人。
所以"区块链登录"本质上是一个"在链下伪造会话"的工程妥协:你用钱包证明了一次身份,后端给你发一个 JWT,接下来 24 小时你用这个 JWT 访问业务接口。本质上,你又回到了 Web2 的登录模型。
2026 年涌现的几种新尝试——例如 Lens Protocol 的 Profile NFT 作为登录凭证、Farcaster 的 ID 作为社交身份层、Worldcoin 的虹膜 ID——都在试图解决"如何在链上原生表达'我是我'"这个问题。但截至目前,没有任何一个方案被广泛采纳。
老用户的实战建议:别让"区块链登录"四个字骗了你
讲完五个陷阱,咱们回到实操层面。如果你是一个普通用户,接下来 30 秒可以做的事:
- 任何时候看到"Sign In With Wallet",先看域名:不要只看 UI,域名错了,后面全是错的。
- 拒绝盲签:eth_sign、personal_sign 签之前,必须自己用 Etherscan 的 SignVerify 或本地 viem 脚本反解出原文。
- 定期 Revoke:去 Revoke.cash 检查你过去 90 天签过的所有 Permit 和 setApprovalForAll,没用的立刻撤销。
- 把登录和授权分开:用专门的"只读钱包"登录 DApp,用主钱包签交易。两个钱包不要混用。
最后留一个延伸思考:如果"登录"在链上世界注定是个伪需求,那我们是不是应该彻底抛弃这个词,转而用"授权"、"会话"、"身份声明"这些更精确的概念?
也许 2027 年回看今天,我们会发现:困扰无数用户的"区块链登录",不过是把 Web2 的旧概念硬塞进 Web3 的新语境里产生的认知错位。真正属于这个时代的身份范式,还没有人写出来。
Zyra