# 有關上海升級，你需要知道的事 (test gist)

By [imToken Labs](https://paragraph.com/@imtoken-labs) · 2023-02-21

---

* * *

title: 有關上海升級，你需要知道的事 (test gist)
---------------------------------

tags: 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](https://beaconcha.in/) 找到自己的驗證者，Deposits(圖片橘色框) 點下去後，會看到有一串 Withdrawal Credential(圖片紅色框) 的數字，**如果你的數字開頭是 0x00，那就代表你的收益地址尚未設置**。下圖為還沒設置的驗證者範例：
    
2.  如果要更改收益地址，需要 創立驗證者時用的 24 個英文單字 + 一台同步好的共識層節點 + 更改收益地址用的指令集。詳細的操作過程可以參考 [ethdo 指令集](https://github.com/wealdtech/ethdo/blob/master/docs/changingwithdrawalcredentials.md)，未來上海升級正式上線後，我們也會以主網為環境，出一篇手把手的教學文。要注意的是，**目前共識層僅允許使用者更改收益地址一次，千萬別將收益地址設錯了，一但設錯，連神仙都救不了你。** 若收益地址更改成功，你會看到驗證者的 Withdrawal Credential 的開頭變成了 **0x01** (下圖藍色框)。
    

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

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

*   [https://notes.ethereum.org/@launchpad/zhejiang#How-to-run-a-node-on-the-Zhejiang-testnet](https://notes.ethereum.org/@launchpad/zhejiang#How-to-run-a-node-on-the-Zhejiang-testnet)
    
*   [https://mirror.xyz/ladislaus.eth/nYZCmrO7ZndrP92kGyJG0-wzbnIsd3HwxsII-gT1zu8](https://mirror.xyz/ladislaus.eth/nYZCmrO7ZndrP92kGyJG0-wzbnIsd3HwxsII-gT1zu8)
    
*   [https://mirror.xyz/daishioubu.eth/hyIn44oruz7FtezwhZV6EA5jiPSaq5lvOZQ4OY8VfGY](https://mirror.xyz/daishioubu.eth/hyIn44oruz7FtezwhZV6EA5jiPSaq5lvOZQ4OY8VfGY)
    

* * *

驗證者運營服務商
--------

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

> 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://storage.googleapis.com/papyrus_images/96f6303c7c1e3490953b4cb16caaae173015ebe796c0cb62e8be4d5c0313016b.png)

ref:

\--

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

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

* * *

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

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

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

* * *

總結
--

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

* * *

![](https://storage.googleapis.com/papyrus_images/2cb6158f18e944e9a7868486fc10e21a58d2e348d1d324a1d1dd399ed631cd8c.jpg)

---

*Originally published on [imToken Labs](https://paragraph.com/@imtoken-labs/test-gist)*
