最近各種通過閃電貸攻擊在區塊鏈中套利的新聞將閃電貸送上了熱門話題,2021年初,YearnFinance受到閃電貸款攻擊,我們查看這個交易,發現一筆交易中,居然有如此多的騷操作,完全刷新了筆者對區塊鏈和智能合約的認識。不禁開始思考,為什么黑客一開始可以從dYdX借款,又將借到的虛擬貨幣抵押到Compound,最后一系列操作完成后還款到dYdX,這期間發生了161次代幣轉移,這怎么的也要一杯茶的時間吧。然而事實上,閃電貸攻擊快得就是這么不講道理。這筆交易的鏈接:https://cn.etherscan.com/tx/0x6dc268706818d1e6503739950abc5ba2211fc6b451e54244da7b1e226b12e027接下來我們開始一步一步的分析,一筆智能合約交易是如何完成在借貸平臺和中心化交易所之間的所有操作。智能合約究竟存儲在哪里
ExchangeBetweenPools合約遭到閃電貸攻擊:金色財經消息,據CertiK監測,ExchangeBetweenPools合約遭到閃電貸攻擊。攻擊者通過調用公共的'doExchange()'函數來操縱USDC價格,并套利58.5枚ETH(約11萬美元)。[2023/5/31 11:50:25]
這里用以太坊的go語言客戶端為例,以太坊客戶端在收到創建智能合約的交易以后,會使用Hash算法為智能合約生成一個合約地址,在這個合約地址下存儲智能合約的代碼與合約中的數據。智能合約會被存儲在客戶端的數據庫中與這個地址對應,這個數據庫叫做StateDB。StateDB記錄了區塊鏈上所有的地址余額、Nonce、狀態等信息。以太坊客戶端可以通過合約地址,將合約的代碼加載到內存中進行執行。最終這些數據會被持久化到LevelDB中,存儲在以太坊客戶端的磁盤上。通過StateDB實現的這些接口,客戶端通過GetCode這個方法,可以獲取到智能合約地址下對應的代碼。
幣安智能鏈PancakeBunny回應代幣閃崩事件:遭到閃電貸攻擊:5月20日消息,幣安智能鏈(BSC)DeFi收益聚合器PancakeBunny(BUNNY)針對代幣閃崩事件回應稱,遭到來自外部開發人員的閃電貸攻擊,黑客使用PancakeSwap借入了大量BNB,之后繼續操縱USDT/BNB以及BUNNY/BNB價格,從而獲得大量BUNNY并進行拋售,導致BUNNY價格閃崩,最后黑客通過PancakeSwap換回BNB。[2021/5/20 22:23:44]
慢霧發布Value DeFi協議閃電貸攻擊簡要分析:據慢霧區消息,Value DeFi遭遇閃電貸攻擊的分析如下:
1.攻擊者先從Aave中借出8萬個ETH;
2.攻擊者使用8萬個ETH在Uniswap WETH/DAI池中用閃電貸借出大量DAI和在Uniswap WETH/DAI兌換大量USDT;
3.用戶調用ValueMultiVaultBank合約的deposit合約使用第2步中小部分DAI進行充值,該合約中一共有3種資產,分別是3CRV、bCRV、和cCRV。該合約在鑄幣時會將bCRV, cCRV轉換成以3CRV進行計價,轉換完成后,Value Defi合約根據總的3CRV價值和攻擊者充值的DAI數量計算mVUSD鑄幣的數量;
4.攻擊者在Curve DAI/USDC/USDT池先使用第二步中剩余的大部分DAI和USDT兌換USDC,拉高USDC/3CRV的價格;
5.攻擊者發起3CRV提現,這時會先將合約中的bCRV, cCRV轉換成以3CRV計價,由于USDC/3CRV價格已被拉高,導致bCRV, cCRV能換算成更多的3CRV;
6.攻擊者使用3CRV換回DAI,并在Uniswap中兌換回ETH,然后歸還Aave的閃電貸 。
總結:由于 Value Defi 合約在鑄幣過程中將合約資產轉換成 3CRV 時依賴 Curve DAI/USDC/USDT 池 中 USDC/3CRV的價格,導致攻擊者可以通過操控 Curve DAI/USDC/USDT 池 中 USDC/3CRV 的價格來操控 mVUSD/3CRV 的價值,從而獲利。[2020/11/15 20:52:09]
客戶端完成區塊同步后,從以太坊創世塊開始創建的所有賬戶地址信息與智能合約地址信息都會同步到這個StateDB中,因此一個合格的以太坊礦工客戶端可以直接在本地加載所有的合約代碼,是不需要跨網絡和客戶端進行調用的。智能合約如何執行
Uniswap昨日被用來進行閃電貸攻擊,共進行約18億美元的閃電貸交易:昨日,Uniswap被用來進行閃電貸攻擊,共進行了約18億美元閃電貸交易。Uniswap官方網站顯示,過去24小時,Uniswap的交易量達21.8億美元,但據DeBank數據顯示,Uniswap上除閃電貸之外的實際交易量約為3.8億美元,這是因為Uniswap將閃電貸也納入交易額中。注,在Uniswap上使用閃電貸需要支付0.3%的交易費用。[2020/10/27]
智能合約代碼是通過以太坊客戶端內部的一個叫作EVM的虛擬機進行執行的,以太坊的虛擬機定義了各種的操作指令,每一個指令對應了一個處理函數,以及這個指令需要消耗的礦工費。
以太坊智能合約是按照實際指令執行的消耗來計算gas的,不同復雜度的指令消耗的gas也有差別,越復雜的智能合約指令,消耗的gas越多。查看這筆交易,我們發現礦工費高達3**.**37117716ETH,消耗了8644044gas,占據一個區塊容量的74.3%。夢想著可以靠閃電貸空手套白狼的朋友們,還是先算一算礦工費要緊。智能合約中是如何調用另一個智能合約的
在智能合約中,我們調用另一個合約的代碼,最終會被編譯成一個叫作CALL的EVM虛擬機指令,它的基礎gas費用是40gas,實際產生的礦工費根據另一個合約執行的指令來計費。
查看opCall這個方法的實現,發現,調用另一個智能合約與當前智能合約同樣都是通過EVM虛擬機的Call方法完成的。
因此,我們可以發現,其實智能合約的執行,以及智能合約之間的調用,都是在礦工的客戶端執行的,并沒有進行跨客戶端與網絡調用,交易失敗也是在礦工的客戶端進行回滾,因此閃電貸攻擊才可以如此快的在一筆交易中完成所有的操作。智能合約某一步執行失敗會怎么樣
StateDB提供了兩個方法,分別是Snapshot與RevertToSnapshot,一個用于對StateDB進行快照,另一個用于恢復快照。在執行交易前,StateDB會調用Snapshot方法進行快照,如果交易執行到某一步發現錯誤,則會調用RevertToSnapshot進行回滾。因此閃電貸攻擊可以實現如果在任何一步出現錯誤,就當從來沒有從借貸平臺借過一樣,所有狀態回滾到交易執行之前,當然交易失敗時消耗的礦工費還是得出。
總結
閃電貸之所以能夠在一筆交易中完成各種虛擬資產的交易,實際上都是通過調用去中心化交易所和各種去中心化借貸平臺的智能合約來完成的,這些調用只需要在礦工客戶端本地即可完成。這筆交易會在收到交易廣播的所有具備打包資格的以太坊客戶端中執行,誰先執行完成,并打包到下一個區塊中,誰就能贏得這筆礦工費。
Tags:CRVUSD3CRVSWAPcrv幣值得長期持有嗎USDGLO價格3crv幣怎么賣DoveSwap Finance
Odaily星球日報譯者|Moni 對于EtherCards來說,上周真的很瘋狂!首先,EtherCards為所有“鉆石手”們打造了PristineStatus.
1900/1/1 0:00:00原地址:https://blog.injectiveprotocol.com/injective-governance-launch-spot-markets/我們很高興啟動Injective治.
1900/1/1 0:00:00編者按:本文來自巴比特資訊,作者:longcrypto,星球日報經授權發布。DEX作為DeFi世界中發展最成熟的賽道,除了提供最基礎的交易功能外,正涌現出更多玩法,比如以太坊上鎖倉量第二高的DE.
1900/1/1 0:00:00近日,FIL的一路飛漲引起了市場的關注。歐易OKEx作為最早上線FIL永續合約的數字資產平臺,一直關注FIL的實際運營與未來發展情況.
1900/1/1 0:00:00作者:LatticeX基金會自2016年隱私計算概念被提出以來,歷經五年的發展,在各國對數據隱私保護的相關法律法規的推動下,加上全球疫情導致的人類社會數字化程度的日益加深.
1900/1/1 0:00:00本輪行情走到現在,有很多方面和我當初的構想都有很大的差別。如果很早就讀過我文章的朋友可能會記得,我在前年和去年年初曾經估算,本輪行情中比特幣的峰值大概會在2萬至5萬美元.
1900/1/1 0:00:00