在Web3世界中,"签名"(Signing)是你与DApp交互的基本操作。登录DApp、参与空投、交易NFT都需要签名。但并非所有签名请求都是安全的——恶意签名已经成为2024-2025年最主要的加密资产盗窃手段之一。一次不经意的确认,可能导致你的全部资产在几秒内被转走。
钱包签名有哪些类型?
了解不同签名类型的风险等级是防范的基础:
1. personal_sign(个人签名)
- 用途:DApp登录验证、消息签名
- 风险:通常较低,不直接涉及资产操作
- 例子:OpenSea登录时的"Sign in"请求
2. eth_signTypedData(类型化数据签名)
- 用途:链下授权、订单签名
- 风险:中到高,可以用于Permit授权和NFT挂单
- 例子:Uniswap的Permit2签名、OpenSea的NFT挂单签名
3. eth_sign(原始数据签名)
- 用途:签署任意数据
- 风险:极高,被称为"盲签",可以签署任何交易
- 例子:合法使用极少,几乎都是恶意用途
4. eth_sendTransaction(交易签名)
- 用途:发送链上交易
- 风险:取决于交易内容,可能是转账、授权或合约调用
- 例子:代币转账、DApp合约交互
恶意签名是如何盗取资产的?
以下是最常见的恶意签名攻击方式:
Permit签名攻击
EIP-2612标准允许通过链下签名来授权代币转移,不需要消耗Gas。攻击者诱导你签署一个Permit签名后,可以在链上提交这个签名来转走你的代币。由于签名是链下操作,你在签名时不会看到Gas费提示,容易掉以轻心。
Seaport签名攻击
OpenSea使用的Seaport协议允许通过签名创建NFT挂单。攻击者可以构造一个以极低价格(如0.0001 ETH)出售你所有NFT的签名请求。如果你不仔细查看签名内容就确认,你的NFT将以白菜价被攻击者买走。
eth_sign盲签攻击
这是最危险的签名类型。因为签名的内容是原始的十六进制数据,你根本看不懂签署的是什么。攻击者可以让你签署一笔将所有资产转走的交易。
setApprovalForAll签名攻击
针对NFT的攻击。攻击者诱导你签署对某个合约的全部NFT授权,随后可以转走你的所有NFT。

如何识别恶意签名请求?
看签名类型:如果MetaMask弹窗显示的是eth_sign类型,除非你100%确定在做什么,否则直接拒绝。MetaMask默认已禁用eth_sign,如果某个DApp要求你开启,这是一个强烈的危险信号。
看签名内容:仔细阅读签名弹窗中的所有信息。如果你看到Permit、approval、setApprovalForAll等关键词,请确认这是否是你的预期操作。
看请求来源:确认签名请求来自你正在使用的合法DApp,而不是一个突然弹出的不明窗口。
看金额和对象:如果签名涉及代币操作,确认金额和目标地址是否合理。
使用交易模拟工具:Pocket Universe、Fire、Blowfish等浏览器插件可以在你签名前模拟结果,告诉你这个签名会导致什么后果。

哪些场景容易遇到恶意签名?
- 假空投领取页面:声称你有空投,需要"签名验证"才能领取
- 假NFT Mint页面:仿冒热门项目的Mint页面
- Discord/Twitter钓鱼链接:官方频道被入侵后发布的恶意链接
- 假DApp前端:仿冒知名DeFi协议的虚假网站
- 社交工程攻击:假客服要求你"签名验证钱包"
安全提醒
防范恶意签名需要保持高度警惕和良好的操作习惯:
- 仔细阅读每一个签名请求:不要盲目点击确认,花几秒钟看清签名内容
- 安装交易模拟插件:Pocket Universe等工具能在签名前预警风险
- 保持MetaMask的eth_sign禁用状态:不要被任何DApp说服开启
- 从官方渠道访问DApp:通过收藏夹访问,不点击社交媒体中的链接
- 使用独立钱包做实验:高风险操作使用小额独立钱包
- 出现疑问就拒绝:如果你不确定签名的用途,直接点击拒绝不会造成任何损失
将大额资产存放在安全的环境中是基本的安全策略。币安官网使用平台的多层安全保护,或币安官方APP,苹果用户参考iOS安装教程方便管理。
签名和交易有什么区别?
签名是在链下用你的私钥对数据进行加密签署,不消耗Gas。交易是在链上执行的操作,需要消耗Gas。但签名的结果可能被用来在链上执行交易(如Permit签名),所以两者的安全风险同样需要重视。
签名后发现是恶意的还能撤销吗?
对于链上交易签名,一旦交易被打包确认就无法撤销。对于Permit等链下签名,如果黑客还没有在链上使用这个签名,你可以通过发起一个新的Permit签名(将授权设为0)来使旧签名失效。但时间窗口通常很短。
硬件钱包能防范恶意签名吗?
硬件钱包会在设备屏幕上显示签名内容,让你在物理设备上确认。这比软件钱包多了一层保护,但如果你不仔细阅读就按下确认键,硬件钱包也无法保护你。关键还是要理解签名内容。
哪些浏览器插件可以帮助检测恶意签名?
推荐安装Pocket Universe、Fire、ScamSniffer或Blowfish Protect等插件。它们会在你签名前自动分析签名内容,如果检测到风险会弹出警告。但不要完全依赖这些工具,自己也要保持警惕。