随着DeFi的普及,区块链用户现在需要多次授权DeFi项目。每当用户想要使用新的DApp时,您都需要授权DApp使用您的代币。
除了繁琐的流程,每一次的授权都要支付大量的费用。为了节省资金和时间,许多用户在需要时选择无限授权。
因此,他们不知道什么时候忽然发现自己的代币被转走了。原因不是私钥被盗,而是因为他们对DeFi合约授予了无限授权。为什么会有无限授权?有解决办法吗?
为什么会有ERC20授权?
使用以太坊上的本土代币,您可以将ETH发送到智能合约并同时调用它。这是通过所谓的授权功能实现。
但是,由于ERC20代币本身是一个智能合约,因此以太坊无法通过将智能合约代币发送到智能合约来直接调用它。原因是该交易发生在ERC20代币合约上,而不是发生在DeFi合约上。
那么如果合约需要调用ERC20呢?在ERC20标准中,为智能合约提供了一种解决方案,即使用transferFrom()函数代表用户转移代币。为了激活此功能,用户需要授权智能合约来执行此操作。
授权后,用户可以将代币“存入”智能合约以使用DeFi应用程序。
例如,如果用户将USDT存入Aave以赚取利息,那么他们首先需要授权Aave合约从用户的钱包中提取USDT。
然后调用Aave合约函数指定用户要存入的USDT数量。然后,Aave合约使用transferFrom()功能从您的钱包中提取相应金额的USDT来完成交易。
无限ERC20授权的问题
在授权使用DeFi时,您可以选择授权一次,即只同意本次交易,也可以选择无限次,允许合约在未来无限次地在您钱包中操作此代币。
目前,DeFi所依赖的以太坊基础设施并不完善。因此,无限授权DeFi合约是改善DeFi体验的有效方式。
避免了每次使用前都要授权的麻烦,以及每次交易前授权造成的GAS费用消耗。在设置了无限授权后,用户只需同意一次,即可以避免在此后的存款中重复该流程。
但是,这种设置有很大的缺点。因为用户授予的不仅仅是对转移到合约中的代币的操作权,还有包括钱包中代币的控制权。
换句话说,一旦合约被黑客攻击,不仅DeFi项目中存入的代币,我们自己钱包中的代币也会受到威胁。
因为这个授权是通过自己的私钥签名授权的,一旦被攻击,即使使用冷钱包也无法防止被盗。
如何预防?
1.取消未交易资产的授权
现在DeFi项目如雨后春笋般涌现,很多项目可能在不知情的情况下被授权,这增加了被盗的风险。我们可以通过查询自己的钱包地址来查询DeBank上的授权合约,然后取消高风险项目的授权。
2.使用多个账户,交易后及时转出资产
即使是最可靠的项目也可能受到攻击。因此,更重要的是不要把所有的鸡蛋放在一个篮子里。
3.考虑其他平台
由于以太坊基础设施无法改变,其他基础设施灵活的公链成为未来的选择。
例如,具有多原生代币功能的QuarkChain将成为替代方案。多原生代币在QuarkChain系统中与QKC具有相同的地位。
他们可以调用合约,跨链,并在一定条件下支付交易费用。
除了能够参与QKC网络治理外,多原生代币还可以实现QKC的所有功能,包括跨链转账。
Defi面临的大部分非原生资产不便问题都可以得到解决。在未来的合约中,多原生代币的功能将与QKC完全相同,消除了应用多原生代币的最后障碍。也就是说,不需要授权,避免了无限授权的问题。
结论
代币授权存在很大的安全隐患。如果要提升加密货币应用的用户体验和安全性,显然需要完善代币授权功能。
目前,多原生代币功能最有潜力从根源上解决安全问题。但是,基于QuarkChain构建的DeFi项目仍然很少,我们相信未来会有很大的爆发。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。