細數以太坊 8 次升級歷史與未來規劃,以及每次升級帶來的影響。

作者:潘致雄,鏈聞研究總監

以太坊在歷史上已經進行過了 8 次的網絡升級。當我們嘗試將歷史每次分叉的區塊高度映射到一條線型的時間軸之上,會發現以太坊網絡升級的頻率正在逐漸減少,甚至在 2018 年一整年都沒進行過升級。本文並未嘗試探究以太坊的升級頻率在減少的原因,不過最直觀的猜測,可能是因爲以太坊基金會需要將一部分工程師的精力放到 2.0 的研發中,也可能是因爲隨着平臺的成熟,不需要進行高頻率的分叉,畢竟這對於運行網絡的節點而言非常麻煩,需要對客戶端進行升級。

最近的一次硬分叉升級已於北京時間 12 月 8 日 8 點左右完成,升級代號爲「伊斯坦布爾」,激活 6 個 EIP 提案升級網絡。以太坊聯合創始人 Vitalik Buterin 表示,在本次升級後,普通的每秒交易數(TPS)會提高約 5% 到 10%,而對於 Layer 2 技術 Rollup 來說,可以提高約 4 倍。

衆所周知,以太坊整個項目是按四個階段逐步推進的,分爲:前沿(Frontier)、家園(Homestead)、大都會(Metropolis)和寧靜(Serenity)。前三個階段可以稱之爲以太坊 1.0,而寧靜則可以稱之爲以太坊 2.0。由於 2.0 是一個非常龐大和跨越數年的項目,所以採用工作量證明機制的 1.0 和升級爲權益證明的 2.0 很可能將會在很長一段時間內並存,分別演進。

下一次的硬分叉升級代號爲「柏林」,計劃將引入 ProgPoW 挖礦算法,將削弱專用挖礦設備 ASIC 的對於網絡的影響力。由於 1.X 和 2.0 可能會平行進化數年的時間,所以對於 1.X 網絡而言,挖礦算法的公平性依舊是一個值得探索的話題。當然隨着 2.0 逐漸完成,原本在網絡中植入的「難度炸彈」將持續發揮作用,當以太坊進入「冰河時代」,1.X 的礦工難以生成新區塊之後,用戶也就不得不轉換到 2.0 的「寧靜」。

當然,2.0 的最核心的科技是分片技術,可以極大程度提升以太坊這個分佈式系統的效率。不過 2.0 中還安排了一些其他重要的技術,也可以進一步提升網絡的性能,比如 eWASM。所以這類技術也可能會在 2.0 完全推出之前,將部分的特性先在 1.X 鏈上進行試驗。

本文將以太坊官方文檔中的路線圖頁面進行了梳理,試圖標示出歷史上每次升級所帶來的影響。當然,由於大多數升級的最重要意義就是提升網絡的基礎技術能力或性能,所以這部分的內容就不詳細展開了。

以太坊升級旅遊地圖:一文梳理升級歷史與未來規劃

值得關注的一些內容:

  1. 以太坊在主網上線時並未植入「難度炸彈」;
  2. 在植入難度炸彈之後,已執行兩次硬分叉推遲難度炸彈,第三次硬分叉推遲難度炸彈最快在本月內進行;
  3. 以太坊在 2018 年未進行過網絡升級;
  4. 在伊斯坦布爾之後,以太坊的升級代號將以 Devcon 舉辦順序依次命名;
  5. 未來的開發週期將會以 EIP 爲中心,只有當 EIP 足夠成熟之後,纔會考慮合併至升級中。

前沿(Frontier):進入第一階段

2015 年 7 月 30 日,這是以太坊創世區塊生成的日期,也是以太坊第一階段開始的日期。

以太坊升級旅遊地圖:一文梳理升級歷史與未來規劃以太坊「前沿」,是一個去中心化的軟件平臺

前沿解凍(Frontier Thawing):植入難度炸彈

2015 年 9 月 7 日,自此次升級之後(也就是區塊高度 200,000),難度調整機制將被引入,也被稱爲「難度炸彈」,網絡中的算力難度將會在一年左右經歷指數級增長,所以也就保證了以太坊會在接下去的一年之內再一次進行硬分叉。

引入難度炸彈的目的是爲了給網絡提供一個從 PoW 遷移至 PoS 的機制,當算力太高導致礦工無法挖出任何一個區塊的時候,將是網絡轉換爲 PoS 的最好時機。

家園(Homestead):進入第二階段,總算有圖形界面錢包了

2016 年 3 月 14 日(π日),這是以太坊第一次硬分叉,也是路線圖第二階段開始的日期。該版本中最重要的功能是優化了智能合約併爲智能合約語言 Solidity 引入了全新的代碼。另外還在該版本中發佈了桌面端錢包 Mist,用戶可以通過 Mist 持有資產或使用智能合約。後來 Mist 項目在 2019 年初宣佈終止。

以太坊升級旅遊地圖:一文梳理升級歷史與未來規劃以太坊「家園」,是一個區塊鏈應用平臺

DAO 分叉(DAO Fork):誕生 ETC 和 ETH

這是爲什麼以太坊有兩個網絡的原因。2016 年一個名爲 The DAO 的去中心化自治組織項目通過發行代幣融資 1.5 億美元。在 6 月,The DAO 的合約被黑客利用,價值數千萬美元的 ETH 被未知的黑客竊取。這個事件的後續發展還是有很多細節的,總而言之,大多數社區成員認爲應該進行硬分叉,將被盜資金從黑客那裏拿回。所以在 2016 年 7 月 20 日,進行了名爲「DAO Fork」的硬分叉。還有不少社區成員並不認可這種行爲,他們認爲去中心化的區塊鏈平臺不應該進行任何人爲干預,已經發生的交易不能被撤銷。存在分歧的社區在硬分叉後產生了兩個網絡,黑客依舊掌握資金的以太經典(Ethereum Classic)和被盜資金已返還給投資者的以太坊(Ethereum)。

