作者:Raul Jordan
譯者:核子可樂
2020 年 12 月 1 日,eth2 的第 0 階段終于登陸主網,這也成為我們整個職業生涯中最值得紀念的一天,我們非常清楚,這時我們的工作才正式進入正軌。為此,我們決定將 Q1 設定為一段專注于優化、提升穩定性并改進用戶體驗的修復性時期,社區中的每一條批評意見,都將成為我們推進 eth2 更上一層樓的重要助力。
我們堅信,Prysm 終將達到“發布之后、自行運作”的良好態勢。驗證機制本身高度穩定,除安全相關軟體更新之外幾乎無需任何額外干預,借此盡可能降低其“存在感”,我們承認,Prysm 在發布之初仍有大量優化問題需要解決,必須保證它能夠隨驗證方數量的增長而持續發展,下面來看年初至今 Prysm 達成的幾項小小成果:
- 持續對證明聚合進行優化,保證 Prysm 不斷提升資源利用效率與盈利能力
- 對擁塞及證明處理做出重大優化,最大程度降低利益相關方忽略驗證方提案或投票的可能性
- 高度關注穩定性與文檔記錄,并保證 Prysm 始終“正常運行”。未來的發展道路還很漫長,但與最初發布的主網相比,我們對當前最新版本的穩定性已經抱有極強的信心,
- 進一步關注 P2P 網路、入口點、對等管理與鏈同步層面的安全性與健壯性。
- 改進代碼庫中各重要組件,保證其經受得住時間的考驗。具體涵蓋 slasher、slashing 保護,并建立起能夠適應全部實現需求的 eth2.0 api 標準
在 Chainstack 的開發者活動報告中,Prysm 占據了相當比例的篇幅。這份報告著重介紹了我們項目的貢獻情況與 repo 發展態勢,成功吸引到不少新的外部貢獻力量,
2021 Eth2 客戶發展報告,來源:Chainstack
重點任務
從 Q2 開始,我們的團隊將加大工作力度,將每位成員對以太坊項目的發展愿景變為現實。下一階段,我們主要將重點關注以下幾個方面。
ETH 1 到 ETH 2 合并
我們已經在 eth 2 的分片部分上完成大量工作。但很明顯,社區仍然高度重視未來項目將如何由 eth 1 合并至 eth 2,確保發揮權益證明機制的一切潛能。
作為其中一種方法選項,我們打算將智能合約、交易、EVM、錢包以及大家所熟悉并喜愛的其他各類元素轉移至權益證明引擎之下。各區塊將按 12 秒固定時間周期在區塊鏈內生成,證明機制則不再由礦工們實現,而是被權益證明方提供的證據所代替。要順利完成這項工作,負責維護 go-ethereum 等 eth1 客戶端的開發者與 eth2 開發團隊必須建立起緊密的協同合作關系,
目前,我們主要關注兩大“合并”實現提案,二者也都要求在 eth1 與 eth2 節點之間建立通信。之所以選擇二者兼容,是因為雙方并非簡單的彼此替代、而更該說是各擅勝場:eth2 節點處理權益證明與驗證方注冊表,而 eth1 節點則處理交易及 EVM,如此一來,我們就可以利用對 eth1 核心協議的充分理解顯著加快“合并”速度,
來源:https://notes.ethereum.org/m9IX3OkkTveXCCOSzGkUiw
我們同時也關注 Vitalik 提出的第二項提案,即快速合并,也被稱為共識交換,Mikhail 曾提交過一項相關 pull 請求,在社區中獲得了大量支持與積極反饋。客戶端團隊正在研究這項提案,并快速進行概念驗證。在 Prysm 方面,我們已經開始對快速合并選項的工作量與資源預算進行評估,下面來看其中幾項要點:
- 應用載荷處理,當信標節點接收到信標區塊時,將對該區塊中的 eth1 組件進行驗證,接下來,該信標節點面向對應的 eth1 節點調用 eth2_insert_block。
- 應用載荷生成。當信標節點生成信標區塊時,會調用 eth2_produce_block 以接收來自 eth1 節點的應用載荷,此應用載荷隨后將被打包至信標區塊當中,
- 在信標狀態端,我們將為應用狀態 root 與 block 哈希添加兩個字段,用以驗證應用載荷。
- 在信標區塊端,我們將添加應用載荷與交易字段,
- 我們需要使用幫助程式將各類具體類型統一格式化為十六進制字符串,以便以 json 的形式通過 rpc 與 eth1 節點通信,
ETH2 首個硬分叉:Altair
今年夏季,我們還有另一項重要的網路升級計劃:Altair。此升級將極大簡化現有協議,通過更好的數據結構計算 eth 2 中各時段驗證方的參與、獎勵與懲罰活動。此外,本輪升級還將向 eth2 light 客戶敞開大門。考慮到這是我們的首次升級,因此團隊一直在認真思考如何調整 Prysm repo 以適應后續升級,并保證不對代碼質量造成損害,
我們首先從一項跟蹤問題起步,研究 Prysm 中的新型信標狀態 Altair 軟體包,上游 ethereumapi repo 則負責定義大部分新型數據結構,例如同步委員會、信標區塊以及 Altair 中的更多數據結構。目前核心處理邏輯已經基本完成,我們只需將其與新的信標狀態 Altair 合并即可。我們還將同步引入 Altair 規范測試以保證升級工作的全面合規,除了 Q2 的硬分叉之外,還有更多更新值得大家期待,
展望未來
礦工可提取價值與 ETH 2
我們已經意識到,礦工可提取價值(Miner Extractable Value,簡稱 MEV)已經成為以太坊當前面臨的頭號難題之一,
如果不及早解決,這項頑疾必將給未來的 eth2 帶來嚴重影響,這里稍做解釋,MEV 導致共識參與者在下令向以太坊中添加大宗交易區塊方面擁有不公平的優勢。換句話說,目前的礦工們有權在必要時,在以太坊上重組并先于他人執行交易,這顯然會影響以太坊的聲譽與吸引力,同時也將進一步擴大現已存在的“付費插隊”市場,
“付費插隊”市場規模圖,來源:Flasbots 團隊
Flashbots 小組目前正全力研究 MEV 問題。在 eth 2 當中,這種動態權力將從礦工轉向驗證方,但其中的激勵措施仍然保持不變,考慮到 eth 2 將采用權益證明機制,且協議中包含強大的“鏈最終性”概念,我們必須認真考慮可能引發的開放性問題。
目前,我們團隊正在與 Flashbots 合作,確定如何在 eth2 上妥善解決 MEV 隱患,進而改善以太坊的未來使用體驗,
短期目標
優化 Prysm Slasher
Slashing 機制已經成為以太坊權益證明中不可或缺的必要保障方法。目前,Prysm slasher 已然擁有不錯的效果,但仍可能在遭遇網路不穩定及最終性停滯時導致數據丟失,但很明顯,這個時段才是捕捉數據以實現事后取證的關鍵階段。
必須承認,我們的初版 Slasher 在很多重要設計考量上都缺乏關注,過去一個季度以來,我們投入大量時間來設計、修改并編寫能夠在新 Slasher 實現中帶來提升的高質量代碼。在參考了 Protolambdagithub.com/protolambda/eth2-surround 說明文檔與 Sigma Prime 在 Rust 上構建的 Slasher 成果之后,我們決定以相同的第一原理為基礎設計 Prysm Slasher,相關測試將在幾周內快速啟動,
Web UI 1.0 版本即將發布
在 mainnet 之前,我們曾發布過 Prysm Web UI,希望讓不熟悉命令行的用戶們也能輕松訪問 eth2 并享受持幣生息收益,
在“測試版”的發布公告(https://medium.com/prysmatic-labs/prysm-eth2-client-web-interface-now-live-feb278f4aa15)當中,我們發布了可通過 -web 標記運行 Prysm 的選項,大家可以通過小型 Web 應用執行驗證程式中的一系列重要任務,例如導入驗證密鑰、查看近期性能并檢查關于網路的某些特定資訊。但在此之后,面對優化、安全性及穩定性等其他高優先級事務的壓力,我們始終騰不出手來進一步改善用戶體驗。
在不久的將來,我們將著手發布 Prysm Web UI 的 1.0 版本,其將在功能方面與 Prysm 驗證程式 CLI 保持一致,也就是說,您之前使用驗證程式通過命令行執行的所有操作,屆時都可以通過 Web UI 順利完成!
這套 Web UI 的目標是全面替代 CLI 實現 Prysm 與驗證程式管理。但請注意,目前它還不能算是區塊瀏覽器。我們當前的目標是不斷提升其實用性,主要強調其中驗證程式軟體的操作流程;查看網路統計資訊暫時只是附加功能,Prysm Web V1 計劃于今年第二季度內正式發布,
開發者 Wiki
整個以太坊團隊的核心開發理念,并非掌握大量專業術語或者晦澀的知識表達,而更多強調良好的問題解決能力與團隊合作能力。在加入 Prysmatic Labs 之前,當前團隊中的不少成員根本不熟悉以太坊。沒關系,我們擁有相當深厚的軟體設計與開發專業知識積累,足以為協議編寫出良好的代碼成果。
我們的日常工作主要集中在為 eth2 設計底層架構方面。我們堅信,只要能夠通過全面的開發者 Wiki 提供關鍵 Prysm 知識,每個人都能更好地為開源項目服務,Wiki 提供簡單易讀的素材,可幫助大家快速了解 Prysm 中的各類設計決策與實現流程,Wiki 還將包含 repo 中某些特定部分的設計討論與會議記錄,
我們計劃將文檔門戶網站 https://docs.prylabs.network 轉換為 Prysm 的規范參考平臺,后續還會將其設置為團隊代碼組件的交流樞紐,在開發者 Wiki 的指引下,相信新朋友們能夠更好地理解如何加入項目貢獻、以及我們怎樣解決項目中最為棘手的種種難題,