比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads
首頁 > KuCoin > Info

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

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

BlockFi債權人反對將錢包中的加密貨幣作為破產索賠被扣押:金色財經報道,根據美國破產法官Michael Kaplan的命令,BlockFi歸還客戶錢包中的數字資產的建議被推遲,同時雙方試圖解決他們的分歧。爭端已經升級到BlockFi指責債權人\"脫離現實\",而債權人則指責BlockFi在發\"脾氣\"。

BlockFi的用戶可以使用該平臺來存儲他們的加密貨幣,與生息(借貸)活動分開。正在爭議的關鍵問題包括客戶錢包中的某些加密貨幣是否可以作為破產索賠的一部分被扣押,這一觀點遭到一些債權人的反對。無擔保債權人官方委員會和其他債權人和個人的特設委員會提出了反對意見。[2023/2/25 12:28:30]

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

加密礦企Layer1 CEO指控兩名董事會成員利用多數股權攫取公司收益:2月7日消息,加密礦企Layer1 Technologies首席執行官John Harney和DGF Investments Inc已于近日對Layer1的其他兩名董事會成員提起訴訟,其中包括聯合創始人Jakov Dolic,另一人為Tobias Ebel。

該訴訟稱,Dolic和Ebel都利用了Layer1股權母公司Enigma的權力真空,奪取了該公司的控制權,并將其作為“自己的私人領地”運營。

Harney和擁有Enigma多數股權的DGF Investments Inc聲稱被告“篡奪了Layer1首席執行官的權力”,并阻止Harney“負責任地運營Layer1”。

其中一項針對Dolic和Ebel的指控稱,他們執行了“大規模未經授權的交易”,這些交易沒有記錄在Layer1的財務報告中,他們利用Layer1的業務來進行比特幣挖礦并將盈利收入囊中。

原告還聲稱,Dolic繼續謊稱他擁有Layer1 77%的股權。在文件中,原告辯稱,Dolic于2022年1月24日以1600萬美元的價格將他所有的Layer1股權出售給了Enigma。(Cointelegraph)[2023/2/7 11:52:22]

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

工信部部長:加快謀劃布局元宇宙、量子科技等未來產業:金色財經報道,工信部部長金壯龍日前在接受央媒采訪時表示,2023年,將落實落細已出臺的各項政策和接續措施,充分釋放政策累積效應,適時推出更多政策措施。加快人工智能、生物制造、物聯網、車聯網、綠色低碳等戰略性新興產業創新發展。研究制定未來產業發展行動計劃,加快謀劃布局人形機器人、元宇宙、量子科技等未來產業。[2023/1/5 10:22:55]

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

報告:2022年數字資產投資產品凈流入4.33億美元,為2018年以來最低水平:1月4日消息,據 CoinShares 報告顯示,2022 年全年數字資產投資產品凈流入 4.33 億美元,為 2018 年(2.33 億美元)以來最低水平,明顯低于 2020 年(66 億美元)和 2021 年(91 億美元)的流入量。此外,2022 年做空比特幣產品流入 1.08 億美元,占比特幣投資產品總資產管理規模的 1.1%。[2023/1/4 9:52:12]

元宇宙初創公司Translucia與軟件開發公司Two Bulls合作,撥款1億美元建設元宇宙研究與開發中心:6月23日消息,泰國元宇宙初創公司Translucia Global Innovation與澳大利亞軟件開發公司Two Bulls合作,并撥出1億美元的初始預算在墨爾本建立元界研究與開發中心(MRDC)。該項目將于今年11月進行軟啟動。MRDC不僅將專注軟件和硬件,也將在經濟系列、游戲化、能源消耗等方面進行更多探索。

Translucia是藝術和娛樂公司T&B Media Global的子公司,該公司于2021年10月推出了“Translucia Metaverse”項目,第一階段投資2.83億美元用于虛擬世界。(Cointelegraph)[2022/6/23 1:26:12]

Tags:GAS以太坊LAYERRANTOGASHI價格以太坊價格MintlayerAlgorand

KuCoin
現代密碼學加密原理_區塊鏈

密碼學是在區塊鏈技術中承擔著非常重要的角色,但其實,在互聯網中,也大量的使用著密碼學的技術,本文將介紹現代密碼學中的早期加密方法,這將有助于我們理解區塊鏈中的復雜算法.

1900/1/1 0:00:00
星球日報 | ?日本金融廳否認關于“虛擬貨幣ETF”的報道;慢霧稱若有相關交易所協助,可定位ETC攻擊者身份_區塊鏈

頭條 日本金融廳否認關于“虛擬貨幣ETF”的報道1月9日,日本金融廳在接受采訪時否認了彭博關于“金融廳正在研究虛擬貨幣ETF”的報道。金融廳表示:“目前,還沒有研究過加密貨幣ETF的方案.

1900/1/1 0:00:00
比特幣二十年后是什么樣?_加密貨幣

編者按:本文來自 IOSGVenture 作者:DanielJeffries,翻譯:Jocy&周曉彤&Kerouac,Odaily星球日報經授權轉載.

1900/1/1 0:00:00
“巨鯨交易員在去中心化預測市場押注50萬美元ETH”的背后_Augur

預測市場是一個美好的思想實驗,大意是如果任何一個人都能就任意事件用錢來下注預測,社會就能更好的利用潛藏的信息和知識,更進一步,甚至能利用預測市場去定向改變事件的結果.

1900/1/1 0:00:00
BTC底在何方?_亞馬遜

導讀BTC底在何方,是投資者非常關心的問題,我們將從價格、時間、供給、風險和資金五個維度解析為何當前BTC處于底部區間。摘要價格維度:本輪周期最大跌幅達84%,BTC投資價值顯現.

1900/1/1 0:00:00
Chris Dixon:為什么我相信區塊鏈會重塑互聯網生態_ONO

編者按:本文來自鏈聞ChainNews,作者:ChrisDixon,a16zcrypto普通合伙人,專注區塊鏈技術及其它科技領域的風險投資家,編譯:PerryWang,星球日報經授權發布.

1900/1/1 0:00:00
ads