Transactions

為什麼一個 coinbase 交易中有兩個以上的交易輸出?

  • April 29, 2021

在 coinbase 交易中,總是有兩個以上的交易輸出。第一個交易輸出包含獎勵。第二個包含見證保留值。但是為什麼還有其他OP_RETURN0 Satoshis 的交易輸出呢?他們有必要嗎?

coinbase 交易可以有創建它的礦工想要的盡可能多的輸出。您可能會看到獎勵不僅有一個輸出,有時還有多個輸出,因此 coinbase 交易支付給多個礦工。此外,如果礦工選擇,可能還有其他 0 值 OP_RETURN 輸出。通常這是因為礦工想要為他們正在使用的另一個協議包含一些額外的數據。

比特幣的共識協議不需要額外的輸出。事實上,比特幣不需要任何特定的輸出。礦工可以通過創建少於正確數量的輸出來沒收所有生成的硬幣。礦工可以僅僅因為他們喜歡就包含其他 OP_RETURN 輸出。即使是 BIP 141 OP_RETURN 也只有在區塊包含任何 segwit 交易時才需要,因此如果不包含,則不需要包含它。

其他輸出到地址並具有正值的最常見原因是礦池直接從 coinbase 獎勵中支付礦工。大多數礦池不這樣做,但有些礦池會這樣做。還有點對點礦池,例如p2pool,直接從 coinbase 交易中向參與的礦工付款。

對於額外的 OP_RETURN 輸出,礦工通常參與另一個需要在區塊中承諾的共識協議。比特幣不需要這些,而是其他東西。礦工參與的常見協議有兩種:p2pool 和合併挖礦。P2pool 使用額外的 OP_RETURN 輸出來送出儲存在其他地方的一些 p2pool 數據。合併採礦使用比特幣區塊鏈通過在比特幣區塊中包含來自山寨幣的承諾來幫助保護山寨幣的區塊鏈。這通常通過在 OP_RETURN 輸出中包含雜湊來完成。

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