# 上海升級，和你有關嗎？

By [KanseiDorifto](https://paragraph.com/@tudorbb58) · 2023-02-22

---

> _Author: David.Cai @ imToken Labs_

前言
--

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

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

**1\. Home Staker**

**2\. 驗證者運營服務商**

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

* * *

Home Staker
-----------

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

**第一項非做不可，第二項視情況而定**

> 1.  **升級你的執行層 & 共識層節點**
>     
> 2.  **更改你的以太質押收益地址**
>     

#### 任務 1：升級節點

上海升級會在區塊裡添加了新的資料格式，這意味著此升級是個硬分叉，所以使用者必須升級節點才能持續參與共識。Home staker 們請注意節點 client 的版本更新進度，若有上海升級兼容版本釋出，務必先行把你的節點做版本更新，千萬不要等到上海升級正式上線了才更新。否則，當分叉後無法參與到投票、出塊，可能會被當作 inactive validator 而受到處罰。下列為各 client 之 Github repo，新版本釋出都會發佈在上面。

Execution Client: [Geth](https://github.com/ethereum/go-ethereum/releases), [Nethermind](https://github.com/NethermindEth/nethermind/releases), [Besu](https://github.com/hyperledger/besu/releases), [EthereumJS](https://github.com/ethereumjs/ethereumjs-monorepo/releases), [Erigon](https://github.com/ledgerwatch/erigon/releases)

Consensus Client: [Lighthouse](https://github.com/sigp/lighthouse/releases), [Teku](https://github.com/ConsenSys/teku/releases), [Lodestar](https://github.com/ChainSafe/lodestar/releases), [Prysm](https://github.com/prysmaticlabs/prysm/releases), [Nimbus](https://github.com/status-im/nimbus-eth2/releases)

\---

#### 任務 2：更改以太收益地址

上海升級一大重點，為允許使用者提領鎖在驗證者裡的以太幣。那麼問題來了：提領出來的以太幣要送到哪個地址？如果是很早期就參與 solo staking 的使用者，這個收益地址可能尚未設置，但晚期參與的可能已經設置好了。如何判斷收益地址需要更改？怎麼更改？步驟如下：

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

![0x00 開頭驗證者](https://storage.googleapis.com/papyrus_images/7acb3dfdc98b841c7d5c23a31ed0fd74f9798fa9fbcd9999c46aa0c38fc584b3.png)

0x00 開頭驗證者

(２). 要更改收益地址，需要創立驗證者時用的 24 個英文單字 + 一台同步好的共識層節點 + 更改收益地址用的指令集。詳細的操作過程可以參考 [ethdo 指令集](https://github.com/wealdtech/ethdo/blob/master/docs/changingwithdrawalcredentials.md)，未來上海升級正式上線後，我們也考慮以主網為環境，出一篇手把手的教學文 _(🔴 警告：教學文僅是示範案例，實際執行時需根據你的狀況做調整，請自行承擔後果，風險自負)_。**要注意的是：當前共識層僅允許使用者更改收益地址一次，千萬別將收益地址設錯，一但設錯，連神仙都救不了你**。若收益地址更改成功，驗證者 Withdrawal Credential 的開頭會變成 `0x01` (圖片藍色框)。

![0x01 開頭驗者](https://storage.googleapis.com/papyrus_images/bc5cc4123f659d5c9f1e68cf78b570096eaf798af4181841b1bd70c34c90eabc.png)

0x01 開頭驗者

\--

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

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

*   [How to run a node on the Zhejiang testnet? - HackMD](https://notes.ethereum.org/@launchpad/zhejiang#How-to-run-a-node-on-the-Zhejiang-testnet)
    
*   [Testing Beacon Chain Withdrawals with Docker on Zhejiang testnet](https://mirror.xyz/ladislaus.eth/nYZCmrO7ZndrP92kGyJG0-wzbnIsd3HwxsII-gT1zu8)
    
*   [Explore Zhejiang Testnet with Kubernetes](https://mirror.xyz/daishioubu.eth/hyIn44oruz7FtezwhZV6EA5jiPSaq5lvOZQ4OY8VfGY)
    

* * *

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

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

> 1.  **升級執行層 & 共識層節點**
>     
> 2.  **引導使用者安全執行 BLSToExecutionChange**
>     

對於驗證者運營商來說，最關鍵的是如何安全的執行 BLSToExecutionChange。何謂 BLSToExecutionChange？這看似高大上的名詞，其實就是「改變質押收益地址」這個動作的專業技術名詞罷了，業界簡稱為「BTEC」。為何筆者在上段的 home staker 不提這詞呢？**主要是筆者認為講 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 ](https://storage.googleapis.com/papyrus_images/96f6303c7c1e3490953b4cb16caaae173015ebe796c0cb62e8be4d5c0313016b.png)

資料來源： 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](https://token.im/) 也正在積極的和運營商研擬一套穩健的方案，我們站在使用者的角度，把資產的安全放在第一位。日後，我們也會持續分享以太坊生態系裡的大小事，還請各位看官多多關注！

* * *

Follow us: [Official Website](https://token.im/), [Twitter](https://twitter.com/imTokenOfficial), [Medium](https://medium.com/@imToken), [Discord](https://discord.com/invite/imToken)

![Digital assets under your control  ](https://storage.googleapis.com/papyrus_images/2cb6158f18e944e9a7868486fc10e21a58d2e348d1d324a1d1dd399ed631cd8c.jpg)

Digital assets under your control

---

*Originally published on [KanseiDorifto](https://paragraph.com/@tudorbb58/cBltJEgqp3CqljzZEhfX)*
