一文解读imToken如何应对DApp过度授权问题?
近日,一个存在已久的开放问题 ——「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。我们会针对存在潜在问题的应用给予风险提示,以免用户上当受骗。
访问钱包地址
其次,当 DApp 请求用户钱包地址时需要经过用户授权确认 ,以免用户地址隐私泄漏,让有问题的 DApp 有机可乘。
授权转账数量
最后,当 DApp 要求用户代币授权时,imToken 也会给予明确的授权信息,以便用户清晰了解授权上下文,甚至进一步编辑授权数量,降低授权风险。
注:授权功能将于近期上线
授权管理DApp
此外,imToken 还在 DApp 浏览器中提供了代币授权管理的相关 DApp,打开 DApp 浏览器,在「工具」类目下找到「Approved Zone」,点击进入即可轻松管理已授权的第三方 DApp 权限,随时关闭不再使用的应用权限,保护自己的资产安全。
更长远考虑
近期 imToken 除了以上的处理方案,也会针对授权管理问题进行更深入地优化。将通过支持批量签名功能,来鼓励 DApp 通过按需授权的方法调用合约。
关于批量签名,我们即将上线的 ETH 加油站就可以帮助用户通过一次「交易确认」完成授权和代币兑换,避免过度授权的问题。
imToken 非常乐意与大家一起探讨,寻求更好的解决方案。如果你有任何想法,欢迎跟我们沟通。
参考链接
[1]https://www.coindesk.com/long-festering-defi-dapp-bug-still-not-fixed-by-industry
[2]https://zengo.com/badapprove-defi-security/
[3]https://medium.com/argenthq/argent-solving-dapps-dirty-secret-3ddb4f741a6
[4]https://medium.com/ethex-market/erc20-approve-allow-explained-88d6de921ce9
声明:本站所有内容,如无特殊说明或标注,均为采集网络资源,任何内容均不构成投资建议。