From 6deabe6c2262a1db9b7164eaaa96d5c641d85941 Mon Sep 17 00:00:00 2001 From: Tanner Date: Wed, 12 Feb 2025 23:47:03 +0800 Subject: [PATCH] Update tannerang.md 0212 --- tannerang.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tannerang.md b/tannerang.md index 97cb886..f2d4991 100644 --- a/tannerang.md +++ b/tannerang.md @@ -43,5 +43,15 @@ EIP-1559 把 Week2 影片看完,筆記明日補上 +### 2025.02.12 + +在 CL 的 verifyHeader 中的 `errInvalidUncleHash`: +- `Uncle Block` 是指兩個重複且高度一樣的 block,它只在 PoW 下存在,原因是當兩個礦工幾乎同時挖出新區塊且節點之間尚未溝通,但只有一個可被加入 Canonical chain,另一個則是 Uncle Block +- Uncle Block 雖然不是主鏈的一部分,但仍然會獲得部分獎勵,藉 Uncle 機制可以用來減少 PoW 中心化挖礦的優勢 +- Uncle Chain 不等於 Orphaned Chain,當發生較長的分叉,較短的那條鏈就會成為 Orphaned Chain,在上面的區塊不會得到任何獎勵,且會被網絡拋棄,交易需要重新打包到主鏈中 +- 由於 PoS 的驗證者是預先選定的,不像 PoW 存在多個礦工同時競爭的情況,所以 `UncleHash` 在 PoS 之下沒有意義,在 CL 會直接將 `UncleHash` 判斷為 `EmptyUncleHash`,否則回傳 `errInvalidUncleHash` +- `header.Difficulty` 在 PoS 後也是 0 + +