随着DeFi的普及,普通区块链老用户必须多次授权DeFi项目。每次他们使用新的DAPP时,他们都需要授权DAPP使用您的代币。除了流程繁琐外,每次授权还需支付高额费用。为了省钱省事,很多用户每次授权都会提供无限授权。结果,他们突然发现自己的钱被转走了。原因不是因为私钥被盗,而是因为他们对DeFi合同有无限的授权。为什么有无限授权?有解决办法吗?
为什么是ERC20授权?
使用以太坊上的本机ETH代币,您可以将ETH发送到智能合约,同时调用智能合约函数。这是通过所谓的应付款功能实现的。然而,由于ERC20代币本身是一个智能合约,以太坊无法通过直接向智能合约发送智能合约代币来调用其功能。原因是转让发生在ERC20代币合同上,而不是在DeFi合同上。
如果你想让合同打给ERC20怎么办?Erc20标准通过使用transferfrom()函数为智能合约提供了一种代表用户传输代币的方案。为了激活此功能,用户需要授权智能合约传输代币。
授权后,用户可以将代币“存入”智能合约,使用WiFi应用。
例如,当用户将USDT“存入”AAVE以赚取利息时,他首先需要授权AAVE合同从用户的钱包中提取USDT。然后调用AAVE contract函数指定要存储的USDT数。然后,AAVE合同使用transferfrom()函数从您的钱包中删除相应金额的USDT以完成转账。
无限制的ERC20授权问题
在授权使用DeFi时,您可以选择对货币进行一次性授权,即只同意本次转账,或进行无限次授权,以便合同日后对您钱包中的代币进行无限次操作。
在DeFi所依赖的以太坊网络底层尚不完善的前提下,对DeFi合约的无限授权是有效提升DeFi用户体验的一种方式。它避免了每次使用前授权的麻烦,也避免了每次交易前授权所带来的耗气量。设置无限授权后,用户只需同意一次,存款时不再重复。
但是,这种设置有许多缺点。因为用户授予的不仅是对转入合同的代币的操作权,还有对钱包中代币的控制权。
也就是说,一旦合同有了后门或遭到黑客攻击,不仅DeFi项目中存储的代币,我们自己钱包中相应的代币也将受到威胁。因为这种授权是由自己的私钥签名授权的,一旦遭到攻击,即使使用冷钱包,也无法防止自己的财产被盗。
如何防范风险?
1.对于非交易头寸资产,可以选择取消授权
现在DeFi项目层出不穷,很多项目可能会在不知不觉中被授权,这就增加了被盗的风险。我们可以在debank上通过查询钱包地址查询授权合同,然后及时取消高风险项目的授权。
2.使用分号,交易后及时调出资产
即使是最可靠的项目也可能受到攻击。因此,更重要的是不要把鸡蛋放在同一个篮子里。
3、考虑其他项目
由于以太坊的底层无法改变,其他底层灵活的公链将成为后续关注的对象。
例如,具有多个本机代币函数的quarkchain已经启动。在quarkchain主网中,多本机代币与qkc在quarkchain系统中的地位相同。它可以调用合同,跨链,并支付一定条件下的交易费用。本机代币除了不参与qkc网络治理外,还可以实现qkc的所有功能,包括跨链传输。DeFi面临的大多数非本地资产不便问题都可以得到解决。在未来的合同中,本机代币的功能将与qkc完全一致,消除了多本机代币应用的**一道障碍。也就是说,不需要授权,避免了无限授权的问题。
后记
代币授权具有很大的安全风险。要提高加密货币应用的用户体验和安全性,显然需要改进代币授权功能。目前最有潜力的是多本机代币功能,从底层解决授权问题带来的安全风险。然而,在quarkchain的公链上仍然很少有DeFi项目,我相信未来会有更多的爆发。
文章标题:Erc20无限授权对你自己和黑客都很方便。有解决办法吗?
文章链接:https://www.btchangqing.cn/293221.html
更新时间:2021年06月30日
本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。