Web3签名钓鱼详解:授权、Permit和Permit2陷阱及防范策略

Web3签名钓鱼的底层逻辑解析

近期,"签名钓鱼"已成为Web3黑客最青睐的诈骗手段之一。尽管业内专家和各大钱包、安全公司不断进行科普,仍有大量用户落入陷阱。造成这种情况的一个主要原因是,大多数人对钱包交互的底层机制缺乏了解,且对非技术人员而言,学习门槛较高。

为了帮助更多人理解这一问题,我们将尝试用通俗易懂的方式解释签名钓鱼的底层逻辑。

首先,我们需要明白使用钱包时主要有两种操作:"签名"和"交互"。简单来说,签名发生在区块链外(链下),不需要支付Gas费;而交互发生在区块链上(链上),需要支付Gas费。

签名通常用于身份验证,例如登录钱包。当你想在某DEX上进行代币交换时,需要先连接钱包,此时就需要签名以证明你是该钱包的所有者。这个过程不会对区块链产生任何数据或状态变化,因此无需支付费用。

交互则是在实际进行代币交换时发生的。你需要先支付一笔费用,告诉智能合约:"我批准你可以使用我的100USDT",这一步骤称为授权(approve)。然后,你还需要再支付一笔费用,告诉智能合约:"现在请执行交换操作",从而完成交易。

白话解读Web3签名钓鱼底层逻辑:授权钓鱼、Permit与Permit2的区别

了解了签名和交互的区别后,我们来介绍三种常见的钓鱼方式:授权钓鱼、Permit签名钓鱼和Permit2签名钓鱼。

授权钓鱼是Web3中最经典的诈骗手法之一。黑客会制作一个伪装成NFT项目的钓鱼网站,诱导用户点击"领取空投"按钮。实际上,用户点击后弹出的钱包界面是在授权黑客地址使用用户的代币。一旦用户确认,黑客就能成功窃取资产。

然而,授权钓鱼存在一个弱点:由于需要支付Gas费,许多用户在涉及资金操作时会更加警惕,因此相对容易防范。

白话解读Web3签名钓鱼底层逻辑:授权钓鱼、Permit与Permit2的区别

Permit和Permit2签名钓鱼是目前Web3资产安全的重灾区。这两种方式之所以难以防范,是因为用户在使用DApp时必须先签名登录钱包。许多人已经形成了"这个操作是安全的"的惯性思维,再加上不需要支付费用,且大多数人不了解每个签名背后的含义。

Permit机制是ERC-20标准下授权的一个扩展功能。简单来说,就是你可以通过签名批准他人使用你的代币。与授权(Approve)不同,Permit是你在一张"条子"上签名,允许某人使用你的代币。持有这张"条子"的人可以向智能合约支付Gas费,告知合约:"他允许我使用他的代币",从而转移你的资产。在这个过程中,你只是签了个名,但实际上允许了他人调用授权(Approve)并转移你的代币。

Permit2并非ERC-20的功能,而是某DEX为方便用户推出的功能。它允许用户一次性授权大额度给Permit2智能合约,之后每次交易只需签名,无需再次授权。这样可以节省用户的Gas费,但也增加了安全风险。

白话解读Web3签名钓鱼底层逻辑:授权钓鱼、Permit与Permit2的区别

为了防范签名钓鱼,我们可以采取以下措施:

  1. 培养安全意识,每次进行钱包操作时都要仔细检查操作内容。

  2. 将大额资金和日常使用的钱包分开,以降低潜在损失。

  3. 学会识别Permit和Permit2的签名格式。当你看到包含以下信息的签名时,要格外警惕:

    • Interactive:交互网址
    • Owner:授权方地址
    • Spender:被授权方地址
    • Value:授权数量
    • Nonce:随机数
    • Deadline:过期时间

白话解读Web3签名钓鱼底层逻辑:授权钓鱼、Permit与Permit2的区别

通过理解这些底层逻辑并采取相应的防范措施,我们可以更好地保护自己的Web3资产安全。

GAS0.45%
此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 4
  • 分享
评论
0/400
元宇宙包租婆vip
· 07-19 17:06
牢底坐穿 不如链上爬满
回复0
pumpamentalistvip
· 07-19 16:56
卷走你币的就一个签名
回复0
MonkeySeeMonkeyDovip
· 07-19 16:50
小白还是别玩签名了..
回复0
faded_wojak.ethvip
· 07-19 16:47
新手玩家,天天被骗,大家快发点小贴士
回复0
交易,随时随地
qrCode
扫码下载 Gate APP
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)