橘子口哨(Tangerine Whistle):減輕 DoS 攻擊

以太坊網絡自 2016 年 9 月 18 日起,遭遇了個人或團隊的攻擊,網絡被大量未完成交易堵塞,類似於一種拒絕服務攻擊(DoS)。所以以太坊基金會計劃進行兩次硬分叉徹底解決這類攻擊。第一次的硬分叉會聚焦處理最緊急的網絡健康問題,也就是價格過低的操作碼。第二次的硬分叉會聚焦在次要優先級的問題,比如攻擊者利用大量空賬戶進行洪水攻擊,可能會增加不必要的區塊鏈賬本的大小。

2016 年 10 月 18 日的第一次硬分叉,增加了以太坊虛擬機(EVM)操作碼(opcode)的成本,這也就意味着在鏈上執行這類計算,需要付出的成本將會提高。這類操作碼是防止垃圾信息攻擊的基礎,這次的升級就是對這些進行了調整,以減輕這類攻擊的影響。

僞龍(Spurious Dragon):徹底解決攻擊

時隔一月之後,2016 年 11 月 22 日進行的即是第二次硬分叉,希望徹底解決自 9 月起引發的一系列攻擊問題。將通過四個提案聯合解決,分別是:增加重防攻擊保護、提升 EXP 操作碼的費用、狀態樹清理、調整智能合約的最大字節數限制。

拜占庭(Byzantium):進入第三階段 & 首次推遲難度炸彈

2017 年 10 月 16 日,此次硬分叉包含了 9 個改進提案。除了與操作碼、智能合約等底層相關的更新之外,還將「難度炸彈」推遲至一年半之後,並將區塊獎勵從 5 ETH 減少爲 3 ETH。在拆除難度炸彈之前,區塊生成時間接近 30 秒。

以太坊升級旅遊地圖:一文梳理升級歷史與未來規劃巴列奧略王朝時的拜佔廷帝國疆域,公元 1265 年前後

君士坦丁堡 (Constantinople):雙重硬分叉 & 再度推遲難度炸彈

在沉寂了一年多之後,以太坊基金會將於 2019 年 2 月 28 日進行「大都會」的最後一步,也就是名爲「君士坦丁堡」的硬分叉,共包含 6 個改進。有意思的事,此次升級中還有一個名爲「彼得斯堡」(Petersburg)的硬分叉會同時進行,去除了之前在君士坦丁堡中的一個改進提案(EIP-1283)。

在本次的 5 大更新中,除了技術相關的調整之外,再次推遲難度炸彈 12 個月,並將區塊獎勵從 3 ETH 減少爲 2 ETH。

以太坊升級旅遊地圖:一文梳理升級歷史與未來規劃奧斯曼帝國時期的君士坦丁堡,1572 年

伊斯坦布爾(Istanbul):性能優化

以太坊 2.0 計劃在 2020 年啓動第一階段(phase 0),在 2.0 沒有完全上線之前,大多數用戶和開發者可能會主要使用以太坊 1.X,所以後續 1.X 的更新也是非常重要的。本次的伊斯坦布爾硬分叉在 12 月 8 日激活,包含了 6 項改進,提升性能和優化部分的操作碼。以太坊聯合創始人 Vitalik Buterin 表示,在本次升級後,普通的每秒交易數(TPS)會提高約 5% 到 10%,而對於 Layer 2 技術 Rollup 來說,可以提高約 4 倍。

以太坊升級旅遊地圖:一文梳理升級歷史與未來規劃由博斯普魯斯海峽和馬爾馬拉海交匯處所見的伊斯坦布爾全景

謬爾冰川(Muir Glacier):又推遲難度炸彈

不斷有用戶和開發者發現最近以太坊的區塊生成間隔有略微提升,這將導致以太坊網絡的 TPS 下降。以太坊開發者進行了討論,有人提議在區塊高度 9,200,000 進行代號爲「謬爾冰川」的硬分叉以移除難度炸彈,預計發生在 2019 年 12 月 31 日前後。根據開發者在討論組中的數據來看,以太坊的區塊生成時間在移除難度炸彈之前將一直保持增長,到 1 月 6 日左右可能會達到 25 至 30 秒時間。

MuirGlacier,Alaska,ca1897_(LAROCHE_176).jpeg由 Frank La Roche 在約 1897 年攝影記錄下的謬爾冰川

柏林(Berlin):開始以 Devcon 的城市命名

從這個版本開始,升級代號將會遵從以太坊開發者大會 Devcon 的順序,而第一屆 Devcon 0 就是在柏林舉辦的。之前其實爲「伊斯坦布爾」規劃了很多的改進,但是由於各種原因,最終部分沒有來得及放在伊斯坦布爾中的改進提案將會移至「柏林」,暫時被接受的 EIP 有 8 個。

以太坊升級旅遊地圖:一文梳理升級歷史與未來規劃第一屆(Devcon 0)在柏林,中間爲 Vitalik Buterin 和 Gavin Wood

倫敦(London)、上海(Shanghai)

目前在官方文檔中,也就提到過這兩次的升級代號,其他任何信息還未被討論過。不過官方有提到,未來的開發週期將會以 EIP 爲中心,只有當 EIP 足夠成熟之後,纔會考慮合併至升級中。而且會優先考慮「準時」且「規模小」,而不是「延期」且「規模大」。

以太坊升級旅遊地圖:一文梳理升級歷史與未來規劃第三屆(Devcon 2)在上海