最近各種通過閃電貸攻擊在區塊鏈中套利的新聞將閃電貸送上了熱門話題,2021年初,YearnFinance受到閃電貸款攻擊,我們查看這個交易,發現一筆交易中,居然有如此多的騷操作,完全刷新了筆者對區塊鏈和智能合約的認識。不禁開始思考,為什么黑客一開始可以從dYdX借款,又將借到的虛擬貨幣抵押到Compound,最后一系列操作完成后還款到dYdX,這期間發生了161次代幣轉移,這怎么的也要一杯茶的時間吧。然而事實上,閃電貸攻擊快得就是這么不講道理。這筆交易的鏈接:https://cn.etherscan.com/tx/0x6dc268706818d1e6503739950abc5ba2211fc6b451e54244da7b1e226b12e027接下來我們開始一步一步的分析,一筆智能合約交易是如何完成在借貸平臺和中心化交易所之間的所有操作。智能合約究竟存儲在哪里
慢霧:NimbusPlatform遭遇閃電貸攻擊,損失278枚BNB:據慢霧安全團隊情報,2022 年 12 月 14 日, BSC 鏈上的NimbusPlatform項目遭到攻擊,攻擊者獲利約278枚BNB。慢霧安全團隊以簡訊的形式分享如下:
1. 攻擊者首先在 8 天前執行了一筆交易(0x7d2d8d),把 20 枚 BNB 換成 NBU_WBNB 再換成 GNIMB 代幣,然后把 GNIMB 代幣轉入 Staking 合約作質押,為攻擊作準備;
2. 在 8 天后正式發起攻擊交易(0x42f56d3),首先通過閃電貸借出 75477 枚 BNB 并換成 NBU_WBNB,然后再用這些 NBU_WBNB 代幣將池子里的絕大部分 NIMB 代幣兌換出;
3. 接著調用 Staking 合約的 getReward 函數進行獎勵的提取,獎勵的計算是和 rate 的值正相關的,而 rate 的值則取決于池子中 NIMB 代幣和 GNIMB 代幣的價格,由于 NIMB 代幣的價格是根據上一步閃電貸中被操控的池子中的代幣數量來計算的,導致其由于閃電貸兌換出大量的代幣而變高,最后計算的獎勵也會更多;
4. 攻擊者最后將最后獲得的 GNIMB 代幣和擁有的 NIMB 代幣換成 NBU_WBNB 代幣后再換成 BNB,歸還閃電貸獲利;
此次攻擊的主要原因在于計算獎勵的時候僅取決于池子中的代幣數量導致被閃電貸操控,從而獲取比預期更多的獎勵。慢霧安全團隊建議在進行代幣獎計算時應確保價格來源的安全性。[2022/12/14 21:44:29]
這里用以太坊的go語言客戶端為例,以太坊客戶端在收到創建智能合約的交易以后,會使用Hash算法為智能合約生成一個合約地址,在這個合約地址下存儲智能合約的代碼與合約中的數據。智能合約會被存儲在客戶端的數據庫中與這個地址對應,這個數據庫叫做StateDB。StateDB記錄了區塊鏈上所有的地址余額、Nonce、狀態等信息。以太坊客戶端可以通過合約地址,將合約的代碼加載到內存中進行執行。最終這些數據會被持久化到LevelDB中,存儲在以太坊客戶端的磁盤上。通過StateDB實現的這些接口,客戶端通過GetCode這個方法,可以獲取到智能合約地址下對應的代碼。
安全團隊:Nirvana遭閃電貸攻擊,請相關用戶注意資產安全:7月28日消息,據慢霧區情報,Solana 鏈上穩定幣項目 Nirvana 遭遇閃電貸攻擊,攻擊者通過部署惡意合約,使用閃電貸從 Solend 借出 10,250,000 USDC,隨后調用 Nirvana 合約 buy3 方法購買了大量 ANA 代幣,隨后調用 Nirvana 合約 swap 方法賣出部分 ANA,得到USDT 和 USDC ,在歸還完閃電貸后共獲利3,490,563.69 USDT,21,902.48 USDC 及 393,230.32 ANA代幣,隨后黑客出售 ANA 代幣,并將所有臟款通過跨鏈橋轉移。Nirvana 源代碼未完全開源,據鏈上調用日志分析,攻擊者可能利用了 ANA 價格計算漏洞進行套利,請相關用戶注意資產安全。[2022/7/28 2:43:46]
MonoX疑遭閃電貸攻擊,損失約3100萬美元:11月30日消息,以太坊瀏覽器數據顯示,自動做市商協議MonoX疑遭閃電貸攻擊,官方社群人員反饋稱,攻擊者耗盡Polygon和Ethereum上的流動性池,獲利約3100萬美元。[2021/11/30 12:41:55]
客戶端完成區塊同步后,從以太坊創世塊開始創建的所有賬戶地址信息與智能合約地址信息都會同步到這個StateDB中,因此一個合格的以太坊礦工客戶端可以直接在本地加載所有的合約代碼,是不需要跨網絡和客戶端進行調用的。智能合約如何執行
智能合約代碼是通過以太坊客戶端內部的一個叫作EVM的虛擬機進行執行的,以太坊的虛擬機定義了各種的操作指令,每一個指令對應了一個處理函數,以及這個指令需要消耗的礦工費。
OUSD公布閃電貸攻擊事件細節 共損失700萬美元:11月17日,Origin Protocol創始人Matthew Liu發文公布Origin Dollar (OUSD) 閃電貸攻擊事件細節。內容顯示,截止目前,攻擊已造成約700萬美元損失,其中包括Origin及創始人和員工存入的超過100萬美元資金。團隊正在全力以赴確定漏洞原因,以及確定是否能夠收回資金。官方提醒稱,目前已取消了金庫存款,請不要在Uniswap或Sushiswap上購買OUSD。此外團隊表示,官方不會離開,此次事件不是欺詐,也非內部騙局。[2020/11/17 21:02:50]
以太坊智能合約是按照實際指令執行的消耗來計算gas的,不同復雜度的指令消耗的gas也有差別,越復雜的智能合約指令,消耗的gas越多。查看這筆交易,我們發現礦工費高達3**.**37117716ETH,消耗了8644044gas,占據一個區塊容量的74.3%。夢想著可以靠閃電貸空手套白狼的朋友們,還是先算一算礦工費要緊。智能合約中是如何調用另一個智能合約的
在智能合約中,我們調用另一個合約的代碼,最終會被編譯成一個叫作CALL的EVM虛擬機指令,它的基礎gas費用是40gas,實際產生的礦工費根據另一個合約執行的指令來計費。
查看opCall這個方法的實現,發現,調用另一個智能合約與當前智能合約同樣都是通過EVM虛擬機的Call方法完成的。
因此,我們可以發現,其實智能合約的執行,以及智能合約之間的調用,都是在礦工的客戶端執行的,并沒有進行跨客戶端與網絡調用,交易失敗也是在礦工的客戶端進行回滾,因此閃電貸攻擊才可以如此快的在一筆交易中完成所有的操作。智能合約某一步執行失敗會怎么樣
StateDB提供了兩個方法,分別是Snapshot與RevertToSnapshot,一個用于對StateDB進行快照,另一個用于恢復快照。在執行交易前,StateDB會調用Snapshot方法進行快照,如果交易執行到某一步發現錯誤,則會調用RevertToSnapshot進行回滾。因此閃電貸攻擊可以實現如果在任何一步出現錯誤,就當從來沒有從借貸平臺借過一樣,所有狀態回滾到交易執行之前,當然交易失敗時消耗的礦工費還是得出。
總結
閃電貸之所以能夠在一筆交易中完成各種虛擬資產的交易,實際上都是通過調用去中心化交易所和各種去中心化借貸平臺的智能合約來完成的,這些調用只需要在礦工客戶端本地即可完成。這筆交易會在收到交易廣播的所有具備打包資格的以太坊客戶端中執行,誰先執行完成,并打包到下一個區塊中,誰就能贏得這筆礦工費。
大家好,今日文章內容將從以下3個方面全面解讀Layer2:1、Layer2起源和必要性2、Layer2分類3、即將到來的Layer2爆發機會KeyTakeAway:Layer2的平臺可以在降低的.
1900/1/1 0:00:004月2日,全球化加密金融服務提供商AmberGroup股東知名加密貨幣交易所Coinbase發文表示,美國證券交易委員會于4月1日宣布.
1900/1/1 0:00:00昨天的文章發表后,不少讀者咨詢一些投資方法相關的問題,這些問題都是很多投資者在投資過程中都會遇到的共性問題.
1900/1/1 0:00:00本文來自:OpenOcean官方Medium,星球日報經授權轉發。 OpenOcean作為首個聚合DeFi和CeFi流動性的全聚合協議,提供了加密世界的入口.
1900/1/1 0:00:00本文來自Decrypt,作者:AndrewAsmakovOdaily星球日報譯者|余順遂 摘要: AvantiFinancialGroup完成3700萬美元A輪融資.
1900/1/1 0:00:00昨天Coinbase上線1inch,EnjinCoin,NKN和OriginToken的一則消息傳遍幣圈,這些幣種也在消息發布后出現了大幅度的漲幅.
1900/1/1 0:00:00