2023 年 · Blur 改变了 NFT 交易规则

Blur 在 2023 年靠「积分激励 + 离链订单」一战成名,把 OpenSea 推下王座。Bidding 机制原本是好东西:买家挂一个签名出价(不上链、零 gas),卖家接受签名后才上链结算。问题是签名里是一长串订单字段,普通用户看不懂。这套不可读性成了 2024 年起钓鱼工具箱里的核心武器。

2024 年 12 月 18 日早上 · Kenji 打开活动页

东京的 NFT 玩家 Kenji 看到「Blur Season 4 双倍积分」活动页转发链接 —— blur-s4-bonus[.]xyz,UI 跟 blur.io 几乎一样。他连上钱包,点击「Claim 2× Points」。钱包弹出一个 Bid 签名请求,他眼睛扫了一下,看到一长串熟悉的订单字段,下意识觉得「跟平时签 Bid 一样」,按 Sign。

当天 14:02 · 签名上链

3 分钟后,攻击者把那个签名提交到 Blur 真合约。链上记录显示:Kenji 以 0.000001 ETH 价格「卖」了 Azuki #2389(floor 价 18 ETH)给攻击者。Blur 合约严格按照签名执行 —— 因为签名结构合法、签名人是 Kenji 本人,合约没有任何理由拒绝。

这就是反向利用:Bid 原本是「我出价买你的 NFT」,可这次弹窗名义上是 Bid,他签的其实是一份「批量挂单」—— 一个签名把钱包里多只 NFT 以接近 0 的价格挂出,之前给平台的授权还在,攻击者逐一成交就行。Kenji 签的那一刻,相当于自己把整个钱包按白菜价挂了出去。

当天 14:05 · 整套 NFT 蒸发

攻击者接着把批量挂单里其余几件逐一成交:Azuki #1024(同地址另一只,稀有款)+ ENS 几个域名 + 一些小图。Kenji 旧钱包合计 47 ETH 蒸发,约 18 万美元。这一切发生在 5 分钟内,他人在通勤地铁上,看到 Blur 通知时已经结束。

事后补上的一课 · 交易钱包和存仓钱包分开

Kenji 事后才用上 NFT 圈早就流行的做法:交易钱包和存仓钱包分开。

  • 交易钱包:只放当下要交易的几只 NFT,连接 Blur / OpenSea / 任何陌生平台时用它
  • 存仓钱包:放蓝筹长持,永不连接任何 dApp,私钥放硬件钱包

这样即使误签也只损失交易钱包里的数额。

Bid 签名钓鱼的 5 个特征

  • 在非 blur.io / opensea.io 域名上看到 Bid / Listing 签名请求 —— 真平台只在自家域名工作
  • 签名里要卖出的是你的 NFT、成交价是 0 或极低数值
  • 看到一长串订单字段看不懂 —— 用 Rabby / Pocket Universe 解析
  • 活动页让你 sign to claim points / bonus —— 真平台不靠签名发积分
  • 签名里挂出去的不止你想交易的那一件,而是一整批 NFT、价格接近 0

已经签了之后只能做这些

出价 / 挂单签名可以在链上作废:在 Blur 或 OpenSea 里「取消全部挂单 / 出价」(付一笔 gas),同时把 NFT 转到新地址 —— 让攻击者拿到签名时你旧地址已经清空。按《私钥泄露应急 · 五步抢救流程》第三步 P4 优先级处理。

OpenSea / Blur 后台举报被盗 NFT,平台会标记为 stolen item 限制二级流通。链上分析机构(Chainalysis / MistTrack)同步提交,万一攻击者把 NFT 挂中心化平台还能拦住。

Kenji 给所有 NFT 玩家的话

「我蹲了 Blur 两年,签过几千笔 Bid,看一眼字段就 Sign。这一次让我彻底改了习惯:每次签名前装 Rabby 把字段翻译成中文,宁可慢 5 秒也不愿再损失 18 万。」

冷藏君

持币手册的作者。这本手册整理长期持币要用到的保管、防骗与应急知识,关键说法尽量对照官方文档核对。

本文案例是按常见诈骗手法编写的示意案例,其中的时间、地点、金额和人名都是示意,不对应任何真实事件或当事人。本文不构成投资建议或法律建议,仅供学习参考。如发现内容错漏或想补充新型案例,欢迎通过勘误页反馈。