Approve 是ERC20 代币才有的一种操作,在操作一些很不熟悉的DeFi 产品的时候,我们需要了解下到底approve 做了什么,以及如何在体验完了那些可能不安全的产品后,撤销approve。 到处都有的approve 可能才看到approve这个词语,你会觉得和自己没有任何关系。但如果你是Defi产品的用户,那么你一定执行过很多次approve操作了。
比如在Compound里面的enable操作: 比如在Uniswap里面的unlock操作: 上面提到的这些都是approve操作,它们的共同点是,当你要进行这些操作的时候,在MetaMask弹出来的窗口里面,我们会看到为了一个APPROVE : 上面提到的这些Defi产品,都是比较可信的,也正因为如此, 原本其实很危险的approve 操作也可以变得很无所谓了。但在操作一些很不熟悉的Defi产品的时候,我们需要了解下到底approve做了什么,以及如何在验证完了那些可能不安全的产品后, 撤销approve 。 到底approve 做了什么? Approve是ERC20 Token才有的一种操作。如果你已经玩过一些Defi产品了,那你用过最多的一款ERC20 Token很大概率可能是Dai ,我们下面就以Dai为例来说明。
上面这个操作,眼镜男其实是和Dai这个ERC20的智能合约在交互,他向智能合约发起这样的请求: 请从眼镜男的账户里转一个Dai 给胡子男 ,如图: 智能合约收到了眼镜男的请求,会做一些验证: 这里我们写了其中的两个验证条件:
眼镜男向uniswap的智能合约发起这样的请求, uniswap的智能合约会做什么呢?它当然首先要从眼镜男的账户里面拿到1 Dai ,所以uniswap会向Dai的智能合约发起请求,要求将眼镜男账户上的1 Dai,转到uniswap 的账户上 : 和上面一样, Dai的智能合约需要验证两件事情: 而这里的第二条就不成立了,因为这个请求并不是直接由眼睛男发起的,而是由uniswap发起的。
看到这里,你就明白approve的含义了。
虽然你approve了uniswap可以随便操纵你的Dai ,但是uniswap的代码是开源的,你可以阅读它的代码,发现它的代码里面,规定了在什么样的情况下可以操纵你的Dai 。
用例子来研究approve 操作 在演示如何撤销你的approve之前,我们先以uniwap为例子,看下approve操作背后发生的事情:Uniswap在pool的时候,需要首先approve dai ,也就是允许uniwap的智能合约操纵你的Dai ,也就是点击这里的unlock ,然后会看到弹出的MetaMask窗口: 你应该已经注意到那个很大的数了, 1.157920892373162e+59 ,对于不熟悉的朋友,简单地说名下,这个表示的是1.157920892373162 乘以10 的59 次方 。当然,你的账户里面肯定没有那么多Dai ,这里只是告诉Dai的合约说: 我们最多允许uniswap 的智能合约操纵我们的1.157920892373162 乘以10 的59 次方个Dai ,由于我们的账户里面没有那么多Dai ,那么这个其实等价于说: 我们允许uniswap 的智能合约操纵我们账户里面的所有的Dai 。
在弹出的菜单里面,点击这里的交易链接,跳转到etherscan来仔细看下approve操作: 首先注意到,这里的approve操作,是向Dai的智能合约发起的这个请求,所以你会看到Dai的智能合约地址出现在了To后面。
我们来简单地说下input data的部分:
这里的[0]后面的内容,也就是00000000000000000000000009cabec1ead1c0ba254b09efb3ee13841712be14里面的后40 位表示的是我们要approve的个人/智能合约地址。 09cabec1ead1c0ba254b09efb3ee13841712be14就是uniswap 智能合约的地址了 撤销你的approve 操作 那么要怎么撤销approve 操作呢?
其实,对于没有深入了解approve原理的用户来说, unlock功能可能反而会造成困扰,从用户体验的角度来说,有些产品在设计的时候,不会给出lock这个功能,比如在uniswap上面,我们就没有看到lock这个功能: 那应该怎么撤销这次approve操作呢?
点击上面的Contract ,跳转到合约的页面: 注意到这里有个write contract ,可以理解为这个就是我们要和这个合约进行交互: 接下来,就和使用其他Dapp一样,我们需要连接到我们的钱包,点击这里的Connect to Web3 : 连接之后,在下面找到approve : 我们现在要取消之前对uniswap的批准,输入上面拿到的uniswap智能合约的地址09cabec1ead1c0ba254b09efb3ee13841712be14,注意,输入的时候,要在地址前面加上一个0x,也就是0x09cabec1ead1c0ba254b09efb3ee138我们输入0,同样,要在前面加一个0x就已经0x0: 然后点击write ,在弹出的MetaMask窗口里面,我们看到: 然后,会看到write旁边多出了一个View Your Transaction按钮,我们点击这个按钮,可以跳转到我们的这次approve操作的etherscan页面: 现在,回到uniswap的页面看下: unlock按钮又回来了,说明我们已经成功撤销了对uniswap 智能合约的approve 操作 。 ——感谢阅读,全文完—— 原文链接:https://medium.com/mrblock-tw/why-so-many-approve-in-defi92571c8 —- 编译者/作者:洁sir 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
零基础入门DeFi:手把手教你操作approve 确保资产安全
2020-04-22 洁sir 来源:区块链网络
LOADING...
相关阅读:
- 波卡周报 | DOT 转账功能将于下周二进入执行阶段2020-08-03
- 雨欣谈币:比特币今日暴跌之后有多少朋友跟上策略完美盈利2020-08-02
- 新闻TRON,Cardano,IOST,Youtube和DEX暴跌11%后,比特币仍未恢复2020-08-02
- 今天币安比特币曾暴涨到10万刀,你提前暴富了吗?今日暴跌更让万哥欣2020-08-02
- 还是老老实实的屯币靠谱2020-08-02