以太坊是一個正在經歷重大變化的協議
撰文:Trent Van Epps,以太坊基金會成員
編輯:南風
以太坊是一個正在經歷重大變化的協議。從中期來看,我們正在推動以太坊協議的升級,從而使其能夠得以擴展並滿足不斷增長的全球需求,同時也改善以太坊網絡的安全性和去中心化。這是一條漫長而曲折的道路,但以太坊「集市」中的研究者和開發者們比以往任何時候都更加活躍。
在閱讀下文之前,請記住本文並不是一個“官方”的路線圖,只是對以太坊現狀的有限且主觀的看法。
01. 命名已經改變
時間線→ 進行中
讓我們首先來談談我們在以太坊領域中的命名。雖然從這個方面開始似乎有些奇怪,但要知道的是,以太坊的命名框架是由其發展路線圖來決定的。下面是最近流行的術語變化的兩個例子,以及這種命名變化背後的原因。
執行& 共識
無論出於何種目的,“Eth1”和“Eth2”這兩個術語已經不再用於以太坊的核心開發中,可參見Tim Beiko 撰寫的《Great Renaming》文檔:
https://notes.ethereum.org/@timbeiko/great-renaming
這兩個舊的命名方式表達了兩個含義,即“Eth1在前,Eth2在後”和“Eth2誕生之後,Eth1就不復存在”。自2020 年10 月開始,以太坊核心研究者Danny Ryan 就指出了這個問題。儘管PoS 信標鏈自2020 年12 月初啟動以來一直與當前的PoW 以太坊主網並行運行,但使用Eth1 和Eth2 這兩個術語會暗示當前的PoW 以太坊在某種程度上已經消失了。實際上,當前以太坊主網上的鏈狀態將會在合併發生之後無縫地與信標鏈結合。
不會有任何數據會被丟失,不需要進行任何遷移。
我們已經轉向使用“執行”(Execution) 和“共識”(Consensus),而不再使用“Eth1”和“Eth2”這兩個術語。我推薦你閱讀Dany Ryan 的這篇深入闡述的文章:
https://blog.ethereum.org/2021/01/20/the-state-of-eth2-january-2021/
簡而言之,“執行”指的是用戶層的所有東西,包括應用程序、賬戶餘額、代幣等,這也可以被稱為“狀態”(state)。 “共識”就是指將所有這些東西綁在一起的PoS 共識機制,包括事務(交易) 的最終性(finality)、分叉選擇規則、驗證者和激勵機制。
在合併之後的環境中,執行層和共識層將一起共存。
“特性”,而非“階段”
我們摒棄的另一個術語是“階段”(Phases)。在過去,這是指一個特定的協議變更,比如“階段0是指信標鏈”。
去年晚些時候,我們開始了非正式地、漸進地將“階段”重構為“特性”(features)。首先,使用具體的“特性”來命名會更加靈活:當協議的設計更新或者範圍擴大/縮小時,相比於直接使用該特性提案的名稱來命名,使用“階段X”的簡寫要更難以傳達這些變更。
其次,“階段”一詞暗示了順序性:“階段X”之後必須是“階段X+1”。這種命名方式行不通的一個很好的例子就是,當前正在進行中的「合併」(之前被稱為“階段1.5”) 的優先級要高於「數據分片」(之前被稱為“階段1”)。
偏向於使用具體的“特性”來命名意味著這些命名可以在需要時很容易重新排序,並更清楚地傳達它們的最終影響。
認知的靈活性
更抽像地說,我傾向於認為上述兩種變化都是基於認知的靈活性。換句話說,這是知識形成的一種靈活形式,讓我們的社區更好地理解以太坊「集市」中誕生出的非結構化創造力。
我們之所以能夠根據路線圖來做出自適應的決策,是因為我們不拘泥於階段或順序。承認並內化我們沒有完整的路線圖是一種謙卑。這是以太坊哲學的重要組成部分,我很高興看到它紮根於此。
更廣泛的以太坊社區可能需要一段時間來適應新的命名規範,但我們會適應的!提前感謝你幫助我們完成這一重要的努力:)
02. 合併
時間線→ 5-8 個月
既然我們已經討論了命名的變更,讓我們討論下一個令人興奮的以太坊特性:合併。合併指的是以太坊共識機制即將從工作量證明(PoW) 轉變為權益證明(PoS)。
這是以太坊和更廣泛的加密領域最受期待的協議變更之一。在區塊鏈行業存在的大部分時間裡,有關PoW 及其對能源消耗的負面看法一直主導著大眾媒體。以太坊將成為有史以來轉變其共識機制的最大協議,並有望改變這種敘事。
合併給協議帶來的好處
合併包含了對以太坊協議的許多重大改進:
-
當合併完成時,以太坊區塊鏈將變得更加安全。區塊將在某個時間點之後被“最終敲定”(finalized),同時將對重組區塊鏈的驗證者引入了罰沒機制,也即抑制驗證者對區塊或者內部交易進行重組。
-
其次,PoS 消除了與PoW 相關的大量能源消耗和硬件浪費。研究者們預計以太坊的能耗將在合併之後下降高達99.95%。常規消費級硬件將取代目前運行以太坊共識的ASICs 和GPUs 硬件。這兩大影響將為以太坊來帶更加節能、更加多樣化、地理上更加分散和抗脆弱的共識參與者。
-
第三,以太坊PoS 將為實現分片(sharding) 搭建平台,這也是一場重大的協議變化,將把以太坊區塊鏈分成的許多並行運行的分片鏈。通過為數據可用性和結算增加可用的區塊空間,分片將為L2 擴容工作帶來額外好處。
-
最後,合併將會減少ETH 的年增發率,從當前的淨3.5% 到大約淨0%。
通往合併的道路
為「合併」奠定基礎的第一個重大事件是今年早些時候為期一個月的Rayonism 黑客馬拉鬆活動。這項工作模擬了合併之後以太坊區塊鏈的樣子,以及共識/執行客戶端將如何彼此通信。
最近,我們進行了Amphora 互操作性工作坊,這個為期一周的活動繼續在Rayonism 成功的基礎上進行構建,並添加了從PoW 過渡到PoS 的關鍵時刻。 10個客戶端團隊做出來貢獻,且截至該週週末,一個對這場從Pow 向PoS 過渡進行建模的開發者測試網已經成功運行了!
如果你想要了解更多關於這場活動的信息,可以查看Tim Beiko 的這篇文章《Amphora: A Major Merge Milestone》:
https://blog.ethereum.org/2021/10/15/amphora-merge-milestone/
從這次活動中獲取的經驗已經納入到了最新版本的合併規範“Kintsugi”中。與此同時,還有一個稱為Pithos 的長期開發測試網。這種情況將在2021 年Q4 至2022 年Q1 期間重啟多次,從而使用更新的規範來重新測試從PoW 過渡到PoS 的時刻。一旦這種過渡變得相當穩定,就可以對Goerli 等現有的測試網進行升級以匹配合併規範。
感興趣的社區成員可以關注這個“The Merge Mainnet Readiness Checklist”(合併主網準備情況清單),上面對剩餘未完成事項進行了全面概述:
https://github.com/ethereum/pm/blob/master/Merge/mainnet-readiness.md
03. 上海昇級
時間線→ 10-12 個月
合併之後的以太坊的一個有趣的地方就是,雖然新舊兩條鏈已經合併了,但客戶端仍然是相互獨立的:包括它們是如何架構的,以及致力於這些客戶端的團隊也是獨立的。對於驗證者來說,這意味著有大量的選擇性:每個執行客戶端都可以與每個共識客戶端結合在一起,反之亦然。出於好玩,我羅列了這些客戶端組合之後可能使用的新名稱:
推特來源:https://twitter.com/trent_vanepps/status/1445008969756467203?s=20
如果需要,獨立的執行層和共識層還允許進行非耦合的升級過程。這很好地符合了以太坊的“對關注點進行分離”(separation of concerns) 的哲學。換句話說,相比於“單片式區塊鏈”,此時的以太坊對於一些更小的變更將更容易管理。
然而,上海昇級將會以耦合的方式同時對共識層和執行層進行升級,從而使驗證者的取款成為可能,也即允許驗證者將他們的ETH 從共識層取款至執行層,從而將二者更加緊密地綁定在一起。當ETH 從信標鏈(共識層) 撤回至執行層時,ETH 就能像我們在當前的以太坊鏈上一樣使用了:可以將ETH 作為價值存儲,或者用於支付NFTs,或者支付交易費等等。當前還有一些針對執行層的其他的提案正在被考慮是否納入上海昇級中,但這些提案尚未正式被接受。
在合併實際上線之前,我們將無法知曉這一可接受範圍。
04. 以太坊研究
時間線→ 進行中
在上述工作正在被規範、實現和測試的同時,還有其他並行的研究工作正在推動以太坊向前發展。
數據分片
當以太坊轉換為PoS 之後,分片(sharding) 可能是以太坊將會發生的最重要的變化。需要注意的是,當前的相關提案關注的是數據分片(data sharding),而不是分片執行。數據分片將為L2s 網絡提供更多可用於存儲數據的區塊空間,但這些分片還不支持像當前以太坊主網上我們所熟悉的本地用戶交易執行功能。目前,Rollups 網絡使用以太坊主網來進行此類結算操作。對於這種類型的分片的基礎研究並不復雜,這意味著數據分片將可以更快地在主網上線並為L2s 網絡帶來好處!
上圖:原始示意圖來自Hsiao-wei Wang,由Quantstamp設計
這種優先考慮數據可用性,符合了在過去18 個月裡可擴展性研究和dApps 領域的動態進展。 Vitalik 在2020 年10 月發表的《以Rollup 為中心的以太坊路線圖》貼文很好地闡述了這一可能的未來。這是以太坊社區認知的靈活性的一個很好例子!
在未來某個時候,以太坊社區可能會決定增加分片執行功能。但這仍然是一個有待研究的問題。
狀態到期& 弱無狀態性
這一領域的研究將改革以太坊協議處理狀態(state) 的方式。狀態是指所有的用戶記錄,包括合約、代幣、NFTs 和地址。在當前的以太坊中,用戶每次交易都會產生一筆一次性的成本,從而使該筆交易記錄無限期地保存在以太坊狀態中。從長遠來看,這是不可持續的。
在過去幾年中,一些有著不同權衡的提案已經被探索,包括諸如狀態租金(state rent) 和ReGenesis 等。
其中一個主要的提案被稱為“Weak Statelessness”(弱無狀態性),該提案將變更以太坊節點存儲和處理狀態的方式:具體來說,只有區塊提議者(block proposers) 將被要求存儲狀態,而所有其他節點都無需存儲狀態即可驗證區塊。以下是這種方式將對不同參與者產生的影響:
-
用戶:可以丟棄狀態,但在提交交易時還需要提交一個“見證”(witness)。見證是指隨交易一起發送的、用於證實交易有效性的證明(proofs);
-
非驗證者的節點:可以丟棄狀態;
-
驗證者/區塊提議者:如果依賴於第三方來生產區塊,則可以丟棄狀態;
-
區塊生產者:仍然需要存儲所有狀態。負責使用用戶提交的見證(witnesses) 來生產出包含有效狀態變更的區塊。
另一項提案成為“State Expiry”(狀態到期)。根據此提案,如果狀態在一段規定時間內沒有被訪問,那麼該狀態可以變為非活躍狀態,或者從活躍狀態變為“過期”。這可能是處於冷存儲狀態的ETH,或者某個社區離開之後廢棄的ERC20s 代幣等等。如果某個用戶想要重新激活其狀態,那麼該用戶發送的任何交易都需要附上一個見證(weitness)。對以太坊活躍狀態的大小進行限制的一大好處就是,節點在同步網絡和繼續維護時將變得更容易。
這兩個概念都正在被積極研究、進行基準測試並通過概念證明(PoC) 進行實現。想要更深入地了解目前的進展,可參考:
-
Guillame Ballet 整理的附有鏈接的摘要:
https://notes.ethereum.org/@gballet/Sy-a6T5St
-
EthR&R Discord Guidebook 上的這些鏈接:
https://github.com/tvanepps/EthereumDiscordGuidebook#stateless–state-expiry
… 還有更多
我還要更多內容可以寫的,比如EVM (以太坊虛擬機) 的改進和增強共識機制的方法,但我將把這些內容留著下一篇文章中講述。
如果你對研究上述這些重要的問題感興趣,請在推特上直接發信息給我(@trent_vanepps) 來邀請你加入以太坊R&D Discord 聊天頻道。或者你可以前往EthResearch 論壇進行深入了解:
https://ethresear.ch/top
展開全文打開碳鏈價值APP 查看更多精彩資訊