最近各種通過閃電貸攻擊在區塊鏈中套利的新聞將閃電貸送上了熱門話題,2021年初,YearnFinance受到閃電貸款攻擊,我們查看這個交易,發現一筆交易中,居然有如此多的騷操作,完全刷新了筆者對區塊鏈和智能合約的認識。不禁開始思考,為什么黑客一開始可以從dYdX借款,又將借到的虛擬貨幣抵押到Compound,最后一系列操作完成后還款到dYdX,這期間發生了161次代幣轉移,這怎么的也要一杯茶的時間吧。然而事實上,閃電貸攻擊快得就是這么不講道理。這筆交易的鏈接:https://cn.etherscan.com/tx/0x6dc268706818d1e6503739950abc5ba2211fc6b451e54244da7b1e226b12e027接下來我們開始一步一步的分析,一筆智能合約交易是如何完成在借貸平臺和中心化交易所之間的所有操作。智能合約究竟存儲在哪里
Ara項目遭到閃電貸攻擊:金色財經報道,據CertiK官方推特發布消息稱,Ara項目遭到閃電貸攻擊。攻擊者疑似獲利約12.4萬美元的BUSD。攻擊者地址:0xF84efA8a9F7E68855CF17EAaC9c2f97A9d131366。[2023/6/19 21:46:43]
這里用以太坊的go語言客戶端為例,以太坊客戶端在收到創建智能合約的交易以后,會使用Hash算法為智能合約生成一個合約地址,在這個合約地址下存儲智能合約的代碼與合約中的數據。智能合約會被存儲在客戶端的數據庫中與這個地址對應,這個數據庫叫做StateDB。StateDB記錄了區塊鏈上所有的地址余額、Nonce、狀態等信息。以太坊客戶端可以通過合約地址,將合約的代碼加載到內存中進行執行。最終這些數據會被持久化到LevelDB中,存儲在以太坊客戶端的磁盤上。通過StateDB實現的這些接口,客戶端通過GetCode這個方法,可以獲取到智能合約地址下對應的代碼。
ThreeBody項目遭受閃電貸攻擊,官方社交媒體賬號早已不活躍:1月12日消息,據CertiK監測,ThreeBody項目遭受一次閃電貸攻擊,被盜資金總額約為3000美元。自2021年11月以來,該項目在推特上一直不活躍,官方Telegram也被刪除。
BSC合約地址為0x24c78E5ddf7576F6e0bC6BE9C4Db0FB043E34624。[2023/1/12 11:08:01]
客戶端完成區塊同步后,從以太坊創世塊開始創建的所有賬戶地址信息與智能合約地址信息都會同步到這個StateDB中,因此一個合格的以太坊礦工客戶端可以直接在本地加載所有的合約代碼,是不需要跨網絡和客戶端進行調用的。智能合約如何執行
DeFi收益聚合器Yeld.finance的DAI池遭到閃電貸攻擊 損失16萬DAI:2月27日消息,DeFi收益聚合器Yeld.finance的DAI池遭到閃電貸攻擊,損失16萬DAI,涉及10余名用戶。Tether、TrueUSD和USDC均未受到影響。據介紹,Yeld的問題與前期Yearn.Finance的DAI池漏洞問題一致。官方同時表示,受影響的使用者將得到代幣償還,代幣來自DAI池的收入獎勵,以彌補他們的部分損失。[2021/2/27 17:59:06]
智能合約代碼是通過以太坊客戶端內部的一個叫作EVM的虛擬機進行執行的,以太坊的虛擬機定義了各種的操作指令,每一個指令對應了一個處理函數,以及這個指令需要消耗的礦工費。
“Value DeFi遭閃電貸攻擊”系該協議中基于AMM的預言機bug導致:據PeckShield分析,“Value DeFi遭閃電貸攻擊”是由于該協議中基于AMM的oracle(即Curve)中的一個bug。攻擊步驟如下:
1.黑客從Aave進行了8萬枚ETH的閃電貸;
2.在UniswapV2用WETH兌換了1.16億枚DAI;
3.在UniswapV2將從Aave獲得的8萬枚ETH兌換成3100萬USDT;
4.將2500萬枚DAI存入Vault DeFi,鑄造2490萬枚pooltoken(給攻擊者),以及2495.6萬枚新3crv(由Vault DeFi托管);
5.在Curve將9000萬枚DAI兌換為9028.5萬枚USDC;
6.在Curve將3100萬枚USDT兌換為1733萬枚USDC;
7.銷毀2490萬枚鑄造的池代幣,以贖回3308.9萬枚3crv代幣,而不是24.956萬枚(喂價被操縱)。
8.在Curve將1733萬枚USDC兌換回3094萬枚USDT;
9.在Curve將9028.5萬枚USDC兌換回9092.7萬枚DAI;
10.通過銷毀33.089萬枚3crv來贖回3311萬枚DAI,從3pool中清除流動性。[2020/11/15 20:52:13]
以太坊智能合約是按照實際指令執行的消耗來計算gas的,不同復雜度的指令消耗的gas也有差別,越復雜的智能合約指令,消耗的gas越多。查看這筆交易,我們發現礦工費高達3**.**37117716ETH,消耗了8644044gas,占據一個區塊容量的74.3%。夢想著可以靠閃電貸空手套白狼的朋友們,還是先算一算礦工費要緊。智能合約中是如何調用另一個智能合約的
在智能合約中,我們調用另一個合約的代碼,最終會被編譯成一個叫作CALL的EVM虛擬機指令,它的基礎gas費用是40gas,實際產生的礦工費根據另一個合約執行的指令來計費。
查看opCall這個方法的實現,發現,調用另一個智能合約與當前智能合約同樣都是通過EVM虛擬機的Call方法完成的。
因此,我們可以發現,其實智能合約的執行,以及智能合約之間的調用,都是在礦工的客戶端執行的,并沒有進行跨客戶端與網絡調用,交易失敗也是在礦工的客戶端進行回滾,因此閃電貸攻擊才可以如此快的在一筆交易中完成所有的操作。智能合約某一步執行失敗會怎么樣
StateDB提供了兩個方法,分別是Snapshot與RevertToSnapshot,一個用于對StateDB進行快照,另一個用于恢復快照。在執行交易前,StateDB會調用Snapshot方法進行快照,如果交易執行到某一步發現錯誤,則會調用RevertToSnapshot進行回滾。因此閃電貸攻擊可以實現如果在任何一步出現錯誤,就當從來沒有從借貸平臺借過一樣,所有狀態回滾到交易執行之前,當然交易失敗時消耗的礦工費還是得出。
總結
閃電貸之所以能夠在一筆交易中完成各種虛擬資產的交易,實際上都是通過調用去中心化交易所和各種去中心化借貸平臺的智能合約來完成的,這些調用只需要在礦工客戶端本地即可完成。這筆交易會在收到交易廣播的所有具備打包資格的以太坊客戶端中執行,誰先執行完成,并打包到下一個區塊中,誰就能贏得這筆礦工費。
Tags:DAIUSD以太坊TATEDai StablecoinWrapped USD幸運以太坊幣值多少錢TATECEO價格
2021年開年以來,比特幣再一次站在了風口浪尖上。在“帶貨達人”特斯拉CEO埃隆·馬斯克的“煽動蠱惑”下,越來越多的人選擇入場投資比特幣。而隨著機構的興趣日益增加,比特幣上漲超過了6倍.
1900/1/1 0:00:003月26日消息,以太坊最受矚目的擴容項目Optimism表示,主網「粗略估計」得到7月才能公開露面.
1900/1/1 0:00:00編者按:本文來自區塊律動BlockBeats,Odaily星球日報經授權轉載。孵化器和黑客松往往是孕育潛力區塊鏈項目的誕生地,在這些活動上勝出的項目既代表了加密創業者對當前市場的機會判斷,也很有.
1900/1/1 0:00:00支持layer2和跨鏈,「Linear」或許能讓合成資產迎來一場大爆發。曾獲260多萬美元融資的LinearFinance,有著怎樣的項目定位和團隊背景?特別的合成實現邏輯,讓Linear實現了.
1900/1/1 0:00:00編者按:本文來自WebX實驗室Daily,Odaily星球日報經授權轉載。經過去年的積累和沉淀后,去中心化交易所Uniswap、借貸協議Compound都隨著去年DeFi的發展實現了不同層次的突.
1900/1/1 0:00:00吳說作者|Rebecca本期編輯|ColinWu從2021年以來,第一季度內美債收益率持續攀升,3月31日10年期國債收益率尾盤上漲3.75個基點,報1.7404%.
1900/1/1 0:00:00