# 以太坊 PoS 與上海硬分叉總整理！

By [Blockchain Builder](https://paragraph.com/@blockchain-builder) · 2023-03-10

---

> 作者：Irara @ imToken Labs 校稿：[Nic](https://medium.com/@twedusuck)、Cyan、ChangWu、[David](https://mirror.xyz/daishioubu.eth) @ imToken Labs；FengYi @ imToken Wallet

大家好！今天我們要來探討 Ethereum 以太坊的 PoS（權益證明）演進史。以太坊為了提高區塊鏈的效能以及更加地環保，不斷推陳出新，讓整個區塊鏈世界產生了巨大的變革。隨著技術的不斷進步，以太坊也將開始向新的高度挑戰。讓我們一起來探討這個讓人感到振奮的演進過程！

> 因本文章有較深入的 PoS 介紹，建議已具備基礎 PoW 知識的讀者閱讀

（1）2020 年 12 月 PoS 信標鏈上線
------------------------

為了將耗能的 PoW 升級至節能的 PoS，以太坊在 2020 年 12 月 1 日時，上線了以 PoS 共識機制為主的以太坊信標鏈（Beacon Chain）！

### PoS 名詞解釋

在 PoS 中，有些名詞會和 PoW 稍微不同！

*   Block（區塊）的概念改為 Slot（插槽）與 Epoch（紀元），但 2 者均可共存不影響
    
    *   平均來說，每 12 秒會出一個 Slot，而每 32 個 Slot（= 12 秒 x 32 Slot = 6.4 分鐘）稱為一個 Epoch
        
*   Difficulty（挖礦難度）改為 Slot PrevRandao（或稱 Block Randomness 隨機數）
    
*   Miner（礦工）改為 Validator（驗證者）與負責出塊的 Slot Proposer（提議者）
    
    *   目前，若要成為 Validator，需使用 Validator 私鑰及 Withdrawal 私鑰來建置不停機的驗證節點，接著將帶有以下指定 Data + 32 ETH 的交易打到 [Deposit 合約](https://etherscan.io/address/0x00000000219ab540356cBB839Cbe05303d7705Fa)中：
        
        *   pubkey（48 Bytes）：Validator 公鑰，鏈上唯一識別用
            
        *   withdrawal\_credentials（32 Bytes）：將 Withdrawal 公鑰作 SHA256 後，將最左側 2 位元由 0x00（BLS WITHDRAWAL 前綴）替換而得
            
        *   signature（96 Bytes）：由 Validator 私鑰向 (pubkey, withdrawal\_credentials, deposit\_amount) 資料進行簽名
            
        *   deposit\_data\_root（32 Bytes）：由上述 pubkey、withdrawal\_credentials、signature 建立 Hash Tree，並取得其 Hash Tree Root 而得
            

![Slot 與 Epoch、Validator 與 Proposer](https://storage.googleapis.com/papyrus_images/64fa64d5d071799486f86f7cf0205232b5ceb62cd1fffb43aac193a8042b5808.png)

Slot 與 Epoch、Validator 與 Proposer

### 成為 Slot Proposer 要做的事

在下一個 Epoch 到來前，每個 Slot 會透過 Randao 隨機數指定 1 位 Validator 成為此 Slot 的 Proposer，而他要完成 2 件事！

*   第 1 件事：建立區塊，並讓其他 Validator 進行驗證及投票
    
    *   理想上，Slot Proposer 會在最新的區塊後面，直接建置下一個區塊，如同 PoW 時期以維持最長鏈原則
        
    *   但實際上，可能會因 P2P 網路延遲、惡意節點嘗試攻擊等，導致 Slot Proposer 未必能在最新的區塊後面建置下一個區塊，造成區塊鏈分岔。這時，需請其他的 Validator 進行區塊投票，得票高者即可成為下一個區塊
        
    *   若惡意節點故意在同一個 Slot 時段內建立 2 個區塊，則會被施以嚴重的大幅削減（Slash）處罰（從質押的 ETH 中一次性罰款）並退出網路
        
*   第 2 件事：提出一個隨機數種子 S，並公開 Hash(S) 結果
    
    *   因為少了過去 PoW 的算力競爭，但直接指定 Proposer 有違去中心化，所以需要一個由眾多 Slot Proposer 一同決定的 Randao 隨機數，用來選定下一個 Epoch 的 Slot Proposer 們
        

第 1 件與第 2 件事不斷重複，使得區塊鏈不斷地產生新區塊

### Slot 的 Validator 數量推算

在說明每個區塊及 Epoch 需要多少票數前，先進行目前 Slot 的 Validator 數量推算！

*   回顧一下：每 12 秒為一個 Slot，而每 32 個 Slot 為 1 個 Epoch
    
*   由 [Beaconscan](https://beaconscan.com/stat/validator) 網站可得知，目前撰文時全球總共約有 512,000 名以太坊 Validator
    
    *   所以，每 1 個 Epoch 約會有 512,000 名 Validator 進行投票
        
    *   平均下來，每 1 個 Slot 約會有 512,000 / 32 = 16,000 名 Validator 進行投票
        

### 每個 Validator 要做的事

扣除負責出塊的 Slot Proposer，剩下 N - 1（N 是 16,000）的 Validator 需在每個 Slot 中完成 Attestation 工作，即向支持的區塊及 Epoch 來進行投票！

*   投票 1：向支持的 Epoch（對應的 Checkpoint Slot）投票（或稱之為 Casper FFG 共識）
    
    *   支持的 Epoch 包含需同時選定 Target Epoch 及 Source Epoch（可參考下圖）
        
        *   Target 為 Validator 認同當下所在的 Epoch
            
        *   Source 為 Validator 認同最近的 Epoch（通常為上一個 Epoch）
            
    *   若某個 Target Epoch 結束，並得到超過 2 / 3 Validator（即 512,000 x 2 / 3 = 341,333）的票數，則此 Epoch 標示為 Justified
        
        *   故最快要等上 1 Epoch = 6.4 分鐘的時間
            
    *   承上，若此 Target 緊連的 Source Epoch 也得到 2 / 3 票數（通常 2 者為連續的 Epoch），則此 Source Epoch 標示為 Finalized
        
        *   所以，最快要等上 2 Epoch = 12.8 分鐘的時間
            
        *   Epoch Finalized 之前的區塊規定**不可再被更改**
            

![Justified 與 Finalized 的 Epoch 判斷方式](https://storage.googleapis.com/papyrus_images/02e0d3c573d67285b21f05be2a0b8dcc36a14e47fff0d7d04246dd2b0376763b.png)

Justified 與 Finalized 的 Epoch 判斷方式

*   投票 2：向支持的區塊投票（或稱之為 LMD-GHOST Fork Choice Rule 共識）
    
    *   可對過去 1 Epoch 內的 Slot 區塊進行投票
        
    *   如果 Validator 有以下行為會無法拿到獎勵
        
        *   投給舊的、錯誤的區塊（可能投票期間未同步至最新區塊所致）
            
        *   投票經常延遲或設備離線
            
            *   但如果網路出現 4 個 Epoch 都沒被 Finalized 的情況（進入 Inactivity Leak 期），則會有罰款
                
    *   如果 Validator 有以下行為會進行嚴重（Slash）處罰
        
        *   同個私鑰同時存在兩臺不同機器上導致同一 Epoch 時間內有 2 次對區塊的投票行為
            
        *   將機器遷移時，沒有將資料庫也遷移，導致遷移的機器向同一區塊重覆投票的行為
            
    *   最後，如果被 Slash 處罰一次或因罰款導致餘額低於 16 ETH，則會被強制踢出網路
        
        *   從 [beaconcha](https://beaconcha.in/validators/slashings) 統計數據可得知，自信標鏈上線以來被 Slash 總共有 229 名 Validator，大多為非惡意的機器設置錯誤導致，約佔整體 Validator 的 0.045%
            

### 本節重點整理

*   PoS 是由鏈上所質押的 ETH 作擔保，來維持分散式共識（若伺服器停機、提交延遲、或提交錯誤共識內容則會有罰款），好處是：環保，且質押的 ETH 平均有 4% 年化報酬
    
*   但此時要自建 24 小時不停機節點 + 質押至少 32 ETH，門檻過高
    
*   對於僅有少量 ETH 卻又想參與 PoS 網路的散戶該怎辦？
    
    *   所以，像是 Lido 等服務商，就有提供收取質押獎勵的 10% 作為手續費，讓散戶進行小額質押
        
        *   而且，更特別的是 Lido 還提供質押 ETH 兌換 stETH 代幣，讓散戶可在二級市場進行 stETH 交易
            
*   從 [Dune](https://dune.com/hildobby/eth2-staking) 統計數據可得知，目前所有質押的 ETH 約佔總供應量約 14.66%
    

（2）2022 年 9 月 PoS 信標鏈與 PoW 以太坊完成合併
----------------------------------

眾所期待的 PoS 以太坊終於在 2022 年 9 月 15 日完成合併（The Merge）！此時，只能使用 Validator 進行質押挖礦，而使用顯卡挖礦的礦工時代也真正地成為了過去！

雖然，一般使用者仍可按照過去 PoW 使用方式進行 ETH 轉帳或合約交易；但實際上經過 The Merge 升級後，以太坊節點已拆分成 Execution Layer（EL）執行層及 Consensus Layer（CL）共識層了

![以太坊節點區分 CL 及 EL 層](https://storage.googleapis.com/papyrus_images/a82eed94162fc99cfc929ece3176b2f186041b090790aa46f7273784b562be0f.png)

以太坊節點區分 CL 及 EL 層

在 The Merge 後採用了 PoS 共識，雖然 PoW 機制被移除，但是 PoW 的 Excution Layer 卻合併到 Beacon Chain 中

*   Execution Layer（EL）執行層仍與 PoW 時一樣進行：
    
    *   執行 EVM 虛擬機
        
    *   但是，當區塊分岔時，取代 PoW 機制，會由 CL 層告知哪一個區塊是 Head Block
        
*   Consensus Layer（CL）共識層就負責：
    
    *   進行 Proof of Stake 共識
        
    *   當區塊分岔時，採 LMD-GHOST Fork Choice Rule 共識來決定
        

![The Merge 升級前，Execution Layer 的內容](https://storage.googleapis.com/papyrus_images/0121b64460974f258048d267729dc36238fca88a8e1ab35880fa599421940eb2.png)

The Merge 升級前，Execution Layer 的內容

![完成 The Merge 升級後，Execution Layer 的內容與過去 PoW 時期相同](https://storage.googleapis.com/papyrus_images/2b3f18787a2b389a690af81ce3ab2f965c5ca0eff9e6683144edd2722d3c908a.png)

完成 The Merge 升級後，Execution Layer 的內容與過去 PoW 時期相同

然而， 對於執行以太坊節點的營運者，可以決定將 CL 節點（如：Lighthouse）、EL 節點（如：Geth）拆分建立，並使用元件所提供的 Engine API 來進行溝通。甚至可執行其中一個元件，另一個元件則與其他節點共用

### 本節重點整理

*   The Merge 合併之後，將以 PoS 的取代 PoW 以太坊，無法使用顯示卡挖礦
    
*   但此時 Validator 們仍無法贖回已質押的以太幣，所以才會有下一個重大的升級：上海硬分岔
    

（3）2023 年第 2 季以太坊信標鏈進行上海硬分岔升級
-----------------------------

以太坊 PoS 信標鏈於 The Merge 後另一項重大的升級：上海硬分岔，終於讓為數眾多的的 Validator 開放讓為數眾多質押 ETH 的贖回申請，但考量到系統的穩定性（如：避免 Validator 數量驟減，影響共識安全及穩定等），每個 Epoch 可退出的 Validator 或 ETH 數量是有限制的！

### 質押退出機制

關於欲將已質押的 ETH 贖回，除了您需等待 2023 年第 2 季上海硬分岔升級完成外，Validator 還需將 EL／CL 節點升級、在 CL 節點上修改收益地址等前置作業，即可進行 ETH 贖回請求啦！分為 2 種形式：

> 關於前置作業細節可參考 imToken 先前發佈的「[上海升級，和你有關嗎？](https://mirror.xyz/0x347c9872A2a1dE370D798f9FE96341A9A0E05af8/muJVRJdphWrBNEaN_Tpi4VoILZLkH5MwSIlcZeanL7Q)」文章！

*   部份贖回（Partial Withdrawals）：將超過 32 ETH 的其他 ETH（不論是質押 or 獎勵）給贖回
    
    *   因目前一個 12 秒的 Slot 最多只能有 16 次的部份贖回額度，以全網有 512,000 Validator 來計算，平均每個 Validiator 要等 4.44 天才能收到 ETH
        
*   全部贖回（Full Withdrawals）並退出 Validator 角色
    
    *   因目前一個 6.4 分鐘的 Epoch 只能退出 6 名 Validator，所以會依照申請的順序來進行全部贖回
        
        *   註：實際上，為避免一次大量 Validator 退出網路而導致安全性問題，所以每個 Epoch 可退出 Validator 數量會依照全網 Validator 總數來進行限制（可參考下方表格）
            

而以上無論是部份贖回，還是全部贖回，因為都在 CL 節點上廣播請求，所以也均無需 Gas 費用

![每個 Epoch 可退出 Validator 數量會依照全網 Validator 總數來進行限制](https://storage.googleapis.com/papyrus_images/17e2233aad6ab85627a1e21b0f2f29cc7faed8733c63b719c9f215e050ac326c.png)

每個 Epoch 可退出 Validator 數量會依照全網 Validator 總數來進行限制

### 上線前需充份測試

另外，此次升級還需在各個測試網上進行充份測試，才會正式上線！

*   2023/02/07 可提款的 Zhejiang 測試網上線
    
*   2023/02/28 進行 Sepolia 測試網的上海硬分岔升級
    
*   2023/03 進行 Goerli 測試網的上海硬分岔升級
    

### 還有其他的提案

而且，這次升級除了 EIP-4895（允許驗證者提取質押的代幣）是主要提案外，還會一同實現以下 EIP 提案：

*   EIP-3651 預熱 COINBASE：啟動「COINBASE」地址的預熱功能，降低交易手續費消耗
    
*   EIP-3855 增加 PUSH0 指令：將常用的「常數 0 推送」操作變成一個指令，將可減少合約程式碼大小
    
*   EIP-3860 限制和計價 initcode：增加合約部署規範，避免部署程式碼過大佔用空間
    
*   EIP-6049 新增 SELFDESTRUCT 停用警告：更新 SELFDESTRUCT 指令的文件說明，警告使用者該指令未來將被停用
    

未來，本專刊將會為重要的 EIP 提案來撰寫文章進行說明

### 本節重點整理

*   開放質押的 ETH 贖回，但基於安全理由，每個 Epoc（約 6.4 分鐘）只能退出 6 個驗證者（因此每天約有 1,350 個驗證者 or 43,200 ETH 可退出。
    
*   若您剛好是以太坊信標鏈的 Validator，強烈建議在上海升級前閱讀「[上海升級，和你有關嗎？](https://mirror.xyz/0x347c9872A2a1dE370D798f9FE96341A9A0E05af8/muJVRJdphWrBNEaN_Tpi4VoILZLkH5MwSIlcZeanL7Q)」文章，來了解這次上海升級時您一定要做的幾件事情！
    

（4）結論
-----

綜觀整個 PoS 演進史，以太坊始終保持著為用戶提供最優秀的使用體驗和開發環境的初衷。PoW 到 PoS，不斷的改變也帶給了我們更加高效和環保的區塊鏈世界。上海硬分岔升級將為以太坊帶來更多的可能性；在未來，隨著這一系列 EIP 提案的引入，Ethereum 將越來越容易地融入日常生活中，並且讓人們都可享受到區塊鏈帶來的安全性與方便性。讓我們一起期待以太坊的更美好未來！

（5）參考資料
-------

*   Mirror
    
    *   上海升級，和你有關嗎？
        
        *   [https://mirror.xyz/0x347c9872A2a1dE370D798f9FE96341A9A0E05af8/muJVRJdphWrBNEaN\_Tpi4VoILZLkH5MwSIlcZeanL7Q](https://mirror.xyz/0x347c9872A2a1dE370D798f9FE96341A9A0E05af8/muJVRJdphWrBNEaN_Tpi4VoILZLkH5MwSIlcZeanL7Q)
            
    *   以太坊核心開發者大會更新 014
        
        *   [https://ecn.mirror.xyz/T4GM4jH9K5T1Zq6de2709mTgaeudgyHkTD3K5V6xnKo](https://ecn.mirror.xyz/T4GM4jH9K5T1Zq6de2709mTgaeudgyHkTD3K5V6xnKo)
            
*   中文
    
    *   以太坊 Safe Head 機制介紹（一）
        
        *   [https://medium.com/imtoken/safe-head-part-1-14071f14016b](https://medium.com/imtoken/safe-head-part-1-14071f14016b)
            
    *   輕鬆看懂 Etherscan — Post-Merge
        
        *   [https://medium.com/taipei-ethereum-meetup/輕鬆看懂-etherscan-post-merge-ca0c0e8e9366](https://medium.com/taipei-ethereum-meetup/%E8%BC%95%E9%AC%86%E7%9C%8B%E6%87%82-etherscan-post-merge-ca0c0e8e9366)
            
    *   交易處理更快速後，系統安全性如何拿捏：分叉選擇規則與區塊的最終化
        
        *   [https://newworld-institute.com/other-cryptocurrencies-101/以太坊2-0-eth2-分叉選擇規則與區塊的最終化/](https://newworld-institute.com/other-cryptocurrencies-101/%E4%BB%A5%E5%A4%AA%E5%9D%8A2-0-eth2-%E5%88%86%E5%8F%89%E9%81%B8%E6%93%87%E8%A6%8F%E5%89%87%E8%88%87%E5%8D%80%E5%A1%8A%E7%9A%84%E6%9C%80%E7%B5%82%E5%8C%96/)
            
    *   以太坊 PoS 攻擊與防禦
        
        *   [https://www.theblockbeats.info/news/31667](https://www.theblockbeats.info/news/31667)
            
    *   以太坊後合併時代，15 個概念帶你深入瞭解以太坊 2.0
        
        *   [https://www.jinse.com/blockchain/2303247.html](https://www.jinse.com/blockchain/2303247.html)
            
    *   合併將降低 Gas 費？合併後質押的 ETH 就能贖回？以太坊官方統整合併升級的八大常見誤解
        
        *   [https://zombit.info/ethereum-misconceptions-about-the-merge/](https://zombit.info/ethereum-misconceptions-about-the-merge/)
            
    *   以太坊「上海升級」啟動提款功能，驗證者的 ETH 會如何解鎖？
        
        *   [https://blockcast.it/2022/12/12/staked-eth-withdrawals-are-coming-in-the-spring/](https://blockcast.it/2022/12/12/staked-eth-withdrawals-are-coming-in-the-spring/)
            
    *   Eth 2.0 的共識層和執行層分工及 The Merge 影響
        
        *   [https://medium.com/taipei-ethereum-meetup/eth-2-0-cl-el-separation-and-impact-of-the-merge-dbeb6828c907](https://medium.com/taipei-ethereum-meetup/eth-2-0-cl-el-separation-and-impact-of-the-merge-dbeb6828c907)
            
    *   以太坊大事記：上海昇級，我們需要關注的內容
        
        *   [https://www.panewslab.com/zh/articledetails/2x90pemh.html](https://www.panewslab.com/zh/articledetails/2x90pemh.html)
            
*   英文
    
    *   Stackexchange - Why are there no leading zeroes in ethereum block hash?
        
        *   [https://ethereum.stackexchange.com/questions/2072/why-are-there-no-leading-zeroes-in-ethereum-block-hash](https://ethereum.stackexchange.com/questions/2072/why-are-there-no-leading-zeroes-in-ethereum-block-hash)
            
    *   Kelvin's Ethereum Book - RANDAO
        
        *   [https://eth2.incessant.ink/book/06\_\_building-blocks/02\_\_randomness.html](https://eth2.incessant.ink/book/06__building-blocks/02__randomness.html)
            
    *   BeaconScan - Skipped Blocks
        
        *   [https://beaconscan.com/slots-skipped](https://beaconscan.com/slots-skipped)
            
    *   Ethereum - ATTESTATIONS
        
        *   [https://ethereum.org/zh/developers/docs/consensus-mechanisms/pos/attestations/](https://ethereum.org/zh/developers/docs/consensus-mechanisms/pos/attestations/)
            
    *   Blocknative - A Staker's Guide to Ethereum Slashing & Other Penalties
        
        *   [https://www.blocknative.com/blog/an-ethereum-stakers-guide-to-slashing-other-penalties](https://www.blocknative.com/blog/an-ethereum-stakers-guide-to-slashing-other-penalties)
            
    *   Cointelegraph - Only 0.04% of Ethereum validators have been slashed since 2020, says core dev
        
        *   [https://cointelegraph.com/news/only-0-04-of-ethereum-validators-have-been-slashed-since-2020-says-core-dev](https://cointelegraph.com/news/only-0-04-of-ethereum-validators-have-been-slashed-since-2020-says-core-dev)
            
    *   ETH Withdrawals FAQ
        
        *   [https://notes.ethereum.org/@launchpad/withdrawals-faq](https://notes.ethereum.org/@launchpad/withdrawals-faq)
            
    *   How does the NEW Ethereum work?
        
        *   [https://www.preethikasireddy.com/post/how-does-the-new-ethereum-work](https://www.preethikasireddy.com/post/how-does-the-new-ethereum-work)
            
    *   Proof of Stake Rewards and Penalties
        
        *   [https://ethereum.org/en/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/](https://ethereum.org/en/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/)

---

*Originally published on [Blockchain Builder](https://paragraph.com/@blockchain-builder/pos)*
