比特幣行情 比特幣行情
Ctrl+D 比特幣行情
ads
首頁 > XMR > Info

GAS:詳解:以太坊漏洞可導致“重入攻擊”

Author:

Time:1900/1/1 0:00:00

編者按:本文來自DVPNET,作者BCSEC,Odaily星球日報經授權轉載。1月16日凌晨,以太坊準備進行君士坦丁堡硬分叉的前一日被披露出來了一則漏洞,該漏洞由新啟動的EIP1283引起,漏洞危害準確的說應該是一種可能會讓一些合約存在重入漏洞的隱患,而不是一定會使合約產生重入漏洞。該漏洞在被發現之后以太坊基金會立馬宣布了停止硬分叉,并商議擇日再啟動以太坊君士坦丁堡硬分叉。一、導致以太坊延遲硬分叉的EIP1283到底是什么?

EIP的全稱是EthereumImprovementProposals,任何人都可以上去提一些對以太坊的改進提案,不過必須得嚴謹、正式,以太坊君士坦丁堡這次漏洞就是由一個EIP引起的,這個EIP的編號是1283。EIP1283使以太坊虛擬機使執行智能合約的引擎更高效,并降低在以太坊上運行智能合約的成本。該提案是針對SSTORE操作碼的,該操作碼主要用于合約持久化存儲數據,EIP1283為SSTORE操作碼設計了更加合理的gas收費方式。詳情地址如下:https://eips.ethereum.org/EIPS/eip-1283為什么需要EIP1283?EIP-1283提案由WeiTang(@sorpass)于2018年8月1日創建,作為EIP-1087和EIP-1153的替代方案。EIP-1087由NickJohnson創建,主要是改變EVMSSTORE運行gas費用收取方式,減少過多的gas費用成本;EIP-1153由AlexeyAkhunov創建,相比EIP-1087更加便宜,gas費用計算規則更加簡單。EIP-1283提出了在SSTORE上進行gas計量的方案,為數據存儲的變化引進更加合理公平的定價方案。其中定義了三個概念:存儲槽的原始值:在當前事務發生回滾后會存在的值叫原始值。存儲槽的當前值:在使用SSTORE操作碼之前存在的值叫當前值。存儲槽的新值:在使用SSTORE操作碼之后存在的值叫新值。然后以這三個概念為基礎,設計了如下處理邏輯:如果當前值等于新值,則扣除200gas。如果當前值不等于新值如果原始值等于當前值如果原始值為0,則扣除20000gas。否則,扣除5000gas。如果新值為0,則在退款計數器中增加15000gas。如果原始值不等于當前值,則扣除200gas。如果原始值不為0如果當前值為0,請從退款計數器中減少15000gas。如果新值為0,請向退款計數器中增加15000gas。如果原始值等于新值如果原始值為0,則將退款計數器中增加19800gas。否則,則在退款計數器中增加4800gas。根據如上的邏輯可以發現,當使用SSTORE操作碼的時候如果不改變任何值的時候,只消耗200gas。如果改變了值最終又重置為0的話也只消耗20000+200-19800=400gas。而在之前EIP1087的邏輯中如果使用SSTORE操作碼改變了值最終又重置為0的話需要消耗20000+5000-10000=15000gas。顯然EIP1283的處理邏輯比EIP1087更加合理,也更加便宜,但是問題就在這里。二、EIP1283漏洞分析

星巴克將于8月2日推出“綠圍裙”系列NFT:7月29日消息,星巴克將于8月2日在NFT市場NiftyGateway推出基于Polygon的“綠圍裙”The Starbucks? Green Apron Collection系列NFT。

該系列NFT共有5000枚,單價為100美元。該系列將于北京時間8月2日00:00向滿足條件的Odyssey會員開放,每個Odyssey會員最多可購買2枚;8月2日3:00向公眾開放。[2023/7/29 16:06:00]

