加密貨幣交易所 加密貨幣交易所
Ctrl+D 加密貨幣交易所
ads

詳解:以太坊漏洞可導致“重入攻擊”_GAS:VEDA價格

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漏洞分析

去中心化協議Affine獲得510萬美元種子輪融資:金色財經報道,去中心化協議Affine在Jump Crypto和Hack VC領導的種子輪融資中籌集了510萬美元,其中包括Circle Ventures和Coinbase Ventures的投資。Affine的目標是解決圍繞提供流動性的減值損失的挑戰。新資金將用于擴大投資策略,并在新的鏈上進行分支。Affine協議目前在Ethereum和Polygon上。[2023/2/24 12:26:11]

重入漏洞是指在同一筆交易中因兩個合約互相調用而導致合約進行重復轉賬的一種現象,其產生的根源是沒有使轉賬作為事務的最后一個步驟。比如說,如果在轉賬之后再進行狀態變更的話就很容易重入漏洞,最經典的一起事件就是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上限已經足夠做一些事情了。三、漏洞復現

伯恩斯坦:加密市場回暖為“均值回歸”反彈,仍存在運行空間:金色財經報道,投研機構伯恩斯坦(Bernstein)在最新研究報告中指出,近期加密貨幣市場走強可能是由均值回歸(Mean reversion)驅動的。伯恩斯坦分析道,加密貨幣的均值回歸仍有運行空間,另外,比特幣去年跌超 65%,而比特幣歷史上從未出現過連續兩年的負回報。

伯恩斯坦還表示,即使存在 FTX 和 Genesis 破產的負面消息,目前對加密市場流動性的潛在威脅已經減弱;另外,隨著債權人和 Grayscale、Genesis 以及 Digital Currency Group (DCG) 協商解決方案的推進,強制拋壓敘事似乎已經失去對公開加密市場的控制。

注:據 Investopedia,均值回歸是一種金融理論,表明資產價格波動與歷史回報最終會恢復到長期平均值或平均水平。[2023/1/24 11:27:34]

關于該漏洞的復現,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運行結果:在進行攻擊之后成功增加攻擊賬戶內的余額,復現完畢。四、修復方案

消息人士:被逮捕的Mango攻擊者Avraham Eisenberg或將被引渡回美國:金色財經報道,加密推特博主AutisCapital發推稱,被逮捕的Mango攻擊者Avraham Eisenberg目前由一名公設辯護律師(法庭指定律師)代理,他在紐約南區被提起指控,但在波多黎各被捕,所以在他認罪之前,法官需要發布命令將他轉移到紐約南區,他還在KYC時冒充烏克蘭女人。

金色財經此前報道,Avraham Eisenberg周一在波多黎各被捕,面臨商品欺詐和商品操縱的指控,這些指控可能會受到罰款、監禁的懲罰。[2022/12/29 22:13:30]

修復方案預計應該會在以太坊君士坦丁堡中刪除與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

波場TRON賬戶總數突破1.3億:據官方最新消息,2022年12月18日,TRONSCAN最新數據顯示,波場TRON賬戶總數達到130,235,049,正式突破1.3億。波場TRON各項數據穩中前進,波場生態逐漸強大的同時,也將迎來更多交易量。[2022/12/18 21:52:04]

Alameda Research欠Voyager Digital 3.77億美元:7月7日消息,由FTX首席執行官Sam Bankman-Fried(SBF) 創立的公司Alameda Research上個月向加密經紀商Voyager Digital提供了5億美元的信貸額度,而根據Voyager的破產申請文件,Alameda Research本身欠Voyager 3.77億美元。Alameda的債務使其成為Voyager的第二大借款方,僅次于資不抵債的三箭資本。該媒體評論道,借款人救助貸款人的情況并不多見,尤其是在數額高達數億美元的情況下。?

Voyager提交給紐約地方法院的破產申請第13頁上的表格顯示,Alameda Research欠Voyager 3.77億美元,利率為1%至5%。根據文件第119頁上Voyager最大的無擔保索賠清單,未償余額包括一筆7500萬美元的無擔保貸款。

根據6月17日的新聞稿,Alameda及其風險投資部門Alameda Ventures曾是Voyager的最大單一股東,占所有流通股的11.6%。一周后,也就是6月23日,Alameda在一份新聞稿中宣布,它已放棄或以無償退還450萬股股票,這些股票當時價值260萬美元。(Decrypt)[2022/7/7 1:56:40]

Tags:GAS以太坊EDASTOPegasCoin以太坊官網錢包VEDA價格stos幣最新消息

火幣交易所
行情周報|連續3周上漲,但看空主流幣種后續走勢_BTC:ETHZILLA

周報摘要本周全球數字資產市場趨穩,市值漲幅達2.88%,交易量漲幅達12.47%。EOS周內最大跌幅達30.97%,波動性較大。全球30家代表性交易所,新上交易對11個.

1900/1/1 0:00:00
師太說區塊鏈|2.2 區塊鏈,是分布式賬本,將顛覆金融及商業格局的技術_區塊鏈:FAN

天下大勢“分久必合,合久必分”。縱觀世界歷史就是一部中心化和去中心化輪流上演的教科書。過去20年,古典互聯網改變了分散的傳統商業,形成了高度集中的線上服務平臺,如:門戶網站、搜索引擎、電商平臺、.

1900/1/1 0:00:00
星球專訪以太核心開發者,解讀以太坊“雙分叉”_以太坊:什么是區塊鏈技術

北京時間1月18日晚22:00點,包括VitalikButerin、MartinHolsteSwende、AfriSchoedon以及PeterSzilagyi在內的以太坊核心開發者舉行電話會議.

1900/1/1 0:00:00
飛雪迎春:市場冰封,行業不冷——區塊鏈行業2018年度盤點_區塊鏈:BTCUI

通證通研究院×FENBUSHIDIGITAL聯合出品文:宋雙杰,CFA;田志遠特別顧問:沈波,Rin導讀本文系統回顧了2018年區塊鏈行業發展情況.

1900/1/1 0:00:00
臺灣擬出臺 STO 募資新機制,小額募資免申報_STO:SEC

據臺灣經濟日報3月4日消息,臺灣金融監督管理委員會研究決定,擬采用雙層架構方式,建立證券型代幣募資機制.

1900/1/1 0:00:00
怎么讓區塊鏈變好用?談公鏈的3大性能難點、5大體驗改善_區塊鏈:BTC

編者按:本文來自王嘉平,作者:王嘉平,林佳誼,Odaily星球日報經授權轉載。今天這里分享一些區塊鏈公鏈技術發展的思考.

1900/1/1 0:00:00
ads