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

不玩了,把钱还我。

撰文:菠菜

明明只是签了个名,我的钱怎么没了呢??「签名钓鱼」目前正成为了 Web3 的黑客们最喜欢的钓鱼方式,最近看余弦大佬和各大钱包和安全公司都在不断宣传科普钓鱼签名的知识,但是每天还是有好多人被钓鱼。

菠菜认为其中一个原因就是大部分人对钱包交互的底层逻辑并不了解,并且对于不懂技术的人来说学习门槛过高,所以菠菜决定出一个图解版科普签名钓鱼的底层逻辑,并且尝试用最大白话的形式让不懂技术的人也能看明白。

首先我们要知道我们使用钱包一共只有两种操作:「签名」和「交互」。最简单直接的理解就是:签名是发生在区块链之外的(链下),不需要花 Gas 费的;交互是发生在区块链上面的(链上),是需要花 Gas 费的。

一般签名的使用场景是为了验证你是你,比如登入钱包,就像你如果要去 Uniswap 换 Token 的话,你需要先链接你的钱包,那么这个时候你就需要签一个名告诉网站「我是这个钱包的拥有者」,然后你就可以使用 Uniswap 了,这个步骤对区块链不会有任何数据或者状态上的变化,所以不需要花钱。

而交互的话就是当你要真正在 Uniswap 上换 Token 的时候,你需要先花一笔钱告诉 USDT 的智能合约:「我要用 100USDT 换一个菠菜币,我批准 Uniswap 可以挪动我的 100USDT」,这个步骤就叫做授权(approve),然后你还要再花一笔钱告诉 Uniswap 的智能合约:「我现在要用 100USDT 换一个菠菜币了,你现在可以进行操作了」,然后你就完成了用 100USDT 换一个菠菜币的操作。

简单理解签名和交互的区别之后,我们就来介绍一下钓鱼的原理,菠菜会列举三个不同的方式:授权钓鱼、Permit 签名钓鱼和 Permit2 签名钓鱼,这三个是非常常见的钓鱼方式。

咱们先讲授权钓鱼,这是以前 Web3 最经典的钓鱼手法之一,顾名思义就是利用授权(approve)这个机制,之前 Uniswap 的例子告诉我们,授权就是告诉智能合约「我批准你挪动我多少 xxx 的 Token」,那么黑客就可以做一个假的钓鱼网站,有着精美的前端伪装成一个 NFT 项目,网站中间是一个漂亮的大按钮「领取你的空投」,实际上你点了之后钱包弹出来的界面实际上是让你授权你的 Token 给黑客的地址,那么这时候如果你点了确认,那么就恭喜黑客成功完成一个 KPI 了。

但是授权钓鱼有一个问题:因为要花 Gas 费,现在很多人在涉及到花钱的操作上会有所警惕,在陌生网站点击之后稍微一看就会发现不对劲,还是比较好防范的。

那么接下来就来到了今天的主角:Permit 和 Permit2 签名钓鱼啦,是 Web3 资产安全领域的重灾区,为什么这么难防呢?因为每次你要使用一个 Dapp 之前一定要签名登入你的钱包,在许多人脑子里可能已经形成了一种惯性思维:「这个操作是安全的」,再加上不需要花钱和大多数人不知道每个签名背后意味着什么。

我们先来看 Permit 机制,Permit 是针对 ERC-20 标准下授权的一个扩展功能,像我们平常用的 USDT 就是 ERC-20,简单来说就是你可以签名批准其他人来挪动你的 Token,我们知道授权(Approve)是你花钱告诉智能合约:「你可以挪动我 xxx 数量的 Token『,那么 Permit 就是你在一张「条子」上签了个名给某一个人,这个纸上写着:「我允许某某某可以挪动我 xxx 数量的 Token」,然后这个人拿着这个「条子」给智能合约并花一笔 Gas 费告诉智能合约:「他允许我挪动他 xxx 数量的 Token」,然后你的钱就可以被其他人挪走了,在这个过程中你只是签了一个名,而背后却意味着你允许其他人去调用授权(Approve)并转走你的 Token,黑客可以做一个钓鱼网站,把登入钱包的按钮替换成 Permit 钓鱼,那么就可以轻轻松松把你的资产钓走啦。