重入漏洞是指在同一筆交易中因兩個合約互相調用而導致合約進行重復轉賬的一種現象,其產生的根源是沒有使轉賬作為事務的最后一個步驟。比如說,如果在轉賬之后再進行狀態變更的話就很容易重入漏洞,最經典的一起事件就是TheDAO事件,所以最安全的做法是一筆事務中只有一筆轉賬,且在轉賬之前做好所有狀態變更,轉賬作為最后一個操作進行,如果以這種標準來實現的話,是不會受EIP1283影響的,所以這就是為什么說EIP1283只是可能使某些合約產生重入漏洞隱患。那么,什么樣的合約容易產生這種隱患?請看以下Demo。這是一個模擬資金共享服務的合約,資金余額由deposits變量存儲,然后由splits變量存儲分配比例。比如有一筆資金需要a和b共同分配首先調用init函數存儲雙方的錢包地址調用deposit函數向通道充錢調用updateSplit函數來改變通道的分配率執行splitFunds函數分配資金如果1號通道的分配率是99,那么執行splitFunds函數的時候給a分配通道中99%的資金,給b分配1%的資金。該合約大概業務就是這樣,在EIP1283生效之前,該合約是沒有重入漏洞的,EIP1283生效才會存在重入漏洞。前面提到過了,在EIP1283中如果將一個值更改后又重置為0,那么只消耗400gas。再看看是怎么實現按比例分配的:所以我們可以將a賬戶設置為我們的惡意合約,在合約的fallback函數中調用updateSplit函數來改變通道的分配率,使兩個地址都能分到超過通道余額總量的幣.比如說我先給a賬戶分配100%的通道余額,再在a賬戶合約fallback函數中改變通道分配率,又給b賬戶分配100%的余額,這樣就成功套出了雙倍的錢,而且攻擊者可以一直套,直到掏空為止。攻擊者Demo:Ps:為了節約gas,fallback函數中使用內聯匯編來模擬調用updateSplit函數。調用attack函數即可觸發重入漏洞。為什么說要EIP1283生效才會產生漏洞呢,因為該合約使用transfer進行轉賬,transfer轉賬最多消耗2300gas,在EIP1283生效之前對變量進行更改再重置至少需要15000gas,而生效后只需要400gas,2300gas上限已經足夠做一些事情了。三、漏洞復現

World App已開放使用,未驗證虹膜用戶仍可預領取25枚WLD:7月24日消息,據WorldApp頁面數據,Genesis Grant輪已開放領取,開放周期為7月24日至7月31日。未驗證虹膜用戶仍可預領取25枚WLD,將保留365天。預領取用戶在完成虹膜驗證后即可將WLD代幣轉出。截至發文時,已有3,703名用戶完成預領取,預領取用戶上限為100萬名;已有3,405名用戶完成領取。[2023/7/24 15:55:38]

關于該漏洞的復現,ChainSecurity已經在Github上公開了。先clone下來gitclonehttps://github.com/ChainSecurity/constantinople-reentrancy.git然后README里面會告訴你怎么復現,不過在此之前先得把環境裝好,需要環境:1.nodejs(stable)2.npma.truffle:npminstall-gtruffleb.ganache-cli@beta:npmi-gganache-cli@beta不同的系統有不同的環境搭建方式,這里不再贅述,有了以上環境就可以進行復現了,運行以下命令:ganache-cli--hardfork=constantinopletruffletest運行結果:在進行攻擊之后成功增加攻擊賬戶內的余額,復現完畢。四、修復方案

Tromero完成150萬英鎊種子輪融資:7月18日消息,總部位于倫敦的機器學習訓練和托管平臺Tromero完成150萬英鎊種子輪融資,本輪融資由Blue Yard Capital領投。Tromero將使用這筆投資在未來12個月內組建一個團隊,交付一個功能完備的平臺測試版。

Tromero是一個基于共識協議的區塊鏈,其中的工作證明是機器學習訓練和托管。工作證明為區塊鏈的共識提供了基石,并提供了一個經過訓練的ML模型,這是該創業公司稱為有用工作證明的服務。對于數據的處理者,Tromero為礦工提供加密獎勵,以及以法定貨幣支付完成的工作的報酬。[2023/7/18 11:02:39]

