回溯歷史,通往“世界計算機”的每一步都印在那密密麻麻的code里。
作者:freeyao
什么是以太坊?一千個人有一千個答案,而本文想探討的是最為一致的答案,即以太坊的協議是什么?或用更技術地描述——如果要開發以太坊的客戶端(PoW鏈/ETH1),我需要依照什么規則?
你沒法找到一份規范描述以太坊當前的共識規則,因為以太坊的協議是通過增量更新來描述的。以太坊黃皮書描述了創世時的完整協議,而每一次協議變更都稱為一次硬分叉(當然,也有人嘗試用「網絡升級」這個表述),需要所有的客戶端更新代碼。簡而言之,以太坊通過硬分叉來實現協議層的變化,變化的最小單元被稱為以太坊改進提案(EIP, Ethereum Improvement Proposal),一次硬分叉包含一組以太坊改進提案。 本文將回顧以太坊的歷次硬分叉及其中包含的改進提案,試圖展現過去的七年中以太坊究竟做了什么。
以太坊的歷次硬分叉可以通過此頁面查看。自 2015 年 7 月30日上線起,共進行了 14 次硬分叉,包含 39 個 EIP(「君士坦丁堡」和「彼得堡」視為同一次)。間隔最近的兩次硬分叉是 26 天,間隔最遠的兩次則是 490 天。
硬分叉分為「主動升級」和「被動升級」。主動升級指的是開發團隊主動對以太坊協議的修正,而被動升級則是「不得不」采取的行動,以應對潛在的安全性風險。被動升級至少包括「DAO Fork」、「Tangerine Whistle」、「Spurious Dragon」、「Muir Glacier」、「Arrow Glacier」、「Gray Glacier」,它們或處置黑客盜竊(DAO Fork),或應對 DDOS 攻擊(Tangerine Whistle, Spurious Dragon),或僅僅處置難度炸彈(Muir Glacier, Arrow Glacier, Gray Glacier)。而「主動升級」大致符合白皮書的規劃(至少在命名上),Frontier(Frontier, Frontier Thawing)、Homestead、Metropolis(Byzantium, Constantinople/Petersburg, Istanbul),而 Berlin 和 London 則是以太坊路線圖變更后的過渡性升級。此外,多次主動升級也包含了推遲難度炸彈的選項。
以太坊合并一周后供應量已增加超5000ETH:金色財經報道,據ultrasound.money數據顯示,以太坊合并一周后供應量已增加超5000ETH。數據顯示,截至發稿,新增供應量為5027.07ETH。
EthHub聯合創始人AnthonySassano發推文稱:“自從合并以來已經過去了一個多星期,如果以太坊仍然是PoW,那么ETH的供應量將增加約10萬枚,相反,目前ETH的供應量只增加了約5000枚,這意味著ETH凈發行量減少了95%(包括目前非常少的銷毀)。大部分按PoW發行ETH的可能被礦工拋售,因為他們必須支付運營成本,由于運營成本明顯低于PoW,大部分按PoS發行的ETH(稅后)可能會被持有/重新質押,一旦市場再次升溫并且平均gas價格回到15Gwei上方,ETH發行量將是凈負數(即ETH為通縮狀態)。”[2022/9/23 7:15:53]
硬分叉是如何達成共識的呢?盡管關于硬分叉的協商并無成文規定,而是依照某種社區慣例進行,但其流程發生過一次變更,標志性事件是 Martin Holst Swende 提出了「以 EIP 為中心的升級」。這種新的硬分叉協商機制首次在 Berlin 升級使用,并避免了一次大型失誤,細節將在后文中介紹。
歷次硬分叉背后蘊含著一些代表性事件,頗具戲劇性,包括 DAO 分叉、上海 DOS、雙堡奇緣和拆彈危機。
DAO 分叉事件是以太坊發展過程中最為深遠的一次事件。由于 the DAO 的智能合約被黑客攻擊,約 360 萬 ether 被黑客盜走,但有 28 天的凍結時間。在這期間,借助 Carbonvote ,持幣者表達意愿,以太坊基金會決定將這部分資金轉移到新的智能合約,允許投資者提款。此次分叉產生了 Ethereum Classic,也引發了大量的社會爭論。
安全團隊:一些惡意網站借“以太坊合并”進行網絡釣魚:金色財經消息,據Beosin Alert監測,一些惡意網站正在使用最近“以太坊合并”的熱點進行網絡釣魚活動,這些網站包括ethereum-2[.]mozellosite[.]com和eth-crv[.]com/erc/#/。[2022/9/2 13:04:05]
在 Devcon 2 期間,以太坊核心開發者們齊聚上海,但以太坊網絡卻遭遇了大量的網絡流量攻擊,造成了拒絕服務(DOS)。由于 EXTCODESIZE 操作碼所消耗的實際系統資源遠高于攻擊者所需支付的手續費,攻擊者反復調用該操作碼,造成全網大多數節點無法追上最新區塊。開發者們一面協調礦池和全節點啟用受影響較小的 Parity 客戶端,一面協商降低區塊 gas(從 5 M 降低至 1.5 M)。最終,借助 Tangerine Whistle 和 Spurious Dragon 兩次硬分叉調整了相關操作碼的價格,并做了狀態清理,才緩解了 DOS 攻擊的影響。這次硬分叉還帶來了后續影響,由于對 EIP-161(納入在 Spurious Dragon 中)的實現不當(Go-ethereum 和 Parity 各自錯誤地做了實現),造成了共識分叉。
你也許會好奇為什么在 7280000 高度會有「君士坦丁堡」和「彼得堡」兩個分叉,仔細觀察會發現兩者的差別就在于「彼得堡」移除了 EIP-1283。
根據ChainSecurity 的報告,EIP-1283 會為部分合約引入重入攻擊的風險。TrailOfBits 給出了更詳盡的分析并提供了可能受影響的合約列表。在硬分叉激活前 32 小時,以太坊基金會發文提醒節點升級或降級以推遲君士坦丁堡升級,隨后發布新版本引入彼得堡硬分叉,客戶端需要將「雙堡」配置在同一塊高或禁用君士坦丁堡硬分叉。
以太坊預計將在2022年Q2進行合并,合并后首要任務為解鎖Staking合約中鎖定的ETH:11月7日消息,Coinbase加密工程師yuga發推總結11月6日的以太坊社區電話會議,此次會議關鍵信息包括:合并預計將在2022年第二季度左右進行(可能會發生變化);合并期間預計不會出現停機;這是一個“共識熱交換”;合并將以太坊業務邏輯分為兩層,共識層是驗證節點對區塊、最終性等進行投票,節點客戶端包括Prysmatic Labs和Teku,執行層是節點構建區塊、驗證交易等,客戶端包括Geth和Nethermind;合并后節點運營商除了現有的執行節點外,還必須提出一個共識節點;在Staking合約中鎖定的ETH在合并后將保持鎖定狀態。以太坊社區在合并后的首要任務是解鎖質押的ETH。
此前消息,以太坊開發者會議:基于平均區塊時間進行硬編碼假設的合約將受到合并影響。[2021/11/7 6:36:27]
為什么 Muir Glacier 和 Istanbul 兩次硬分叉之間只有 26 天,這是因為核心開發者們錯誤計算了難度炸彈的爆炸時間,導致在 Istanbul 中未納入推遲難度炸彈的提案。等到發現難度炸彈即將要對網絡產生影響時,第 76 次核心開發者會議迅速接受了 EIP-2384,并納入到 Muir Glacier 硬分叉中。
硬分叉是如何決定的?實際上以太坊長期缺少成文文檔,更多依賴「社會共識」(如果我錯了請改正)。EIP-233 試圖規范分叉的正式流程,但并未被接受。
以太坊12月份網絡升級或僅包括難度炸彈推遲,樂觀情況下為Eth1和Eth2合并升級:因為倫敦升級納入的EIP-3554提議將難度炸彈延遲到12月,以太坊開發者Tim Beiko發帖討論將于12月份進行的網絡升級。Tim Beiko表示,在最樂觀的情況下,這次升級將為Eth1和Eth2合并升級,但考慮到主網準備清單上的未清項數量,無法確定這一點。如果假設有一個非合并升級,需要決定除了推遲難度炸彈之外,是否還想包括其他東西(如果只延遲難度炸彈,是否保留名稱“上海”,或者使用另一個“冰川主題”名稱)。如果只延遲難度炸彈,升級的測試和實施會大大簡化,不需要在主網之前部署在測試網上,可以在10月份選擇適當的延遲,在11月份發布客戶端,在12月份升級。如果決定包含任何“功能EIP”,則需要進行測試和測試網部署。如果遵循倫敦升級時間表,后續需要遵循以下時間表:8月初選擇EIP、八月/九月下旬 devnets、九月下旬/十月初 測試網發布、十月 測試網升級、11月初 主網發布、12月初 主網升級。鑒于客戶團隊需要分散注意力,進行網絡升級可能會延遲合并的一些進展。除非我們在8月6日電話會議上選擇了EIP 列表,否則將默認在12月升級中不包括任何非難度炸彈EIP。
此前消息,倫敦升級決定納入EIP-3554,EIP-3554提議將難度炸彈延遲到12月。[2021/7/18 1:00:52]
盡管本文無法展現以太坊社區對硬分叉決策流程的討論,但以太坊的硬分叉決定流程顯然發生過變化。在 Berlin 硬分叉之前,開發者首先確定硬分叉的時間,再決定要納入哪些 EIP,確定之后再進行實現和測試。Berlin 前的每次硬分叉都是一個 Meta EIP,例如 Istanbul 硬分叉通過EIP-1679定義(簡稱 HFM-1679)。
美國司法部:Visa和Plaid已經放棄了合并計劃:金色財經報道,美國司法部在Visa收購Plaid一案中取得勝利,該案可能為一系列反壟斷執法活動奠定基礎。1月12日,美國司法部宣布,Visa和Plaid已經退出了合并計劃。此前2020年1月消息,Visa宣布斥資53億美元收購Plaid。同年6月,一起訴訟指控該公司通過“數據管道(Data plumbing)”收集Venmo、Stripe、Square的Cash App和Robinhood等服務的相關數據。同年11月,美國司法部就Visa收購Plaid一事對其提起反壟斷訴訟。[2021/1/13 16:01:28]
Martin Holst Swende 提出了EIP 為中心的硬分叉流程,其核心觀點是將 EIP 的接受與硬分叉剝離,核心開發者聚焦于單個 EIP 的認可、實現和測試,當單個 EIP 被接受后,后續的硬分叉可選擇納入該 EIP。盡管在寫作過程中尚未找到該流程是如何被以太坊核心開發者接受的,但是 Berlin 硬分叉棄用了HFM-2070,而是采納了 Martin 提出的流程。
決策流程的變更很快就發揮了作用,在 Berlin 硬分叉測試網激活前兩周,圍繞 EIP-2315 的廢留,開發者們展開了激烈的爭論并最終移除了 EIP-2315 。由于新流程的采納,最后時刻的變更并未對硬分叉造成太大影響,并最終按期進行。更多細節可參考本人撰寫的《移除EIP-2315:以太坊柏林升級前的緊急剎車》
值得一提的是,以太坊的區塊空間上限(Block gas limit)并非共識的一部分。礦工有權更改區塊空間上限,每個區塊的上限變化最多為 0.1%。不去硬編碼這個數值主要是為了避免潛在的攻擊風險。該數值變化的歷史可參見 MyCrypto 撰寫的研究報告。
這些 EIP 對以太坊究竟造成了什么影響,又是誰影響著以太坊的決策呢。本文整理了以太坊硬分叉中納入的所有 EIP(不包含元提案),詳見鏈接。
https://primitiveslane.notion.site/cbd45cf0289c414b86715b8a9e71b28e?v=838baf2ac3a442a6b3fa03e58c5dc0ae
納入硬分叉的 EIP 的類型主要包含計費模型變更、新操作碼引入、難度炸彈、經濟模型、預編譯、安全考慮等。
計費模型變更是數量最多的 EIP,共有 10 個,占 25.6%。其通過增減操作碼的單價,以平衡 gas 消耗和實際占用系統資源的不匹配,可消除系統被 DOS 攻擊的隱患,或是有利于特定類型應用的部署。一部分 DOS 隱患是因為對系統資源的錯誤估計造成的,EIP-150 和 EIP-160 解決了這個問題;而另一部分 DOS 隱患則是系統的固有特性,伴隨著狀態數據增長,訪問狀態數據的實際資源消耗也隨之增長,因此需要定期調整相應操作碼的單價,典型的有 EIP-1884(我認為寫得最好的 EIP 之一)。
由于以太坊的狀態表示模型,計費模型必須定期調整,這是特性,而非故障。
共有 9 個 EIP 為以太坊虛擬機引入了新的操作碼(不含 EIP-1884),占 23.08 % 。其中比較有影響力的包括 EIP-7 (DELEGATECALL), EIP-1014(CREATE2), EIP-3198(BASEFEE) 等。
共有 6 個 EIP 在推遲難度炸彈,占 15.4 % 。有 2 次硬分叉伴隨著經濟模型的調整,即降低新區塊獎勵。其中有 3 次僅為了推遲難度炸彈而實施的分叉,即名字中帶有 Glacier 的硬分叉。有關難度炸彈的歷史,可見原語里弄的報告。
有 4 個 EIP 對經濟模型有影響,2 個降低了新區塊獎勵,1 個調整了難度計算模型(EIP-100),此外引發較多爭議的 EIP-1559 調整了手續費市場。
有 4 個 EIP 將一些密碼學操作預編譯,因此無需在 EVM 中執行,提升運行效率。包括 EIP-152, EIP-196, EIP-197, EIP-198。
有 3 個 EIP 是出于安全考慮的,包括重放攻擊保護(EIP-155),狀態前綴樹清理(EIP-161),合約代碼大小限制(EIP-170)。
其它 EIP 還包括網絡協議改進(EIP-8),增加交易執行狀態接口(EIP-658),增加新的交易類型(EIP-2718)等。此外,EIP-2 包含了 Homestead 的所有更新,較為復雜。
共有 43 人,77 人次參與了這些 EIP 的撰寫,其中參與 2 個以上(含) EIP 的作者有 11 個。Vitalik Buterin 參與撰寫的最多,共 17 個,占 43.6 %。Martin Swende 和 Christian Reitwiessner 各參與 5 個,Alex Beregszaszi 和 James Hancock 各參與 3 個,其余人參與的個數均不超過 2 個。
Martin Swende 是以太坊基金會安全負責人,Go-ethereum 工程師,EIP 為中心的硬分叉流程的提出者;Christian Reitwiessner 是 Solidity 語言的發明者。
另外有趣的是在新的硬分叉流程實施之后,EIP 作者的數量發生了顯著變化,這或許說明新的流程提高了 EIP 的參與度。Berlin之前,28 個 EIP,43 人次,平均每個 EIP 有 1.54 個作者;Berlin之后,11 個 EIP,34 人次,平均每個 EIP 有 3.09 個作者,增長了一倍。
本文介紹了以太坊歷史上的歷次硬分叉,解讀了幾次硬分叉背后的代表性事件,并詳細描述了以太坊硬分叉決策流程向 EIP 為中心的轉變。文章還深入分析了歷次硬分叉中的 EIP 所發揮的作用以及他們背后的貢獻者。
以太坊即將迎來新的時代,往事涌上心頭,讀者朋友,你有何感受?
PANews
媒體專欄
閱讀更多
金色早8點
財經法學
成都鏈安
Bress
鏈捕手
Odaily星球日報
Tags:以太坊ETHACIBER以太坊交易所幣種有哪些togetherbnb手游下載破解CardacityBERAGE價格
什么是以太坊?一千個人有一千個答案,而本文想探討的是最為一致的答案,即以太坊的協議是什么?或用更技術地描述——如果要開發以太坊的客戶端(PoW鏈/ETH1).
1900/1/1 0:00:00以太坊信標鏈昨晚(9月6日)正式更新Bellatrix分叉升級,升級之后ETH 價格飆升至 1,678 美元以上。然而,隨后又下跌到了1500附近,幾乎侵蝕了 Bellatrix 升級后的收益.
1900/1/1 0:00:00金色周刊是金色財經推出的一檔每周區塊鏈行業總結欄目,內容涵蓋一周重點新聞、行情與合約數據、礦業信息、項目動態、技術進展等行業動態。本文是項目周刊,帶您一覽本周主流項目以及明星項目的進展.
1900/1/1 0:00:008月31日,以太坊創始人V神發推稱,《Proof of Stake》數字版和實物版將在9月份出版,書內匯集了V神在過去十年間的過往文集.
1900/1/1 0:00:001.DeFi代幣總市值:479.04億美元 DeFi總市值 數據來源:coingecko2.過去24小時去中心化交易所的交易量55.
1900/1/1 0:00:00原文標題:《Uniswap 的頂流之路:過去、現在及將來》 撰文:J.A.E Uniswap 是一項基于以太坊的去中心化交易協議,通過智能合約自動執行代幣互換.
1900/1/1 0:00:00