近日,一個存在已久的開放問題 ——「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 通過按需授權的方法調用合約。
imToken 非常樂意與大家一起探討,尋求更好的解決方案。如果你有任何想法,歡迎跟我們溝通。