什么是閃電貸?閃電貸攻擊是什么?一文詳解閃電貸!閃電貸可以讓我們在無需 抵押品的情況下從指定的智能合約池中借入任何可用的資產金額。閃電貸是DeFi中有用的一個構件(building block),因為它可以用于套利、交換抵押品和自我清算等。閃電貸款雖然最初是由Marble協議引入的,但由Aave和dYdX普及。
我給大家詳細介紹閃電貸,需要的朋友一起看看吧!
閃電貸是去中心化金融世界中一種相對較新的無擔保 貸款。最初由Aave于 2020 年初率先推出,此后它越來越受歡迎,并在許多借貸協議中可用。
許多加密行業專家已成為閃電貸的真誠擁護者,因為它們提供了創新的套利方式、執行快速交易,并提供了許多以前在傳統金融中無法實現的其他新穎功能。
我們大多數人都熟悉傳統貸款,貸方將錢貸給借款人,然后在固定的時間段內以固定的溢價或除本金之外的利息償還。閃貸具有相同的基本原理,但包括幾個獨特的特征:
這是一種無抵押 貸款,這意味著借款人不需要用任何資產或存款來獲得貸款。此外,與傳統的無抵押 貸款不同,沒有信用檢查流程。
所有閃貸都是通過區塊鏈上的智能合約完成的,并且規定如果借款人沒有在單個區塊鏈交易中歸還資金,則貸款過程將被逆轉,就好像它從未發生過一樣。這個關鍵的區別就是為什么借款人能夠在沒有任何抵押品或信用檢查的情況下獲得快速貸款,因為它消除了貸方的任何風險。
貸款過程是即時的,因此一旦貸款延期,借款人必須調用其他智能合約來利用閃貸嘗試執行幾乎即時的交易,然后在單塊交易結束前將資金返還,通常在幾秒鐘內。
鑒于貸方的資本風險為零,借款人沒有抵押或信用檢查義務,因此自去年以來,閃電貸在整個DeFi中增長如此迅速也就不足為奇了。
讓我們看幾個閃貸用例。在第一種情況下,假設用戶借用了 DAI,使用ETH持有量作為抵押。如果 ETH 的價格開始下跌,抵押品的價值就會下降,用戶將面臨貸款在某個時候被清算的威脅。
為了解決這種情況,用戶可以利用閃貸。通過此閃貸功能,借款人可以將波動的 ETH 換成穩定幣。抵押品的價值立即變得穩定,從而消除了任何清算范圍。
雖然此用例屬于抵押品交換類別,但您也可以使用閃電貸來換出您的債務。考慮前面的示例,您在 DAI 中借入了資金。
如果對 DAI 貸款的需求突然增加,DAI 的利率將比你之前必須支付的利率增加更多。為了避免支付更多的利息,您可以將 DAI 換成任何其他借入較少的貨幣,從而保護您的投資資本。
原則上,閃貸允許用戶隨心所欲地借貸,而無需任何抵押。因此,借款人可以將價值數千美元甚至數十萬美元的以太幣作為貸款,而無需任何抵押品或 KYC 流程。
這導致了閃電貸攻擊的興起,其中惡意代理人拿出大筆閃電貸,然后利用這些資金來操縱市場并利用各種 DeFi 協議以獲取可觀的利潤,通常以犧牲普通投資者和平臺為代價用戶。
這些攻擊者通過一系列易受攻擊的鏈上協議將借入的閃電貸款金額串連起來,以在償還貸款之前獲取數十萬美元的被盜資產。
過去一年發生了多次閃貸攻擊,而且這些攻擊的頻率似乎還在增加。
我們將詳細查看其中的一些,以更好地了解該現象。
第一次閃貸攻擊發生在 2020 年,借款人使用 DeFi 借貸協議dYdX獲得了 ETH 閃貸。然后,他們將貸款分成兩部分,并將其發送到貸款平臺Compound和 Fulcrum。
在 Fulcrum 上,部分閃電貸被用來做空 ETH 對 WBTC。Fulcrum 繼續通過另一個稱為Kyber的 DeFi 協議從流行的去中心化交易所Uniswap手中收購了 WBTC。
由于 Uniswap 的 WBTC 流動性較低,因此資產價格上漲。結果,Fulcrum 支付了比平時更高的價格來收購 WBTC。
與此同時,借款人還從 Compound 處獲得了一筆 WBTC 貸款,并在 Uniswap 上進行了交易,WBTC 的價格已經上漲。
通過操縱多個協議并人為地提高 WBTC 的價格,借款人獲得了可觀的利潤——不僅償還了他的 ETH 貸款,而且還賺取了超額的 ETH 利潤。
雖然借款人獲得了顯著收益,但 Fulcrum 被欺騙以遠高于市場價格的價格收購了 WBTC。
在另一次單獨的閃貸攻擊中,攻擊者再次利用并操縱了構建 Fulcrum 的 bZX 協議。首先,借款人拿走了他的一部分 ETH 貸款,并在 Kyber 上下了一個大訂單購買 sUSD。
智能合約識別貨幣及其價格,但它們不理解穩定貨幣與美元掛鉤。大訂單導致 sUSD 的價格飆升,每只價格飆升至 2 美元,這與穩定幣應該能夠做的事情的基礎背道而馳。
由于 sUSD 的購買力翻了一番,借款人利用它借入了比他之前所借的更多的 ETH 貸款。隨后,他還清了第一筆 ETH 貸款,并帶著剩余的錢跑路了。
在這種情況下,用戶欺騙 Kyber 相信 sUSD 的定價可能遠高于 1 美元。
在第一次攻擊中,攻擊者結合 dYdX 閃電貸 和 Compound 中的貸款,對 bZx 實施攻擊,主要步驟為:
dydx 借了 10000 個 ETH到 Compound 用 5500 ETH 借了 112 個 WBTC 準備拋售到 Fulcrum(基于 bZx 協議)用 1300 個 ETH 開 5 倍杠桿做空 WBTC(空單換了 51.345576 個 WBTC,而這里換取的 BTC 是通過 Kyber Network 來獲取價格的,然而 Kyber Network 最終還是調用 Uniswap 來獲取價格,5 倍杠桿開完后兌換回來的 51 個 WBTC 實際上是拉高了 UniSwap 中 WBTC 對 ETH 的價格,由于流動性較低,導致 WBTC 上漲偏離市場價格很多)。用從 Compound 借來的 112 個 WBTC 來在 UniSwap 中賣掉,由于第 3 步 已經把 WBTC 價格已經拉高了,所以這個時候出售可以獲得更多 ETH ,同時 WBTC 價格回調,又讓第 3 步做空獲利。歸還 dydx 中的借貸,獲得豐厚的利潤。也許看起來費勁,甚至可能很難跟上。最重要的是,攻擊者利用五種不同的 DeFi 協議來操縱市場。不可思議的是,這一切都發生在原閃電貸被確認單筆交易中。
你確定問題出在哪里了嗎?這是在 Fulcrum 使用的 bZx 協議中。通過市場被 操縱,攻擊者能夠欺騙協議,使其認為 WBTC 的價值比實際價值高很多。
說到Ethereum,每一個常見的操作,如發送ETH、發送ERC20代幣、與智能合約交互等都是在交易范圍內執行的。
交易被分組并包含在Ethereum區塊中。我們可以很方便地在任意的區塊鏈瀏覽器(例如Etherscan)上看到包含在特定區塊中的所有交易。
一個Ethereum交易可以包含多個步驟,例如,在Compound上提供ETH并借出DAI,在Curve上將借出的DAI的一半換成USDC,在Uniswap上為DAI/USDC池提供流動性,所有這些都在一個Ethereum交易中完成。當然,如果其中任何一個步驟導致錯誤,整個交易將被回滾,所有步驟都不會發生。需要注意的是,即使合約執行失敗,我們還是要付gas費的。
單筆交易的步驟數只受gas費的限制,所以雖然理論上,你可以創建一個有成千上萬步驟的有效交,但現實中可能會由于最大gas成本的限制,交易會被拒絕。
閃電貸現在,我們來深入了解一下閃電貸。
首先,執行閃電貸最重要的是找到一個閃電貸提供商。Aave或dYdX等項目開發了智能合約,允許DeFi用戶從指定的池子中借到不同的幣,前提條件是在同一個以太坊交易內償還。使用閃貸通常有固定的成本。例如,Aave合約要求借款人歸還初始金額+0.09%的借款金額。0.09%這筆費用將會分給存款人和集成商,前者給出了可供借貸的資金,后者為使用Aave的閃電貸API提供便利。這筆費用的一部分也會被換成AAVE代幣。
一旦從借貸池中借到金額,它就可以用于其他套利操作,只要在不同步驟所處的區塊鏈末端快速償還貸款。
由于貸款必須在一次交易內償還,所以不存在借款人不償還借款的風險。唯一的風險就是一直存在的智能合約和平臺風險。
閃電貸越來越受歡迎,有的用戶在Aave上的借款金額高達14M DAI。
讓我們想象一下,Uniswap和Curve之間的DAI/USDC池存在價格差異。你可以在Curve上用1個DAI換取1個USDC,但在Uniswap上您只需要0.99個DAI就可以買到1個USDC。現在你可以嘗試執行以下套利:
1.通過閃電貸向Aave借100,000 DAI。 2.在Uniswap上將100,000 DAI換成USDC,收到101,010 USDC。 3.在Curve上將101,010 USDC換成101,010 DAI 4.償還初始100,000 DAI + 0.09%的費用=100,090美元 5.利潤 920 DAI
是不是看起來很好的樣子?但我們必須考慮到以下幾個因素:
網絡費用--多步驟的套利交易可能成本不菲,在計算利潤時,一定要將交易費用考慮在內。價格滑點-- 一定要計算你在執行訂單時將會遇到多少價格滑點(提示:這取決于交易額的大小和流動性池的流動性)。Frontrunning-- 很有可能別人會發現同樣的機會,并且會設法搶先你一步行動。最重要的是,監控mempool的機器人可以發現你的盈利套利機會,并以更高的gas費發送相同的交易把你的盈利機會“偷走”。
假設你用ETH作為抵押品從Compound借了DAI。你可以通過以下方式將抵押品從ETH換成例如BAT:
1.發起一筆閃電貸借出DAI 2.用借來的DAI償還Compound中的貸款 3.提取你的ETH 4.在Uniswap上將你的ETH換成BAT 5.提供BAT作為Compound的抵押品 6.以你的BAT抵押品借出DAI 7.用借來的DAI+費用償還步驟1的閃電貸
通過這樣一輪 操作,額外付出借款金額的0.09%就能成功把你的抵押品從ETH換成了BAT
想象一下下面的場景:你在Compound上有一筆以ETH作為抵押借出DAI的貸款。ETH價格不斷下跌,已經接近清算水平。你也沒有或不想存入更多的ETH來降低你的清算水平,你也沒有償還貸款所需的DAI。現在,與其讓MakerDAO合約清算你的抵押品并向你收取清算費,不如采取以下步驟:
1.發起閃電貸,借出一筆DAI,金額是你在Compound上的欠債 2.償還Compound上的DAI貸款,提取ETH 3.將足夠的ETH換成DAI,以償還步驟1的閃電貸+費用 4.拿住你剩下的ETH
這就是閃電貸最常見的3個用例,閃電貸的概念還比較新,未來還有很多應用例子有待發掘。
閃存貸和DeFi黑客閃電貸,與加密技術類似,既可以用于好的方面,也可以用于壞的方面。閃電貸被大量應用在defi攻擊中,黑客的獲利得到放大,因為它們不需要任何前期資金。
最著名的黑客攻擊之一是BzX事件,在這次的攻擊中,閃電貸被用來操縱Uniswap的預言機價格。其實問題不在于使用閃貸,而是在使用Uniswap作為價格預言機時的一些不正確的假設。
這樣的事件會讓有的用戶遭受損失,但另一名,這也讓整個DeFi生態系統得到了加強,使其在未來變得越來越反脆弱。
雖然閃電貸主要由開發者使用,但也可以在不需要敲代碼的情況下使用它,Collateralswap、Defisaver或Furucombo等項目可以幫助我們實現這一點。
這一周對 bZx 來說不是個好星期。僅僅過了幾天,它又遭到了襲擊。黑客借了一筆閃電貸,并將部分貸款轉化為 穩定幣 (sUSD)。你可能已經知道,穩定幣跟蹤法幣美元的價格。
盡管名字很好聽,但智能合約并沒有那么智能。他們不知道穩定幣的成本是多少。所以當攻擊者下巨單買入 sUSD(使用借來的 ETH)時,Kyber 上的價格翻了一倍。
bZx 認為 sUSD 值 2 美元而不是 1 美元,于是攻擊者在 bZx 上進行了比正常情況下更大的 ETH 貸款,因為他們的 1 美元幣有 2 美元的購買力。最后,攻擊者償還了最初的閃電貸款,并帶著剩下的錢跑了。
不管是對是錯,這種特殊的攻擊載體令人印象深刻,如果只是因為它展示了攻擊者可以走多遠。很容易回過頭來看他們使用的方法,說 bZx 應該使用不同的價格預言機來獲取其數據。但事實上,這種”搶 劫“的成本非常低:它不需要攻擊者投入太多。沒有任何經濟上的成本能阻止他們。
傳統上,想要操縱市場的個人或團體需要巨大數量的加密貨幣。但有了閃電貸,任何人都可以在幾秒鐘內成為”巨鯨“。而且,正如我們所看到的,幾秒鐘的時間,你就可以把價值幾十萬美金的以太幣提走。
從好的方面看,其他的協議會從這兩次攻擊中吸取教訓。現在大家都知道了, 也許這樣的預言機[11]有一些漏洞,從第二次攻擊中可以看出, 仍然需要大量的工作來消除這些漏洞。
總而言之,這并不是閃電貸的毛病,具體來說,被利用的漏洞是在其他協議中,而閃電貸只是為攻擊提供了資金。這種形式的 DeFi 貸款在未來可能會有很多有趣的應用案例,特別是考慮到借款人和貸款人的低風險。
由于這些攻擊利用DEX相信它們自己的或單一的喂價,可以通過為貨幣下大筆訂單來操縱這些信息,因此謹慎地利用去中心化定價預言機來確定資產的正確價格。
dApp 可以通過多種方式保護自己免受閃電貸款攻擊,其中一些最常見的是:
去中心化預言機——最安全的選擇無疑是使用去中心化預言機,利用多個來源找出“真實價格”。一些去中心化的預言機,例如我們自己的 Umbrella Network,更進一步,通過將數據提交到區塊鏈來確保數據的可靠性。
這意味著,如果不法分子試圖對從去中心化預言機獲取其提要的 dapp 進行快速攻擊,價格操縱將失敗,交易時間將過去,并且整個交易將逆轉——未經處理。
高頻定價更新——這是紙面上的一個簡單修復,但在實踐中可能會更昂貴。在這里,我們只是增加了流動性池向預言機查詢新價格的次數的頻率。邏輯是,隨著更新次數的增加,池中代幣的價格會更新得更快,并使價格操縱無效。
時間加權平均定價——通常的做法是使用平均值(或最近的中值)來計算流動性池中的價格。但是,TWAP 建議使用跨多個區塊的平均價格。
這有助于抵消閃貸攻擊,因為整個攻擊交易序列需要在同一個區塊內處理,但如果不操縱整個區塊鏈就無法操縱 TWAP。
防止此類攻擊的另一個戰略建議是在交易周期中使用兩個交易塊而不是一個。
可以想象,這會使過程更加復雜,并且對攻擊者來說是一種勸阻。然而,它也有對 DeFi UI 造成損害的風險。
一些協議還集成了閃貸攻擊檢測工具,有助于及時識別、快速響應和中和。然而,除非沒有足夠的避免攻擊的例子,否則很難確認這些工具的有效性。
DeFi 仍然是一個新興領域。它的運作方式正在經歷許多創新和快速的根本轉變。快速的變化,即使是創新的,也常常導致忽視極度脆弱的群體。
攻擊者將繼續探索存在的漏洞,但隨著每次事件的發生,隨著整個生態系統的發展,預防機制也將變得更加強大。
雖然有一些方法可以幫助降低風險,例如使用去中心化預言機、更高頻率的定價更新或 TWAP 策略,但隨著整個 DeFi 行業采用更有效的方法,閃貸不再成為潛在的剝削工具還需要一些時間來對抗它。
閃貸必須在同一區塊鏈交易中進行借貸和快速償還。
Ethereum等區塊鏈上交易的概念與計算機科學中對交易的傳統定義一致。
交易一個交易代表了一組必須以“原子方式”執行的操作,原子方式指的是要么所有的步驟都被執行,要么交易被回滾,一個步驟都不會被執行。
讓我們以一個簡單的數據庫交易為例。熟悉這一概念的讀者可以跳過這個部分。
想象有一個代表用戶賬戶余額的數據庫表
愛麗絲賬戶的余額是1000美元,鮑勃的余額是500美元。愛麗絲給鮑勃發了500美元。在這種情況下,我們要從Alice的余額中減去500美元,并在Bob的余額中增加500美元。數據庫更新報表應這樣寫:
如果第一個更新執行了,但第二個更新因為某些原因失敗了,會怎么樣?(也許id=2在系統中并不存在,但我們犯了一個錯誤,以為這是Bob的id)
如果發生這種情況,我們就會發現出現錯誤的結果:Alice的余額為500美元,Bob的余額也等于500美元。
為了避免這樣的情況,我們必須使用transactions。
在上面的情況下,在SQL中,我們只需要用BEGIN;和COMMIT;關鍵字來打包這兩條語句。一旦這樣做,要么這兩條語句都正確執行了,要么都沒有執行,保證Alice和Bob的余額不受影響,我們就可以放心了。這就是我們常說的原子化交易,如果不同的步驟是同一個交易的一部分,它們是不可分割的,要么全有,要么全無。
相關閱讀推薦
最新資訊
最新游戲
虛擬家庭3(Virtual Families 3)
查看地球末日:生存Last Day on Earth
查看磚塊破壞者(Many Bricks)
查看榮耀文明官網版
查看模擬山羊:太空廢物2025正版
查看極限摩托3(Trial Xtreme 3)
查看帝國征服者(兌換碼)
查看問劍長生(內附兌換碼)
查看戰爭時代2內置作弊菜單版 無敵版v1.0.5
查看熱門文章
熱門游戲
星球重啟 v1.1.11安卓最新版
查看極無雙2 v1.29.60手游版
查看弓箭傳說2手游 v1.1.0
查看重裝上陣網易官方版 v0.100.352
查看出發吧麥芬測試服 v.1.2
查看獸化實驗室(Changed) v1.0
查看狂扁小豆丁去廣告版 v1.1.2
查看王國紀元 v2.167官方正版
查看夢境食旅官方正版 v1.0.5.6
查看射箭沖突 v0.32.0安卓版
查看洛伊的移動要塞手機版 v.1.5.08
查看爆炒江湖 v1.42中文版
查看龍與劍 V1.1.1最新版
查看天道洪荒模擬器 v4.1無限靈氣/本源
查看龍之劍官方版 v0.1.3最新版
查看致命槍殺中文版 v12.0破解版
查看皇帝成長計劃2 v2.2.2手機版
查看開心酷跑安卓版 v4.6.5官方版
查看