小心你的 DApp 授權!

2022-06-10 15:45:07

使用加密貨幣錢包、交易所等產品,最重要的事情莫過於保護資產安全。“CoinEx Wallet 安全必知”將從多角度分享常見詐騙套路、如何安全使用加密貨幣產品、區塊鏈安全機制等科普知識,幫助您全面瞭解並加強資產安全保護措施。

 

DeFi、NFT 的普及和發展,為加密貨幣市場注入了新的活力。除了直接交易加密貨幣之外,用戶還可以體驗借貸、合成資產、遊戲等去中心化應用(DApp)。而這些DApp往往涉及到合約交互,用戶也將面臨著新的潛在風險,例如 DApp 授權風險。

 

DApp 過度授權

用戶在使用加密錢包與 DApp 進行合約交互時,首先需要對 DApp 進行授權。

假如用戶 A 想要在 AAVE 上存款 USDT 進行加密貨幣理財,那麼用戶 A 就需要將 USDT 授權給 AAVE 借貸合約,讓 AAVE 借貸合約擁有轉移 USDT 資產的能力,以便可以完成相應的操作。

 

這個授權流程有點類似於授權你的供電商每月從你的銀行帳戶上扣除電費,授權 AAVE 智能合約後,AAVE 就能轉走一定數量的 USDT 資產。

 

大多 DApp 開發者為了避免用戶反復授權,一般會默認設置授權最大數量的代幣給相應的智能合約,這樣方便後續的相關操作,避免了每次使用前都要進行授權的麻煩,以及每次授權造成的 GAS 消耗,是可以有效提高 DeFi 使用體驗的一種方式。但這樣的操作也存在著明顯的風險,如果智能合約出現漏洞或合約管理員作惡,那麼用戶的加密貨幣就存在著丟失的風險,這就是 「DApp 過度授權」帶來的問題。

 

常見的授權風險

1、意外錯誤導致的ERC20授權風險

開發者在開發 DApp 的過程中,難免會出現一些漏洞,例如著名的 Bancor 就曾出現過程序漏洞,從而讓用戶資產面臨一定的風險。

 

在 Bancor 的相關合約中,ERC20transferFrom() 函數被意外地定義為public而不是private,這使任何人都可以執行它並耗盡用戶錢包中的加密貨幣資產。

 

2、對ERC20授權的惡意攻擊

除了由於開發者的失誤導致的授權風險之外,還存在著一些惡意利用。例如有些 DeFi 類應用以發放空投代幣為噱頭鼓勵人們進行授權,用戶需要存儲一定數量的代幣才能領取空投代幣,但如果要存代幣領空投,就必須無限制地給予授權。

 

例如曾經有一款 DApp 鼓勵用戶存儲 UNI 從而換取自己專案的代幣。用戶為了領取空投代幣,並沒有詳細查看授權範圍,一不留意就開啟了無限授權,從而讓錢包中的加密貨幣資產面臨巨大的風險,騙子不僅拿走了存入 DApp 中的 UNI 代幣,而且還拿走了用戶錢包裏所有的 UNI 代幣。

 

怎樣防範授權風險

1、分帳號使用

即使是再靠譜的專案,也存在被攻擊的可能,因此,當我們需要與 DApp 交互時,儘量分開帳戶使用,例如開啟一個新地址,把合約交互需要的資產轉入到新地址中,使用新地址進行交互,這樣即使新帳號地址因為授權問題被盜,也不影響其他帳號中的加密貨幣資產。

 

2、避免向DApp過度授權,定期清理授權

用戶與某個 DApp 進行交互時,第一次使用會需要授權,進行授權後方便了用戶與合約的後續交互操作,但也存在著一定的安全隱患,如果該 DApp 遭到攻擊或管理員作惡,將導致用戶資產的損失。因此,我們需要定期清理不常使用的 DApp 授權或者設置代幣轉移量的上限。

 

我們可以使用相應的授權查詢工具,定期查詢授權的合約列表,及時取消可疑專案的授權,從而排除潛在的安全隱患。

 

3、儘量避免使用未經安全公司審計代碼的DApp

一般來說,專案方在上線前會把專案代碼交給專業的安全公司進行代碼審計,而且會由多家安全公司進行審計,以最大化降低合約代碼漏洞風險。雖然經過安全公司審計的合約代碼,也並不能保障 100% 安全,但至少經過安全公司審計的 DApp 相對更安全些。

 

對於用戶來說,要儘量避免使用未經安全公司審計代碼的 DApp,特別是宣傳高 APY 的 DApp,千萬不要為了一點收益而把資產本金置於高風險中。

 

4、選擇安全的數字錢包

我們使用加密錢包與 DApp 進行交互時,錢包其實充當了第一道安全屏障。用戶與 DApp 進行交互時,錢包會提醒用戶相應的授權風險。因此,當我們在與 DApp 進行交互時,要選擇使用CoinEx Wallet這樣安全的加密錢包。

 

總之,我們一定要養成良好的錢包使用習慣,定期取消不需要的授權,不要訪問存在高風險或可疑的 DApp,以保障資產的安全。

 

相關文章