最近各種通過閃電貸攻擊在區塊鏈中套利的新聞將閃電貸送上了熱門話題,2021年初,YearnFinance受到閃電貸款攻擊,我們查看這個交易,發現一筆交易中,居然有如此多的騷操作,完全刷新了筆者對區塊鏈和智能合約的認識。不禁開始思考,為什么黑客一開始可以從dYdX借款,又將借到的虛擬貨幣抵押到Compound,最后一系列操作完成后還款到dYdX,這期間發生了161次代幣轉移,這怎么的也要一杯茶的時間吧。然而事實上,閃電貸攻擊快得就是這么不講道理。這筆交易的鏈接:https://cn.etherscan.com/tx/0x6dc268706818d1e6503739950abc5ba2211fc6b451e54244da7b1e226b12e027接下來我們開始一步一步的分析,一筆智能合約交易是如何完成在借貸平臺和中心化交易所之間的所有操作。智能合約究竟存儲在哪里
Cream Finance閃電貸攻擊者已將另外50萬枚DAI換成ETH:金色財經報道,據CertiK監測,Cream Finance閃電貸攻擊者0x70747df6AC244979A2ae9CA1e1A82899d02bbea4已將另外50萬枚DAI換成ETH。Cream Finance在去年6月遭黑客攻擊,損失約880萬美元。[2023/3/30 13:34:51]
這里用以太坊的go語言客戶端為例,以太坊客戶端在收到創建智能合約的交易以后,會使用Hash算法為智能合約生成一個合約地址,在這個合約地址下存儲智能合約的代碼與合約中的數據。智能合約會被存儲在客戶端的數據庫中與這個地址對應,這個數據庫叫做StateDB。StateDB記錄了區塊鏈上所有的地址余額、Nonce、狀態等信息。以太坊客戶端可以通過合約地址,將合約的代碼加載到內存中進行執行。最終這些數據會被持久化到LevelDB中,存儲在以太坊客戶端的磁盤上。通過StateDB實現的這些接口,客戶端通過GetCode這個方法,可以獲取到智能合約地址下對應的代碼。
安全團隊:FEG項目在以太坊和BNB Chain上遭遇閃電貸攻擊,損失130萬美元:5月16日消息,據CertiK監測,FEG項目在以太坊和BNB Chain上遭遇閃電貸攻擊,其代幣價格下跌超80%,大約130萬美元被轉移。代幣地址為:bsc:0xacfc95585d80ab62f67a14c566c1b7a49fe91167。[2022/5/16 3:19:19]
客戶端完成區塊同步后,從以太坊創世塊開始創建的所有賬戶地址信息與智能合約地址信息都會同步到這個StateDB中,因此一個合格的以太坊礦工客戶端可以直接在本地加載所有的合約代碼,是不需要跨網絡和客戶端進行調用的。智能合約如何執行
Cream Finance遭到閃電貸攻擊原因系AMP代幣合約存在可重入漏洞:8月30日,PeckShield派盾發推表示,CreamFinance遭閃電貸攻擊是因為AMP代幣合約引入了一個可重入漏洞。AMP是一種類似erc777的代幣,在更新第一次借款之前,它被用來在轉移資產的過程中重新借入資產。在tx示例中,黑客進行了500ETH的閃電貸,并將資金存入作為抵押品。然后黑客借了1900萬美元AMP并利用可重入漏洞在AMPtokentransfer()中重新借入了355ETH。然后黑客自行清算借款。黑客在17個不同的交易中重復上述過程,總共獲得5.98KETH(約1880萬美元)。資金仍存放在以0xCE1F的地址中。派盾正在積極監控此地址的任何移動。據此前報道,抵押借貸平臺CreamFinance遭遇閃電貸攻擊,損失1800萬美元。[2021/8/30 22:47:08]
智能合約代碼是通過以太坊客戶端內部的一個叫作EVM的虛擬機進行執行的,以太坊的虛擬機定義了各種的操作指令,每一個指令對應了一個處理函數,以及這個指令需要消耗的礦工費。
BSC鏈上DeFi收益聚合器Dot.Finance遭受閃電貸攻擊:8月25日消息,BSC鏈上DeFi收益聚合器Dot.Finance遭受閃電貸攻擊,PeckShield派盾分析發現,此次攻擊是PancakeBunny的同源攻擊。
受到攻擊的影響,Dot.Finance代幣PINK短時急跌35%,從0.77USD跌至約0.5USD。[2021/8/25 22:36:51]
以太坊智能合約是按照實際指令執行的消耗來計算gas的,不同復雜度的指令消耗的gas也有差別,越復雜的智能合約指令,消耗的gas越多。查看這筆交易,我們發現礦工費高達3**.**37117716ETH,消耗了8644044gas,占據一個區塊容量的74.3%。夢想著可以靠閃電貸空手套白狼的朋友們,還是先算一算礦工費要緊。智能合約中是如何調用另一個智能合約的
在智能合約中,我們調用另一個合約的代碼,最終會被編譯成一個叫作CALL的EVM虛擬機指令,它的基礎gas費用是40gas,實際產生的礦工費根據另一個合約執行的指令來計費。
查看opCall這個方法的實現,發現,調用另一個智能合約與當前智能合約同樣都是通過EVM虛擬機的Call方法完成的。
因此,我們可以發現,其實智能合約的執行,以及智能合約之間的調用,都是在礦工的客戶端執行的,并沒有進行跨客戶端與網絡調用,交易失敗也是在礦工的客戶端進行回滾,因此閃電貸攻擊才可以如此快的在一筆交易中完成所有的操作。智能合約某一步執行失敗會怎么樣
StateDB提供了兩個方法,分別是Snapshot與RevertToSnapshot,一個用于對StateDB進行快照,另一個用于恢復快照。在執行交易前,StateDB會調用Snapshot方法進行快照,如果交易執行到某一步發現錯誤,則會調用RevertToSnapshot進行回滾。因此閃電貸攻擊可以實現如果在任何一步出現錯誤,就當從來沒有從借貸平臺借過一樣,所有狀態回滾到交易執行之前,當然交易失敗時消耗的礦工費還是得出。
總結
閃電貸之所以能夠在一筆交易中完成各種虛擬資產的交易,實際上都是通過調用去中心化交易所和各種去中心化借貸平臺的智能合約來完成的,這些調用只需要在礦工客戶端本地即可完成。這筆交易會在收到交易廣播的所有具備打包資格的以太坊客戶端中執行,誰先執行完成,并打包到下一個區塊中,誰就能贏得這筆礦工費。
Tags:以太坊NCEANCFIN以太坊幣怎么挖礦Pinecone FinanceSolyard FinanceKiKi.finance
3月22日-3月28日當周,明星項目進展中值得關注的事件有:Rococo啟動平行鏈插槽拍賣測試.
1900/1/1 0:00:00播報數據由Greeks.live和Skew.com提供。最近幾個月每到當月交割周就會有一波持續性行情,近三個月都是下跌。如今又到了交割周,今天就迎來一波下行,走勢如何讓我們拭目以待.
1900/1/1 0:00:00編者注:原標題為《銀行業只是開始:58個可以被區塊鏈改變的行業》,但實際內容里介紹了60個行業,我們以實際數量為準.
1900/1/1 0:00:00作者:唐晗加密藝術火了。但究竟什么是加密藝術?我們能看到佳士得拍賣Beeple的作品,最后以近7000萬美金的價格成交;蘇富比也將在今年4月拍賣加密藝術家pak的作品.
1900/1/1 0:00:00頭條 FATF更改術語要求加密實體滿足與傳統金融相同的反洗錢要求根據反洗錢金融行動特別工作組周五發布的指導草案,去中心化金融等加密貨幣行業的創新領域,受到了全球監管機構的密切關注.
1900/1/1 0:00:00編者按:本文來自巴比特資訊,作者:ReynaldoMarquez,編譯:云錦,星球日報經授權發布。研究公司Santiment指出,交易所的以太坊供應量處于28個月來的最低點.
1900/1/1 0:00:00