作者Ayukawayen (鮎川彦)
看板DigiCurrency
标题Re: [请益] 硬体钱包DeFi 授权问题
时间Sat Dec 4 21:09:58 2021
※ 引述《s148235 (罗杰森)》之铭言:
: 如题。
: 我本身是用Ledger硬体钱包生成一组助记词,在诸多不同的链上有部署资产,包含了EVM
: 徒子徒孙链(BSC/FTM/Polygon等)与Solana ,做各种DeFi yield farming。以下问题皆
: 假设不讨论 rug-pull 或助记词外流。
如果是讲ERC20 Token的授权,原则上一个授权的权限范围只有单一链的单一Token,
或许有些同个开发者的Tokens会去做一次授权多种Tokens(我没碰过),
不同团队的几乎不会互相影响权限。
换句话说授权A Token不会造成对方可以动你的B Token。
(授权也有额度限制,不过骗授权通常就会拉到最大值,所以就当作所有金额都是危险的)
(由於正常用途也常常会把额度开到最高,所以很难用这点分辨诈骗与否。)
: 问题一:
: 若当我不慎在BSC上授权一钓鱼网站,则有可能影响到我在Polygon上的其他资产吗?
不同链的权限是分开的,所以不会影响。
有很小的机会对方可以在另一条链上重放你的授权Tx,但这个要符合的条件很多,实际
发生的可能性很低所以不用太担心。 (BSC和Polygon大概有做重放保护,我不确定)
: 问题二:
: 假使不慎授权一钓鱼网站,当下立即发现,以EVM来说,若即时在资产被转走前,前往DeB
: ank或是unrekt取消(revoke)授权,是否可以确保安全?
如果来得及取消就没事。
注意攻击者可能会使用比较高的gas price来抢跑交易。
: 又或,假使不慎授权後,部分资产已即刻被转移。请问发现当下第一时间,首要步骤是,
: 前往DeBank或是unrekt取消(revoke)授权,还是转走剩余资产至其他钱包?有孰轻孰重,
: 先後顺序之分吗?
这边先提一下
ERC20 Token的授权一般是一个Tx授权一个Token,都要到原Token的地址去授权。
我印象中好像即使用智能合约也没办法让一般地址一个Tx就授权多个Token
(让合约地址在一个Tx授权多个Token是可以的,但一般地址不行)。
至少OpenZeppelin的实作应该是这样。
所以看你发了几个授权Tx大概就可以知道授权了几个Token出去,
不过另外有种链下授权是让你用钱包签一段讯息,这也有可能让对方有权用你的Token
(像Uniswap的removeLiquidityETHWithPermit会用到这种技术)
总之你没有授权出去的Token对方是无权动用的,短时间内可以先不用管它,那麽可以
尝试先去取消对诈骗地址的授权。
长期来说,可能会担心这个钱包除了授权外还有私钥泄露问题,结果还是要转走,
如果资产转空了其实就不用担心授权问题,因为没钱的地址有权限也转不出东西。
转到别的钱包时小心别因为太紧张转错,会是另一个惨剧。
: 问题三:
: 请问若要继续用硬体钱包操作DeFi,在授权前,若我的流程是「确认网址正确+确认智能
: 合约地址正确」,是否有需要再额外确认 smart contract function 吗?例如: _spend
: er的地址。甚或,有没有需要再额外确认其他的东西呢?
: 以上三点,有劳各位前辈指点迷津,在下先谢过。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.227.156.146 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/DigiCurrency/M.1638623401.A.00C.html
1F:推 DarkerDuck: 推 12/04 21:31
2F:推 lrm549: 推 12/04 21:37
3F:推 yys310: 谢 12/04 22:27
4F:推 lnonai: 好奇硬体钱包的私钥会怎麽外泄? 12/04 23:55
5F:推 gR7P4zXH: push 12/05 16:14
6F:→ cp296633: 蛮好奇如果有approve某合约 usdc spend unlimed 12/05 17:21
7F:→ cp296633: 日後该智能合约不需要钱包签名就能动无限次动用usdc? 12/05 17:21
8F:→ cp296633: 我玩DEFI半年多没遇过会日後偷偷扣款的情况说@@ 12/05 17:22
approve一个金额後,授权的地址可以在额度内使用你的Token,可以多次提,每次提会
扣额度 (unlimited = 2^256-1,很大用不完)
有权限不代表会动用,合约的话可以去看程式码什麽情况下会动用Token。
像交易所合约你要拿USDC换ETH,常常就会一开始要你授权到MAX,之後你多次交易USDC,
交易所可以靠着一开始的授权顺利扣款不用每次发授权Tx。
智能合约不会做程式码以外的事,不过也有很多合约是写成可以更换程式码的型式。
9F:推 s148235: 多谢Ayukawayen大拨冗回一篇回答,也同问楼上推文的问题 12/05 19:32
10F:→ s148235: 们,再次感谢! 12/05 19:32
※ 编辑: Ayukawayen (111.243.28.34 台湾), 12/05/2021 21:26:22
11F:→ cp296633: 看来别乱授权不明合约就好 毕竟有approve的币通常都在 12/06 07:18
12F:→ cp296633: 做挖矿 平时没余额 合约被骇改代码也不会第一波中奖XD 12/06 07:19