跟着 DeFi 的火爆,一般的区块链老手用户必定不止一次对 DeFi 项目进行授权了,每逢运用一个新的 DApp,都需求授权这个 DApp 花费你的代币。除了流程繁琐之外,每次授权都还要付出不菲的手续费。许多用户为了省钱省事,每次授权都是供给无限期授权,成果不知道哪天,突然发现自己的钱被人转走了,而原因并不是因为私钥被盗,而是因为图方便给 DeFi 合约进行了无限授权,为什么会有无限授权?有没有处理方案?

为什么要有 ERC20 授权?

有了以太坊上的原生代币 ETH,你就能够将 ETH 发送至该智能合约,同时调用智能合约功用。这是经过所谓的可付出函数(payable funtion)完成的。可是,因为 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 主网中,多原生代币 (Multinative token) 在 QuarkChain 系统中和 QKC 基本是相同的地位,能够调用合约、跨链、在满意某些状况的条件下能够付出买卖手续费,除了不能参与 QKC 网络治理,原生代币能够完成 QKC 一切的功用,包含跨链转账。大部分 Defi 面临的非原生财物不便利性问题都能够处理。而未来合约中,原生代币的功用,将做到和 QKC 完全一致,消除多原生代币使用的最后一层妨碍。也便是说不需求授权,也就避免了无限授权的问题。

结语

代币授权存在很大的安全隐患。假如咱们想要改善密码学货币使用的用户体会和安全性,咱们明显需求改善代币授权功用。现在,最有潜力的便是多原生代币功用从底层处理授权问题带来的安全危险,不过现在 QuarkChain 公链上 DeFi 项目仍然较少,信任后续会有更大的迸发。

视野开拓

曾经有一次,一个高利贷者的土地完好无损,而其周围的所有土地却都被暴雨毁坏了。于是,他欢天喜地跑去跟一位神甫说,他一切都完好无损,他是无罪的。神甫回答说:事情并不是这样的。因为你在魔鬼社会交了不少朋友,所以你能够逃过这场由他们发动的暴雨。 当然,当死亡迫近的时候,这样的友谊便终结了。剩下的只有魔鬼对于高利贷者灵魂的垂涎。他提防着不让后者从他手中逃离开去。要达到这个目的,就要避免高利贷者可能会做出的告解与悔恨。 魔鬼的第一个计谋:让临终的高利贷者患上失语症,变成哑巴。... 更为彻底的解决方法是:暴卒。-《钱袋与永生》

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注