以太坊 Proof-of-Stake 之路
Hsiao-Wei Wang
2022-05-09
The Merge & Weeth
Hello 👋
@hwwhww @hsaio-wei#0696 @icebearhww
GitHub
Discord
I’m Hsiao-Wei
Ethereum Foundation Researcher
hsiaowei.eth
2
3
以太坊 Proof-of-Stake �權益證明
4
Casper Proof-of-Stake
Properties
5
Illustration credits: Buterin, V and Griffith, V. Casper the Friendly Finality Gadget.
以信標鏈(Beacon chain)實現權益證明
6
PoW Main Chain
economic seed
Beacon Chain
(PoS Chain)�finality, randomness, orchestration
The Merge
7
什麼是 The Merge (合併)
共識機制
將共識演算法(Consensus algorithm)從工作量證明(Proof-of-Work, PoW)�切換到 權益證明(Proof-of-Stake, PoS)
客戶端系統模組化
將客戶端分成 共識層(Consensus Layer) 以及 執行層(Execution Layer)
主鏈合併
將以太坊 EVM 主鏈 與 �信標鏈(Beacon Chain)合併
PoW Main Chain
economic seed
Beacon Chain
(PoS Chain)�finality, randomness, orchestration
Beacon Chain
(PoS Chain)�finality, randomness, orchestration
PoW Main Chain
economic seed
+ Execution payload in beacon block
Merged!
Executable
Beacon chain
+ Execution payload in beacon block
PoW chain history and applications on EVM will be unchanged
Beacon Chain
(PoS Chain)�finality, randomness, orchestration
Execution Layer (EL) 執行層
12
Image: When Merge by Danny Ryan
Execution Layer (EL) 執行層
13
Image: When Merge by Danny Ryan
Consensus Layer (CL) 共識層
14
Image: When Merge by Danny Ryan
客戶端系統模組化
15
Image: When Merge by Danny Ryan
客戶端系統模組化
devp2p
libp2p
16
Image: When Merge by Danny Ryan
客戶端系統模組化
17
Image: When Merge by Danny Ryan
客戶端系統模組化
18
Image: When Merge by Danny Ryan
客戶端系統模組化
19
| EL | CL |
主要功能 | 執行 EVM | Proof-of-Stake 共識 |
Fork choice rule | 由 CL 告知 head block | LMD-Ghost |
EVM transaction pool | 不變 | N/A |
客戶端系統模組化
20
| EL | CL |
Networking | 以 devp2p 和其他 EL 節點連線 | 以 libp2p 和其他 CL 節點連線 |
Network serialization | RLP | SSZ |
Endianness | Big-endian | Little-endian |
Identity of “block” | Execution block header keccak256 hash | Beacon block SSZ root |
Wen Merge?
21
SOON.
22
Checklist
23
24
客戶端已實作 TheMerge 核心協議規格,並正以洪荒之力在密集測試中 🔥
協議如何決定何時觸發合併?(1/6)
Step 1: CL 硬分岔
25
協議如何決定何時觸發合併?(2/6)
觸發合併的參數值
26
協議如何決定何時觸發合併?(3/6)
為什麼用 Terminal Total Difficulty (TTD)?
27
協議如何決定何時觸發合併?(4/6)
28
Image: When Merge by Danny Ryan
協議如何決定何時觸發合併?(5/6)
[Step 2]
29
協議如何決定何時觸發合併?(6/6)
30
Image: When Merge by Danny Ryan
對以太坊應用層的影響: EVM opcodes
31
對以太坊應用層的影響: 出塊時間
32
對以太坊應用層的影響: Finality
33
對以太坊應用層的影響: block “head”
34
Block Type | Consensus Mechanism | JSON-RPC | Conditions for reorg |
head | Proof of Work | latest | reorg 的發生是可預期的,要謹慎使用 |
safe head | Proof of Stake | safe | 有可能發生,可能來自大規模的網路延遲或是攻擊 |
confirmed | Proof of Work | N/A | 不太可能,需要多數的 hashrate 參與挖一條長度大於特定確認數的鏈 |
finalized | Proof of Stake | finalized | 極不可能,需要大於 2/3 的驗證者參與競爭鏈且至少 1/3 的驗證者會被處以罰金(slashed) |
35
[Serenity]
#TestingTheMerge
Thanks!
Any questions?
@hwwhww on GitHub
@hsaio-wei#0696 on Discord
@icebearhww on Twitter
38
39