白话解读Web3签名钓鱼底层逻辑:授权钓鱼、Permit与Permit2的区别
文章转载来源: 菠菜菠菜!
来源:X
明明只是签了个名,我的钱怎么没了呢??“签名钓鱼”目前正成为了Web3的黑客们最喜欢的钓鱼方式,最近看余弦大佬和各大钱包和安全公司都在不断宣传科普钓鱼签名的知识,但是每天还是有好多人被钓鱼。
菠菜认为其中一个原因就是大部分人对钱包交互的底层逻辑并不了解,并且对于不懂技术的人来说学习门槛过高,所以菠菜决定出一个图解版科普签名钓鱼的底层逻辑,并且尝试用最大白话的形式让不懂技术的人也能看明白。
首先我们要知道我们使用钱包一共只有两种操作:“签名”和“交互”。最简单直接的理解就是:签名是发生在区块链之外的(链下),不需要花Gas费的;交互是发生在区块链上面的(链上),是需要花Gas费的。

一般签名的使用场景是为了验证你是你,比如登入钱包,就像你如果要去Uniswap换Token的话,你需要先链接你的钱包,那么这个时候你就需要签一个名告诉网站“我是这个钱包的拥有者”,然后你就可以使用Uniswap了,这个步骤对区块链不会有任何数据或者状态上的变化,所以不需要花钱。 而交互的话就是当你要真正在Uniswap上换Token的时候,你需要先花一笔钱告诉Uniswap的智能合约:“我要用100USDT换一个菠菜币,我批准你可以挪动我的100USDT”,这个步骤就叫做授权(approve),然后你还要再花一笔钱告诉Uniswap的智能合约:“我现在要用100USDT换一个菠菜币了,你现在可以进行操作了”,然后你就完成了用100USDT换一个菠菜币的操作。

简单理解签名和交互的区别之后,我们就来介绍一下钓鱼的原理,菠菜会列举三个不同的方式:授权钓鱼、Permit签名钓鱼和Permit2签名钓鱼,这三个是非常常见的钓鱼方式。
咱们先讲授权钓鱼,这是以前Web3最经典的钓鱼手法之一,顾名思义就是利用授权(approve)这个机制,之前Uniswap的例子告诉我们,授权就是告诉智能合约“我批准你挪动我多少xxx的Token”,那么黑客就可以做一个假的钓鱼网站,有着精美的前端伪装成一个NFT项目,网站中间是一个漂亮的大按钮“领取你的空投”,实际上你点了之后钱包弹出来的界面实际上是让你授权你的Token给黑客的地址,那么这时候如果你点了确认,那么就恭喜黑客成功完成一个KPI了。
- 星际资讯
免责声明:投资有风险,入市须谨慎。本资讯不作为投资建议。