出現漏洞,君士坦丁堡硬分叉被推遲

2020-12-18 站長之家

圖片版權所屬:站長之家

編者按:本文來自 36 氪戰略合作區塊鏈媒體「Odaily星球日報」(公眾號ID:o-daily,APP下載)

據  blog.ethereum  消息,由於以太坊改進提案(EIP 1283)被發現重大安全漏洞,原定於在第 7080000 個區塊上進行的君士坦丁堡硬分叉被推遲。

Week in Ethereum 創始人 Evan Van Ness 表示,新的硬分叉日期將在周五的下一次核心開發者電話會議期間確定。以太坊核心開發者 Afri Schoedon 則在 Twitter 上表示,硬分叉將於下周一舉行。

漏洞發生了怎麼辦?

關於 EIP 1283 漏洞處理,以太坊官方也通過博客表示,推遲君士坦丁堡硬分叉,即不在第 7080000 個區塊上分叉,並且發布了相關處理辦法:

對於已經升級同步的節點、礦工、交易所,需要在 Geth 或 Parity 新版本發布後及時更新版本,新版本預計在博客發布的 3~4 個小時內發布。具體的方案如下所示:

  • Geth 版本:升級到 Geth 1.8.21;降級至 Geth 1.8.19;如果想保持在 Geth 1.8.20,請使用開關 '-override.constantinople = 9999999' 無限期推遲君士坦丁堡分叉;

  • Parity 版本:推薦升級到 Parity Ethereum 2.2.7-stable 或 Parity Ethereum 2.3.0-beta;不推薦降級至 Parity Ethereum 2.2.4-beta 。

對於未同步升級的節點、錢包以及代幣持有者(網絡用戶),現在不需要進行任何操作。

對於合約所有者,現在可以檢查一下合約是否還存在其他潛在的漏洞,但請不用擔心,因為有著漏洞的 EIP 1283 不會被啟用。

漏洞是什麼?

北京時間今天零點,智能合約審計公司  ChainSecurity  發布了一份報告,報告指出以太坊君士坦丁堡代碼(EIP 1283)存在漏洞,該漏洞可能導致「重入攻擊」——攻擊相關合約、修改用戶餘額或其他關鍵變量。

為什麼會產生重入攻擊? ChainSecurity  認為,在分叉前一個存儲至少需要 5000 gas,遠遠超過使用 「transfer」或「send」調用合約時發送的 2300 gas ;而在分叉後,一個存儲只需要 200 gas,攻擊者可以通過調用一些公共函數,更改所需變量。比如攻擊者可以調用攻擊者合約,只需要花費 2300 gas 就可以成功地更改弱勢合約的變量,包括帳戶餘額等。

當然,攻擊要想成功需要一些條件:

  • 必須有一個函數a,在該函數中,「transfer / send」後面緊跟著一個狀態更改操作,這有時是不明顯的;

  • 攻擊者必須有一個能夠訪問函數 A 改變狀態的函數 B, B 狀態改變會與函數 A 發生衝突;

  • 函數 B 需要在小於 1600 gas 的情況下執行( 2300 氣費-700 氣話費)。

ChainSecurity 提醒大家,可以從檢查以下幾個方面避免合約被攻擊:

  • 檢查 transfer 事件後是否有任何操作。

  • 檢查這些操作是否改變了存儲狀態,最常見的是通過分配一些存儲變量,檢查哪些變量已被修改,做一個列表。

  • 檢查合約中,非管理員可以訪問的任何其他方法是否使用這些變量之一;

  • 檢查這些方法本身是否自行改變存儲狀態;

  • 檢查是否低於 2300 gas,同時記住 SSTORE 操作可能只有200 gas。 

漏洞重演何時休?

這次 EIP 1283 出現的重入攻擊,在以太坊的發展史上曾出現多次,屬於頑疾。

「其實這個攻擊方式,在以太坊上早就是赫赫有名了,我不相信以太坊社區沒有考慮到這個問題。」以太坊研究者胡靖宇告訴 Odaily 星球日報。

