Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save oneleo/f9017f488cda80f8f5a79446bb845255 to your computer and use it in GitHub Desktop.
Save oneleo/f9017f488cda80f8f5a79446bb845255 to your computer and use it in GitHub Desktop.
title tags
有關上海升級,你需要知道的事 (test gist)
imToken, Staking Withdraw, envTest

以太坊上海升級,和你有關嗎?

前言

以太坊上海升級即將來臨,對於生態系裡的不同角色,針對此升級要做的事也有所不同。此篇文章我們帶領大家導覽上海升級與你的關係,並且該做什麼事來應對。

文章主要把角色分為以下幾種:

1. Home Staker

2. 驗證者運營服務商

3. 參與 ETH 2.0 質押但無涉及節點的使用者


Home Staker

對於自建驗證者的使用者,大致有兩項重要的任務需要完成。

其中第一項非做不可,第二項視情況而定:

1. 升級你的執行層 & 共識層節點


2. 更改你的以太質押收益地址

任務 1:升級節點

上海升級會在區塊裡添加了新的資料格式,這意味著此升級是個硬分叉,所以使用者必須升級節點才能持續參與共識。Home staker 們請隨時關注以太坊基金會,若有官方敲定的上海升級兼容版本釋出,務必先行把你的節點做版本更新,千萬不要等到上海升級正式上線了才更新。否則,當分叉後無法參與到投票,或出塊,可能會被當作 inactive validator 而受到處罰。


任務 2:更改以太收益地址

上海升級一大重點,為允許使用者提領鎖在驗證者裡的以太幣。那麼問題來了:提領出來的以太幣要送到哪個地址? 如果是很早期就參與 solo staking 的使用者,這個收益地址可能尚未設置,但晚期參與的可能已經設置好了。為何會有此差異?這裡我們挖個坑,留到日後分享,此篇只告訴質押者們怎麼判斷 「我是否需要更改收益地址?要如何更改?」。 步驟如下: 如何判斷收益地址需要更改?怎麼更改?步驟如下:

  1. 先到 beaconcha.in 找到自己的驗證者,Deposits(圖片橘色框) 點下去後,會看到有一串 Withdrawal Credential(圖片紅色框) 的數字,如果你的數字開頭是 0x00,那就代表你的收益地址尚未設置。下圖為還沒設置的驗證者範例:

  1. 如果要更改收益地址,需要 創立驗證者時用的 24 個英文單字 + 一台同步好的共識層節點 + 更改收益地址用的指令集。詳細的操作過程可以參考 ethdo 指令集,未來上海升級正式上線後,我們也會以主網為環境,出一篇手把手的教學文。要注意的是,目前共識層僅允許使用者更改收益地址一次,千萬別將收益地址設錯了,一但設錯,連神仙都救不了你。 若收益地址更改成功,你會看到驗證者的 Withdrawal Credential 的開頭變成了 0x01 (下圖藍色框)。

-- 另外,更改收益地址沒有急迫性,不會因為你在上海升級後,還沒設置好收益地址就對你做懲罰。Home staker 們可以慢慢來,確定你已經完全了解整個過程再來執行。

由於更改收益地址的操作需要格外小心,以太坊基金會預計在 2/28 啟動 Sepolia 測試網的 staking withdraw,使用者們可以在那時候預演一次。不想等的小夥伴,也可以利用浙江測試網先跑一遍,此測試網是專門開來測試 staking withdraw,鏈長很短,同步時間也不需太久,大約兩小時內就能同步完畢。浙江測試網相關資源放在以下鏈結:


驗證者運營服務商

驗證者節點運營商的任務如下:

1. 升級執行層 & 共識層節點


2. 與客戶討論如何安全的執行 BLSToExecutionChange

對於驗證者運營商來說,最關鍵的是如何安全的執行 BLSToExecutionChange。何謂 BLSToExecutionChange?這看似高大上的名詞,其實就是「改變質押收益地址」這個動作的專業技術名詞罷了,業界簡稱為 BTEC。為何筆者在上段的 solo staking 不提這詞呢?主要是筆者私心認為講 BLSToExecutionChange/BTEC 太不親民,太過裝逼了 😑 。。。。 但既然驗證者運營服務商大多是專業的,那咱還是提一下。

BTEC 在實際執行時,需要使用驗證者的 withdraw key 簽署一段特定格式的文字,並發送到共識層去(如下圖)。這邊額外補充一點小知識:ETH 2.0 的共識設計中,每個驗證者有兩把鑰匙:validator key & withdraw key。驗證者參與共識時的投票、出塊僅需要 validator key,withdraw key 實際上並未用到。大多運營商只會跟使用者索取 validator key,而使用者自己保管 withdraw key。

ref: https://github.com/wealdtech/ethdo/blob/master/docs/changingwithdrawalcredentials.md (來源:https://github.com/wealdtech/ethdo/blob/master/docs/changingwithdrawalcredentials.md)

--

問題來了:withdraw key 在使用者手上,所以 BTEC 需要使用者來執行簽署。但前面提到,簽署這個動作還是需要一些些的技術操作,而且一但簽好送到共識層,設好的質押收益地址就不能更改。由於不可逆的性質,在執行 BTEC 時,使用者需要確保簽署的請求確實交給運營商,運營商也要確認請求真的來自使用者。如果運營商的客戶是企業機構,大概率能透過底下的工程師,開發一套安全的自動化系統執行 BTEC。但如果運營商的客戶,是對技術不熟的純投資者,如何引導他們正確且安全的執行 BTEC 非常重要

筆者認為,比照傳統銀行處理客戶重要文件或許是個辦法,由運營商的人在現場幫忙引導,缺點是如果使用者太多,處理的進度會較緩慢。總之,BTEC 的過程需要使用者與運營商共同商討出適合彼此的方案。


參與 ETH 2.0 質押但無涉及節點的使用者

目前多數參與以太坊質押的使用者,可能都是透過 Lido, RocketPool 這類的 LSD 賽道產品,如果你屬於這類,那上海升級對你的影響較小,基本上不需要有任何動作,躺平交給項目方就對了。

但如果你是屬於自己管理 withdraw key,運營商幫你管理 validator key 的使用者,你的任務就是密切的關注運營商發布的資訊。請再三提醒自己:「只能改質押收益地址一次,絕對不容許出錯 !🚨」 請充分發揮社群的角色,與社群大眾一同監督運營商。


總結

總結來說,上海升級對於大多使用者的影響不直接,但對於要處理「更改收益地址」的人,還是必須以最嚴格的標準來看待此事。 imToken 也正在積極的和運營商研擬一套穩健的方案,我們站在使用者的角度,把資產的安全放在第一位。日後,我們也會持續分享以太坊生態系裡的大小事,還請各為看官多多關注!


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment