近來以太坊上最火爆的領域就是DeFi。主要的DeFi應用包括ERC20代幣的借貸、質押和交易。若想在Uniswap、Aave和Yearn等DeFi協議上使用ERC20代幣,你需要授權dApp來使用這些代幣。這就是所謂的?*ERC20授權*?。這些授權對于DeFi平臺的運作來說必不可少,但是如果不加以控制,那將是非常危險的。
ERC20授權的必要性
有了以太坊上的原生代幣ETH,你就可以將ETH發送至該智能合約,同時調用智能合約功能。這是通過所謂的可支付函數實現的。但是,由于ERC20代幣本身就是智能合約,你無法通過直接將代幣發送到智能合約來調用其函數。
因此,ERC20標準讓智能合約使用?transferFrom()?函數代表用戶轉移代幣。為此,用戶需要允許智能合約代表他們轉移代幣。
這樣一來,用戶就可以將代幣“存入”智能合約,同時智能合約會更新其狀態來顯示這筆存款。相反,如果你將ERC20代幣發送至該智能合約,則合約不會更新其狀態。
Optimism Bedrock升級已啟動:6月7日消息,Optimism宣布已開始啟動主網Bedrock升級,Optimism Bedrock會在降低交易費用、縮短系統延遲、提高節點性能等方面進行升級。
此前報道,Optimism表示,升級將需要主網停機2 - 4小時,停機期間將無法進行交易、充值和提款。[2023/6/7 21:20:31]
例如,如果你將DAI“存入”Aave來賺取利息,你首先要允許Aave合約從你的錢包中取出一些DAI。然后你調用Aave合約里的函數,指定你想要存入的DAI的數量。然后,Aave合約使用?transferFrom()?函數從你的錢包中取出相應數量的DAI,并將同等數量的aDAI代幣記入你的賬戶。
無限ERC20授權的危害
將特定數量的ERC20代幣存入合約時,你就可以選擇將授權額設成這個數量。然而,許多應用會向用戶要求無限授權。
《富爸爸窮爸爸》作者:加息將使股市和美元崩盤:金色財經報道,《富爸爸窮爸爸》作者Robert Kiyosaki對全球經濟狀況發出警告,稱美國聯邦儲備委員會的決定是即將到來的市場崩盤的催化劑。
Kiyosaki批評美聯儲加息的舉動,稱這將導致股票、債券、房地產和美元的下跌,同時警告下一次金融危機將源于衍生品市場。在這方面,清崎堅持認為美元可能會崩潰并失去其作為世界儲備貨幣的地位。他建議比特幣以及黃金和白銀等貴金屬是抵御不斷上升的通脹壓力的寶貴資產。[2023/3/27 13:27:55]
這會帶來極好的用戶體驗,因為用戶不需要在每次存款時重新授權。設置無限授權后,用戶只需要同意一次,之后存款時就不會再重復這一過程。
但是,該設置存在很大的弊端。眾所周知,即使是成熟的項目,也有可能存在漏洞。一旦你給了這些平臺無限授權,不只是你的存款會陷入風險之中,你的錢包中的代幣也是如此。
DWF Labs向Synthetix投資2000萬美元:金色財經報道,做市商和投資公司 DWF Labs 正在向鏈上流動性和衍生品交易協議 Synthetix 投資 2000 萬美元。Synthetix 財政部委員會周一通過電子郵件宣布,DWF Labs 于 3 月 16 日購買了價值 1500 萬美元的 Synthetix 原生代幣 SNX,隨后又購買了 500 萬美元。Synthetix 的永續合約將被整合到 DWF Labs 的交易業務中,目的是顯著增加協議的交易量。[2023/3/20 13:14:58]
在Devcon5上,我第一次與PaulBerg談到了這個問題。在這次大會上,Paul就本文所討論的問題做了陳述。在開發Sablier時,Paul在他的智能合約中發現了一個漏洞,不僅所有存入該智能合約的DAI有風險,所有測試者的錢包中的DAI也是如此!
Web3初創公司Nillion宣布完成2000萬美元融資:12月12日消息,Web3初創公司Nillion宣布完成2000萬美元融資,Distributed Global領投,AU21、Big Brain Holdings、Chapter One、GSR、HashKey、OP Crypto和SALT Fund等參投。
Nillion旨在建立一個不基于區塊鏈的去中心化網絡,并提供一個全新的互聯網基礎設施以保護存儲和數據計算,讓企業和競爭對手可以在不傳遞關鍵信息的情況下進行合作。另外,該公司早期文件透露未來將會發行Token。(Tech Crunch)[2022/12/12 21:39:39]
實際風險
長期以來,無限授權的風險主要是理論上的。在Paul所開發的Sablier平臺正式上線之前,這個漏洞就被修復了。當時,還沒有出現利用ERC20授權的攻擊,但是只要平臺繼續要求無限授權,遲早會出狀況。
特斯拉投資者Ross Gerber:每個人都期待比特幣每三年漲10倍,這并不現實:6月24日消息,知名特斯拉投資者Ross Gerber表示,比特幣價格在過去兩年中翻了一番。因此每個人都期待比特幣應該每三年漲10倍,“這并不是一個現實的回報預期”。
此前消息,Ross Gerber的財富管理公司Gerber Kawasaki于3月38日開始通過Gemini交易平臺為客戶提供加密資產管理業務。[2022/6/24 1:29:54]
去年,我們已經看到了幾起利用ERC20授權的攻擊事件。
意外漏洞
今年早些時候,Bancor出現了一個漏洞,危及用戶資金。執行ERC20?transferFrom()?函數的函數變成了public屬性,因此任何人都可以執行該函數,并取走用戶錢包中的資金。Bancor執行了一次白帽黑客攻擊,控制了損失,并將資金還給了用戶。
惡意利用漏洞
除了Bancor的意外漏洞之外,還有很多惡意利用漏洞的情況。在今年夏天的DeFi熱潮中,人們都在為各種以食物命名的DeFi分叉產品狂歡,其中也包括一些騙局。即使人們為了規避風險只存入少量代幣,他們錢包中的代幣也會因為無限授權而陷入風險。
ZenGo就在一個名為UniCats的項目中發現了可利用漏洞。人們可以存入Uniswap代幣,然后通過流動性挖礦獲得MEOW代幣。但是如果要存款,用戶必須提供?無限授權。如果項目遭到攻擊,攻擊者不僅可以拿走項目的存款,還可以拿走用戶錢包內的所有UNI代幣。
另一個例子是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授權的漏洞事件,人們對這個問題的認識比一年前深得多。作為一名用戶,你可以采取一些措施來降低上文所述風險,包括定期查看并撤銷多余授權。
Aave、TrueFi、TellerFinance、Aegis無抵押借貸模式詳解。?當前大部分DeFi借貸平臺以超額抵押的方式運行,這意味著,你想要借出來一千塊錢,就得先抵押價值一千八百塊的ET.
1900/1/1 0:00:00-黃金行情分析: 周一早間開盤黃金自1881一線直線拉高并破新高,短線強勢延續,消息面支撐黃金上漲,金價上周連續反彈走高,歐盤跳水形成吞沒,跌破近幾日的低點.
1900/1/1 0:00:00各位朋友們,你們好,我是老山說幣。在這個市場,如果你處于一直虧損的狀態,不如換個環境。也許正是你的一次改變,會給你帶來不一樣的結果.
1900/1/1 0:00:00別人擁有的,你不必羨慕,只要努力,你也會擁有;自己擁有的,你不必炫耀,因為別人也在奮斗,也會擁有.
1900/1/1 0:00:00中央經濟工作會議提出,金融創新必須在審慎監管的前提下進行。中央經濟工作會議關于金融創新的這一表述,強調了金融發展、金融穩定與金融安全之間必須均衡、協調,實現平衡.
1900/1/1 0:00:00上周六BTC在22456附近開始拉升,到達23230附近之后開始震蕩回落,在回踩低點22758之后開始第二波拉升,高點24190一線.
1900/1/1 0:00:00