前言
以太坊上海升級即將來臨,對於生態系裡的不同角色,針對此升級要做的事也有所不同。此篇文章我們帶領大家導覽上海升級與你的關係,並且該做什麼事來應對。
文章主要把角色分為以下幾種:
1. Home Staker
2. 驗證者運營服務商
3. 參與 ETH 2.0 質押但無涉及節點的使用者
Home Staker
對於自建驗證者的使用者,有兩項重要的任務需要完成。
第一項非做不可,第二項視情況而定
升級你的執行層 & 共識層節點
更改你的以太質押收益地址
任務 1:升級節點
上海升級會在區塊裡添加了新的資料格式,這意味著此升級是個硬分叉,所以使用者必須升級節點才能持續參與共識。Home staker 們請注意節點 client 的版本更新進度,若有上海升級兼容版本釋出,務必先行把你的節點做版本更新,千萬不要等到上海升級正式上線了才更新。否則,當分叉後無法參與到投票、出塊,可能會被當作 inactive validator 而受到處罰。下列為各 client 之 Github repo,新版本釋出都會發佈在上面。
Execution Client: Geth, Nethermind, Besu, EthereumJS, Erigon
Consensus Client: Lighthouse, Teku, Lodestar, Prysm, Nimbus
任務 2:更改以太收益地址
上海升級一大重點,為允許使用者提領鎖在驗證者裡的以太幣。那麼問題來了:提領出來的以太幣要送到哪個地址?如果是很早期就參與 solo staking 的使用者,這個收益地址可能尚未設置,但晚期參與的可能已經設置好了。如何判斷收益地址需要更改?怎麼更改?步驟如下:
(1). 先到 beaconcha.in 找到自己的驗證者,Deposits (圖片橘色框) 點下去後,會看到有一串 Withdrawal Credential (圖片紅色框) 的數字,如果你的數字開頭是 0x00
,那就代表你的收益地址尚未設置。下圖為還沒設置的驗證者範例:
0x00 開頭驗證者
(2). 要更改收益地址,需要創立驗證者時用的 24 個英文單字 + 一台同步好的共識層節點 + 更改收益地址用的指令集。詳細的操作過程可以參考 ethdo 指令集,未來上海升級正式上線後,我們也考慮以主網為環境,出一篇手把手的教學文 (🔴 警告:教學文僅是示範案例,實際執行時需根據你的狀況做調整,請自行承擔後果,風險自負)。要注意的是:當前共識層僅允許使用者更改收益地址一次,千萬別將收益地址設錯,一但設錯,連神仙都救不了你。若收益地址更改成功,驗證者 Withdrawal Credential 的開頭會變成 0x01
(圖片藍色框)。
0x01 開頭驗者
另外,更改收益地址沒有急迫性,不會因為在上海升級後,還沒設置好收益地址就對驗證者做懲罰。Home staker 們可以慢慢來,確定已經完全了解整個過程再來執行。
由於更改收益地址的操作需要格外小心,以太坊基金會預計在 2/28 啟動 Sepolia 測試網的 staking withdraw,使用者們可以在那時候預演一次。不想等的小夥伴,也可以利用浙江測試網先跑一遍,此測試網是專門開來測試 staking withdraw,鏈長很短,同步時間也不需太久,大約兩小時內就能同步完畢。浙江測試網相關資源放在以下鏈結:
驗證者運營服務商
驗證者節點運營商的任務如下:
升級執行層 & 共識層節點
引導使用者安全執行 BLSToExecutionChange
對於驗證者運營商來說,最關鍵的是如何安全的執行 BLSToExecutionChange。何謂 BLSToExecutionChange?這看似高大上的名詞,其實就是「改變質押收益地址」這個動作的專業技術名詞罷了,業界簡稱為「BTEC」。
BTEC 在實際執行時,需要使用驗證者的 withdraw key 簽署一段特定格式的文字,並發送到共識層去(如下圖)。這邊額外補充一點小知識:ETH 2.0 的共識設計中,每個驗證者有兩把鑰匙:validator key & withdraw key。驗證者參與共識時的投票、出塊僅需要 validator key,withdraw key 實際上並未用到。大多運營商只會跟使用者索取 validator key,而使用者自己保管 withdraw key。
資料來源: https://github.com/wealdtech/ethdo/blob/master/docs/changingwithdrawalcredentials.md
問題來了:withdraw key 在使用者手上,所以 BTEC 需要使用者來執行簽署。但前面提到,簽署這個動作還是需要一些些的技術操作,而且一但簽好送到共識層,設好的質押收益地址就不能更改。由於不可逆的性質,在執行 BTEC 時,使用者需要確保簽署的請求確實交給運營商,運營商也要確認請求真的來自使用者。如果運營商的客戶是企業機構,大概率能透過底下的工程師,開發一套安全的自動化系統執行 BTEC。但如果運營商的客戶,是對技術不熟的純投資者,如何引導他們正確且安全的執行 BTEC 非常重要。
理想狀況下,運營商應該會設計一套介面,由介面一步步引導使用者輸入必要資訊,並在最後階段進行核對,驗證其設置收益地址的正確性。由於使用者會在介面輸入 withdraw key 相關資訊,極度容易成為黑客的目標,介面的資安要求必須以最高規格來審視。
參與 ETH 2.0 質押但無涉及節點的使用者
目前多數參與以太坊質押的使用者,可能都是透過 Lido, RocketPool 這類的 LSD 賽道產品,如果你屬於這類,那上海升級對你的影響較小,基本上不需要有任何動作,躺平交給項目方就對了。
但如果你是屬於自己管理 withdraw key,運營商幫你管理 validator key 的使用者,你的任務就是密切的關注運營商發布的資訊。再三提醒自己:「只能改質押收益地址一次,絕對不容許出錯 !🚨」。請充分發揮社群的角色,與社群大眾一同監督運營商。若運營商有推出互動式的網站介面讓你更改收益地址,千萬要留意網站的域名,不要連到釣魚網站了。若有自稱官方人員能幫你處理更改收益地址,也絕對要再三確認其真實性,不要上了詐騙者的當。
總結
總結來說,上海升級對於大多使用者的影響不直接,但對於要處理「更改收益地址」的人,還是必須以最嚴格的標準來看待此事。 imToken 也正在積極的和運營商研擬一套穩健的方案,我們站在使用者的角度,把資產的安全放在第一位。日後,我們也會持續分享以太坊生態系裡的大小事,還請各位看官多多關注!