Mining-Pools

完整節點如何從在其標頭中接收帶有版本號的塊中受益?

  • March 24, 2019

區塊頭是特殊的,因為它們由 SPV 錢包同步。它們也是礦工使用的探勘算法的一部分,可以實現諸如 ASIC 提升等有爭議的事情。

然而,在 Segwit 的情況下,選擇了塊版本號來指示 Segwit 軟分叉。與 coinbase 交易相比,在區塊頭的版本號欄位中包含這個值有什麼好處?

具體來說,除了在後一種情況下阻止 ASICBoost 之外,Segwit 軟分叉是否會影響 SPV 錢包或 ASIC 所做的工作?

如果將 Segwit 軟分叉放入版本號是因為“這就是版本號的用途”和“ASIC 提升不好”,我可以接受這個原因。我什至認為這是一個技術原因——未來可能會有一個軟分叉會影響需要這些版本號的 SPV 錢包,並且將 Segwit 值放在塊頭中有助於保護這些值(而不是將它們犧牲給 ASICboost) . 我只是想了解什麼樣的軟分叉可能會影響 SPV 錢包,或者我是否遺漏了其他任何東西。

我認為 Segwit 是關於實際區塊中的交易排序,這可能表明標頭的 Merkle Root 部分應該由完整節點以不同方式處理。但是,如果無論如何都收到了完整的區塊,使用 coinbase,為什麼不能將 segwit 指標放在 coinbase 中?(除了保護這些價值觀)

我只想知道我是否在這裡遺漏了什麼。除了為未來的分叉保護這些價值之外,Segwit 是否需要 SPV 錢包/礦工特別考慮?除了未來的技術發展之外,還有什麼理由不能將 coinbase 交易用於這個特定的軟分叉?

傳統上,區塊版本號一直是礦工表示他們準備執行軟分叉的方式。版本號很可能被使用,因為它在歷史上用於軟分叉信號。此外,版本號並不表示特定的一組規則對塊是有效的。事實上,自從 Segwit 啟動以來,Segwit 使用的版本位不再由礦工設置(除了那些使用 ASICBOOST 的)。

此外,版本號可幫助 SPV 錢包了解隔離見證何時處於活動狀態,以便他們可以使用它。否則,SPV 錢包將不得不下載整個區塊來檢查 Coinbase 交易,這將在很大程度上破壞它們的主要優勢。

完整節點並沒有真正從用作信號的版本號中受益。但是,在部署任何類型的分叉時,必須考慮到生態系統中的每個人。使用版本號不會傷害全節點,還有一些額外的好處,即不佔用交易本身的區塊空間,並且避免 SPV 錢包知道分叉何時啟動。

我認為隔離見證是關於實際區塊中的交易排序

不,Segwit 根本不影響交易排序。它改變了交易的格式以及某些輸出腳本的驗證方式。

除了為未來的分叉保護這些價值之外,Segwit 是否需要 SPV 錢包/礦工特別考慮?

是的。SPV 錢包需要知道 Segwit 何時啟動,以便他們知道何時可以進行和接受包含 Segwit 輸入和輸出的交易。

引用自:https://bitcoin.stackexchange.com/questions/85570