如果你是DeFi深度用户,你肯定被这个繁琐的流程折磨过无数次了。每当你使用一个新的dApp,你都需要授权这个dApp花费你的代币。
-?Metamask?上的授权界面-
跟传统金融行业类比一下,这个流程有点类似于办理直接借记,授权你的供电商每月从你的银行账户上扣除电费。
但是,与密码学货币行业不同的是,传统金融行业的直接借记业务只面向少数可信公司。这类公司不太会消费者,即使偶尔发生消费者的行为,消费者也可以提出异议,由银行充当调停者。密码学货币行业没有这类工具。一些dApp是由匿名开发者构建的,没有为受用户设立的争议机制。一旦在区块链上完成付款,就无法撤销。
代币授权是什么?它是如何运作的?
以太坊区块链上的大多数代币,如USDC和DAI,都采用ERC20标准。ERC20代币实际上是智能合约,包含不同的方法,如transferFrom和burn。用户调用这些方法,应用就会对代币做相应的操作。
腾讯专利可用区块链管理游戏资源:金色财经报道,天眼查App显示,4月18日,腾讯科技(深圳)有限公司申请的“基于区块链的游戏资源管理方法及装置”专利获授权。摘要显示,该方法包括:对接收到的游戏客户端发送的采用非对称加密算法加密的交易参数进行解密,得到游戏资源账号的地址、交易资源值和交易类型;根据交易类型和交易资源值,生成游戏资源账号的地址的目标交易记录;向区块链网络中的其他节点广播目标交易记录;响应于其他节点发送的针对目标交易记录的验证成功指令,根据交易类型和交易资源值,调整地址指示的游戏资源账号的资源值。本申请可以借助区块链技术,通过交易类型和交易资源值直接对游戏资源账号的地址指示的游戏资源账号的资源进行管理,因此降低了交易成本。[2023/4/18 14:10:42]
其中一种方法是approve。任何你想要使用的dApp都需要访问你的ERC20代币才能对其进行操作。例如,如果你想要在Aave中存入USDC,你首先需要授予AavedApp的智能合约访问USDC的权限,然后才能通过第二笔交易将USDC存入Aave。你可以在你的以太坊钱包用户界面上看到该授权。虽然授权可用量从理论上来说是灵活的,但是大多数dApp会默认要求无限量授权,以此简化用户体验,并尽可能减少用户使用该应用所需进行的交易次数。
链游The Beacon创世蛋地板价涨至1400MAGIC附近:1月7日消息,Treasure生态链游TheBeacon创世蛋系列地板价涨至1400MAGIC(约合0.55ETH)附近。此前项目官方在社群表示,创世蛋系列将于1月20日孵化,新的地下城活动也计划于1月20日推出。[2023/1/8 11:00:26]
这里存在的一个安全问题是,大多数用户认为他们的授权是针对某个交易,而且是限量的,但是在大多数情况下,用户实际上授予了dApp永久访问他们持有的某种代币的权限,而且是不限量的。因此,如果dApp出现安全问题或从一开始就是恶意的,攻击者就可以将滥用这种授权来盗取dApp用户持有的全部已授权代币,而无需经过用户同意。这种攻击可以在将来的任意时刻发起,即使是在用户使用过dApp的若干年后。
如何保护自己?好消息是,你可以保护自己免受这类威胁。在下一节中,我们将探讨的是,当你使用Metamask等标准以太坊钱包时,如何保障你的代币的安全性,并介绍了一些可以通过定制方法与dApp交互的钱包。
Optimism攻击者向V神的钱包发送100万个OP代币:金色财经消息,据PeckShield称,黑客攻击者盗取了2000万个用于加密做市商Wintermute的Optimism(OP)代币,已将其中100万个代币发送到以太坊联合创始人VitalikButerin的钱包地址。该漏洞利用者还将100万个代币的投票权委托给了以太坊基金会安全研究员YoavWeiss。
Buterin之前也将Optimism空投中的1,746个OP代币委托给了Weiss。Weiss发推文说他不是黑客,但暗示此人可能是白帽黑客。目前被盗的2000万中只有1800万留在了他们的钱包里。(theblock)[2022/6/9 23:02:55]
1.如何手动撤销代币授权
如果你想手动撤销授权,你需要使用TokenAllowanceChecker之类的工具。这类工具可以连接到你的钱包,并扫描整个区块链来寻找所有与你的以太坊地址有关的dApp授权。然后,你就可以编辑授权:将授权可用量设定为0从而取消授权,或者设定为你能接受的量。授权修改是通过与各个ERC20代币合约交互来实现的。
加密借贷平台Vauld暂停平台提款,或将进行重组:金色财经报道,加密货币交易所Vauld首席执行官Darshan Bathija周一在一篇博客文章中表示,该公司“做出了艰难的决定,立即暂停Vauld平台上的所有提款、交易和存款。”
Bathija称,由于各种因素的影响,包括市场波动和商业伙伴的财务困难,Vauld在财务上陷入困境。Bathija说:“我们的管理层仍然完全致力于与我们的财务和法律顾问合作,尽我们最大的努力探索和分析所有可能的选择,包括潜在的重组方案,以最好地保护Vauld的利益相关者的利益。”(The Block)[2022/7/4 1:49:33]
最好能够定期执行这一流程,取消你不打算再使用的dApp的授权。虽然这会花费你一点成本,因为每笔交易都需要在链上结算,但是从长期来看,你的钱包会给你应有的回报。
建议:如果你想要节省gas成本,可以下载GasStationNetwork扩展程序插件来在你的浏览器上追踪gas价格。你可以等到gas成本较低时再编辑你的授权可用量。
派盾:Hodlnaut在Compound上偿还了约300万美元的USDT:6月28日消息,据派盾预警监测,加密借贷平台Hodlnaut在过去一小时内已在Compound上偿还了约300万美元的USDT。[2022/6/28 1:36:10]
2.下一代以太坊钱包如何保护用户资金
一些已经推出的智能合约钱包也具备防护功能。智能合约钱包具有很强的灵活性,可以为用户提供定制化的智能合约交互方式。因此,许多智能合约钱包已实现定制化的授权方式,提高了用户体验和安全性。
原生整合:以Argent为例
例如,Argent是移动端以太坊钱包,已经将一些核心DeFi应用原生整合到应用中,以便用户进行借贷、赚取收益和交易。
这类钱包从智能合约层面整合了这些dApp,并确保用户在与这些dApp进行交互时,这些dApp只能得到实际请求量的授权。这一切都是在后台自动进行的,因此Argent用户甚至不知道授权交易的存在。
ArgentxWalletConnect
原生整合的一个缺点是不具备可扩展性,就像Argent一样。应用程序不可能原生整合每一个DeFi协议。对于大多数用户来说,Argent目前已经集成的应用可能足够了,但是重度DeFi用户使用每天都要使用十几个不同的dApp,不想局限于少数几个dApp。
一个名为WalletConnect的标准可以解决这个问题。WalletConnect可以让用户将他们的移动钱包连接到web端应用,并通过移动钱包安全地签署交易。Argent实现了WalletConnect整合定制化,让用户能够轻松设置授权可用量。此外,如果Argent用户改变了想法,可以在Argent应用中一键取消对某个dApp应用的授权。由于大多数dApp都支持WalletConnect,该功能可以让Argent用户在尽情探索整个DeFi领域时享受极高的安全性。
批量交易和dApp密钥:以Authereum为例
另一个能够优雅处理授权的智能合约钱包是Authereum。Authereum基于web端,而且大多数以太坊dApp应用都支持。另外,Authereum采用传统的电子邮件和密码登录,因此可以在几秒内将你的钱包连接到dApp,用户体验类似传统应用,而且不需要牺牲安全性。
当用户需要与dApp交互时,Authereum会生成一个新的临时dApp密钥,用来签署特定dApp的交易。该dApp密钥只能执行有限的功能,另外Authereum会执行一些完整性检查。如果发起请求的域不是创建dApp密钥的域,Authereum可以拦截该交易或通知用户。最后,这些dApp密钥可以随时从Authereum钱包中删除。
将多个交易打包到一个交易内还有很多其它优点。其中一个优点是高效——批处理交易可以节约成本和时间。以太坊上的每个普通转账交易都需要消耗21,000gas。如果用户一次性打包10个交易,总共可以节省189,000gas。另外,用户可以尝试通过发送连续交易来节省时间。
批处理交易的唯一问题是,dApp需要增加一些定制化的逻辑和UI流程来适当地处理交易。目前为止,只有1inch和Erasure等少数dApp支持这种交易模式,但是我们预期后续将有更多dApp支持该交易模式。
结论
代币授权存在很大的安全隐患。如果我们想要改善密码学货币应用的用户体验和安全性,我们显然需要改进代币授权功能。Authereum和Argent之类的钱包可以通过创新的方式让dApp交互更加安全。遗憾的是,在很多情况下,这类交易模式需要dApp开发者进行额外的工作,因此用户需要耐心等待一段时间。
无法采用上述解决方案的标准以太坊钱包至少应该让用户可以查看并编辑其dApp代币授权可用额。代币授权检查程序等工具很方便,但不是每个用户都知道它们。
原文链接:
https://cryptotesters.com/blog/token-allowances
作者:?EmanuelCoen
翻译&校对:?闵敏?&阿剑
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。