Mining-Pools

礦池運營商通常會在他們的客戶雜湊之前設置區塊版本號嗎?

  • March 24, 2019

我知道礦池運營商有權修改區塊中的實際交易。我也知道礦池運營商可以決定大宗交易的順序,甚至可以很容易地送出雙花。我知道礦池運營商將這個區塊的默克爾根雜湊發送給礦工。然後礦工提供隨機數,這是挖礦的艱苦工作。

但是,挖礦還有另一部分,就是區塊版本號。大多數礦池運營商是否設置了這一點,例如投票,哪些位可以設置為投票?

我知道礦池運營商有權修改交易中的實際區塊。

事務不包含塊。礦工/礦池運營商無法修改區塊內的任何正常交易。他們只能改變區塊頭、coinbase 交易和交易順序。

我也知道礦池運營商可以決定大宗交易的順序,甚至可以很容易地送出雙花。我知道礦池運營商將這個區塊的默克爾根雜湊發送給礦工。然後礦工提供隨機數,這是挖礦的艱苦工作。

不必要。這取決於所使用的協議。如果是stratum,這在很大程度上是正確的(除了merkle root 的東西。Stratum 只為merkle root 提供了merkle 樹的一部分,因此可以使用coinbase 中的extranonce。)

如果使用 getblocktemplate,礦工對雜湊的內容有很大的控制權。使用 GBT,不僅僅是將部分標頭和散列數據發送給礦工,而是發送整個塊結構,礦工在散列之前自己建構塊和塊標頭。這意味著礦工可以選擇在區塊中更改他想要的任何內容。

但是,挖礦還有另一部分,就是區塊版本號。大多數礦池運營商是否設置了這一點,例如投票,哪些位可以設置為投票?

如果礦池使用沒有 ASICBOOST 支持的層,那麼礦池運營商會為礦工設置比特。如果支持 ASICBOOST,礦工可以修改版本號中的一些位以使用 ASICBOOST。使用 GBT,如果礦池表明他們將接受一個版本號與他們在塊模板中設置的版本號不同的塊,則礦工可以修改版本號。

另外請注意,礦工不投票。設置軟分叉的版本號不是投票,它表明礦工準備執行軟分叉的規則。這是準備好的信號,而不是投票。

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