900383__5_.jpg

近日,一个存在已久的开放问题 ——「DApp 过度授权」在以太坊社区中被重新提及,各大媒体、钱包以及 DApp 项目方都参与了这次讨论。imToken 作为主流的以太坊钱包,对该问题始终保持着高度关注,同时在深入地探讨与研究中寻找更加合理的解决方案。

什么是「DApp 过度授权」?

用户与 DApp 进行交互时,首先需要授权(approve),为什么要授权操作呢?我们举一个典型的案例 :

  • Alice 希望在 Compound 上存款 100 Dai,获得不错的收益。
  • 那么 Alice 需要将 Dai 授权给 Compound 借贷合约,让借贷合约拥有转移 Alice Dai 代币的能力,以便后续可以完成 Dai 与 cDai(Compound 借贷凭证)的原子兑换。

DApp 开发者为了避免用户反复授权,一般会默认设置授权最大数量的代币给智能合约。但这样的处理也明显暴露风险,如果智能合约出现漏洞或合约管理员作恶,那么用户的代币将存在丢失的风险,这就是「DApp 过度授权」带来的问题。

「DApp 过度授权」是技术社区存在已久的公开问题,而当前 DeFi 的兴起改变了安全和易用间的平衡,对此我们需要重新考虑这个问题。而想要解决它,需要钱包,  DApp 开发者与用户多方参与,共同改进。

imToken 目前是如何应对的?

访问 DApp

首先,我们会从源头掐断恶意转移用户代币行为发生的可能。

DApp 浏览器是一个开放的浏览器,用户可以直接访问上架应用,也可以输入 URL 访问任意 DApp。我们会针对存在潜在问题的应用给予风险提示,以免用户上当受骗。

image2.png

访问钱包地址

其次,当 DApp 请求用户钱包地址时需要经过用户授权确认 ,以免用户地址隐私泄漏,让有问题的 DApp 有机可乘。

image1.png

授权转账数量

最后,当 DApp 要求用户代币授权时,imToken 也会给予明确的授权信息,以便用户清晰了解授权上下文,甚至进一步编辑授权数量,降低授权风险。(注:授权功能将于近期上线)

image4.png

授权管理 DApp

此外,imToken 还在 DApp 浏览器中提供了代币授权管理的相关 DApp,打开 DApp 浏览器,搜索并打开「Approved Zone」,点击进入即可轻松管理已授权的第三方 DApp 权限,随时关闭不再使用的应用权限,保护自己的钱包安全。

更长远考虑

近期 imToken 除了以上的处理方案,也会针对授权管理问题进行更深入地优化。将通过支持批量签名功能,来鼓励 DApp 通过按需授权的方法调用合约。

imToken 非常乐意与大家一起探讨,寻求更好的解决方案。如果你有任何想法,欢迎跟我们沟通。

参考链接