修復方案預計應該會在以太坊君士坦丁堡中刪除與EIP1283有關的更新,目前以太坊開發者還在協商解決,不過筆者認為合約安全最終還是要合約來解決,不能依賴于公鏈本身,就像前面說的,只要合約采用的是最安全的寫法便可以避免這次君士坦丁堡分叉帶來的問題。而且目前還沒有檢測出來有合約正好會觸發這個重入漏洞,但不排除這種可能性。參考鏈接https://medium.com/chainsecurity/constantinople-enables-new-reentrancy-attack-ace4088297d9https://github.com/ChainSecurity/constantinople-reentrancyhttps://eips.ethereum.org/EIPS/eip-1283https://eips.ethereum.org/EIPS/eip-1087

FTX現任CEO:將無法挽回所有損失:金色財經報道,FTX現任首席執行官John Ray表示,將無法挽回所有損失。[2022/12/14 21:42:55]

Pharmaledger協會將區塊鏈聯盟工作推向生產領域:金色財經報道,2020 年 1 月, Pharmaledger 聯盟作為一個為期 36 個月的項目啟動, 旨在探索 制藥 領域的區塊鏈創新。最初的財團有 2200 萬歐元(2100 萬美元)的支持,部分資金來自歐盟支持的創新藥物倡議 (IMI),其余資金來自地平線 2020 下的歐洲制藥工業和協會聯合會 (EFPIA)程序。 未來,Pharmaledger 協會將由會費資助,因此它正在尋求擴大參與者的數量。它還可以從希望在自己的用例上得到幫助的公司那里獲得收入。

協會將把該聯盟的一些工作投入生產,并孵化新的解決方案。該聯盟已經探索了臨床試驗、供應鏈和健康數據中的幾個分布式賬本 (DLT) 用例。電子產品信息(ePI)是最先進的,將率先推出。 (ledgerinsights)[2022/9/27 22:31:26]

Tags:GAS以太坊STORSTOGasgains以太坊最新價格美元計價Storage area network anywhereSTO價格

XMR
加密貨幣:別被表象迷惑,加密投資者應該了解的5大行業現狀

編者按:本文來自:幣圈邦德,作者:布洛克神探,Odaily星球日報經授權轉載。加密貨幣和區塊鏈世界中最不缺少的就是樂觀主義,有時候樂觀到完全忘記了這個領域的一些嚴峻事實.

1900/1/1 0:00:00
區塊鏈:師太說區塊鏈|2.3 智能合約,為區塊鏈打開了一扇門,開啟應用鴻途

智能合約的使命是:在區塊鏈上可以開發應用程序。區塊鏈不再是單純的一個賬本,鑄幣、交易、記賬,而是可以建立各種好玩和好用的應用程序,使自組織的分布式商業成為可能.

1900/1/1 0:00:00
區塊鏈:星球首發 | 海外道具交易平臺轉型區塊鏈,「ZBT社區」 完成五千萬人民幣PreA輪融資

星球日報獲悉,ZBT全球游戲資產交易社區近日完成約五千萬人民幣PreA輪融資,投資方為青銳創投,聯創投資徐漢杰個人,本次融資將用于ZBT社區的建設,為ZBT社區的全球化建設,運營.

1900/1/1 0:00:00
比特幣:觀點 | 理解 Web 3,Part-1:背景和含義

編者按:本文來自以太坊愛好者,作者:EmreTekisalp,翻譯&校對:閔敏&阿劍,星球日報經授權發布。本文包括三個部分,分別介紹了萬維網步入3.0時代的緣由、含義和方式.

1900/1/1 0:00:00
區塊鏈:從JP.Morgan、Facebook 穩定幣到DeFi

編者按:本文來自IOSG,作者:JoeyKrug&Emma,翻譯&校對:IOSGVenture,Odaily星球日報經授權轉載.

1900/1/1 0:00:00
師太說區塊鏈|1.5 放心:比特幣永遠不會消亡

很多人都惦記著比特幣什么時候死,不得不說你想多了。比特幣可能會漲,可能還會跌,但比特幣不會死,因為全球有越來越多的信仰者和因為各種原因的需求者.

1900/1/1 0:00:00
ads