我刚刚看到一篇关于用permit链下签名的方式来转走你帐户内的token,而且这个方式你的
帐户内不会有approve纪录,之前我在用paraswap、uniswapV3、1inch有遇过这种授权方式
所以特别来提醒大家,现在连链下签名都要仔细看一下,别无脑签名。
链下签名比较常出现的方式是连入defi网站的时候,需要你用帐号签一份声明书,例如par
aswap连进去会要你签一份这个网站不提供给美国人使用的声明。
https://i.imgur.com/UFznnNW.png
permit功能可以看USDC的etherscan上的code,简单来说就是用链下签名的方式根据permit
需要参数让你签名,拿到你签完名的加密资讯v.r.s,然后骇客再call USCD permit函数,
那就可以完成approve的动作。这个方式比较特别的是链下签名不会消耗gas,所以你不会
去特别在意这个签名,你以为一切都正常,但是其实你已经把token授权给别人动了,而且
revoke工具也不会侦测到,revoke工具原理其实是扫你的帐户内的approve tx,这个permi
t方式,permit tx其实会出现在骇客的帐户下面,所以revoke不会侦测到。对permit tx
fee是骇客帮你付的。
现在可以从1inch看一下permit链下签名会长怎样。有没有发现permit链下签名跟上面的网
站声明基本上一样,只是message data部分不一样,换成要你签permit需要参数,其实这
是metamask有帮解析后的结果,有些钱包不支援解析的话,应该会是0xd505accf开头一串
bytes32 code,大家可以比较一下一般USDC approve,现在metamask已经不会无脑无限
approve了,会问你要approve多少。
permit链下签名
https://i.imgur.com/PdMw4JL.png
approve tx
https://i.imgur.com/Qi9en0h.png
结论
如果遇到链下签名请仔细看清楚。
ref:https://foresightnews.pro/article/detail/33330