那么 Permit2 又是什么呢?Permit2 其实并不是 ERC-20 的一个功能,而是 Uniswap 为了方便用户推出的一个功能,之前的例子讲了你要在 Uniswap 上用 USDT 换菠菜币你需要先授权(Approve)一次,然后再进行兑换,这需要花两笔 Gas 费,所以 Uniswap 就想了个办法:「你一次性把额度全部授权给我好了,每次兑换你签个名我就给你处理了」,这个功能帮助 Uniswap 用户使用的时候只需要支付一次 Gas 费即可,并且这个步骤是签名,所以 Gas 费其实不是你付的,而是 Permit2 合约代付了,但是会从你最终兑换的 Token 里扣除掉。

但是中 Permit2 钓鱼的条件是你曾经使用过 Uniswap,并且你还授权了无限额度给 Permit2 智能合约,由于目前 Uniswap 默认的操作就是无限额度授权,所以其实满足该条件的用户数量还是蛮大的,同样黑客只要骗你把名签了就可以把你的 Token 转走(仅限给过授权的)。

总结一下,授权钓鱼的本质是你花一笔钱告诉智能合约:「我批准你挪用我的 Token 给黑客」,签名钓鱼的本质是你签了一张允许别人去挪动你资产的「条子」给到黑客,黑客花钱告诉智能合约:「我要挪用他的 Token 转给我」。Permit 和 Permit2 是目前钓鱼签名的重灾区,Permit 是 ERC-20 的一个授权扩展功能,Permit2 是 Uniswap 推出的一个新功能。

那么理解了原理,怎么防范呢?

1.首先最最重要的就是培养你的安全意识,每一次钱包的操作都要去检查一下你在做的操作到底是什么?

2.大资金和玩链上的钱包分离,一旦被钓鱼了可以把损失降到最低

3.学会识别 Permit 和 Permit2 的签名格式,只要你看到以下签名格式,那你就要警惕起来了:

  • Interactive:交互网址

  • Owner:授权方地址

  • Spender:被授权方地址

  • Value:授权数量

  • Nonce:随机数

  • Deadline:过期时间

作者菠菜菠菜@wzxznl
相关文章
2024.05.18 - 3 小时前
对比分析 Farcaster/FT/UXLINK/Cyber,如何寻找 SocialFi 的北极星指标?
从社交网络形态上看,Farcaster和UXLINK的社交属性相对更强,能够让整个经济体保持足够的韧性。
2024.05.17 - 23 小时前
加密预测市场 Polymarket 的成长史:创始人 22 岁辍学创业,用押注理解现实世界
对加密货币的态度已经成为今年 11 月美国大选的一个重要议题。
2024.05.17 - 23 小时前
一览最新 8 只港股的加密布局:最高斥资上亿美元,股价较年初最高涨 3.6 倍
本文盘点了今年 8 家投身 Web3 浪潮的香港上市公司。
2024.05.17 - 23 小时前
全面解读新加坡支付业务监管框架及虚拟资产 DPT 牌照要求
在新加坡,支付行业的监管至关重要,以确保合规性并防止非法活动。
2024.05.17 - 23 小时前
被称为「避税天堂」的越南,是加密行业发展的沃土吗?
尽管没有纳税规定,但使用法定货币交易加密货币的困难阻碍了越南市场出现爆炸性增长。
2024.05.17 - 23 小时前
数据透析 Roaring Kitty「带货」效应:3 天 200 个相关 MEME,九成以上无人交易
Roaring Kitty 再一次成为市场财富密码的代名词,散户也开始集中到 Roaring Kitty 推特内容中试图发现新的财富密码。
2024.05.17 - 23 小时前
NVIDIA Omniverse:引领 AI 和元宇宙的未来
NVIDIA 表示,今年的主题是「让 Omniverse 的应用落地」。
2024.05.17 - 23 小时前
无声之处等惊雷:Web3 Social 的机遇与使命
寻找内容与社群在去中心化技术搭建的新环境下如何更好地交互,将决定 Web3 能否聚集流量,能够真正落地的关键。
2024.05.17 - 23 小时前
Bitget 研究院:ETH/BTC 汇率续创三年来新低,Solana Meme 止跌反弹
过去 24 小时,市场出现了不少新的热门币种和话题,很可能它们就是下一个造富机会。
2024.05.17 - 昨天
身份赛道独角兽遭质疑:Worldcoin 面临多重挑战,Humanity 创始人被曝失败创业史
新晋独角兽 Humanity Protocol 开局不利,Worldcoin 深陷口碑和业务发展困境,DID 赛道两大 10 亿美金市值独角兽正面临一场新考验。