近來以太坊上最火爆的領域就是DeFi。主要的DeFi應用包括ERC20代幣的借貸、質押和交易。若想在Uniswap、Aave和Yearn等DeFi協議上使用ERC20代幣,你需要授權dApp來使用這些代幣。這就是所謂的?*ERC20授權*?。這些授權對于DeFi平臺的運作來說必不可少,但是如果不加以控制,那將是非常危險的。
ERC20授權的必要性
有了以太坊上的原生代幣ETH,你就可以將ETH發送至該智能合約,同時調用智能合約功能。這是通過所謂的可支付函數實現的。但是,由于ERC20代幣本身就是智能合約,你無法通過直接將代幣發送到智能合約來調用其函數。
因此,ERC20標準讓智能合約使用?transferFrom()?函數代表用戶轉移代幣。為此,用戶需要允許智能合約代表他們轉移代幣。
這樣一來,用戶就可以將代幣“存入”智能合約,同時智能合約會更新其狀態來顯示這筆存款。相反,如果你將ERC20代幣發送至該智能合約,則合約不會更新其狀態。
火幣發言人否認“將2億USDT和5000ETH轉入火幣的巨鯨”屬孫宇晨地址:金色財經報道,火幣發言人否認“今日上午將2億USDT和5000ETH轉入火幣的巨鯨”屬孫宇晨地址。此外,該地址被標記為TRX代幣前10位持有者之一。[2023/8/8 21:31:31]
例如,如果你將DAI“存入”Aave來賺取利息,你首先要允許Aave合約從你的錢包中取出一些DAI。然后你調用Aave合約里的函數,指定你想要存入的DAI的數量。然后,Aave合約使用?transferFrom()?函數從你的錢包中取出相應數量的DAI,并將同等數量的aDAI代幣記入你的賬戶。
無限ERC20授權的危害
將特定數量的ERC20代幣存入合約時,你就可以選擇將授權額設成這個數量。然而,許多應用會向用戶要求無限授權。
這會帶來極好的用戶體驗,因為用戶不需要在每次存款時重新授權。設置無限授權后,用戶只需要同意一次,之后存款時就不會再重復這一過程。
BTC突破27900美元:金色財經報道,行情顯示,BTC突破27900美元,現報27902.2美元,日內漲幅達到1.25%,行情波動較大,請做好風險控制。[2023/4/24 14:22:53]
但是,該設置存在很大的弊端。眾所周知,即使是成熟的項目,也有可能存在漏洞。一旦你給了這些平臺無限授權,不只是你的存款會陷入風險之中,你的錢包中的代幣也是如此。
在Devcon5上,我第一次與PaulBerg談到了這個問題。在這次大會上,Paul就本文所討論的問題做了陳述。在開發Sablier時,Paul在他的智能合約中發現了一個漏洞,不僅所有存入該智能合約的DAI有風險,所有測試者的錢包中的DAI也是如此!
實際風險
長期以來,無限授權的風險主要是理論上的。在Paul所開發的Sablier平臺正式上線之前,這個漏洞就被修復了。當時,還沒有出現利用ERC20授權的攻擊,但是只要平臺繼續要求無限授權,遲早會出狀況。
Solana生態錢包Solflare帶來高Gas Fees\"優先\"服務:金色財經報道,Solana生態錢包Solflare周一宣布其用戶現在可以支付更高的Gas Fees來克服網絡擁堵。Solrise Finance聯合創始人Vidor Gencel在推特上表示,錢包內的交易將自動以當前市場價格的費用為優先,確保你的交易比其他錢包內的交易更快列入。[2023/1/18 11:17:33]
去年,我們已經看到了幾起利用ERC20授權的攻擊事件。
意外漏洞
今年早些時候,Bancor出現了一個漏洞,危及用戶資金。執行ERC20?transferFrom()?函數的函數變成了public屬性,因此任何人都可以執行該函數,并取走用戶錢包中的資金。Bancor執行了一次白帽黑客攻擊,控制了損失,并將資金還給了用戶。
MakerDAO治理投票贊成添加GNO代幣作為DAI的抵押品:金色財經報道,MakerDAO 治理部門投票贊成將 GnosisDAO (GNO) 代幣添加為 DAI 穩定幣的新抵押品的提案。投票頁面上的詳細信息顯示,支持這一舉措的參與者總共投票了近 70,000 個 Maker(MKR)代幣。該提案獲得了 77% 的支持率。[2022/9/21 7:09:26]
惡意利用漏洞
除了Bancor的意外漏洞之外,還有很多惡意利用漏洞的情況。在今年夏天的DeFi熱潮中,人們都在為各種以食物命名的DeFi分叉產品狂歡,其中也包括一些騙局。即使人們為了規避風險只存入少量代幣,他們錢包中的代幣也會因為無限授權而陷入風險。
ZenGo就在一個名為UniCats的項目中發現了可利用漏洞。人們可以存入Uniswap代幣,然后通過流動性挖礦獲得MEOW代幣。但是如果要存款,用戶必須提供?無限授權。如果項目遭到攻擊,攻擊者不僅可以拿走項目的存款,還可以拿走用戶錢包內的所有UNI代幣。
俄羅斯財政部宣布加密貨幣跨境支付可能即將合法化:9月5日消息,俄羅斯財政部副部長阿列克謝·莫伊謝耶夫在接受俄羅斯24電視頻道采訪時表示,財政部和俄羅斯銀行已經重新考慮了他們對加密貨幣的處理方式,并認為在不久的將來有必要使這些貨幣的跨境結算合法化。(金十)[2022/9/5 13:10:06]
另一個例子是DegenMoney項目。DegenMoney項目采用了一種不怎么高明的辦法。這個項目沒有開發自己的智能合約,而是創建了一個前端來進行兩次授權交易。一次是向一個運行中的智能合約,另一次是向完全不同的地址。
由于很多人沒有專門檢查錢包地址,這就導致攻擊者可以取走用戶錢包中的代幣。
那硬件錢包呢?
總的來說,硬件錢包比手機、手提電腦和基于瀏覽器的錢包安全的多。原因是,控制資金的私鑰安全地存儲在硬件錢包中,并且永遠不會離開該設備。因此,通過硬件錢包,你可以確保沒人能竊取你的私鑰。
ERC20授權的問題在于,沒人需要竊取你的私鑰才能從你的錢包中取走代幣。因此,硬件錢包也無法防范本文所討論的惡意利用漏洞問題。
使用硬件錢包依然是一種好習慣,因為硬件錢包確實能保護你免受其它漏洞攻擊。但是,你需要注意的是,硬件錢包不能抵御授權漏洞和其它很多智能合約漏洞。
dApp開發者可以做些什么?
在Devcon的講話中,Paul提到了一些關于無限授權問題的解決方案。這些方案各有優缺點。其中最實用的方案是即批即用模式。在這種模式下,應用只會要求用戶授權確切的數額,而非不限額。
這種方案的用戶體驗確實會差一些,因為每當用戶想要發送交易時,都需要發送一筆新的授權交易,不能再像無限授權那樣一勞永逸。這個模式的缺陷是會增加交易費成本,如果交易費像去年那樣暴漲,就會帶來很大的麻煩。
另一種替代型方案是,可以讓用戶選擇僅授權當下需要花費的數額,還是授權更高的數額以便后續進行更多交易。已經有多個項目采用這種策略,例如1inch.exchange和Curve.fi。
另一個減少交易成本的解決方案是,采用EIP2612之類的標準,讓用戶可以通過簽署消息來設置其授權額度,無需再通過發送交易的形式。但是,這類標準并未得到廣泛采用,而且圍繞該標準打造的工具也不多。
用戶可以做些什么?
由于ERC20授權是很多智能合約所不可或缺的部分,完全停止授權的方案并不可行。但是在可能的情況下,請盡量避免無限授權。
人們已經比一年之前更加了解這一問題,因此有些dApp可以讓用戶選擇只授權當前需要花費的數額,但是大多數dApp依然不行。盡管如此,高端用戶還可以通過Metamask的界面來降低其授權額度。
在使用dApp時,請你思考一下是否需要經常使用這個dApp,以及你是否信任這個項目,還是說你只會偶爾使用這個dApp,或者根本不信任這個項目。無論是哪種情況,你最好都要定期查看你的授權額度,并取消對不再使用的dApp的授權。
為便于檢查并撤銷這些授權,我開發了一種名為revoke.cash的工具。通過這個工具,你可以查看地址的代幣余額和授權額度,之后就可以輕而易舉地撤銷或降低授權。類似的工具還有approved.zone等。
結論
許多去中心化應用的運行都離不開授權,但是無限授權通常并不利于安全性。2020年已經出現過幾起利用ERC20授權的漏洞事件,人們對這個問題的認識比一年前深得多。作為一名用戶,你可以采取一些措施來降低上文所述風險,包括定期查看并撤銷多余授權。
Tags:ERC20C20RC20RC2ethereum和erc20區別Fair BERC20brc20銘刻brc20幣有哪些
在短短時間里,DeFi鎖倉量從年初增長至今已增長了數十倍,鏈上擁堵所導致的直接結果是Gas費用的飆升,當前在Uniswap交易,動輒5美元以上的交易費用,用戶在參與部分流動性挖礦項目的過程中.
1900/1/1 0:00:0012月20日,2020網易未來大會·區塊鏈與人工智能專場論壇于杭州盛大舉行。在現場,網易區塊鏈總經理顧費勇以《區塊鏈3.0——區塊鏈創新產品的春秋時代》主題進行演講,分享了其對未來區塊鏈發展趨勢.
1900/1/1 0:00:00比特幣的價格在前幾個月出現了大幅上漲,從1萬美元迅速上漲到近期歷史最高水平24000美元左右。在短短幾個月的時間里上漲超過135%。討論比特幣的價格在達到24000美元之后的走勢是一種猜測.
1900/1/1 0:00:00前言: 所謂最難忘的,恰恰是從來都不曾想起,卻永遠無法忘記,隨著年齡的增長,人總會變得越來越包容,不是沒了脾氣,而是很多事已經無法讓你生氣,有坐下來的素養,也有掀桌子的能力,似水流年.
1900/1/1 0:00:00比特幣的VWAP指標是成交量加權平均價格,是實現價格的替代工具,用于確定市場為每個單位支付的平均價格.
1900/1/1 0:00:00金生有幣:12.22大餅凌晨行情分析與操作建議操作合約,不要盲目進場,控制好倉位風險,帶好止損,每天操作總結,一天會比一天更好,有套單的朋友,想學習的朋友,希望我能幫到你.
1900/1/1 0:00:00