重入攻擊影響最大是 The DAO 合約漏洞事件。當時黑客利用 The DAO 合約漏洞,轉移了價值 4 千多萬美元以太幣(ETH)。為了奪回資金,以太坊社區決定進行軟分叉與硬分叉,結果社區內部產生分歧,一部分選擇留在原鏈(現在的 ETC),一部分選擇了進入新的分叉鏈(ETH)。

根據胡靖宇所說,以太坊智能合約為了方便一些邏輯操作,留下了「 transfer() 和 send() 」這樣一種調用方式,但也給開發者留下了安全隱患。「但是只要開發者知道有這樣一個安全隱患,在寫代碼的時候多判斷一下邏輯就可以保證安全性了。」

至於下周一會不會進行硬分叉升級,胡靖宇表示硬分叉升級具體的時間點應該是未定的,因為官方目前還沒有評估到具體的風險以及制定解決方案。

相關焦點

  • 以太坊升級再遇波折 「君士坦丁堡」因漏洞被推遲
    此外,Coindesk還報導稱,該項目的核心開發人員還表示,在硬分叉之前修復漏洞需要很長時間,因此硬分叉(升級)預計將在UTC時間1月17日04:00(北京時間18日中午12:00)左右執行。儘管,根據PeckShield和Coindesk的報導還無法確定此次升級的具體時間,但是升級被推遲這一消息基本可以確定。
  • 以太坊鏈分裂,「君士坦丁堡」硬分叉時間已定!
    由於智能合約審計公司ChainSecurity發現的意外安全漏洞,以太坊君士坦丁堡的硬分叉被推遲,但一些ETH節點運營商沒有跟進。現在,以太坊正在經歷一場「鏈分裂」運動。   MyCrypto的麥可·哈恩說:「我們無法就升級的推遲與每個礦業實體取得聯繫。」
  • 君士坦丁堡再次推遲?下一次還要等到何時?
    1月16日凌晨,以太坊發布消息,由於安全漏洞,以太坊核心開發者決定再一次推遲此次硬分叉,具體時間將於本周五開會決定。為什麼是再一次推遲呢,了解過的人都知道,自去年10月8日以來,這已經是第四次推遲,一次又一次以不同的理由推遲,這無疑實在消耗著參與者們的耐心和決心。
  • 君士坦丁堡硬分叉姍姍來遲,以太坊2.0還要等多久?
    如果你是普通的以太幣(ETH)持有者,就無需過於關心這次的君士坦丁堡硬分叉;如果你是以太坊技術愛好者,就有必要認真讀一讀這篇文章了。君士坦丁堡硬分叉姍姍來遲,以太坊寧靜何時能來?在2018年12月7日舉行的以太坊核心開發者大會上,君士坦丁堡硬分叉日期終於敲定。
  • 「君士坦丁堡」硬分叉離以太坊2.0還有多遠?
    被延後的硬分叉:君士坦丁堡預期在2019年1月中旬激活的以太坊硬分叉,實際上是此前10月在以太坊測試網Ropsten上進行的君士坦丁堡升級,但當時因存在共識問題導致測試網Ropsten不可用。而根據測試網Ropsten的鏈上數據,自10月13日的4,230,000區塊高度,測試網已經實施了君士坦丁堡升級,或部分升級,其區塊獎勵已經由3 ETH減少至2 ETH。火星財經(ID:hxcj24h)推測,以太坊核心開發者決定在主網7,080,000高度激活硬分叉,說明君士坦丁堡硬分叉已經在測試網絡Ropsten部署成功,並測試完成。
  • ETH歷史上5次分叉分析 君士坦丁堡可用何策?
    ETH(以太坊)即將迎來第6次硬分叉,君士坦丁堡硬分叉。而且由於漏洞,現在已經延遲。借著延遲這兩天,我們正好來分析一下過往分叉的歷史。目前ETH處於Metropolis(大都會)第一階段,即將進入到第二階段Constantinople(君士坦丁堡)。
  • 以太坊下月將在測試網激活康斯坦丁堡硬分叉
    金色財經區塊鏈 9月15日訊以太坊即將推出的名為君士坦丁堡的硬分叉將於下個月在測試環境中激活。(這次君士坦丁堡硬分叉升級將於10月9日左右在一個名為Ropsten的跨客戶端測試網絡上啟動。)有媒體網站詳細地介紹到,君士坦丁堡硬分叉這次做出的改進使其具有各種向下兼容的特色功能,這些新功能旨在提高以太坊網絡的效率,同時改變以太坊的經濟政策,並推遲所謂的「難度炸彈」出現的時間。
  • 以太坊君士坦丁堡硬分叉將於10月在測試網中啟動,改變了些什麼
    據Coindesk,以太坊核心開發者在周五同意,以太坊即將推出的君士坦丁堡硬分叉將於下個月在測試網中啟動。君士坦丁堡硬分叉旨在提高以太坊平臺的效率、改變經濟政策並延遲所謂的「難度炸彈」,這是一個刺激以太坊網絡改變其核心共識機制演算法的代碼,這一段代碼啟動之後以太坊便會面臨所謂的「冰河時代」,在該網絡上的創建新區塊的難度將會不斷提升,最終減慢到完全停止。在該硬分叉升級之後,以太坊區塊鏈的狀態將「永久性」的改變。
  • 以太坊拜佔庭硬分叉十大終極指南
    以太坊網絡升級到大都會階段,將為以太坊帶來大量重要特性,並且由於開發者精力有限,因此升級大都會需要經過兩次硬分叉,即拜佔庭硬分叉與君士坦丁堡硬分叉。基於創始人Vitalik是俄羅斯人,俄羅斯在歷史上繼承了拜佔庭帝國的衣缽,因此以太坊團隊以拜佔庭與君士坦丁堡為兩次硬分叉命名。
  • 史上最全乾貨 |以太坊 拜佔庭硬分叉十大終極指南
    以太坊網絡升級到大都會階段,將為以太坊帶來大量重要特性,並且由於開發者精力有限,因此升級大都會需要經過兩次硬分叉,即拜佔庭硬分叉與君士坦丁堡硬分叉。基於創始人Vitalik是俄羅斯人,俄羅斯在歷史上繼承了拜佔庭帝國的衣缽,因此以太坊團隊以拜佔庭與君士坦丁堡為兩次硬分叉命名。
  • 以太坊即將開啟「拜佔庭」硬分叉
    消息稱,Ropsten測試網絡已經在9月19日(第170萬個區塊高度)進行了硬分叉測試。分叉倒計時可以在這裡看到:https://fork.codetract.io/。 目前,以太坊硬分叉計劃包括「拜佔庭」和「君士坦丁堡」。具體來說,大都會是一個計劃之內的以太坊開發階段,包括兩個硬分叉:拜佔庭和君士坦丁堡。拜佔庭硬分叉將在第437萬個區塊高度發生。
  • 以太坊終於邁過了「君士坦丁堡」這道坎
    「君士坦丁堡」和「聖彼得堡」兩大硬分叉升級正式在主網啟動,截止目前網絡運轉正常,未出現異常情況。作為以太坊的第六和第七次全系統範圍的軟體升級,君士坦丁堡和聖彼得堡已在主網絡上成功激活。根據區塊鏈監控網站Fork Monitor顯示,到目前為止,還沒有證據表明以太坊的部分用戶仍在使用較舊的以太坊軟體,也就是說以太坊區塊鏈已經完全轉移到了新的分叉上。
  • ...投資人Sam Lee:ETH硬分叉新鏈會繼承之前所有歷史 沒什麼好擔心的
    多次延期的以太坊君士坦丁堡硬分叉終於定於7080000區塊高度實施,時間大約在2019年1月16日。以太坊為何這個時間實施君士坦丁堡硬分叉?對以太坊社區會帶來什麼影響?成為加密貨幣市場近期矚目的焦點。2019年1月11日上午,【金色相對論專場】之「以太坊硬分叉,妥協的結果or有力的進擊?」線上訪談直播精彩來襲。
  • 讀懂以太坊君士坦丁堡升級:到底是什麼
    以太坊君士坦丁堡分叉即將到來,很多人都想了解這意味著什麼,以及是否應該做些什麼準備。什麼是分叉?簡單來說,分叉是對網絡的更新。它之所為被稱為分叉,是因為跟道路上的分叉類似,單條鏈的區塊分裂成為兩條鏈的獨立區塊。一條鏈上還是按舊規則運行,第二條鏈按新規則運行。如果是沒有爭議的硬分叉,大多數人都停止運行舊版軟體。沒有人會在這條舊鏈上添加新區塊。這樣,該鏈條自然減速然後死亡。舊鏈上的代幣也就沒有價值。
  • 藍狐筆記:一文讀懂以太坊君士坦丁堡升級到底是什麼
    前言:以太坊君士坦丁堡升級即將到來,這次更新主要涉及五個提案:EIP145、EIP1014、EIP1052、EIP1283、EIP1234。這些改進利於讓鏈上的特定操作更便宜更容易,同時也推遲了難度炸彈和調整了區塊獎勵。作者是Mycrypto,來源於medium.com,由「藍狐筆記」公眾號社群「Leo」翻譯。
  • 分叉是什麼意思?最近Filecion生態鬧得沸沸揚揚的分叉解析
    首先,分享下以太坊分叉的來龍去脈。然而在6月上旬,一胎髮開發人員發些The DAO存在重大漏洞,其中的幣可能被轉移而原有地址的幣不會減少,代表著可以不斷重複向外轉移個人帳戶的幣。有黑客利用此漏洞總計向外轉出了1200萬個以太坊(約等於600萬美金)幾乎佔據了The DAO眾籌總量的三分之一對以太坊的生態造成了極大的打擊!
  • 以太坊拜佔庭硬分叉成功!前亞馬遜首席科學家加盟京東金融;俄羅斯...
    以太坊拜佔庭硬分叉成功!雷鋒網10月16日報導,今日以太坊網絡計劃內的拜佔庭硬分叉成功,標誌著以太坊正式進入了大都會的第一階段。大都會是一個計劃之內的以太坊開發階段,包括兩個硬分叉計劃:拜佔庭和君士坦丁堡。拜佔庭硬分叉將在第437萬個區塊高度發生。君士坦丁堡硬分叉事件未定,預計在2018年。硬分叉是對以太坊底層協議的改變,回滾歷史數據,創建新的規則,提高整個系統。協議改變在某個特定區塊上被激活。因此,所有的以太坊客戶端都需要升級,否則將停留在遵循舊規則的老鏈上。
  • BCH硬分叉精彩回顧|bch|區塊|算力_網易科技
    鏈在 556768出現疑似攻擊的分叉塊,正常塊由waterhole礦池挖出,攻擊塊由未知算力挖出。00:21,BTC24時算力跌幅32.26% 未確認筆數超2萬BCH硬分叉大戰,Bitcoin.com礦池在BTC的算力24小時跌幅32.26%,而在BCH上的算力24小時漲幅41.64%,算力的下降導致BTC區塊出現擁堵,目前未確認交易筆數為22326。
  • 以太坊核心開發者對下一次硬分叉升級(柏林)的升級範圍進行討論
    以太坊核心開發者對下一次硬分叉升級(柏林)的升級範圍進行討論11月27日,在以太坊開發者會議中,核心開發者針對以太坊下一次硬分叉升級(代號柏林)的升級範圍進行了討論,可能會包含的升級內容為EIP-2929、EIP-2930、EIP-2718、
  • 比特幣「硬分叉」腰斬之上再腰斬 最「肉疼」的是誰?
    其實,導致比特幣再度暴跌是由於近期出現了關於「比特幣現金分拆」的消息,引發市場上對現有加密幣的價值將產生攤薄效應的疑問。據此,有分析師甚至警告稱,加密貨幣下跌勢頭可能會變得更糟;預測比特幣價格可能會跌至1500美元,70%的市值將會蒸發。