当前位置:首页 > 知识 >

智能钱包:让代币授权安全可靠

代币授权存在很大的安全隐患。如果想要改善加密货币应用的用户体验与安全性,那么显然需要改进代币授权功能。

原文标题:《科普|代币授权:密码学货币行业用户体验的最大障碍》 撰文:EmanuelCoen 翻译&校对:闵敏&阿剑

如果你是DeFi深度用户,你肯定被这个繁琐的流程折磨过无数次了。每当你使用一个新的dApp,你都需要授权这个dApp花费你的代币。 Metamask上的授权界面 跟传统金融行业类比一下,这个流程有点类似于办理直接借记,授权你的供电商每月从你的银行账户上扣除电费。 但是,与密码学货币行业不同的是,传统金融行业的直接借记业务只面向少数可信公司。这类公司不太会欺骗消费者,即使偶尔发生欺骗消费者的行为,消费者也可以提出异议,由银行充当调停者。密码学货币行业没有这类工具。一些dApp是由匿名开发者构建的,没有为受骗用户设立的争议机制。一旦在区块链上完成付款,就无法撤销。

代币授权是什么?它是如何运作的? 以太坊区块链上的大多数代币,如USDC和DAI,都采用ERC20标准。ERC20代币实际上是智能合约,包含不同的方法,如transferFrom和burn。用户调用这些方法,应用就会对代币做相应的操作。 其中一种方法是approve。任何你想要使用的dApp都需要访问你的ERC20代币才能对其进行操作。例如,如果你想要在Aave中存入USDC,你首先需要授予AavedApp的智能合约访问USDC的权限,然后才能通过第二笔交易将USDC存入Aave。你可以在你的以太坊钱包用户界面上看到该授权。虽然授权可用量从理论上来说是灵活的,但是大多数dApp会默认要求无限量授权,以此简化用户体验,并尽可能减少用户使用该应用所需进行的交易次数。 这里存在的一个安全问题是,大多数用户认为他们的授权是针对某个交易,而且是限量的,但是在大多数情况下,用户实际上授予了dApp永久访问他们持有的某种代币的权限,而且是不限量的。因此,如果dApp出现安全问题或从一开始就是恶意的,攻击者就可以将滥用这种授权来盗取dApp用户持有的全部已授权代币,而无需经过用户同意。这种攻击可以在将来的任意时刻发起,即使是在用户使用过dApp的若干年后。 如何保护自己?好消息是,你可以保护自己免受这类威胁。在下一节中,我们将探讨的是,当你使用Metamask等标准以太坊钱包时,如何保障你的代币的安全性,并介绍了一些可以通过定制方法与dApp交互的钱包。

如何手动撤销代币授权 如果你想手动撤销授权,你需要使用TokenAllowanceChecker之类的工具。这类工具可以连接到你的钱包,并扫描整个区块链来寻找所有与你的以太坊地址有关的dApp授权。然后,你就可以编辑授权:将授权可用量设定为0从而取消授权,或者设定为你能接受的量。授权修改是通过与各个ERC20代币合约交互来实现的。 最好能够定期执行这一流程,取消你不打算再使用的dApp的授权。虽然这会花费你一点成本,因为每笔交易都需要在链上结算,但是从长期来看,你的钱包会给你应有的回报。 建议:如果你想要节省gas成本,可以下载GasStationNetwork扩展程序插件来在你的浏览器上追踪gas价格。你可以等到gas成本较低时再编辑你的授权可用量。

下一代以太坊钱包如何保护用户资金 一些已经推出的智能合约钱包也具备防护功能。智能合约钱包具有很强的灵活性,可以为用户提供定制化

猜你喜欢

微信二维码

微信