通过本文你可以了解到
- 合约授权的原理
- 合约授权的风险
- 转账时如何修改授权
- 如何管理已授权的应用
什么是合约授权
用户与DeFi等应用进行与资产相关的交互时,需要先授权(approve),然后DeFi合约便能在授权数量以内,主动转移用户已授权的资产类型。例如:
- Alice想通过Uniswap将10,000 KEY兑换成USDT,需要先授权KEY给Uniswap合约,使其能主动转移Alice的KEY资产,以便后续可以完成KEY到USDT的原子兑换。
合约授权有什么风险
用户发送特定交易后才能完成授权,为了节省授权交易费用,大部分应用默认设置授权最大数量的代币,即「无限授权」。如果智能合约存在漏洞或者合约/项目管理者作恶,用户已授权的资产就存在丢失的风险。例如:
- Alice授权了最大数量USDT给某合约,转了1000 USDT过去,钱包地址里还剩2000 USDT。黑客攻击并获得了合约的控制权后,能转走Alice钱包内的2000 USDT。
但如果每次调用合约只授权特定数量,便不存在「无限授权」带来的额外风险,例如:
- Alice授权了1000 USDT给某合约,并转了1000 USDT,钱包地址里还剩2000 USDT。黑客攻击并获得了合约的控制权后,由于授权已被使用(1000 - 1000 = 0),那Alice钱包内的2000 USDT仍然是安全的。
管理转账授权
当应用要求用户授权代币时,MYKEY会展示授权信息(3.4版本新功能),方便用户识别授权行为,并能编辑授权数量。如图所示:
- 查看授权信息,如果是无限授权,点击「无限」,进入编辑模式
- 选择自定,例如你需要转1000 USDT,输入1000 USDT,保存返回(注意:授权数量不要少于转账数量,不然转账交易会失败)
管理已授权应用
MYKEY提供了授权管理工具,方便用户查看与取消已经授权过的应用。
- 访问方式:打开「应用中心」 >「工具」分类 > 授权管理
能够查看授权对象、币种和额度,取消相应的授权。
⭐️请注意:取消授权就是发送一笔授权0数量的交易,所以需要支付网络费。