總的來說,我認為人們沒有意識到以太坊路線圖在過去四個月中發生了多大的變化。
尤其是很少有人注意到按照以太坊2.0當前的計劃,其自身沒有提供任何有用的擴容性。
在之前的計劃中,向以太坊2.0過渡是解決以太坊迫切擴容性問題的全部希望。按照原本的路線,Eth2 計劃通過階段1的分片數據/區塊以及階段2的分片執行和分片狀態(甚至是完全無狀態化) 來提供擴容性。通過在基礎層同時實現這三點,以太坊協議層才能真正意義上實現擴容性。
當前的Eth2 計劃僅對數據(區塊) 進行分片。基於此是完全無法改善當前情況的。
但是我們依靠核心協議外的Layer 2 rollups 來提供狀態和執行分片的同等效果。而這一變化發生在Vitalik 發布他對以rollups 為中心的以太坊的構想之後。 (中文版《以rollup 為中心的以太坊路線圖》)
Rollups 就像以太坊引擎的渦輪增壓器。 EVM 之所以動力不足是因為它缺乏作為燃料的數據。在某種程度上來說,這是為了避免狀態膨脹而有意為之。 Rollups 就像渦輪,對燃料-空氣混合物進行壓縮(即數據),並施加壓力使其進入EVM。 Rollups 還負責協議之外的狀態。
但是rollups 完全獨立於Eth2。 Rollups 目前已經基於Eth1 進行開發並且運行,並且已經開始逐步實現其擴容性承諾。
那麼Eth2 在擴容性方面扮演了什麼角色?當前的Eth2 計劃依賴於rollups 的成功,否則將無法提供額外的擴容性。一旦可用的rollup 生態就位,Eth2 的性能將提升幾個數量級。 Rollup 渦輪增壓器在Eth1 上同樣適用,但仍然受限於燃料管路。 Eth2 的數據分片鋪設了64 條燃料管路,每一條的容量都遠大於當前的Eth1 區塊鏈。也就是說Eth2 會為Rollups 渦輪增壓器提供支持。
新路線圖的幾點明顯優勢:
➤ Rollups 使得向PoS 的過渡(即eth1與eth2合併) 與分片解耦,我們可以通過“可執行信標鏈”的方式更快地推進合併。這種設計將切換PoS 對dapps、工具和用戶產生的影響降到最低。
➤ 我們可以選擇分片和合併的優先順序,如果哪個部分出現問題,可以降低風險。總的交付時間縮短了(需要交付的內容減少)。
➤ Layer1 協議被大大簡化。不需要再考慮跨分片交易等等。這些現在不是我們的問題了。總的來說是件好事。
但也存在一些令我顧慮的因素:
➤ Rollup 相關技術尚處於起步階段,並不能保證它最終會成功。在最壞情況下,我們可能需要將“可執行分片”重新納入Eth2。
譯者註:對此Vitalik 在Reddit 上進行了以下回复
與Rollup 技術相比,直接採用可執行分片這一擴容解決方案的研發與應用更加不成熟。特別是,如果要在多個分片上實現執行功能,我們需要:
完全無狀態驗證(為了保證系統的安全性,驗證者需要快速地重組,因此不能依賴驗證者儲存任意某個分片的狀態)一個經濟學適宜的區塊提議模式(前提是區塊提議者可以選擇分片,使得攻擊者更容易在單個分片中控制區塊提議並審查用戶,我們必須想辦法解決該問題)一個跨分片交易模型,該模型需符合經濟學和適用gas 機制一個更完備的託管證明策略(proof of custody game) 以處理執行(關於驗證者的兩難問題,其在計算上的問題要比數據嚴重得多。因此我們必須得防止所有驗證者只投”贊成“票)
以上所有問題都是可以解決的,但同時解決這些問題比解決rollup 的問題要難得多。當然rollup 也有問題,但比可執行分片這一方案少得多(可執行分片的解決方案離實現還很遠)。在我首次發布《以rollup 為中心的以太坊路線圖》這篇文章的時候,已經有三個ZK rollups 解決方案運行數月了。
➤ 以rollup 為中心的世界:其中許多屬於協議類型的事物都被剔除出協議,這在短期內會更加混亂。然而,獨立於基礎層的好處是能夠迅速迭代,而市場的迫切需求最終會推動互操作性、工具等標準的應用。但這會是一段坎坷的道路。
➤ 便宜的layer1 交易大概已經一去不復返了,而目前的Eth2 設計並不會改善這一點。這個消息可能會令許多人感到驚訝和沮喪。
總之,我認為大家應該對上述內容心中有數。請對你中意的rollup 開發者表示支持!
信標鏈
關於信標鏈最近沒有什麼大新聞。截至譯文發布,有91,829 名活躍驗證者,驗證者激活隊列為5,928。當前的隊列長度為6.5 天,前不久達到了21天,說明新質押存款速度開始慢了下來。不過現在已經有超過300 萬ETH 被質押,價值50 億美元。
不過一直有一個迷思:Justin Drake 注意到有六名驗證者已經在主網中自願退出(voluntary exits)。這有點出人意料。他們沒有被罰沒,但他們每個人都提交了自願退出信息,因此他們不再作為活躍驗證者。但是他們質押的ETH 仍然處於鎖定狀態,直到eth1 和eth2 進行合併。
Afri 也發布了針對客戶端的同步性能基準測試。 (中文版《以太坊2.0主網客戶端性能比較》) 這是很棒的工作,但不幸的是其主要參考參數是不正確的。 Teku 完全不針對同步速度進行優化,因為在弱主觀性的PoS 環境中,極少數人會從創世開始同步。實際上,這麼做也存在風險。對此可以看看Meredith Baxter 的視頻,解釋了長程攻擊相關問題。 Teku 因此採取了即時快照同步的方式,使得用戶可以在一分鐘內完成同步並開始運行。這是更為可取的方式。但這一點並沒有被納入基準測試中。
罰沒
唯一比較大的事件莫過於一連串的罰沒事件。 Staked.us 有75 名驗證者在2 月3 日被罰沒,對此他們發布了一個事件聲明。有些推文表示了對此次事件的同情,我並沒有相似的感覺。兩天后他們又有17 名驗證者被罰沒,據我所知這至今尚未確認。還記得Staked 在12 月也有16 名驗證者被罰沒,也沒有公開承認。我本來打算在此處引述Oscar Wilde,但老實說,這是需要嚴肅對待的事[1]。
此處是Attestant 的文章,分析了一個架構合理的質押服務如何在零罰沒風險的前提下維持盡可能高的運行時。
如果讀者想了解更多關於罰沒的背景,以及我們在客戶端中的罰沒保護措施,可以看看Ethereum Cat Herders 的Peep an EIP #22: EIP-3076。這個視頻解釋了客戶端團隊為了保證用戶體驗和安全性所採用的標準化罰沒保護交換格式(目前Lighthouse 和Teku 已經採用,Prysm 和Nimbus 也即將支持)。最後十分鐘還討論了Eth1–Eth2 合併的可能路徑。
HF1 升級
目前還有一條關於信標鏈此後升級命名規則的公開issue。如果你有任何想法的話都可以參與! [2] (計算機科學中的難事:緩存無效、命名以及差一錯誤)
我們在最近的開發者會議中對HF1 升級中所提議包含的措施進行了討論並達成一致。大部分內容很簡單,但是其中包含了首次提出的兩個事項:(1) 計算方式改變tier 2;(譯者註:原提議為將每個epoch 進行的驗證者集和懲罰計算更改為每64 epoch 進行一次,並對inactivity leak 進行了調整);(2) 提議在任一時間對活躍驗證者的數量設置硬上限。我們同意採取第一項提議,但沒有採取第二項(目前基本上尚無定論,因為要達到提議的驗證者上限至少需要一年)。文檔已經對此進行了更新。
我們還同意對分叉選擇規則進行兩項更改,以減輕不同的理論攻擊風險。 Teku 團隊的Adrian 針對其中的"餘額攻擊防禦"寫了一篇文章,分析其如何在客戶端中實現。
工具
Ethstaker 團隊在Twitch 上開啟了24/7 的客戶端直播,旨在幫助新的以太坊2.0用戶通過客戶端日誌辨別他們的客戶端是否已經同步。光是看看也挺酷的。不幸的是,直播現在似乎已經下線了。但是它正常工作時會在四個信標鏈客戶端以及Geth 的控制板之間循環。
Infura 的Eth2 API 目前已經公開測試。 Pyrmont 測試網可用。
Nimbus 團隊延長了他們dashboard 挑戰的提交時限。現在延長到了2月28號,最佳提交者的獎品高達5000 美元。快來試試吧,Gafrana 非常好玩!
Jim McDonald 的chaind 程序升級到v0.2.0 版本,用以將Eth2 的數據提取到SQL 數據庫中。
Jacek 的名為ngui 的周末項目可用於探索Nimbus 的RPC API。
Bitfly 宣布他們出色的Beaconcha.in 移動端程序現已開源。
Blst 庫的審計已經完成。沒有發現嚴重問題。有興趣可以閱讀完整報告。
最後,多項式承諾(polynomial commitments) 最近很火。 Alex Stokes正在使用Rust 語言建立一個KZG commitment 庫。同時,我也在用C 語言做同樣的事。 (因為我很硬核。我非常喜歡對segmentation violations 進行debug) 我們都在做Blst 相關的事。