写在前面:关于以太坊钱包及DeFi应用,目前行业内普遍存在的一个安全隐患就是“代币授权”,而且绝大多数情况下,这些应用都会默认要求你给予“无限授权”,这给用户带来便利的同时,也会埋下很大的安全隐患,因为如果合约存在问题,那么即便你没有将资金存入到合约中,攻击者也可以窃走你钱包内的资金。
那如何在体验五花八门的DeFi新应用的同时,最大限度地保护自己呢?本文将会告诉你一种取消代币授权的方式。
目标:学习如何撤销以太坊钱包授权
技能复杂性:简单
用时:5分钟
ROI:无价(可以保护你的代币)
你可能已经参与了几十个DeFi应用,并在不知情的情况下授权这些应用无限访问你的以太坊钱包资金。
你猜怎么着?除非你能关闭这些授权,否则这些应用就有能力这么干!
那如果其中一个合约被利用了怎么办?或者这个DeFi应用变成了一个跑路骗局? 这意味着游戏结束,你会丢失资金。
但只要掌握一些技巧,你就可以保护自己。
例如使用新的地址,还比如经常检查合约授权,并移除你不再使用或不信任的应用合约授权。
良好的牙齿卫生可以防止蛀牙,而良好的加密卫生可以帮助你保护财产。
窃取用户资金的UniCats
上个月,一个名为UniCats的流动性挖矿项目启动了,而这个所谓的DeFi项目最终被证明是欺诈性质项目,其部署者利用了“代币无限授权”权限偷取了用户的资金。
当交易者为追求新的收益机会,而将资金存入这个项目时,UniCat开发者取得了越来越多的代币授权权限,直到他们选择收网并开始窃取用户的代币资金。
正如研究员Alex Manuskin在上个月发布的一条有见解的推文所示,一位UniCat用户因为授权了UniCats合约而损失了价值14万美元的Uniswap代币。
这是一个可怕的事件,而这个例子就是为了强调:作为一名以太坊用户,为什么要重视智能合约权限。
因此,让我们学习如何管理你的钱包权限。
如何撤销以太坊钱包授权
幸运的是,以太坊社区有一些非常值得尊敬的开源贡献者,他们经常会发布一些令人惊叹的工具,其中就包括AlphaWallet的James Sangalli,他在今年早些时候发布了一个开源的ETH Allowance工具。
我们可以使用这个解决方案来轻松地撤销代币授权,流程如下所示:
1、使用Etherscan查找你想要撤销的合约。
假设你最近与一个类似UniCat的恶意或劣质项目进行了交互,现在你想要撤销授权,你需要确定该项目的合约地址并对其进行复制。使用Etherscan的“剪贴板”按钮,可以让这项工作变得简单。
2、访问ETH Allowance网站,你将看到下面所示的页面。
3、连接你的以太坊钱包(通常,我们所使用的是流行的MetaMask浏览器钱包)。一旦你执行了这个操作,将会弹出已批准的智能合约列表,如下所示:
4、通过浏览器使用“查找“功能,粘贴并搜索你要移除的合约地址,为了简单起见,我将简单移除上面描述的第一个地址,它关联到了OmiseGo的OMG代币。当我点击”撤销“时,系统会提示我发送一笔撤销交易,如下所示:
5、确认交易,一旦交易确认后,你的钱包就可以避免掉这个合约地址的风险了。
总结
并不是每一个代币智能合约授权都是有漏洞的,有很多dapp在这一点上已经过了市场的考验(比如Uniswap),而给这些应用授权,有助于我们充分利用它们。
但在我们所处的去中心化的生态系统中,我们不能将这种信任授予那些还没有被证明,或没有经过适当审计的项目。这就是为什么我们必须要自己处理问题,定期管理我们的智能合约权限,去除掉我们不再使用或不再信任的代币授权。